Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

20 $ Zigbee-Türklingel

Komponenten und Verbrauchsmaterialien

Arduino Nano R3
× 1
Cree Connected LED-Birne
Zigbee LED Dimmbare Smart Bulb von Cree
× 1

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Meine Einrichtung

Ich habe ein ziemlich umfangreiches Zigbee/Z-Wave-Mesh-Netzwerk für mein internetfähiges Hausautomationssystem (über SmartThings), das alles von der Steuerung meiner Lichter und der Überwachung des Stromverbrauchs bis hin zu Warnungen vor extremen Wetterbedingungen und erinnert mich daran, die Hunde zu füttern.

Die gesamte Benutzeroberfläche erfolgt über eine Smartphone-App, und Warnungen können über die App gesendet oder per SMS gesendet werden. Ein Anwendungsfall, der meiner Meinung nach durch die Ritzen gerutscht ist, ist ein freundlicher Glockenschlag, der die Bewohner auf Zustandsänderungen im Haus aufmerksam macht (Türen / Fenster / Safes / Tore öffnen, Unwetter oder zu hohe Temperatur im Kinderzimmer).


Das Problem

Es gibt bereits ein paar Möglichkeiten, eine super laute Sirene auszulösen, wenn ein Bewegungssensor oder ein Fenster- / Türsensor ausgelöst wird, aber ich konnte keine einfachen Türglocken finden. Dies ist eine grundlegende Funktion von fast jedem Heimsicherheitssystem da draußen, daher war ich wirklich überrascht, dass es so etwas nicht gab. Ich habe versucht, einen Remote-Türklingelsensor zu hacken, aber der schwierige / teure Teil war, ihn in mein Z-Wave / Zigbee-Mesh-Netzwerk zu bekommen. SmartThings hat eine API für SONOS-Lautsprecher [teuer], und ich habe gesehen, wie Leute mehrere Integrationen von SmartThings über IFTTT bis Twitter zu einem WLAN-verbundenen Arduino [zu kompliziert und langsam] verketten.

Alles in allem würde jede dieser Lösungen weit über 40 US-Dollar kosten und ich möchte die gleiche Funktionalität mit besserer Leistung für unter 20 US-Dollar haben.


Geben Sie die Cree Connected LED-Birne ein

Home Depot verkauft die Cree Connected Bulb für 15 US-Dollar und sie ist bei weitem meine Lieblings-Smart-Glühbirne. Nichts anderes unter 50 US-Dollar kommt in Bezug auf Lichtleistung, Farbtemperatur, dimmbare Reichweite, Langlebigkeit oder drahtlose Reichweite nahe.

Ich habe bereits alle meine alten Smart-Glühbirnen gegen diese ausgetauscht und hatte noch ein paar übrig, also möchte ich jetzt sehen, was ich noch mit dieser billigen und zuverlässigen Hardware machen kann. Andere haben die Glühbirnen abgerissen und festgestellt, dass sich alle Zigbee-Komponenten auf einem einzigen Breakout-Board befinden und 3,3 V Strom verbrauchen ... meine arduinoischen Sinne kribbeln.

Es stellte sich heraus, dass das Zigbee-Board tatsächlich über einen Atmel SAMR21 verfügt, einen 32-Bit-ARM-Cortex-Chip mit 256 KB Flash-Speicher (pdf). Atmel verkauft ein Entwickler-SAMR21-Board für 42 US-Dollar, also ist es ein Schnäppchen, dieses für 15 US-Dollar zu bekommen.

Weniger als $20 Hardware

Proof of Concept mit SmartThings  

Hier ist ein schneller PoC, der einen Zustandsänderungsmonitor auf einem Arduino verwendet, um einen Ton "Gong" auf einem Piezo-Summer auszulösen. Die Dimm- und Ein/Aus-Ausgangspins der Glühbirne funktionieren immer noch, und mit der SmartThings-App-Engine kann ich jede beliebige Logik erstellen, die ich möchte.

Auch ohne Arduino können Sie den digitalen Pin direkt mit einem Relais verbinden, um fast alles ein- und auszuschalten. Dies kann LED-Lichtbänder ansteuern, Garagentore öffnen/schließen, Motoren/Pumpen einschalten usw.

Machbarkeitsnachweis mit SmartThings

