Inhaltsverzeichnis:

WiFi IoT Temperatur- und Feuchtigkeitssensor. Teil: 8 IoT, Hausautomation - Gunook
WiFi IoT Temperatur- und Feuchtigkeitssensor. Teil: 8 IoT, Hausautomation - Gunook

Video: WiFi IoT Temperatur- und Feuchtigkeitssensor. Teil: 8 IoT, Hausautomation - Gunook

Video: WiFi IoT Temperatur- und Feuchtigkeitssensor. Teil: 8 IoT, Hausautomation - Gunook
Video: Shelly Plus AddOn mit Temperatur Sensor! Kann man die Sensorleitung verlängern? 2024, November
Anonim
WiFi IoT Temperatur- und Feuchtigkeitssensor. Teil: 8 IoT, Hausautomation
WiFi IoT Temperatur- und Feuchtigkeitssensor. Teil: 8 IoT, Hausautomation

Präambel

Dieser Artikel dokumentiert die praktische Robustheit und Weiterentwicklung eines früheren Instructable: "Pimping" Ihres ersten IoT-WLAN-Geräts. Teil 4: IoT, Home Automation einschließlich aller notwendigen Softwarefunktionen, um den erfolgreichen Einsatz in einer häuslichen Heimumgebung zu ermöglichen.

Einführung

Wie oben erwähnt, beschreibt dieses Instructable die Zusammenführung eines früheren IoT-Beispiels mit einem zuverlässigen Systemdesign, das den erfolgreichen Umgang mit praktischen Anwendungsfällen wie z. Katastrophaler Stromausfall, MQTT-Broker-Ausfall, WLAN-N/W-Ausfall, Remote-Sensor-Neukonfiguration, konfigurierbare Berichtsstrategie zur Reduzierung des Netzwerkverkehrs und maßgeschneiderte Sensorkalibrierung.

Insgesamt wurden 6 Geräte erstellt (siehe Bild 1 oben) und in meinem Zuhause verteilt, um mein erstes IoT-Sensornetzwerk zu bilden.

Das Instructable sieht auch eine Überprüfung der MQTT-Namenskonvention, wie sie in der ersten IoT Home Automation-Serie verwendet wurde, die einer ausgewogeneren, praktischen Struktur Platz macht, die ein einfacheres Debuggen des IoT-Datenverkehrs in einer Umgebung mit mehreren IoT-Geräten ermöglicht.

Im Folgenden sind die vollständigen Designdetails des IoT-Sensors aufgeführt, einschließlich: Konstruktion, Quellcode, Teststrategie und OpenHAB-Konfigurationen.

Welche Teile brauche ich?

  1. 1 Stück ESP8266-01,
  2. 2 von 1uF Elektrolytkondensatoren,
  3. 3 von 10K Widerständen,
  4. 1 aus 330R Widerstand,
  5. 1 von 3 mm Durchmesser. LED,
  6. 1 von LD1117-33v, 3v3 LDO VReg. (Farnell hier),
  7. 1 Stück DHT22 Temperatur-/Feuchtigkeitssensor,
  8. 1 von Dual-4-Wege-0.1-Zoll-Anschluss,
  9. 1 Stück CAMDENBOSS RX2008/S-5 Kunststoffgehäuse, Potting Box, ABS, 38 mm, 23 mm (Farnell hier),
  10. 1 Stück DC-Stromanschluss, Stecker, 1 A, 2 mm, Panel Mount (Farnell hier),
  11. 1 Stück TO-220 Kühlkörper 24,4 °C/W (hier Farnell),
  12. Diverse Schrumpfschläuche (gelb, hier Ebay),
  13. IDC-Flachbandkabel in verschiedenen Längen,
  14. Kühlkörpermasse,
  15. Veroboard,
  16. ESP8266-01 Programmiergerät. Siehe hier; Praktischer Schaltungsaufbau mit Stripboard, ab Schritt 9.

Welche Software benötige ich?

  1. Arduino-IDE 1.6.9
  2. Arduino IDE konfiguriert zum Programmieren des ESP8266-01. Siehe hier; Einrichten der Arduino IDE zum Programmieren des ESP8266-01

Welche Werkzeuge brauche ich?

  1. Lötkolben,
  2. Bohrer & verschiedene Bits,
  3. Dateien,
  4. Säge,
  5. Robuster Schraubstock,
  6. Heißluftpistole,
  7. DMM.

Welche Fähigkeiten brauche ich?

  1. Ein minimales Verständnis von Elektronik,
  2. Kenntnisse von Arduino und seiner IDE,
  3. rudimentäre Fertigungskenntnisse (Löten, Bügelsägen, Feilen, Bohren etc.),
  4. Etwas Geduld,
  5. Etwas Verständnis für Ihr Heimnetzwerk.

Behandelten Themen

  1. Schaltungsübersicht
  2. Übersicht über das Softwaresystem
  3. Software-Übersicht
  4. Sensorkalibrierung
  5. Namenskonvention für MQTT-Themen
  6. OpenHAB-Konfiguration
  7. Testen des Designs
  8. Abschluss
  9. Verwendete Referenzen

Serienlinks

Zu Teil 7: Study Lights Controller (überarbeitet). Teil 7: IoT, Hausautomation

Zu Teil 9: IoT-Netzcontroller. Teil 9: IoT, Hausautomation

Schritt 1: Schaltungsübersicht

Schaltungsübersicht
Schaltungsübersicht
Schaltungsübersicht
Schaltungsübersicht
Schaltungsübersicht
Schaltungsübersicht
Schaltungsübersicht
Schaltungsübersicht

Bild 1 oben zeigt das vollständige Schaltungsdesign für den IoT-Sensor.

Das Herzstück des IoT-Geräts ist der ESP8266-01, der über einen 10K-Pull-Up-Widerstand an GPIO2 mit einem DHT22-Temperatur-/Feuchtesensor verbunden ist. Ein externes 5 V wird mit einem Schaltnetzteil gespeist und dem Gerät über eine 2 mm DC-Einbaubuchse zugeführt und lokal mit einem LD1117-33 V, 3 V3 LDO-Spannungsregler geregelt, der mit einer BZP M3-Flachkopfschraube und Mutter an einem externen Kühlkörper montiert ist.

Das Design umfasst eine 3 mm rote LED, die an GPIO0 angeschlossen ist und verwendet wird, um den Status des IoT-Geräts während des Starts oder eines nachfolgenden Fehlerzustands lokal anzuzeigen. Darüber hinaus kann das Gerät durch manuelle Aktivierung über die openHAB-Schnittstelle identifiziert werden.

Das vollständige Design passt perfekt in eine ABS-Vergussbox, wie oben in Bild 2 gezeigt, und wurde speziell ausgelegt, um sicherzustellen, dass der Sensor so weit wie möglich vom Regler entfernt ist, um eine Vorspannung aufgrund lokaler Erwärmungseffekte zu vermeiden (Bild 7 oben).

Die Platine ist ein einzelnes Stück Veroboard, das in Form geschnitten und in das Gehäuse passt (Bild 3 oben). Diese Platine wird mit einer M3-Senkkopf-Nylonschraube und zwei Muttern fixiert, die bündig mit der Unterseite des Sensors abschließen und so auf einer ebenen Fläche sitzen können.

Die Bilder 4 … 6 zeigen verschiedene Bauzustände.

Schritt 2: Überblick über das Softwaresystem

Übersicht über das Softwaresystem
Übersicht über das Softwaresystem
Übersicht über das Softwaresystem
Übersicht über das Softwaresystem

Dieses IoT-Temperatur- und Feuchtigkeitssensorgerät enthält sechs wichtige Softwarekomponenten, wie in Bild 1 oben gezeigt.

SPIFFS

Dies ist das integrierte SPI-Flash-Ablagesystem und wird verwendet, um die folgenden Informationen zu speichern (siehe Bild 2 oben);

  • Symbole und 'Sensorkonfigurations-Homepage'-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 Sensor ohne Bedarf aus der Ferne zu konfigurieren um 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 'Sensor Configuration Home Page' übermittelt werden, werden in diese Datei ('secvals.txt') geschrieben.
  • Kalibrierinformationen: Die in dieser Datei ('calvals.txt') enthaltenen Informationen werden verwendet, um den integrierten Temperatur-/Feuchtigkeitssensor zu kalibrieren, falls dies erforderlich ist. Kalibrierkonstanten können nur über MQTT-Befehle von einem MQTT-Broker auf das IoT-Gerät geschrieben werden.

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 „SENSORSVR.local“in die Browser-URL-Leiste eingeben, um die 'Startseite der Sensorkonfiguration'.

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, ermöglicht Ihnen das Vorhandensein eines HTTP-Webservers, sich direkt mit dem Gerät zu verbinden und seine Konfiguration über einen HTTP-Webbrowser zu ändern Page', 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 = "SENSOR" + die letzten 6 Ziffern der MAC-Adresse des IoT-Geräts. Das Passwort für dieses geschlossene Netzwerk heißt phantasievoll 'PASSWORD'

Schritt 3: 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:

DHT.h

  • Von: Adafruit
  • Zweck: Bibliothek für DHT Temperatur-/Feuchtigkeitssensor
  • 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 unten;

  • 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 wird die Temperatur- und Feuchtigkeitsfunktionalität des Sensors an den MQTT-Broker veröffentlicht

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 keine Verbindung als WiFi-Station mit dem WiFi-Netzwerk herstellen kann, dessen SSID und P/W in der secvals.txt in SPIFFS definiert sind, wird das IoT-Gerät zu einem Access Point. Sobald er mit diesem Zugangspunkt verbunden ist, wird die 'Sensor Configuration Home Page' angezeigt, wie oben in Bild 2 gezeigt (indem Sie entweder 'SENSORSVR.local' oder 192.168.4.1 in die URL-Adressleiste Ihres Browsers eingeben). Diese Homepage ermöglicht die Neukonfiguration des Sensors über einen

Fernzugriff im AKTIV-Zustand

Nach der Verbindung mit dem MQTT-Broker ist es auch möglich, das Gerät über MQTT-Themenveröffentlichungen sowohl neu zu kalibrieren als auch neu zu konfigurieren. Die Datei calvals.txt hat R/W-Zugriff und secvals.txt hat nur Schreibzugriff ausgesetzt.

Benutzer-Debugging

Während der Boot-Sequenz gibt die IoT-Geräte-LED das folgende Debug-Feedback:

  • 1 Kurzer Flash: Keine Konfigurationsdatei in SPIFFS (secvals.txt)
  • 2 kurzes Blinken: IoT-Gerät versucht, eine Verbindung zum WLAN-Netzwerk herzustellen
  • Kontinuierliche Beleuchtung: IoT-Gerät versucht, sich mit MQTT Broker zu verbinden
  • Aus: Gerät ist aktiv
  • Hinweis 1: Die 'Sensor Configuration Home Page' verwendet keine sicheren Sockets und ist daher auf die Sicherheit Ihres Netzwerks angewiesen.
  • Hinweis 2: Um jedes IoT-Gerät zu programmieren, muss der MQTT-String vor dem Herunterladen bearbeitet werden. Dies liegt daran, dass die Nummer des Sensors in die MQTT-Themenzeichenfolge eingebettet wurde. dh. 'WFD/THSen/100/HumdStatus/1' für meine 6 Geräte sind sie jeweils von 1…6 nummeriert.

Schritt 4: Sensorkalibrierung

Sensorkalibrierung
Sensorkalibrierung
Sensorkalibrierung
Sensorkalibrierung

Wenn das IoT-Gerät hochfährt, wird als Teil der Boot-Sequenz eine Datei namens „cavals.txt“aus SPIFFS gelesen. Der Inhalt dieser Datei sind Kalibrierungskonstanten, wie oben in Bild 1 angegeben. Diese Kalibrierungskonstanten werden verwendet, um die vom Sensor erfassten Messwerte anzupassen, um sie mit einem Referenzgerät in Einklang zu bringen. Es gibt einen weiteren Wert, der eine Meldestrategie für das Gerät definiert und im Folgenden zusammen mit dem Verfahren zur Kalibrierung der Sensoren beschrieben wird.

Reporting StrategyDieser Parameter bestimmt, wie der Fernsensor alle lokalen Parameteränderungen der Umgebung meldet. Wenn ein Wert von 0 ausgewählt wird, veröffentlicht der Fernsensor jede Änderung, die er in den Temperatur- oder Feuchtigkeitswerten sieht, jedes Mal, wenn der Sensor gelesen wird (ca. alle 10 Sekunden). Jeder andere Wert verzögert die Veröffentlichung einer Änderung um 1…60 Minuten. Das Ändern dieses Parameters ermöglicht die Optimierung des MQTT-Netzwerkverkehrs.

Temperaturkalibrierung

Um die Sensoren zu kalibrieren, wurden sie in unmittelbarer Nähe zueinander platziert, wie oben in Bild 2 gezeigt. Neben ihnen platzierte ich ein DMM mit einem kalibrierten Thermoelement (Fluke 87 V) und überwachte dann die Ausgänge von jedem Gerät über die OpenHAB-Temperatur Trendseite im Laufe eines Tages, um einen guten Temperaturwechsel zu erhalten. Ich habe sowohl den statischen Offset (erhöhte Null 'C') als auch die Änderungsrate jedes Geräts (Verstärkung oder Steigung des Diagramms 'M') relativ zum Wert des kalibrierten Thermoelements notiert. Dann berechnete ich die einfache y=mx+c-Beziehung (ich fand, dass sie ausreichend linear war, um eine enge Annäherung an einen geraden Liniengraphen zu sein) und programmierte alle notwendigen Korrekturen in die Kalibrierungskonstanten über MQTTSpy.

Anschließend wurden die Geräte weitere 24 Stunden überwacht, um sicherzustellen, dass die Kalibrierung erfolgreich war. Ein Hinweis darauf war, dass die Temperaturkurven auf der OpenHAB-Temperaturtrendseite alle ziemlich übereinander lagen.

Wenn Sie nur an einer Annäherung an die Temperatur interessiert sind, können Sie natürlich alle Kalibrierwerte als Standard belassen.

Feuchtigkeitskalibrierung

Da ich keine Möglichkeit habe, die lokale Umgebungsfeuchtigkeit genau zu erfassen oder zu kontrollieren, habe ich zur Kalibrierung der Sensoren einen ähnlichen Ansatz wie oben verwendet, indem ich alle Geräte in unmittelbarer Nähe (Bild 2) platzierte und einfach ihre Ausgabe über das OpenHAB überwachte Luftfeuchtigkeit tendenziell Seite. Ich habe dann Gerät Nr. 1 als Kalibrierungsreferenz ausgewählt und alle Geräte relativ dazu kalibriert.

Schritt 5: Namenskonvention für MQTT-Themen

Namenskonvention für MQTT-Themen
Namenskonvention für MQTT-Themen
Namenskonvention für MQTT-Themen
Namenskonvention für MQTT-Themen

Nach viel Ausprobieren habe ich mich für die in Bild 1 oben beschriebene Namenskonvention entschieden.

Nämlich 'AccessMethod/DeviceType/WhichDevice/Action/SubDevice'

Es ist nicht perfekt, aber es ermöglicht die Anwendung nützlicher Filter, um alle Sensorausgaben für einen bestimmten Parameterwert zu sehen, wodurch ein einfacher Vergleich wie in Bild 2 oben mit MQTTSpy ermöglicht wird. Es unterstützt auch vernünftig erweiterbare logische Gruppierungen von Funktionen innerhalb eines bestimmten IoT-Geräts.

Bei der Implementierung dieser Themen in Software habe ich hartcodierte Themenzeichenfolgen mit festen, eingebetteten numerischen Bezeichnern für jedes Gerät verwendet, anstatt die Themen zur Laufzeit dynamisch zu generieren, um RAM zu sparen und die Leistung hoch zu halten.

Hinweis: Wenn Sie sich nicht sicher sind, wie Sie MQTTSpy verwenden, lesen Sie hier 'Einrichten eines MQTT-Brokers. Teil 2: IoT, Hausautomation'

Schritt 6: OpenHAB-Konfiguration

OpenHAB-Konfiguration
OpenHAB-Konfiguration
OpenHAB-Konfiguration
OpenHAB-Konfiguration
OpenHAB-Konfiguration
OpenHAB-Konfiguration

Ich habe die OpenHAB-Konfiguration in meinem früheren Instructable (hier) geändert und in einzelnen Einträgen für hinzugefügt;

  • Garage,
  • Saal,
  • Wohnzimmer,
  • Küche
  • Gästezimmer
  • Hauptschlafzimmer

In der Sitemap siehe Bild 1 oben.

Für jeden dieser Einträge habe ich individuelle Sitemaps hinzugefügt, die lokale Umgebungswerte anzeigen (siehe Bild 2 oben);

  • Temperatur
  • Feuchtigkeit
  • Hitzeindex

Ich habe auch einen Schalter eingebaut, um die im Sensor montierte lokale LED zu steuern.

Die Bilder 3 … 5 zeigen einzelne Live-Spuren über den Zeitraum von 24 Stunden für Temperatur, Luftfeuchtigkeit und RSSI (Received Signal Strength Indication, im Grunde ein Maß dafür, wie gut der Sensor das WLAN-Netzwerk sehen kann).

Abbildung 6 zeigt ein Beispiel für einen langfristigen Feuchtigkeitstrend über den Zeitraum einer Woche.

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 unten.

Schritt 7: Testen des Designs

Testen des Designs
Testen des Designs
Testen des Designs
Testen des Designs

Zum größten Teil habe ich das IoT-Gerät über die MQTT-Verbindung mit MQTT Spy getestet, die LED-Ausgabe überwacht und den Datenverkehr auf der seriellen Schnittstelle debuggt. Dadurch konnte ich alle verfügbaren abonnierten Themen ausüben und die veröffentlichten Antworten überprüfen. Obwohl dies manuell erreicht wurde und manchmal etwas mühsam wurde, ermöglichte es eine 100%ige Abdeckung.

Der Hauptzustandsautomat erwies sich jedoch als etwas schwierig zu testen, da er auf dem Vorhandensein oder Fehlen eines WiFi-Netzwerks beruhte, auf das spezielle Parametersätze erforderlich waren. Es war einfach nicht praktikabel, dafür das Heimnetzwerk zu verwenden.

Um dieses Problem zu umgehen, habe ich meinen eigenen Satz von Dummy-Netzwerken mit ESP8266-01 erstellt, die als Access Points konfiguriert sind (Bild 1) mit den SSIDs von 'DummyNet1' bzw. 'DummyNet2'. Unter Verwendung der Schaltung in Bild 2 oben gab die LED einen Hinweis darauf, ob ein IoT-Gerät daran angeschlossen war. Dies war zwar keine perfekte Testlösung (dh jedes dieser Dummy-WLAN-Netzwerke enthielt keinen MQTT-Server), aber es war möglich, die Zustandsmaschine vollständig zu testen.

Eine Kopie des Quellcodes habe ich unten eingefügt.

Schritt 8: Fazit

Allgemein

Die Software in den IoT-Geräten funktioniert seit vielen Monaten zuverlässig und erholt sich von Stromausfällen im Haushalt (hauptsächlich von mir verursacht). Insgesamt handelt es sich um ziemlich robuste Geräte, die konsistente und genaue Daten liefern.

Verbesserungen

Bei der Entwicklung von Software-Routinen zum Lesen und Schreiben von SPIFFS habe ich Code geschrieben, der im Nachhinein vielleicht etwas fortgeschrittener ist, als ich beabsichtigt hatte, indem ich void-Zeiger, Umformungen und Zeiger auf Zeiger verwendet. Obwohl es sehr flexibel ist und die Arbeit gut macht, werde ich das nächste Mal möglicherweise JSON etwas nach dem Vorbild von ConfigFile.ino verwenden, um es etwas einfacher zu halten.

  • Arduino GIT HUB-Kern

    https://github.com/esp8266/Arduino

  • ConfigFile.ino Quelle

    https://github.com/esp8266/Arduino/tree/master/libraries/esp8266/examples/ConfigFile

Wunschzettel

Ich hatte vor, einen mDNS-Client zu verwenden, um eine Verbindung zum Broker herzustellen, aber die Bibliothek war zu unübersichtlich. Aus diesem Grund ist es erforderlich, die IP-Adresse des MQTT-Brokers anstelle von 'MQTTSVR.local' anzugeben. Sollte die mDNS-Bibliothek in Zukunft stabiler werden, werde ich diese Fähigkeit dem Gerät hinzufügen.

Es wäre schön gewesen, eine Möglichkeit zur genauen Überwachung und Kontrolle der Umgebungsfeuchtigkeit zu haben, um die Sensoren zu kalibrieren. Die gewählte Kalibrierungsmethode liefert jedoch gute relative Messwerte und scheint im Einklang mit der Spezifikation im DHT22-Datenblatt einigermaßen genau zu sein.

Angesichts der Komplexität der Software fand ich schließlich heraus, dass das vollständige Testen des Codes nach einer größeren Änderung zeitaufwändig wurde. Ich kann zu einem späteren Zeitpunkt automatisierte Tests in Betracht ziehen.

Schritt 9: Verwendete Referenzen

Ich habe die folgenden Quellen verwendet, um dieses Instructable zusammenzustellen;

PubSubClient.h

  • Von: Nick O'Leary
  • Von:

DHT.h

  • Von: Adafruit
  • Von:

DHT22 Datenblatt

Empfohlen: