Inhaltsverzeichnis:
- Schritt 1: Schaltungsübersicht
- Schritt 2: Sonoff RetroMods
- Schritt 3: Konstruktions- und Montagedetails
- Schritt 4: Sonoff Programmieradapter
- Schritt 5: Überblick über das Softwaresystem
- Schritt 6: Softwareübersicht
- Schritt 7: OpenHAB-Konfiguration
- Schritt 8: Testen Ihres IoT-Geräts
- Schritt 9: Fazit
- Schritt 10: Verwendete Referenzen
Video: IoT-Netzcontroller. Teil 9: IoT, Hausautomation – Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
Haftungsausschluss
LESEN SIE DIES ZUERST
Dieses Instructable beschreibt ein Projekt, das Netzstrom verwendet (in diesem Fall UK 240VAC RMS), während jede Sorgfalt auf sichere Praxis und gute Designprinzipien angewendet wurde für die der Autor keine Haftung übernehmen kann, wenn beim Verfolgen des Inhalts Personen- oder Sachschäden entstehen. Folglich machen Sie dieses Projekt auf eigene Gefahr.
Präambel
Dieser Artikel, der neunte in einer Reihe zum Thema Hausautomation, dokumentiert die Erstellung und Integration eines Sonoff 10A IoT-Netzcontrollers in ein vorhandenes Hausautomationssystem einschließlich aller notwendigen Softwarefunktionen, um den erfolgreichen Einsatz in einer häuslichen Umgebung zu ermöglichen.
Einführung
Wie oben erwähnt, beschreibt dieses Instructable, wie man einen IoT-Netzcontroller mit dem Sonoff 10A von iTead herstellt und integriert. Das Gerät selbst wird mit einer Nennleistung von 10 Ampere bei 90 ~ 250 VAC angegeben, diese Implementierung reduziert es jedoch auf 5 Ampere über den abgesicherten Stecker, der eine britische Hauptversorgung von 240 VAC RMS bereitstellt.
Die Design-Methodik lässt sich nahtlos in das MQTT/OpenHAB-basierte IoT-Netzwerk integrieren, das in dieser Serie über die Heimautomatisierung beschrieben wird, die auf wiederverwendetem Code von hier basiert. Es kann auch den Verlust jedes IoT-Netzwerkelements verarbeiten und kann vollständig eigenständig betrieben werden. Im Standalone-Modus erfolgt die Steuerung des Geräts durch einfaches Drücken der Steuertaste auf der Oberseite des Gehäuses, die den Weiterleitungsausgang umschaltet.
Um diese lokale Steuerung des Sonoff-Geräts zu ermöglichen, wird GPIO14 aus dem Gehäuse geholt und als Triggereingang verwendet. Aus Sicherheitsgründen wird dieser Eingang über eine Optokopplerschaltung gespeist und in einem Kunststoffgehäuse untergebracht, so dass der Bediener zu keiner Zeit Netzspannungen ausgesetzt ist.
Schließlich beschreibt die Prosa auch, wie das ESP8266-Gerät im Sonoff 10A mit der Arduino-IDE neu programmiert wird, und gibt vollständige Schaltungsdetails eines Geräts an, mit dem Zielcode zuverlässig programmiert werden kann.
Welche Teile brauche ich?
Sonoff Netzregler
- 1 von Sonoff 10A hier
- 1 von 7805L 5V Spannungsregler hier
- 1 von 240/6VAC 1,5VA Transformator hier
- 2 von 0,1 Keramikkondensatoren hier
- 1 von 1000uF @25v Elektrolytkondensator hier
- 1 aus Brückengleichrichter 2W01 hier
- 2 von 4K7-Widerständen hier
- 1 von 330R Widerstand hier
- 1 aus SPST-Taste hier
- 1 Stück Mulitcomp BM12W ABS-Gehäuse hier
- 1 Stück TIL111 Optokoppler hier
- 1 Stück 3-Wege-Klemmleiste hier
- 1 Stück 2-fach codierter Molex-Stecker hier/hier
- 1 Stück 3-fach codierter Molex-Stecker hier/hier
- 1 Stück 5-fach codierter Molex-Stecker hier/hier
- 1 von 5-Wege-Molex-Pins hier
- 1 Stück Winbond SPI Flash (W25Q32FVSIG) hier
- 1 Stück 20mm Sicherungshalter + Kappe hier
- 1 von 20mm flinke 500mA Sicherung hier
- 2 Stück Polyamid-Kabelverschraubungen hier
- 1 Stück UK-Netzstecker (BS1363/A) hier
- 1 Stück UK Hauptsteckdose (BS1363/A) hier
- 7 Stück M3 16mm CS Nylonschrauben, (inkl. 10 Stück Muttern) hier/hier
- 2 Stück Kabelbinder hier
- 1 aus Veroboard (0,1" Pitch) hier
- 1 Stück verschiedene Längen 22swg verzinnter Kupferdraht hier
- 1 Stück 3M weißes UK-Netzkabel hier
- 10 von Molex-Buchsen-Crimps hier
Sonoff-Programmierer
- 1 von LD33CV 3v3 Spannungsregler hier
- 1 Stück TO-220 Kühlkörper hier
- 1 Stück Kühlkörperpaste hier
- 1 von 10uF @16v Elektrolytkondensator hier
- 1 von 0,1 Keramikkondensator hier
- 1 aus SPDT-Taste hier
- 1 von 4K7-Widerstand hier
- 1 Stück 2-fach codierter Molex-Stecker hier/hier
- 1 Stück 3-fach codierter Molex-Stecker hier/hier
- 5 von Molex-Buchsen-Crimps hier
- 1 Stück 6-Wege-Molex-Buchse hier
- 1 aus SPST-Taste hier
- 1 von 2,1 mm Netzteilbuchse hier
- 1 aus Veroboard (0,1" Pitch) hier
- 1 Stück USB-zu-Seriell-Adapter (FTDI) hier
Welche Software benötige ich?
- Arduino IDE 1.6.9 hier
- Arduino IDE konfiguriert, um den ESP8266 zu programmieren. Siehe hier; Einrichten der Arduino IDE zum Programmieren des ESP8266-01
Welche Werkzeuge brauche ich?
- Lötkolben,
- Bohrer & diverse Bits (inkl. Stufenlochschneider für Kabelverschraubungen und Bedienknopf),
- Schraubendreher (verschiedene),
- Verstellbare Schraubenschlüssel (zwei Stück, Maulweite >25mm, für Kabelverschraubungen),
- Dateien (verschiedene),
- Robuster Schraubstock,
- Heißluftpistole,
- DMM (vorzugsweise CAT IV).
Welche Fähigkeiten brauche ich?
- Ein gutes Verständnis für Elektronik und elektrische Sicherheit/Design/Verkabelung zu Hause usw.,
- Kenntnisse von Arduino und seiner IDE,
- Gute Fertigungskenntnisse (Löten, Feilen, Bohren etc.),
- Etwas Geduld,
- Etwas Verständnis für Ihr Heimnetzwerk.
Behandelten Themen
- Einführung
- Schaltungsübersicht
- Sonoff RetroMods
- Konstruktions- und Montagedetails
- Sonoff Programmieradapter
- Übersicht über das Softwaresystem
- Software-Übersicht
- OpenHAB-Konfiguration
- Testen Ihres IoT-Geräts
- Abschluss
- Verwendete Referenzen
Serienlinks
Zu Teil 8: WiFi IoT Temperatur- und Feuchtigkeitssensor. Teil: 8 IoT, Hausautomation
Zu Teil 10: IR-Fernbedienung über IoT. Teil 10 IoT, Hausautomation
Schritt 1: Schaltungsübersicht
Überblick
Um den Netzregler lokal ein- und ausschalten zu können, war, wie in der obigen Einleitung erwähnt, ein Eingang zum On-Board ESP8266 des Sonoff erforderlich. Die Einführung eines solchen externen Eingangs erfordert, dass das Sonoff-ABS-Gehäuse durchbrochen wird und stellt daher eine potenzielle Stromschlaggefahr dar. Um dies zu überwinden, habe ich eine optische Isolierung verwendet, so dass keine Möglichkeit besteht, außerhalb des Gehäuses des Netzsteuerungssystems dem Netzstrom ausgesetzt zu werden.
Was folgt, ist eine Beschreibung der Opto-Isolationsschaltung (in Bild 1 oben).
Schaltungsdetails
Die Opto-Trennschaltung wird direkt vom am Gerät anliegenden Netz versorgt. Der 240VAC RMS wird an den Abwärts-/Trenntransformator TR1 über J1 angelegt, einen Pheonix-Kontakt MKDSN2, 5/3-5,08 Polyamid-3-Wege-Klemme mit 16 A bei 400 V, der ein Kabel von 2,5 mm (sq) CSA und F1 mit 500 mA 20 mm. tragen kann schnell durchbrennende Sicherung. Die an den Sekundärwicklungen von TR1 verfügbaren 6VAC werden von der Diodenbrücke B1 vollweggleichgerichtet.
Dieser gleichgerichtete Vollwellenausgang wird dann von C1, C2, C3, R3 und IC1 einem Shunt-Regler der Serie 7805L stabilisiert und geregelt, was eine gute, saubere 5-V-Versorgungsschiene ergibt.
Die 5-V-Schiene wird dann verwendet, um den Eingang zu OK1 eines TIL111-Opto-Isolators über einen extern montierten weißen SPST-Taster zu steuern, der über J3 angeschlossen ist. Der Ausgang des TIL111 ist über R2 über einen 4K7-Pull-Up-Widerstand mit dem Sonoff GPIO14-Eingang gekoppelt. Somit wird eine Isolation von mehr als 340 V erreicht (dh Spitzenspannung = (240 VAC*sqroot(2))).
Schritt 2: Sonoff RetroMods
Um das Sonoff 10A-Gerät zu integrieren, müssen nachträglich einige Modifikationen vorgenommen werden.
Die erste besteht darin, einen 5-Wege-Molex-Steckverbinder mit 0,1 Rastermaß hinzuzufügen, wie in Bild 1 oben gezeigt. Dies ermöglicht den Zugriff auf GPIO14 am Sonoff, sobald die Schutzabdeckung wie in den Bildern 2 und 3 oben ersetzt wurde.
Obwohl oben nicht gezeigt, habe ich auch die seriellen TX / RX-Leitungen herausgebracht, um die Programmierung vor Ort zu ermöglichen (siehe Kabelbaum SK1..3 in Schritt 1 oben).
Die zweite Änderung besteht darin, die Größe des SPI-Flash-Geräts von standardmäßig 1 MByte auf 4 MByte zu erhöhen, damit genügend Platz für die IoT-Webserverdateien in SPIFFS bleibt.
Ich habe das SMD-SPI-Flash-Gerät (W25Q32FVSIG) von Ebay hier gekauft
Um den Blitz zu ersetzen, habe ich die Sonoff-LED wie in Bild 4 vorübergehend entfernt, um einen besseren Zugriff auf das SMD-Gerät zu ermöglichen. Zum Entlöten des Blitzes habe ich eine Heißluftpistole verwendet, wie in Bild 5 oben gezeigt. Dann sowohl das 4MByte Flash als auch die LED neu verlötet (Bild 6).
Schritt 3: Konstruktions- und Montagedetails
Ich habe den Netzregler in eine Mulitcomp BM12W ABS Box eingebaut (Bild 1 oben). Dieses Gehäuse verfügt über isolierte M3-Einsätze aus Messing, die einen mehrfachen Zugriff auf das Gerät ermöglichen, ohne die Befestigungsgewinde zu beeinträchtigen, sodass die interne Sicherung bei Bedarf ausgetauscht oder eine interne Inspektion im Laufe der Zeit durchgeführt werden kann (dasselbe gilt nicht für das Sonoff-Gerät, das ist effektiv nur einmal mit Selbstzapfern dicht).
Die primäre Zugentlastung für das netzführende Versorgungskabel wurde über eine weiße M16 Nylon/Polyamid 6/6 Kabelverschraubung erreicht, die ein Kabel AD Min/Max 5mm/10mm unterstützt.
Die sekundäre Zugentlastung erfolgte über einen einzelnen Kabelbinder, der am Kabel angebracht wurde, sollte eine übermäßige Belastung ausgeübt werden und die Kabelverschraubung versagen, hält der Kabelbinder das Kabel an Ort und Stelle.
Um die Kabelverschraubungen anzubringen und genügend Platz für die Montage der Sonoff- und Opto-Isolationselektronik bereitzustellen, habe ich die internen Leiterplattenmontagerippen wie oben gezeigt abisoliert (Bild 2).
Die gesamte Elektronik wurde mit M3-Nylon-CS-Schrauben sicher montiert, um sicherzustellen, dass die Isolierung mit dem Äußeren des Gehäuses erhalten blieb. Die optoisolierende Elektronik ist mit 5 Befestigungspunkten montiert, um eine solide mechanische Festigkeit zu gewährleisten, falls das Gerät herunterfallen sollte, und verhindert so, dass die Masse des Trenntransformators den Veroboard-Schaltkreis unterbricht.
Die Versorgung des Geräts erfolgte über ein farbcodiertes weißes 3-adriges, PVC-isoliertes, mehradriges (32/0,2 mm²) Kabel mit 1 mm CSA nach britischem Standard. mit einem Außendurchmesser von 7,2 mm, der 10 A tragen kann.
Das Gerät wurde über einen 3-poligen Standard-Sicherheitsstecker (BS 1363/A) an das britische Stromnetz (240 VAC RMS) angeschlossen. Der Stecker war mit 5A verschmolzen.
Alle Netzversorgungskabel zum Opto-Trennkreis wurden über Pheonix-Kontakt MKDSN2, 5/3-5.08 Polyamidklemmen mit einer Nennleistung von 16 A bei 400 V, die ein Kabel von 2,5 mm (sq) CSA tragen können, angeschlossen, wodurch ausreichend Kapazität für zwei Kabel in jede Stelle.
Es wurden keine Netzkabel verzinnt, sondern nur verdrillt, um ein Aufspreizen der Adern vor dem Einstecken in den Steckerblock zu verhindern. Das Verzinnen von Netzkabeln ist eine gefährliche Praxis, da sich das Lot mit der Zeit „entspannt“und das Kabel schließlich im Anschlussblock verloren geht.
Notiz:
- AD = Außendurchmesser.
- VAC = Volt Wechselstrom
- RMS = Root Mean Square
- CSA = Querschnittsfläche
- CS = Zähler versenkt
Schritt 4: Sonoff Programmieradapter
Bei der Neuprogrammierung des Sonoff 10A über die Arduino IDE sind zwei Aspekte zu beachten;
- Konfigurieren Sie Ihre Arduino-IDE zum Programmieren des ESP8266,
- Der Akt der Programmierung der Hardware selbst.
Konfigurieren Sie Ihre Arduino IDE zum Programmieren des ESP8266
Um Ihre Ardino-IDE zu konfigurieren, folgen Sie den Anweisungen hier Einrichten der Arduino-IDE zum Programmieren des ESP8266-01
Programmierung der Hardware
Dies ist wie in allen Fällen beim ESP8266 ein mehrstufiger Prozess. Hier wird der Sonoff-Strom über eine externe stabilisierte 3v3-DC-Versorgung an das Board angelegt und NICHT über das Stromnetz. Zum Senden und Empfangen von Daten zum und vom Sonoff ist ein USB-zu-Seriell-Gerät erforderlich. Verbinden Sie TX und RX wie in Bild 2 und 4 gezeigt.
Programmierschritte (allgemein)
- Stellen Sie zunächst sicher, dass der Sonoff nicht mit einer externen Netzstromversorgung verbunden ist.
- Halten Sie die Taste am Sonoff-Gerät gedrückt. (Bild 1 oben, markierte Re-Flash-Taste),
- Legen Sie eine externe DC 3v3-Versorgung an Pin 1 an (Bild 2 oben),
- Lassen Sie die Sonoff-Taste los,
- Das Gerät kann nun wie gewohnt über die Arduino IDE umprogrammiert werden.
Um die Dinge ein wenig einfacher zu machen, habe ich das obige Programmiergerät erstellt (Bilder 3 und 4), das über den Kabelbaum SK1 … 3 mit dem Sonoff verbunden ist (wie in diesem Anleitungsschritt 1 beschrieben). Dies ermöglichte eine einfachere Programmierung des ESP8266. Es bot auch die Möglichkeit, GPIO14 als Eingang durch die Verwendung von R1, einem 4K7-Pull-Up-Widerstand und der Taste S1 zu testen.
Mit dem obigen Programmiergerät (Bilder 3 & 4) Programmierschritte sind,
- Halten Sie die Re-Flash-Taste am Sonoff gedrückt,
- Pulsen Sie die 3v3-Versorgung, indem Sie kurz S2 drücken,
- Lassen Sie die Re-Flash-Taste los,
- Das Gerät kann nun programmiert werden.
HINWEIS - WARNUNG
Unter KEINEN Umständen sollte während der Sonoff-Neuprogrammierungsaktivität die Stromversorgung über das Stromnetz erfolgen
Schritt 5: Überblick über das Softwaresystem
Dieses IoT Mains Controller-Gerät enthält größtenteils die gleichen sechs wichtigen Softwarekomponenten wie der Instructable WiFi IoT Temperatur- und Feuchtigkeitssensor. Teil: 8 IoT, Home Automation und in Bild 1 oben gezeigt, mit einigen Anpassungen.
SPIFFS
Dies ist das (auf 4 MBytes aufgerüstete) On-Board-SPI-Flash-Ablagesystem und wird verwendet, um die folgenden Informationen zu speichern (siehe Bild 2 oben);
- Symbole und 'Mains Controller Configuration Home Page' HTML: Wird vom IoT-Gerät bereitgestellt, wenn es keine Verbindung zu Ihrem IoT-WLAN-Netzwerk herstellen kann (normalerweise aufgrund falscher Sicherheitsinformationen) und bietet dem Benutzer die Möglichkeit, den Netzcontroller aus der Ferne zu konfigurieren, ohne die Notwendigkeit, neue SPIFFS-Inhalte neu zu programmieren oder hochzuladen.
- Sicherheitsinformationen: Dies sind die Informationen, die das IoT-Gerät beim Einschalten verwendet, um eine Verbindung zu Ihrem IoT-WLAN-Netzwerk und MQTT-Broker herzustellen. Informationen, die über die 'Mains Controller Configuration Home Page' übermittelt werden, werden in diese Datei ('secvals.txt') geschrieben.
Hinweis: Um das Gerät erstmalig einzurichten, finden Sie hier alle Details zur Verwendung von SPIFFS mit der Arduino IDE.
mDNS-Server
Diese Funktionalität wird aufgerufen, wenn das IoT-Gerät keine Verbindung zu Ihrem WLAN-Netzwerk als WLAN-Station herstellen konnte und stattdessen zu einem WLAN-Zugangspunkt geworden ist, der einem heimischen WLAN-Router ähnelt. Im Fall eines solchen Routers würden Sie sich normalerweise damit verbinden, indem Sie die IP-Adresse von etwa 192.168.1.1 (normalerweise auf einem an der Box angebrachten Etikett gedruckt) direkt in die URL-Leiste Ihres Browsers eingeben, woraufhin Sie eine Anmeldeseite zur Eingabe erhalten Benutzername und Passwort, damit Sie das Gerät konfigurieren können. Für den ESP8266 im AP-Modus (Access Point-Modus) verwendet das Gerät standardmäßig die IP-Adresse 192.168.4.1, jedoch müssen Sie bei laufendem mDNS-Server nur den benutzerfreundlichen Namen 'MAINSCON.local' in die Browser-URL-Leiste eingeben, um die 'Homepage der Konfiguration des Netzreglers'.
MQTT-Client
Der MQTT-Client stellt alle erforderlichen Funktionen zur Verfügung; Verbinden Sie sich mit Ihrem IoT-Netzwerk MQTT-Broker, abonnieren Sie die Themen Ihrer Wahl und veröffentlichen Sie Nutzlasten zu einem bestimmten Thema. Kurz gesagt stellt es IoT-Kernfunktionen bereit.
HTTP-Webserver
Wenn das IoT-Gerät, wie oben erwähnt, keine Verbindung zum WLAN-Netzwerk herstellen kann, dessen SSID, P/W usw. in der Sicherheitsinformationsdatei in SPIFFS definiert ist, wird das Gerät zu einem Access Point. Sobald Sie mit dem vom Access Point bereitgestellten WiFi-Netzwerk verbunden sind, können Sie durch das Vorhandensein eines HTTP-Webservers direkt eine Verbindung zum Gerät herstellen und seine Konfiguration über einen HTTP-Webbrowser ändern Homepage', die ebenfalls in SPIFFS gehalten wird.
WLAN-Station
Diese Funktionalität gibt dem IoT-Gerät die Möglichkeit, sich mit den Parametern in der Sicherheitsinformationsdatei mit einem heimischen WLAN-Netzwerk zu verbinden. Andernfalls kann Ihr IoT-Gerät den MQTT-Broker nicht abonnieren/publizieren
WLAN-Zugangspunkt
Die Fähigkeit, ein WiFi Access Point zu werden, ist ein Mittel, mit dem Sie sich mit dem IoT-Gerät verbinden und Konfigurationsänderungen über eine WiFi-Station und einen Browser (z. B. Safari auf dem Apple iPad) vornehmen können. Dieser Access Point sendet eine SSID = "MAINSCON" + die letzten 6 Ziffern der MAC-Adresse des IoT-Geräts. Das Passwort für dieses geschlossene Netzwerk heißt phantasievoll 'PASSWORD'.
Schritt 6: Softwareübersicht
PräambelUm diesen Quellcode erfolgreich zu kompilieren, benötigen Sie die folgenden zusätzlichen Bibliotheken;
PubSubClient.h
- Von: Nick O'Leary
- Zweck: Ermöglicht dem Gerät, MQTT-Themen mit einem bestimmten Broker zu veröffentlichen oder zu abonnieren
- Von:
Bounce2.h
- Von: Thomas O Fredericks
- Zweck: Entprellen des Eingangsschalters in der Software
- Von:
Codeübersicht
Die Software verwendet die Zustandsmaschine, wie in Bild 1 oben gezeigt (vollständige Kopie der Quelle unten). Es gibt 5 Hauptzustände wie folgt;
-
DRIN
Dieser Initialisierungszustand ist der erste Zustand, der nach dem Einschalten erreicht wird
-
NOCONFIG
Dieser Zustand wird erreicht, wenn nach dem Einschalten eine ungültige oder fehlende Datei secvals.txt erkannt wird
-
AUSSTEHEND NW
Dieser Zustand ist vorübergehend und wird eingegeben, während keine WLAN-Netzwerkverbindung besteht
-
AUSSTEHENDE MQTT
Dieser Zustand ist vorübergehend und tritt ein, nachdem eine WLAN-Netzwerkverbindung hergestellt wurde und keine Verbindung zu einem MQTT-Broker in diesem Netzwerk besteht
-
AKTIV
Dies ist der normale Betriebszustand, der erreicht wird, sobald sowohl eine WiFi-Netzwerkverbindung als auch eine MQTT-Broker-Verbindung hergestellt wurde. In diesem Zustand veröffentlicht der Mains Controller an den MQTT-Broker und empfängt Befehle über abonnierte Themen
Die Ereignisse, die Übergänge zwischen Zuständen steuern, sind in Bild 1 oben beschrieben. Übergänge zwischen Zuständen werden auch durch die folgenden SecVals-Parameter geregelt;
- 1. MQTT-Broker-IP-Adresse. In punktierter Dezimalform AAA. BBB. CCC. DDD
- 2. MQTT-Broker-Port. In Integer-Form.
- 3. MQTT-Broker-Verbindungsversuch, bevor vom STA-Modus in den AP-Modus gewechselt wird. In Integer-Form.
- 4. WLAN-Netzwerk-SSID. In freiem Text.
- 5. WLAN-Netzwerkkennwort. In freiem Text.
Wie oben erwähnt, wenn das IoT-Gerät sich nicht als WiFi-Station mit dem WiFi-Netzwerk verbinden kann, dessen SSID und P/W in der secvals.txt in SPIFFS definiert sind, wird das Gerät zu einem Access Point. Sobald er mit diesem Zugangspunkt verbunden ist, wird die 'Mains Controller Configuration Home Page' angezeigt, wie oben in Bild 2 gezeigt (indem Sie entweder 'MAINSCON.local' oder 192.168.4.1 in die URL-Adressleiste Ihres Browsers eingeben). Diese Homepage ermöglicht die Neukonfiguration des Netzreglers über einen
Namenskonvention für MQTT-Themen
In Bild 3 oben ist die Namenskonvention für die MQTT-Themen skizziert und stimmt mit dem Muster überein, das in meinem früheren Instructable (hier Schritt 5) verwendet wurde.
Von diesem IoT-Gerät verwendete MQTT-Themen
Aus Gründen der Übersichtlichkeit habe ich die Themen und zugehörigen Nachrichtensequenzen dokumentiert (Bild 4), die dieses Gerät veröffentlicht/abonniert. Das Bild zeigt auch die Interaktion mit dem weißen Bedienknopf an der Außenseite des Gehäuses (der Knopf ist ironischerweise rot dargestellt).
Remote-Konfigurationszugriff im Status ACTIVE
Nach der Verbindung mit dem MQTT-Broker ist es möglich, die Sicherheitsparameter für das Gerät über MQTT-Themenveröffentlichungen aus der Ferne neu zu konfigurieren. Die zugehörige Datei secvals.txt hat nur Schreibzugriff ausgesetzt.
Benutzer-Debugging
Während der Boot-Sequenz gibt die Sonoff-Geräte-LED das folgende Debug-Feedback, obwohl es zu beachten ist, dass Sie zur Anzeige die Abdeckung entfernen und die Schaltung freilegen müssen. Es ist daher nur ratsam, dies während der Entwicklung Ihres Codes und der Stromversorgung des Geräts zu tun mit einer 3v3-Versorgung;
- 1 Kurzer Flash: Keine Konfigurationsdatei in SPIFFS (secvals.txt),
- 2 kurzes Blinken: IoT-Gerät versucht, eine Verbindung zum WLAN-Netzwerk herzustellen,
- Kontinuierliche Beleuchtung: Sonoff IoT-Gerät versucht, sich mit MQTT Broker zu verbinden,
- Aus: Gerät ist aktiv und mit MQTT Broker verbunden.
Hinweis 1: Die 'Mains Controller Configuration Home Page' verwendet keine sicheren Steckdosen und ist daher auf die Sicherheit Ihres Netzwerks angewiesen.
Hinweis 2: Um mehrere IoT-Geräte zu programmieren, muss der MQTT-String vor dem Herunterladen auf jedes Gerät bearbeitet werden. Dies liegt daran, dass die ID-Nummer des Netzcontrollers in den MQTT-Topic-String eingebettet wurde. dh. in der veröffentlichten Software habe ich den Wert 100 gewählt: 'WFD/MainsCont/100/Relay/Command/1' und für meine 2 Geräte sind sie jeweils mit 1 und 2 nummeriert.
- 'WFD/MainsCont/1/Relais/Befehl/1'
- 'WFD/MainsCont/2/Relais/Command/1'
Hinweis 3: Der Vollständigkeit halber ermöglicht die IoT-Software im Status ACTIVE die Steuerung der Sonoff-LED und die Veröffentlichung des Status der Re-Flash-Taste. Diese sind jedoch nur während des Debug-Vorgangs von Wert, da sie dem Benutzer während des normalen Betriebs nicht ausgesetzt sind.
Schritt 7: OpenHAB-Konfiguration
Zu Testzwecken habe ich mich entschlossen, die beiden Netzregler im 'Wohnzimmer' meines Hauses ideell einzusetzen. Diese OpenHAB-Seite kann über die Hauptseite der Website wie in Bild 1 erreicht werden.
Ich habe die OpenHAB.sitemap-Konfiguration in meinem früheren Instructable (hier) geändert und einzelne Einträge für "Mains Controller 1" und "Mains Controller 2" hinzugefügt (Bild 2 oben). Ich habe auch Einträge (Living Room Mains Cont. 1 & 2) hinzugefügt, um RSSI-Trends anzuzeigen, die am Empfänger der beiden neuen IoT-Geräte gemessen wurden (Bild 3).
Schließlich habe ich Einträge zu den.rules- und.items-Dateien hinzugefügt, um eine dynamische Zustandssynchronisierung des Sonoff und die Aktualisierung/Animation meines schlechten Versuchs einer Switch-Grafik zu ermöglichen (der Switch schließt sich, wenn er aktiv ist und öffnet sich, wenn er inaktiv ist). Bild 2 zeigt ein Beispiel für MC1 aktiv und MC2 inaktiv.
Hinweis 1: Wenn Sie sich nicht sicher sind, wie Sie OpenHAB verwenden, lesen Sie hier 'Einrichten und Konfigurieren von OpenHAB. Teil 6: IoT, Hausautomation'
Hinweis 2: Eine Kopie der geänderten Sitemap, Regel- und Artikeldateien, Symbole usw. finden Sie in der ZIP-Datei unten.
Hinweis 3: RSSI = Anzeige der empfangenen Signalstärke. Dies ist ein Maß dafür, wie gut das IoT-Gerät Ihr WLAN-Netzwerk sehen kann.
Schritt 8: Testen Ihres IoT-Geräts
Wie in Instructable WiFi IoT Temperatur- und Feuchtigkeitssensor beschrieben. Teil: 8 IoT, Home Automation Schritt 7, der erste Test des IoT-Geräts wurde über eine MQTT-Verbindung über MQTT Spy (wie im Systemblockdiagramm Bild 1 oben) durchgeführt, überwachter LED-Ausgang, Tasteneingänge (sowohl Sonoff-Re-Flash-Taste als auch die weiße externe Taste) und Debug-Datenverkehr auf der seriellen Schnittstelle. Dadurch konnte ich alle verfügbaren abonnierten Themen ausüben und die veröffentlichten Antworten überprüfen. Dies wurde zwar wiederum manuell durchgeführt und war zeitaufwändig, ermöglichte jedoch eine 100%ige Abdeckung der Nachrichten/Themenpublikationen.
Da die Hauptsoftware-Zustandsmaschine (Schritt 6 oben) von der früheren Instructable (Teil: 8) geerbt wurde, konnte die Software außer der Plausibilitätsprüfung eine Verbindung mit dem WiFi N / W und dem MQTT-Broker herstellen, es wurde davon ausgegangen, dass dies ordnungsgemäß funktionierte.
Der vollständige Test auf Systemebene wurde dann unter Verwendung des Netzcontrollers und der IoT-Infrastruktur (wieder Bild 1) durchgeführt, diesmal unter Verwendung von OpenHAB, um die Interaktion mit dem IoT-Gerät zu steuern. Die Einrichtung der IoT-Hardware und der Dummy-Load ist in Bild 2 oben zu sehen.
Das Video enthält vollständige Details zu Systemtests und zeigt anschaulich die Synchronisierung zwischen OpenHAB-Geräten (PC/Chrome und iPad/OpenHAB-APP) in Echtzeit. Es zeigt auch Live-Messaging an die Mains Controller über MQTTSpy (weitere Details zum Einrichten eines MQTT-Brokers. Teil 2: IoT, Home Automation) und OpenHAB-tailed-Systemprotokoll vom Raspberry Pi-Server über eine PuTTY-SSH-Verbindung (weitere Informationen finden Sie hier) Details Einrichten und Konfigurieren von OpenHAB (Teil 6: IoT, Home Automation).
Hinweis: Debug-Datenverkehr wurde für die endgültige Softwareversion kompiliert.
Schritt 9: Fazit
Allgemein
Das Projekt war relativ einfach durchzuführen und hat gut funktioniert. Die eingebettete Software war einfach zu erstellen, da sie eine abgespeckte Version des Codes war, der für die Temperatur- und Feuchtigkeitssensoren von Teil 8 dieser Serie verwendet wurde.
Ursprünglich wollte ich nur weiße Bauteile rein wegen der ästhetischen Qualität erwerben. Ich habe dies in allem erreicht, außer bei der Steuertaste. Ich war nicht in der Lage, eine gute / billige, vollständig weiße Taste zu finden.
Sonoff 10A-Gerät
Ich habe unten aufgelistet, was ich für vernünftige Vor- und Nachteile des Sonoff-Geräts hielt
Vorteile
- Billig.
- Gute Community-Unterstützung.
- Kann über die Arduino IDE neu programmiert werden.
Nachteile
- Schwaches Gehäuse.
- Minimaler I/O (auf nutzbare Anschlüsse gebracht).
- Im Ruhezustand läuft es heiß.
- Hat nur 1 MByte SPI-Flash auf der Platine.
- Ist eine PITA, die nach der Verkabelung neu programmiert werden muss.
- Bei der Integration von neuem Code in den Sonoff-Test war das Schließen des Relais problematisch, da das Relais 5 V beträgt und die Versorgung des Sonoff für die Programmierung 3 V3 beträgt. Die Relaisaktivierung ist für das Ohr gerade noch wahrnehmbar.
Anliegen
- Es schaltet die Neutralleitung nicht um. Verwendet ein SPST-Relais.
- Ist nicht verschmolzen.
- Schlechte Kabelzugentlastung.
- Die Platine ist nicht im Sonoff-Gehäuse befestigt.
Kommentar zum Konstruktionsdesign
Da dieses IoT-Gerät zum Schalten von spannungsführenden britischen Netzen (240 VAC RMS) verwendet werden sollte, habe ich sowohl gute mechanische als auch elektrische Konstruktionspraktiken befolgt und sichergestellt, dass das Risiko eines Stromschlags minimiert wurde, indem keine elektrisch leitfähigen Materialien freigelegt wurden Ausgangslast, Anwenden einer Absicherung sowohl für den Netzregler als auch für das optogekoppelte Subsystem, Einbeziehung einer guten durchgehenden Erdung und Verwendung optischer/galvanischer Trennung.
Mögliche Verbesserung
Im Nachhinein wäre es sinnvoll gewesen, eine optische Anzeige hinzuzufügen, dass der Mains Controller-Ausgang aktiv war (LED oder Neon). Obwohl es im täglichen Gebrauch kein Problem darstellt, ist es üblich, die Last von der Stromversorgung zu trennen, bevor Wartungsarbeiten durchgeführt werden, oder ein einfaches Drücken der lokalen Steuertaste schaltet den Ausgang um, falls eine Lampe beim Anschließen aufleuchtet.
Schlussbemerkung
Wenn Sie zwei sehr schlechte Beispiele für den Umgang mit Netzstrom sehen möchten, sehen Sie sich die folgenden Links an. Ihre Darwin-Auszeichnungen werden sehr bald veröffentlicht, da bin ich mir ziemlich sicher;
- Verlängerungskabel für verrückte Wissenschaftler
- Community-Feedback 03 - Sicherheitsbedenken bei der Stromversorgung!
Schritt 10: Verwendete Referenzen
Ich habe die folgenden Quellen verwendet, um dieses Instructable zusammenzustellen;
PubSubClient.h
- Von: Nick O'Leary
- Zweck: Ermöglicht dem Gerät, MQTT-Themen mit einem bestimmten Broker zu veröffentlichen oder zu abonnieren
- Von:
Bounce2.h
- Von: Thomas O Fredericks
- Zweck: Entprellen des Eingangsschalters in der Software
- Von:
SPIFFS
https://esp8266.github.io/Arduino/versions/2.0.0/do…
Aktualisieren des Sonoff-Blitzes
- https://www.andremiller.net/content/upgrading-sonof…
- https://tech.scargill.net/32mb-esp01/
- https://www.andremiller.net/content/upgrading-sonof…
Sonoff-Schaltplan
https://www.itead.cc/wiki/images/6/6b/Sonoff_schmatic.pdf
USB-UART-Modul (auch bekannt als FTDI)
https://www.ebay.co.uk/itm/6Pin-USB-2-0-to-TTL-UART-Module-Converter-CP2102-STC-Replace-FT232-CF-/272249732398?epid=503069058&hash=item3f63593d2e:g:QVUAAOSw71BXP92B
Darwin-Auszeichnungen (leichtes Relief)
https://www.darwinawards.com/
TIL111 Opto-Isolator Datenblatt
Empfohlen:
So erstellen Sie IoT-basierte Hausautomation mit NodeMCU-Sensorsteuerrelais - Gunook
So erstellen Sie eine IoT-basierte Hausautomation mit NodeMCU-Sensorsteuerrelais: In diesem IoT-basierten Projekt habe ich Hausautomation mit Blynk und NodeMCU-Steuerrelaismodul mit Echtzeit-Feedback erstellt. Im manuellen Modus kann dieses Relaismodul vom Handy oder Smartphone aus gesteuert und manuell geschaltet werden. Im Auto-Modus ist dieser Smar
Internet-/Cloud-gesteuerte Hausautomation mit ESP8266 (aREST, MQTT, IoT) - Gunook
Internet-/Cloud-gesteuerte Hausautomation mit Esp8266 (aREST, MQTT, IoT): ALLE Credits an http://arest.io/ für den Cloud-Service!!IoT das derzeit am meisten diskutierte Thema der Welt!! Cloud-Server und -Dienste, die dies ermöglichen, sind der Anziehungspunkt der heutigen Welt
Ramadan-Lichter - Hausautomation IOT - Gunook
Ramadan-Lichter | Home Automation IOT: Während der Ramadan an die Tür klopft, leuchten Städte weltweit und bereiten sich auf den Fastenmonat vor. Lichter hängen auf öffentlichen Plätzen und über Stadtstraßen sowie an Außenwänden von Häusern, die nachts beleuchtet werden, bis die Sonne am Morgen aufgeht
Retro-Sprachsynthese. Teil: 12 IoT, Hausautomation – Gunook
Retro-Sprachsynthese. Teil: 12 IoT, Home Automation: Dieser Artikel ist der 12. in einer Reihe von Home Automation Instructables, in denen dokumentiert wird, wie ein IoT-Retro-Sprachsynthesegerät erstellt und in ein vorhandenes Home-Automation-System integriert wird, einschließlich aller notwendigen Softwarefunktionen, um die t
WiFi IoT Temperatur- und Feuchtigkeitssensor. Teil: 8 IoT, Hausautomation - Gunook
WiFi IoT Temperatur- und Feuchtigkeitssensor. Teil: 8 IoT, Home Automation: PräambelDieser Artikel dokumentiert die praktische Robustheit und Weiterentwicklung eines früheren Instructable: "Pimping" Ihres ersten IoT-WiFi-Geräts. Teil 4: IoT, Home Automation einschließlich aller notwendigen Softwarefunktionen, um den Erfolg zu ermöglichen