Da einer der Pins PWM ausgibt, kann ich das mit einem der analogen I / O-Pins eines Arduino verbinden, der auf Werte zwischen 1-100% abgebildet ist. In SmartThings sind diese in 10 %-Intervalle unterteilt, sodass ich zwischen diesem und dem Ein / Aus 11 verschiedene Ausgänge habe, die ich durch das Zigbee-Board senden kann. Dies würde es ermöglichen, verschiedene Warnungen auszulösen, je nachdem, welche Tür/Fenster geöffnet ist.

Dies kann über eine Warnung oder einen Glockenton hinausgehen. Ein weiteres Projekt, bei dem ich an einem arduino-gesteuerten IR-Blaster für meine Fenster-AC-Einheiten arbeite, und jetzt, da ich mit der obigen Methode direkt in SmartThings integrieren kann, erkennt es meine Anwesenheits- / Anwesenheitssensoren und den Hauszustand.

Da dies alles 3,3 V ist, ist es ein perfekter Anwendungsfall für einen ATtiny85 und 3,7 V Li-Ion-Akkus für ein superkleines und tragbares Paket. Ich habe auch die Stromversorgung von der Glühbirne behalten, da sie 120 V AC auf 3,3 V DC abfällt und sich zweifellos für zukünftige Projekte als nützlich erweisen wird.

Ich bin sicher, dass sich diese Community andere Verwendungsmöglichkeiten einfallen lässt, also kommentieren Sie bitte, wie Sie dies verwenden würden, oder erstellen Sie sogar Ihre eigene Version und posten Sie das Projekt!

Code

  • Türklingelskizze
  • Stellplätze.h
DoorChime-SkizzeC/C++
Arduino-Skizze für DoorChime
#include #include "pitches.h"/*Schnelle Skizze als PoC, um die Zigbee-Platine von Cree Connected LED zum Ansteuern anderer Geräte (in diesem Fall eines Lautsprechers) zu verwenden. Geändert von Buddy Crotty - März 2015version 0.1.2Vollständig kopiert von Tom Igoes Beispielskizzen:Zustandsänderungserkennung (Kantenerkennung) ToneMelodyDieser Beispielcode ist gemeinfrei. http://arduino.cc/en/Tutorial/ButtonStateChange http://arduino.cc/en/Tutorial/ToneZigbee Board von Cree Verbunden LED Pin 1 Masse Pin 2 3.3Vin Pin 3 PWM Out Pin 4 Digital Out Schaltung:* 8 -Ohm-Lautsprecher an digitalem Pin 8 * Pin 2 ist mit Pin 4 der Zigbee-Platine verbunden * /// diese Konstante ändert sich nicht:const int buttonPin =2; // der Pin, an dem der Taster befestigt ist const int speakerPin =8; // der Pin, mit dem der Lautsprecher verbunden ist // Variablen ändern sich:int buttonPushCounter =0; // Zähler für die Anzahl der Tastendrückeint buttonState =0; // aktueller Zustand des Buttonint lastButtonState =0; // vorheriger Zustand der Taste // Noten in der Melodie (7nationArmy):int melody[] ={ NOTE_GS2, NOTE_GS2, NOTE_B2, NOTE_GS2, NOTE_FS2, NOTE_E2, NOTE_DS2};// Notendauer:4 =Viertelnote, 8 =Achtelnote usw.:int noteDurations[] ={ 4, 8, 8, 8, 8, 3.5, 3};void setup () {// Initialisieren Sie den Button-Pin als Eingang:pinMode (buttonPin, INPUT); // die LED als Ausgang initialisieren:pinMode (speakerPin, OUTPUT);}void loop () {// den Drucktasten-Eingangspin lesen:buttonState =digitalRead (buttonPin); // vergleiche den buttonState mit seinem vorherigen Zustand if (buttonState !=lastButtonState) { // wenn sich der Zustand geändert hat, inkrementiere den Zähler if (buttonState ==HIGH) { // wenn der aktuelle Zustand HIGH ist dann der Button // wend von aus nach ein:buttonPushCounter++; // Ton spielen // über die Noten der Melodie iterieren:for (int thisNote =0; thisNote <8; thisNote++) { // Um ​​die Notendauer zu berechnen, nehmen Sie eine Sekunde // dividiert durch den Notentyp. //z.B. Viertelnote =1000/4, Achtelnote =1000/8 usw. int noteDuration =10000 / noteDurations[thisNote]; Ton (LautsprecherPin, Melodie [diese Anmerkung], Anmerkungsdauer); // Um ​​die Noten zu unterscheiden, legen Sie eine Mindestzeit zwischen ihnen fest. // die Dauer der Notiz + 30% scheint gut zu funktionieren:int pauseBetweenNotes =noteDuration * .32; Verzögerung (pauseBetweenNotes); // Stoppen Sie die Tonwiedergabe:noTone (speakerPin); } } else {// wenn der aktuelle Zustand LOW ist, dann ging die Schaltfläche // von ein nach aus:Serial.println ("off"); } // Verzögern Sie ein wenig, um ein Prellen zu vermeiden Verzögerung (50); } // den aktuellen Zustand als letzten Zustand speichern, // für das nächste Mal durch die Schleife lastButtonState =buttonState; // schaltet den Gong alle zwei Zustandsänderungen ein (nur wenn die Tür geöffnet wird) // die Modulo-Funktion gibt Ihnen den Rest von // der Division zweier Zahlen:if (buttonPushCounter % 2 ==0) { digitalWrite(speakerPin, HIGH ); aufrechtzuerhalten. Sonst { DigitalWrite (SpeakerPin, LOW); }}
Pitches.hC/C++
Stellplatzbibliothek, damit Sie nicht selbst danach suchen müssen
/************************************ ************** * Öffentliche Konstanten ****************************** ******************/#define NOTE_B0 31#define NOTE_C1 33#define NOTE_CS1 35#define NOTE_D1 37#define NOTE_DS1 39#define NOTE_E1 41#define NOTE_F1 44#define NOTE_FS1 46#Define NOTE_G1 49#Define NOTE_GS1 52#Define NOTE_A1 55#Define NOTE_AS1 58#Define NOTE_B1 62#Define NOTE_C2 65#Define NOTE_CS2 69#Define NOTE_D2 73#Define NOTE_DS2 78#Define NOTE_E2 82#Define NOTE_F2 87 93#Define NOTE_FS2 define NOTE_G2 98#define NOTE_GS2 104#define NOTE_A2 110#define NOTE_AS2 117#define NOTE_B2 123#define NOTE_C3 131#define NOTE_CS3 139#define NOTE_D3 147#define NOTE_DS3 156#define NOTE_E3 NOTE . 165#define NOTE_F3 175#define 196#define NOTE_GS3 208#define NOTE_A3 220#define NOTE_AS3 233#define NOTE_B3 247#define NOTE_C4 262#define NOTE_CS4 277#define NOTE_D4 294#define NOTE_DS4 311#define NOTE_E4 330#define NOTE_F4 349#de fine NOTE_FS4 370#define NOTE_G4 392#define NOTE_GS4 415#define NOTE_A4 440#define NOTE_AS4 466#define NOTE_B4 494#define NOTE_C5 523#define NOTE_CS5 554#define NOTE_D5 587#define NOTE_DS5 622#define NOTE_E5 659 740#define NOTE_G5 784#define NOTE_GS5 831#define NOTE_A5 880#define NOTE_AS5 932#define NOTE_B5 988#define NOTE_C6 1047#define NOTE_CS6 1109#define NOTE_D6 1175#define NOTE_DS6 1245#define NOTE_E6 1319#define NOTE480#define define NOTE_G6 1568#define NOTE_GS6 1661#define NOTE_A6 1760#define NOTE_AS6 1865#define NOTE_B6 1976#define NOTE_C7 2093#define NOTE_CS7 2217#define NOTE_D7 2349#define NOTE_DS7 2489#define NOTE_E7 2637#define NOTE_F7 2794#define NOTE_F7 2794#define NOTE_F7 2794 3136#define NOTE_GS7 3322#define NOTE_A7 3520#define NOTE_AS7 3729#define NOTE_B7 3951#define NOTE_C8 4186#define NOTE_CS8 4435#define NOTE_D8 4699#define NOTE_DS8 4978

Schaltpläne

Fritzing-Schaltplan von DoorChime mit Skizzencode DoorChime.fzz

Herstellungsprozess

  1. Banktresor
  2. Drehtür
  3. Windspiel
  4. Glühbirne
  5. Interaktiver Laserprojektor mit Zigbee-Sensoren
  6. Windows IoT:Tür zur Gesichtserkennung
  7. Verbindung herstellen
  8. Was ist ein Fallenriegel?
  9. Was ist ein Jamb Switch?
  10. So reparieren Sie Ihren Autotürgriff