Inhaltsverzeichnis:
- Schritt 1: Das ESP8266-01-Design
- Schritt 2: Das Netzteil
- Schritt 3: Zusammenbau der PC-Platine
- Schritt 4: Testen der PC-Platine
- Schritt 5: Das Gehäuse
- Schritt 6: Programmierung der ESP8266-01/NodeMCU
- Schritt 7: Ersteinrichtung
- Schritt 8: Einrichtung des IoT-Timers
Video: ESP8266-01 IoT Smart Timer für die Hausautomation - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
AKTUALISIERUNG
30.09.2018: Firmware auf Version 1.09 aktualisiert. Jetzt mit Sonoff Basic Support
10.01.2018: Testversion der Firmware-Version 1.10 zum Testen auf ESP8266-01 mit Problemen verfügbar
Mit den neuen Schlagworten Internet of Things (IoT) und Home Automation habe ich beschlossen, mir die aktuellen Artikel in und um mein Zuhause anzusehen, die über eine Art Gerät gesteuert werden. Die Punkte, die auffielen, sind die folgenden:
- Schwimmbadpumpe
- Wasserfüller für Schwimmbecken
- Schwimmbad und Umgebungsbeleuchtung
- Schrankleuchten für TV-/Entertainment-Systeme
Das übliche Element, das zur Steuerung dieser Geräte verwendet wird, sind Standard-Wandstecker-Timer. Jedes Gerät ist mit einem eigenen Timer ausgestattet und befindet sich alle an verschiedenen Orten. Warum habe ich mich für diese Elemente entschieden, um mit Internet of Things- oder Home-Automation-Projekten zu beginnen, könnten Sie sich fragen?
Nun, in Südafrika zu leben bedeutet, dass Stromausfälle an der Tagesordnung sind. Mit Statistiken zu meinem Haus hatte ich im letzten Jahr 35 Stromausfälle, insgesamt 40 Stunden. Dies ist normalerweise kein Problem, da alle derzeit installierten Zeitschaltuhren mit einer Pufferbatterie zur Zeitmessung bei Stromausfall ausgestattet sind. Aber es gibt einige Probleme:
- Diese Pufferbatterien halten nur ein oder zwei Jahre, dann muss die Zeitschaltuhr ersetzt werden. Die Timer sind so konstruiert, dass der Timer zerstört werden muss, um Zugang zum internen Ni-Cad-Akku zu erhalten.
- Bei jedem Stromausfall müssen die Timer mit defekten Batterien neu programmiert und die Zeit eingestellt werden.
- Die physische Position des Timers, wenn er an die Steckdose angeschlossen ist, macht es fast unmöglich, die LCD-Displays von oben abzulesen. Das bedeutet, dass der Timer ausgesteckt werden muss, oder ich mich auf den Boden legen muss, um die Timer nach einem Stromausfall einzustellen oder einzustellen.
Aus den oben genannten Gründen habe ich beschlossen, die Möglichkeit zu testen, die Timer durch einen IoT Smart Timer zu ersetzen, der mit meinem lokalen Heimnetzwerk verbunden ist.
Die Idee war, einen eigenständigen Timer zu entwickeln, der:
- Automatische Anpassung der aktuellen Uhrzeit über das Internet (IoT)
- Bedienung ohne Benutzeraktionen (Smart)
- Schalten Sie einen Ausgang nach eingestellten Zeiten ein/aus (Timer)
- Über Netzwerk programmierbar und steuerbar (Home Automation)
Schritt 1: Das ESP8266-01-Design
Das Design wurde mit einem ESP8266-01 WiFi-Modul erstellt, da ich dieses zur Verfügung hatte. In seiner einfachsten Form hat der ESP8266-01 vier I/O-Pins:
- GPIO0
- GPIO2
- TX
- RX
ESP8266-01 Einschaltmodi
Der logische Zustand der I/O-Pins wird verwendet, um zu bestimmen, in welchem Modus der ESP8266-01 hochfährt. Der erste Schritt bestand darin, zu bestimmen, welcher der E/A-Pins zum Ansteuern eines Ausgangsrelais verwendet werden kann.
- Für das normale Einschalten müssen GPIO0 und GPIO2 auf logisch HIGH gesetzt werden. Somit ist klar, dass diese beiden Pins nicht als digitaler Ausgang verwendet werden können.
- Der Tx-Pin wird beim Einschalten als Ausgang gesetzt und der Ausgang auf High gesetzt. Dieser Tx-Pin überträgt auch einige serielle Daten während des Einschaltens. Somit kann dieser Pin auch nicht als Ausgang verwendet werden.
Der einzige verbleibende Pin ist der Rx-Pin. Dieser Pin wird beim Einschalten als Eingang gesetzt und muss beim Einschalten nicht hochgezogen werden. Dieser Pin ist daher am besten geeignet, um als Ausgangspin verwendet zu werden.
Hochfahren
Um den korrekten Boot-Up-Modus des ESP8266-01 während des Einschaltens sicherzustellen, werden die folgenden Pins mit 10K-Widerständen hochgezogen:
- GPIO0
- GPIO2
- RST
- CH_PD
Dadurch wird sichergestellt, dass das Gerät jedes Mal korrekt hochfährt.
Ausgangsrelais
Der RX ist der einzige Pin, der als Ausgang geeignet ist. Dieser Pin dient somit zur Ansteuerung des Ausgangsrelais über einen NPN-Transistor. Die Standard-Schwungraddioden- und Transistor-Basiswiderstände wurden hinzugefügt.
MODE/SET-Taste
Die Taste ist mit GPIO2 verbunden, und wenn die Taste losgelassen wird, zieht ein 10K-Widerstand GPIO2 hoch. Bei gedrückter Taste wird GPIO2 auf 0V gezogen.
Diese Taste wird für zwei Funktionen verwendet:
- Ersteinrichtung zum Verbinden des Geräts mit einem lokalen WLAN-Netzwerk
- Um den Ausgang während des normalen Betriebs manuell zu steuern
Anzeige-LED
Die LED ist mit GPIO0 verbunden und zeigt Folgendes an:
- Blinkt beim ersten Einschalten SCHNELL, um den WiFi-Setup-Modus anzuzeigen
- Blinkt langsam, wenn die Uhrzeit des Geräts nicht eingestellt ist
- zeigt den Ein/Aus-Status des Ausgangsrelais an
Schritt 2: Das Netzteil
Ich werde den IoT Smart Timer auf verschiedenen Spannungsebenen verwenden, daher stehen zwei Stromversorgungsoptionen zur Verfügung:
12 - 24V DC
Der verwendete DC-DC-Wandler ist für Versorgungen bis 28V DC geeignet. Der Ausgang des Wandlers ist einstellbar und auf 5V eingestellt. Dies muss erfolgen, bevor das ESP8266-Modul angeschlossen wird.
Zum Schutz vor Verpolung am Versorgungseingang wurde eine Diode hinzugefügt.
220V ACFür diese Option konnte ich bei eBay ein kleines 220V/5V Schaltnetzteil erwerben.
Unabhängig von der Eingangsspannung benötigt der IoT Smart Timer zwei Netzteile:
5V-Schiene
Bei beiden Optionen wird die 5V DC von einem Schaltnetzteil und nicht von einem Linearregler bezogen. Das bedeutet, dass nur minimale Wärme durch das Netzteil erzeugt wird. Die 5V werden verwendet, um das Ausgangsrelais zu treiben
3.3V Schiene
Die 3,3 V für den ESP8266-01 werden von einem ASM1117 3.3-Regler bezogen. Der ASM1117 3.3 ist ein Linearregler und kann bis zu 500 mA verarbeiten. Die erzeugte Wärme wird jedoch durch die Eingangsspannung des ASM1117 bestimmt. Um die Hitze zu reduzieren, wird der ASM1117 über die 5V-Schiene mit Strom versorgt.
Rauschfilterung
Um die Spannungswelligkeit des ESP8266-01 zu reduzieren, ist die 3,3V-Schiene mit einem 100 - 1000uf Kondensator ausgestattet. Sowohl die 5-V- als auch die 3,3-V-Schiene sind durch 0,1-Uf-Kondensatoren auch vor Hochfrequenzstörungen geschützt.
Schritt 3: Zusammenbau der PC-Platine
Das PC Board wurde mit der Freeware-Version von Eagle entwickelt. Es ist ein einseitiger Karton, der einfach zu Hause mit der Tonerübertragungsmethode hergestellt werden kann.
Sobald die PC-Platine hergestellt ist, bauen Sie die PC-Platine in der folgenden Reihenfolge zusammen:
- Löten Sie den ASM1117-Regler und drei 0.1uf SMD-Komponenten auf die Lötseite der Platine
- Fügen Sie den einzelnen Jumper auf der Komponentenseite der Platine hinzu
- Löten Sie die Widerstände und Dioden an Ort und Stelle
- Fügen Sie die Header für das ESP8266-01-Modul hinzu
- Fügen Sie die Header-Pins für die LED und die Taste hinzu
- Fügen Sie die Schraubklemmen hinzu
- Verbinden Sie den DC/DC-Wandler mit den Kopfstiften mit der Platine.
- Löten Sie das Relais ein
- Vervollständigen Sie die Platine, indem Sie den Transistor und den 100uf-Kondensator verlöten.
Sobald alle Komponenten an die Platine gelötet sind, überprüfen Sie alle Lötpunkte und stellen Sie sicher, dass keine Kurzschlüsse zwischen den Pads vorhanden sind.
! ! ! WICHTIGER HINWEIS ! ! ! Um sicherzustellen, dass die Leiterplatte große Ströme an den Ausgangskontakten verarbeiten kann, tragen Sie eine angemessene Menge Lötzinn auf die Leiterbahnen zwischen den Relaiskontakten und den Schraubklemmen auf
Schritt 4: Testen der PC-Platine
! ! ! Vor dem Anlegen der Stromversorgung! ! !
Entfernen Sie das ESP8266-01-Modul aus dem Gerät. Dies soll eine Überhitzung des Reglers ASM1117 verhindern, bevor die 5V-Versorgung angepasst wird.
Es gibt nicht viele Tests, die nach der Montage durchgeführt werden können. Der wichtigste Schritt besteht darin, die richtigen Spannungspegel sicherzustellen.
- Legen Sie 12 - 24 V DC an das Gerät an.
- Messen Sie die Ausgangsspannung des DC/DC-Wandlers
- Stellen Sie den Ausgang des Konverters zwischen 5,0 und 5,5 V ein.
- Als nächstes messen Sie die 3,3-V-Versorgung.
- Wenn die Stromversorgung in Ordnung ist, trennen Sie das Gerät vom Strom
Sie können nun das ESP8266-01-Modul in die vorgesehenen Header einfügen.
! ! ! Notiz !
Nachdem Sie den IoT-Timer getestet haben und er funktioniert, verwenden Sie Klarlack, um die Lötseite der Leiterplatte abzudecken. Dies verhindert eine Oxidation der Leiterbahnen und sorgt für eine zusätzliche Isolierung zwischen den Relaiskontakten und dem Rest des Stromkreises
Schritt 5: Das Gehäuse
Das Gehäuse ist nicht so wichtig, solange die Platine und die gesamte Verkabelung sauber und sicher hineinpassen.
Um den Aufbau zu erleichtern, habe ich ein Kabel mit angeschlossener LED und MODE/SETUP-Taste konfektioniert. Dies gab mir mehr Flexibilität bei der Montage der LED und der Taste am Gehäuse. Dieses Kabel wird dann in den Header auf der Platine gesteckt.
Die Fotos zeigen eine der 12V-Einheiten, die für LED-Leuchten verwendet werden.
Schritt 6: Programmierung der ESP8266-01/NodeMCU
Um den ESP8266-01 zu programmieren, müssen Sie zuerst die Arduino IDE einrichten. Ich gehe nicht auf diese Details ein, da zu diesem Thema viele großartige Instructables verfügbar sind. Ich habe die folgenden Links auf Instructables als Referenz ausgewählt, ohne eine bestimmte Reihenfolge an die Autoren. Vielen Dank für ihre individuellen Instructables.
Folgen Sie dieser ESP8266- und Arduino-IDE, um die Arduino-IDE für das ESP8266-Modul einzurichten.
Als nächstes benötigen Sie einen Programmierer, um den ESP8266 zu programmieren. Hier zwei Links:
Verwenden von Arduino Uno
DIY-Programmierplatine
Bibliotheken
Sie müssen zusätzliche Bibliotheken installieren, um den Code kompilieren zu können. Beziehen Sie sich wieder auf dieses Instructable:
Installieren und verwenden Sie Arduino-Bibliotheken
Ich kann mich nicht erinnern, welche Bibliotheken ich installieren musste, aber ich weiß, dass WiFiManager separat heruntergeladen werden muss. Ich habe diese in der Datei Libraries.zip enthalten.
Schritt 7: Ersteinrichtung
Bei der erstmaligen Verwendung muss der IoT Smart Timer mit einem WLAN-Netzwerk verbunden sein. Diese Aufgabe wird mit der WiFiManager-Bibliothek erledigt, sodass keine SSID oder Passwörter in den Code eingegeben werden müssen.
Folgen Sie diesen wenigen Schritten:
- Schalten Sie das Gerät ein
- Die LED beginnt schnell zu blinken
- Drücken Sie die MODE/SETUP-Taste
- Wenn die LED erlischt, lassen Sie die Taste los
- Warten Sie ein paar Sekunden und öffnen Sie dann die WLAN-Verbindungen Ihres Smartphones oder Geräts
- Ein neues WLAN-Netzwerk namens IoT Timer wird sichtbar
- Wählen Sie diesen Zugangspunkt aus
- Melden Sie sich beim IoT Timer an (kein Passwort erforderlich)
- Warten Sie, bis Ihr Gerät mit dem IoT Timer-Netzwerk verbunden ist
- Öffnen Sie einen beliebigen Internetbrowser
- Geben Sie in der Adressleiste die folgende IP-Adresse ein - 192.168.4.1
- Die WiFiManager-Konsole wird geöffnet
- Wählen Sie WLAN konfigurieren
- Eine Liste mit verfügbaren WLAN-Netzwerkpunkten wird angezeigt
- Wählen Sie das gewünschte WLAN-Netzwerk aus und geben Sie das Passwort ein
- Geben Sie als Nächstes die IP-Adresse ein, mit der Sie sich mit dem IoT Timer verbinden möchten
- Geben Sie die Standard-Gateway-IP-Adresse ein, gefolgt von der Maske
- Wenn alle Einstellungen vorgenommen wurden, klicken Sie auf die Schaltfläche Speichern
- Ein neues Fenster wird geöffnet, um zu bestätigen, dass die neuen Zugangsdaten gespeichert wurden
- Schließen Sie Ihren Browser
Nach dem Speichern wird das IoT Timer-Netzwerk heruntergefahren und das Gerät versucht, eine Verbindung zu Ihrem WLAN-Netzwerk herzustellen.
- Verbinden Sie Ihr Smartphone oder Gerät mit demselben WLAN-Netzwerk, das für den IoT-Timer verwendet wird.
- Öffne deinen Browser
- Geben Sie in der Adressleiste die IP-Adresse Ihres IoT-Timers ein
- Die Konfigurationsseite des IoT Timers wird geöffnet
Ihr IoT-Timer ist jetzt einsatzbereit
Schritt 8: Einrichtung des IoT-Timers
Die eingebaute Webseite des IoT Timers besteht aus fünf Abschnitten:
Status
Hier werden der Gerätename, sowie die aktuelle Uhrzeit und der Ausgangsstatus des Timers angezeigt
Außerdem wird in diesem Abschnitt die Betriebsart des Timers eingestellt. Es gibt drei Modi:
- Auto - Die Ausgabe wird von den verschiedenen Timerprogrammen gesteuert
- Ein - Ausgang wird zwangsweise eingeschaltet und bleibt eingeschaltet, bis der Modus geändert wird
- Aus – Der Ausgang wird zwangsweise ausgeschaltet und bleibt ausgeschaltet, bis der Modus geändert wird.
Programme
Dieser Abschnitt enthält die Ein- und Ausschaltzeiten des Timers. Es stehen sieben Programme zur Verfügung und jedes Programm kann individuell eingestellt werden.
Bevor Sie das nächste Programm ändern, drücken Sie die SAVE-Taste, um alle am aktuellen Programm vorgenommenen Änderungen zu speichern.
Tastenfunktion
Mit der MODE/SETUP-Taste kann das Ausgangsrelais im Normalbetrieb gesteuert werden. Wählen Sie hier aus, was die Schaltfläche tun soll, wenn sie gedrückt wird.
Aktivieren Sie das Kontrollkästchen "Schaltflächenfunktion aktualisieren", bevor Sie auf die Schaltfläche Speichern klicken, um die neuen Einstellungen zu speichern.
Aufbau
Hier können Sie den Namen des IoT Timers ändern. Dies macht es einfach, zwischen mehreren Timern zu unterscheiden.
Die Uhrzeit des Geräts wird über einen NTP-Zeitserver aus dem Internet bezogen. Um die korrekte Uhrzeit anzuzeigen, aktualisieren Sie bitte die Zeitzone auf Ihre Region.
Wenn Sie einen anderen NTP-Zeitserver verwenden möchten, tragen Sie die neue IP-Adresse in das dafür vorgesehene Feld ein.
Aktivieren Sie das Kontrollkästchen "Konfiguration aktualisieren", bevor Sie auf die Schaltfläche Speichern klicken, um die neuen Einstellungen zu speichern.
HINWEIS
Beim Ändern der Zeitzone wird die neue Uhrzeit erst bei der nächsten Zeitabfrage richtig eingestellt. Das Gerät ist so eingestellt, dass die Uhrzeit alle 5 Minuten aktualisiert wird.
Zeitumstellung
Manchmal kommt es vor, dass der NTP-Zeitserver nicht auf jede Zeitabfrage antwortet. Sollte das Einstellen der Uhrzeit über den NTP-Server zu lange dauern, können Sie Uhrzeit und Datum manuell eingeben.
Aktivieren Sie das Kontrollkästchen "Zeit aktualisieren", bevor Sie auf die Schaltfläche Speichern klicken, um die neue Uhrzeit und das neue Datum zu speichern.
Zeitsynchronisation
Der letzte Teil der Seite zeigt die Uhrzeit und das Datum an, wann die Uhrzeit zuletzt über den NTP-Zeitserver synchronisiert wurde.
Empfohlen:
Hausautomation: 5 Schritte
Hausautomation: In diesem Projekt haben wir viele Dinge verwendet, um den Prozess des IoT Internet of Things Video für das gesamte Projekt zu verstehen
Hausautomation: 7 Schritte
Home Automation: Verwandeln Sie Ihr Zuhause in ein Smart Home, damit können Sie alle elektronischen Geräte in Ihrem Zuhause mit einer einzigen App steuern. Aber für dieses Projekt habe ich darauf geachtet, nur die gesamte Beleuchtung zu Hause zu steuern. Alles leicht gemacht mit Raspberry Pi 3 und Relais für Kont
Grundlagen der Hausautomation: 6 Schritte (mit Bildern)
Grundlagen der Hausautomation: Hallo zusammen. Dieses anweisbare führt Sie zu den Grundlagen der Hausautomation. Da dies von grundlegender Bedeutung ist, werden wir nur Arduino und einige andere Komponenten verwenden. Geschichte über das Instructable: - Ich lerne immer noch über Arduino p
DIY IoT-Lampe für die Hausautomation -- ESP8266-Tutorial: 13 Schritte (mit Bildern)
DIY IoT-Lampe für die Hausautomation || ESP8266-Tutorial: In diesem Tutorial werden wir eine mit dem Internet verbundene intelligente Lampe erstellen. Dies wird tief in das Internet der Dinge eintauchen und eine Welt der Heimautomatisierung eröffnen! Die Lampe ist über WLAN verbunden und verfügt über ein offenes Nachrichtenprotokoll. Das heißt, Sie können wählen
So bauen Sie eine Uhr, die die Zeit an die Wand projiziert – wikiHow
So bauen Sie eine Uhr, die Zeit an die Wand projiziert: Dieses Instructable zeigt Ihnen, wie Sie eine Projektoruhr bauen. Mit diesem Gerät können Sie die Zeit an die Wand projizieren. Basierend auf einem kleinen LCD-Wecker (nicht zu klein, sondern kann nicht projiziert und bearbeitet werden) ist dies eine gute Möglichkeit