Inhaltsverzeichnis:

IoT-Netzcontroller. Teil 9: IoT, Hausautomation – Gunook
IoT-Netzcontroller. Teil 9: IoT, Hausautomation – Gunook

Video: IoT-Netzcontroller. Teil 9: IoT, Hausautomation – Gunook

Video: IoT-Netzcontroller. Teil 9: IoT, Hausautomation – Gunook
Video: Home Automation 32CH Distribution Board DIY | Smart IOT Project 2023! 2024, Juli
Anonim
IoT-Netzcontroller. Teil 9: IoT, Hausautomation
IoT-Netzcontroller. Teil 9: IoT, Hausautomation

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. 1 von Sonoff 10A hier
  2. 1 von 7805L 5V Spannungsregler hier
  3. 1 von 240/6VAC 1,5VA Transformator hier
  4. 2 von 0,1 Keramikkondensatoren hier
  5. 1 von 1000uF @25v Elektrolytkondensator hier
  6. 1 aus Brückengleichrichter 2W01 hier
  7. 2 von 4K7-Widerständen hier
  8. 1 von 330R Widerstand hier
  9. 1 aus SPST-Taste hier
  10. 1 Stück Mulitcomp BM12W ABS-Gehäuse hier
  11. 1 Stück TIL111 Optokoppler hier
  12. 1 Stück 3-Wege-Klemmleiste hier
  13. 1 Stück 2-fach codierter Molex-Stecker hier/hier
  14. 1 Stück 3-fach codierter Molex-Stecker hier/hier
  15. 1 Stück 5-fach codierter Molex-Stecker hier/hier
  16. 1 von 5-Wege-Molex-Pins hier
  17. 1 Stück Winbond SPI Flash (W25Q32FVSIG) hier
  18. 1 Stück 20mm Sicherungshalter + Kappe hier
  19. 1 von 20mm flinke 500mA Sicherung hier
  20. 2 Stück Polyamid-Kabelverschraubungen hier
  21. 1 Stück UK-Netzstecker (BS1363/A) hier
  22. 1 Stück UK Hauptsteckdose (BS1363/A) hier
  23. 7 Stück M3 16mm CS Nylonschrauben, (inkl. 10 Stück Muttern) hier/hier
  24. 2 Stück Kabelbinder hier
  25. 1 aus Veroboard (0,1" Pitch) hier
  26. 1 Stück verschiedene Längen 22swg verzinnter Kupferdraht hier
  27. 1 Stück 3M weißes UK-Netzkabel hier
  28. 10 von Molex-Buchsen-Crimps hier

Sonoff-Programmierer

  1. 1 von LD33CV 3v3 Spannungsregler hier
  2. 1 Stück TO-220 Kühlkörper hier
  3. 1 Stück Kühlkörperpaste hier
  4. 1 von 10uF @16v Elektrolytkondensator hier
  5. 1 von 0,1 Keramikkondensator hier
  6. 1 aus SPDT-Taste hier
  7. 1 von 4K7-Widerstand hier
  8. 1 Stück 2-fach codierter Molex-Stecker hier/hier
  9. 1 Stück 3-fach codierter Molex-Stecker hier/hier
  10. 5 von Molex-Buchsen-Crimps hier
  11. 1 Stück 6-Wege-Molex-Buchse hier
  12. 1 aus SPST-Taste hier
  13. 1 von 2,1 mm Netzteilbuchse hier
  14. 1 aus Veroboard (0,1" Pitch) hier
  15. 1 Stück USB-zu-Seriell-Adapter (FTDI) hier

Welche Software benötige ich?

  1. Arduino IDE 1.6.9 hier
  2. Arduino IDE konfiguriert, um den ESP8266 zu programmieren. Siehe hier; Einrichten der Arduino IDE zum Programmieren des ESP8266-01

Welche Werkzeuge brauche ich?

  1. Lötkolben,
  2. Bohrer & diverse Bits (inkl. Stufenlochschneider für Kabelverschraubungen und Bedienknopf),
  3. Schraubendreher (verschiedene),
  4. Verstellbare Schraubenschlüssel (zwei Stück, Maulweite >25mm, für Kabelverschraubungen),
  5. Dateien (verschiedene),
  6. Robuster Schraubstock,
  7. Heißluftpistole,
  8. DMM (vorzugsweise CAT IV).

Welche Fähigkeiten brauche ich?

  1. Ein gutes Verständnis für Elektronik und elektrische Sicherheit/Design/Verkabelung zu Hause usw.,
  2. Kenntnisse von Arduino und seiner IDE,
  3. Gute Fertigungskenntnisse (Löten, Feilen, Bohren etc.),
  4. Etwas Geduld,
  5. 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

Schaltungsübersicht
Schaltungsübersicht
Schaltungsübersicht
Schaltungsübersicht
Schaltungsübersicht
Schaltungsübersicht
Schaltungsübersicht
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

Sonoff RetroMods
Sonoff RetroMods
Sonoff RetroMods
Sonoff RetroMods
Sonoff RetroMods
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

Konstruktions- und Montagedetails
Konstruktions- und Montagedetails
Konstruktions- und Montagedetails
Konstruktions- und Montagedetails
Konstruktions- und Montagedetails
Konstruktions- und Montagedetails
Konstruktions- und Montagedetails
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

Sonoff Programmieradapter
Sonoff Programmieradapter
Sonoff Programmieradapter
Sonoff Programmieradapter
Sonoff Programmieradapter
Sonoff Programmieradapter
Sonoff Programmieradapter
Sonoff Programmieradapter

Bei der Neuprogrammierung des Sonoff 10A über die Arduino IDE sind zwei Aspekte zu beachten;

  1. Konfigurieren Sie Ihre Arduino-IDE zum Programmieren des ESP8266,
  2. 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)

  1. Stellen Sie zunächst sicher, dass der Sonoff nicht mit einer externen Netzstromversorgung verbunden ist.
  2. Halten Sie die Taste am Sonoff-Gerät gedrückt. (Bild 1 oben, markierte Re-Flash-Taste),
  3. Legen Sie eine externe DC 3v3-Versorgung an Pin 1 an (Bild 2 oben),
  4. Lassen Sie die Sonoff-Taste los,
  5. 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,

  1. Halten Sie die Re-Flash-Taste am Sonoff gedrückt,
  2. Pulsen Sie die 3v3-Versorgung, indem Sie kurz S2 drücken,
  3. Lassen Sie die Re-Flash-Taste los,
  4. 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

Übersicht über das Softwaresystem
Übersicht über das Softwaresystem
Übersicht über das Softwaresystem
Übersicht ü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

Software-Übersicht
Software-Übersicht
Software-Übersicht
Software-Übersicht
Software-Übersicht
Software-Übersicht
Software-Übersicht
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

OpenHAB-Konfiguration
OpenHAB-Konfiguration
OpenHAB-Konfiguration
OpenHAB-Konfiguration
OpenHAB-Konfiguration
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

Image
Image
Testen Ihres IoT-Geräts
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: