Inhaltsverzeichnis:
- Schritt 1: Haftungsausschluss
- Schritt 2: Ein kostenloses IFTTT-Konto einrichten
- Schritt 3: Erstellen Sie ein IFTTT-Applet
- Schritt 4: Konfigurieren Sie den "diesen" Teil Ihres Applets
- Schritt 5: Fügen Sie Ihrem Applet den WebHooks-Dienst hinzu
- Schritt 6: Richten Sie den Trigger zum Empfangen einer Webanforderung ein
- Schritt 7: Geben Sie einen Ereignisnamen an
- Schritt 8: Konfigurieren Sie den "diesen" Teil Ihres Applets
- Schritt 9: Einen Aktionsdienst einrichten
- Schritt 10: Verbinden Sie sich mit Google Tabellen
- Schritt 11: Wählen Sie eine Aktion
- Schritt 12: Einrichten der Aktion
- Schritt 13: Überprüfen und finalisieren Sie Ihr Applet
- Schritt 14: Abrufen der später benötigten Konfigurationsinformationen
- Schritt 15: Fahren Sie mit der Webhooks-Dokumentation für den API-Schlüssel fort
- Schritt 16: Speichern Sie den API-Schlüssel
- Schritt 17: Sammeln Sie die Komponenten
- Schritt 18: Montieren Sie die Komponenten
- Schritt 19: Schreiben Sie den Arduino-Code
- Schritt 20: Ergebnisse
- Schritt 21: Credits
Video: Tür- und Temperatur-Status-Logger-Projekt - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
Dieses Instructable zeigt Ihnen, wie Sie mit einem ESP8266 NodeMCU, einem DHT11 Temperatur- und Feuchtigkeitssensor, einem Tür- / Fenster-Reed-Schalter, einem 10K Ohm-Widerstand und einem Anschlusskabel einen einfachen Tür- und Temperaturstatus-Logger für unter 10,00 US-Dollar herstellen.
Die Entstehung dieses Projekts entstand aus meinem Wunsch, mehr Heimautomatisierung mit dem Arduino-Board zu machen. Da ich viel über die Arduino-kompatible EPS8266 NodeMCU gelesen hatte, entschied ich, dass dieses Board das perfekte kostengünstige Board zum Experimentieren wäre. Nachdem ich im Internet nach Heimautomatisierungsprojekten mit den ESP8266-Karten gesucht hatte, entschied ich mich für meinen ersten Versuch, einen Temperatur- und Türstatuslogger zu kombinieren. Schließlich wird dieses Projekt mit Servos, Feuchtigkeitssensoren und anderer Elektronik kombiniert, um ein kleines Gewächshaus zu automatisieren, das mein Großvater vor 50 Jahren entworfen und gebaut hat. Der Temperatursensor wird verwendet, um zu bestimmen, ob das Heizsystem ein- oder ausgeschaltet werden soll, und um den Servos zu signalisieren, das Entlüftungssystem bei Bedarf zu öffnen und zu schließen. Der Zustand des Entlüftungssystems wird durch die Verwendung der magnetischen Reedschalter überwacht. Schließlich werden die Feuchtigkeitssensoren verwendet, um ein Bewässerungssystem zu automatisieren.
Schritt 1: Haftungsausschluss
Nur ein kurzer Haftungsausschluss, um festzustellen, dass wir KEINE Verantwortung für alles übernehmen, was durch die Befolgung dieser Anleitung passiert. Es ist immer am besten, die Anweisungen und Sicherheitsblätter des Herstellers zu befolgen, wenn Sie etwas bauen. Lesen Sie also bitte diese Dokumente für alle Teile und Werkzeuge, die Sie zum Bauen Ihrer eigenen verwenden. Wir stellen lediglich Informationen über die Schritte zur Verfügung, mit denen wir unsere erstellt haben. Wir sind keine Profis. Tatsächlich sind 2 von 3 der Personen, die an diesem Build teilgenommen haben, Kinder.
Schritt 2: Ein kostenloses IFTTT-Konto einrichten
Wenn Sie noch keinen haben, ist es jetzt an der Zeit, ein kostenloses IFTTT-Konto einzurichten, indem Sie auf die Homepage gehen. IFTTT steht für If This Then That und ist eine kostenlose Plattform, die es Ihnen ermöglicht, internetbasierte Dienste auf neue Weise zu verbinden ermöglichen es Ihnen, diese Dienste auf neue Weise zu nutzen. Für dieses Projekt werden wir IFTTT verwenden, um einem ESP8266 zu ermöglichen, den Status einer Tür über einen Reedschalter sowie Temperatur und Luftfeuchtigkeit über den DHT11-Sensor in einem Google Sheets-Dokument zu protokollieren.
Schritt 3: Erstellen Sie ein IFTTT-Applet
Gehen Sie noch in IFTTT zum Abschnitt „Meine Applets“und erstellen Sie ein neues Applet, indem Sie auf die Schaltfläche „Neues Applet“klicken.
Schritt 4: Konfigurieren Sie den "diesen" Teil Ihres Applets
Klicken Sie auf das blaue Wort „dieses“– wie in der Abbildung oben hervorgehoben.
Schritt 5: Fügen Sie Ihrem Applet den WebHooks-Dienst hinzu
Suchen Sie in der Suchleiste nach dem Dienst „Webhooks“und wählen Sie das Webhooks-Symbol aus.
Wenn Sie den Dienst "Webhooks" gefunden haben, klicken Sie darauf.
Schritt 6: Richten Sie den Trigger zum Empfangen einer Webanforderung ein
Wählen Sie den Trigger "Webanfrage erhalten".
Schritt 7: Geben Sie einen Ereignisnamen an
Geben Sie im Textfeld Ihrem neuen Applet einen Ereignisnamen an. Ich habe "Datenlogger" ausgewählt, aber Sie können wählen, was Sie möchten.
Schritt 8: Konfigurieren Sie den "diesen" Teil Ihres Applets
Klicken Sie auf das blaue Wort „das“– wie in der Abbildung oben hervorgehoben.
Schritt 9: Einen Aktionsdienst einrichten
Suchen Sie im Suchfeld nach dem Dienst "Google Tabellen" und klicken Sie auf das Google Tabellen-Symbol.
Schritt 10: Verbinden Sie sich mit Google Tabellen
Falls noch nicht geschehen, müssen Sie Ihr IFTTT-Konto nicht mit Google Sheets verbinden. Drücken Sie die oben gezeigte Schaltfläche Verbinden und befolgen Sie die Anweisungen auf dem Bildschirm.
Schritt 11: Wählen Sie eine Aktion
Klicken Sie auf "Zeile zur Tabelle hinzufügen".
Schritt 12: Einrichten der Aktion
Geben Sie im Textfeld "Tabellenkalkulationsname" einen Namen ein. Ich wähle "Data_Logger" aus Konsistenzgründen. Lassen Sie den Rest der Einstellung in Ruhe (Sie können diese Einstellung zu einem anderen Zeitpunkt ausprobieren) und klicken Sie dann auf die Schaltfläche "Aktion erstellen" am unteren Bildschirmrand.
Schritt 13: Überprüfen und finalisieren Sie Ihr Applet
Wenn Sie mit Ihrer Applet-Konfiguration zufrieden sind, klicken Sie auf die Schaltfläche "Fertig stellen".
Schritt 14: Abrufen der später benötigten Konfigurationsinformationen
Klicken Sie wie oben hervorgehoben auf "Webhooks".
Schritt 15: Fahren Sie mit der Webhooks-Dokumentation für den API-Schlüssel fort
Es mag seltsam erscheinen, aber klicken Sie oben rechts auf den Link Dokumentation, um zur Seite mit Ihrem einzigartigen API-Schlüssel zu gelangen.
Schritt 16: Speichern Sie den API-Schlüssel
In der ersten Zeile des Dokumentationsbildschirms wird Ihr eindeutiger API-Schlüssel angezeigt. Kopieren und speichern Sie diesen Schlüssel zur späteren Verwendung.
Es ist auch eine gute Idee, das Applet hier zu testen. Denken Sie daran, {event} in Data_Logger oder wie auch immer Sie Ihr Ereignis benannt haben, zu ändern und einige Daten zu den 3 leeren Werten hinzuzufügen. Klicken Sie dann auf die Schaltfläche "Testen" unten auf der Seite. Sie sollten eine grüne Nachricht mit der Meldung "Ereignis wurde ausgelöst" sehen. Fahren Sie in diesem Fall mit Google Docs fort und bestätigen Sie, dass die Daten, die Sie auf der Testseite eingegeben haben, im Google Tabellen-Dokument angezeigt werden.
Schritt 17: Sammeln Sie die Komponenten
Sie benötigen nur wenige Teile.
1) ESP8266 NodeMcu-Entwicklungsboard
2) DHT11 Temperatur-/Feuchtigkeitssensor
3) Tür-/Fenster-Reed-Schalter
4) 10k Ohm Widerstand
5) Anschlusskabel
Schritt 18: Montieren Sie die Komponenten
1) Verbinden Sie einen der 3v3-Pins des ESP8266 mit dem vcc-Pin des DHT11.
2) Verbinden Sie einen der Erdungsstifte des ESP8266 mit dem Erdungsstift des DHT11.
3) Verbinden Sie Pin D4 (alias Pin 2 in der IDE) des ESP8266 mit dem Datenpin des DHT11.
4) Verbinden Sie einen weiteren 3v3-Pin des ESP8266 mit der einen Seite des Tür- / Fenster-Reedschalters.
5) Verbinden Sie Pin D5 (alias Pin 14 in der IDE) des ESP8266 mit der anderen Seite des Tür- / Fenster-Reedschalters und verbinden Sie ihn auch mit einer Seite des 10k Ohm Widerstands.
6) Verbinden Sie die andere Seite des 10k-Ohm-Widerstands mit einem anderen Massestift des ESP8266.
Informationen zur Auswahl der ESP8266-Pins finden Sie in diesem hilfreichen Diagramm oder dem sehr hilfreichen Video.
Schritt 19: Schreiben Sie den Arduino-Code
Kopieren Sie den folgenden Code und fügen Sie ihn in Ihre Arduino-IDE ein.
#include #include #include "DHT.h"
#define DHTPIN 2 // mit welchem digitalen Pin wir verbunden sind
#define DOORPIN 14 // Auf welchem digitalen Pin der Türschalter ist.
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
int-Zählung = 1;
const char* ssid = "some_ssid"; // ändern Sie dies, um Ihre ssid zu verwenden const char* password = "some_password"; // ändern Sie dies, um Ihr Passwort zu verwenden int sleepTime = 100;
// Maker-Webhooks IFTTT
const char* server = "maker.ifttt.com";
// IFTTT-URL-Ressource
const char* resource = "/trigger/SOME_SERVICE_NAME/with/key/SOME_API_KEY"; //Stellen Sie sicher, dass Sie Ihren Dienstnamen und Ihren API-Schlüssel verwenden.
String doorStatus = "Geschlossen";
volatile bool stateChanged = false;
// Wenn du stundenlang schläfst, dann setze das Intervall auf Std * 60 Minuten * 60 Sekunden * 1000 Millisekunden
const langes Intervall = 1,0 * 60 * 60 * 1000; // 1 Stunde unsigned long previousMillis = 0 - (2 * Intervall);
Leere Einrichtung () {
Serial.begin(115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); pinMode (TÜRPIN, EINGANG); // Türsensor dht.begin (); WiFi.begin(ssid, Passwort);
Serial.print("\nVerbinden..");
Während (WiFi.status () != WL_CONNECTED) { Verzögerung (1000); Serial.print("."); } Serial.print("\n"); }
void eventTriggered(){
stateChanged = wahr; Serial.println ("Überprüfe die Tür!"); if (digitalRead (DOORPIN) = = HIGH) // Überprüfen Sie, ob die Tür offen ist { Serial.println ("Tür ist geschlossen!"); TürStatus = "Geschlossen"; } else { Serial.println ("Tür ist offen!"); TürStatus = "Geöffnet"; } }
void checkStatus(){
if (WiFi.status() == WL_CONNECTED) { //WLAN-Verbindungsstatus prüfen // Das Auslesen von Temperatur oder Luftfeuchtigkeit dauert ca. 250 Millisekunden! // Sensormesswerte können auch bis zu 2 Sekunden alt sein (es ist ein sehr langsamer Sensor) float h = dht.readHumidity (); // Temperatur als Celsius lesen (Standard) float t = dht.readTemperature (); // Temperatur als Fahrenheit lesen (isFahrenheit = true) float f = dht.readTemperature (true); // Prüfen, ob Lesevorgänge fehlgeschlagen sind und vorzeitig beenden (um es erneut zu versuchen). if (isnan (h) || isnan (t) || isnan (f)) { Serial.println ("Fehler beim Lesen vom DHT-Sensor!"); //Seriendruck("."); // Fehler beim Lesen vom DHT-Sensor! Rückkehr; } // Wärmeindex in Fahrenheit berechnen (Standard) float hif = dht.computeHeatIndex(f, h); // Wärmeindex in Celsius berechnen (isFahreheit = false) float hic = dht.computeHeatIndex(t, h, false);
Serial.print("\n");
Serial.print ("Temperatur: "); Seriendruck (f); Serial.print("*F ("); Serial.print(t); Serial.print("*C)"); Serial.print("\t"); Serial.print ("Heatindex: "); Serial.print (hif); Serial.print (" * F ("); Serial.print (hic); Serial.print (" * C) %"); Serial.print("\t"); Serial.print ("Luftfeuchtigkeit:"); Serial.println (h);
if (digitalRead(DOORPIN)==HIGH) // Überprüfen Sie, ob die Tür geöffnet ist
{ Serial.println ("Tür ist geschlossen!"); TürStatus = "Geschlossen"; } else { Serial.println ("Tür ist offen!"); TürStatus = "Geöffnet"; } String jsonObject = String("{"value1\":\"") + f +"*F (" + t + "*C) / "+ hif +"*F (" + hic + "*C) " + "\", \"value2\":\"" + h + "\", \"value3\":\"" + doorStatus + " \"}"; HTTPClient-http; String completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin(completeUrl); // http.begin(server); http.addHeader("Content-Type", "application/json"); http. POST(jsonObject); http.writeToStream(&Seriell); http.ende(); //Verbindung schließen
stateChanged = false;
int sleepTimeInMinutes = Intervall / 1000 / 60; Serial.print("\n\nSchlafen Sie für "); Serial.print (sleepTimeInMinutes); Serial.println("Minute(n) …"); } }
Leere Schleife () {
unsigned long currentMillis = millis(); Verzögerung (4000); // Wenn wir die verstrichene Zeit überschritten haben, erzwingen Sie eine Überprüfung der Tür und der Temperatur. if(currentMillis - previousMillis >= Intervall){ stateChanged = true; vorherigeMillis = aktuelleMillis; Serial.print (Anzahl ++); Serial.println (") Überprüfung wegen verstrichener Zeit!"); } Sonst wenn (stateChanged) {Serial.print (count ++); Serial.println (") Prüfung wegen Zustandsänderung!"); }
// Wenn sich der Zustand geändert hat, überprüfen Sie die Tür und die Temperatur.
if(stateChanged){checkStatus(); }
Verzögerung (sleepTime);
}
Schritt 20: Ergebnisse
Nachdem Sie den Quellcode im vorherigen Schritt hochgeladen haben, sollten Sie Ergebnisse wie im oben gezeigten Beispiel erhalten.
Schritt 21: Credits
Ich habe viele hilfreiche Hinweise und Tipps von Random Nerd Tutorials gefunden und möchte ihnen für all ihre Hilfe danken. Vor allem ihr ausgezeichnetes Tutorial zu ESP32 ESP8266 Publish Sensor Readings to Google Sheets, auf denen Hauptteile dieses Instructable basieren.
Darüber hinaus half mir das DHT11 Instructable von TheCircuit zu verstehen, wie man diesen sehr preiswerten, aber interessanten kleinen Sensor verwendet.
Darüber hinaus gibt es viele Tutorials, die sich mit der Überwachung Ihrer Türen befassen, wie den Garagentormonitor und ein weiteres von Random Nerd Tutorials. Ich habe Teile davon verwendet, um zu verstehen, wie mein Reed-Schalter richtig funktioniert.
Mit diesen Informationen und anderen Details, die ich im Internet gefunden habe, konnte ich schließlich ein System erstellen, das meinen Anforderungen entspricht. Ich hoffe, Sie finden dieses Instructable nützlich und bauen eines Ihrer eigenen.
Empfohlen:
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 2 - Temperatur- / Feuchtigkeitsmonitor - Rev 3: 7 Schritte
Easy Very Low Power BLE in Arduino Teil 2 – Temperatur-/Feuchtigkeitsmonitor – Rev 3: Update: 23. November 2020 – Erster Austausch von 2 x AAA-Batterien seit 15. Januar 2019 dh 22 Monate für 2x AAA AlkalineUpdate: 7. April 2019 – Rev 3 of lp_BLE_TempHumidity, fügt Datum/Uhrzeit-Plots hinzu, verwendet pfodApp V3.0.362+ und automatische Drosselung, wenn
M5STACK So zeigen Sie Temperatur, Feuchtigkeit und Druck auf dem M5StickC ESP32 mit Visuino an - Einfach zu tun: 6 Schritte
M5STACK So zeigen Sie Temperatur, Luftfeuchtigkeit und Druck auf dem M5StickC ESP32 mit Visuino an - Einfach zu machen: In diesem Tutorial lernen wir, wie Sie den ESP32 M5Stack StickC mit Arduino IDE und Visuino programmieren, um Temperatur, Luftfeuchtigkeit und Druck mit dem ENV-Sensor (DHT12, BMP280, BMM150)
Temperatur CubeSat Ben & Kaiti & Q Stunde 1: 8 Schritte
Temperatur-CubeSat Ben & Kaiti & Q Stunde 1: Wollten Sie schon immer etwas selbst herstellen, das ins All geschickt werden kann und die Temperatur eines anderen Planeten misst? In unserem Physikunterricht an der High School wurden wir beauftragt, einen CubeSat mit einem funktionierenden Arduino mit der Hauptfrage zu bauen, wie können wir
Wie man einen CubeSat herstellt, der die Temperatur messen kann – wikiHow
Wie man einen CubeSat herstellt, der die Temperatur messen kann: Kommen Sie mit und Sie werden einen 11x11x11x11-Würfel der reinen Fantasie sehen, nehmen Sie meine Hand und Sie werden die Temperatur des Mars sehen! (zur Melodie von Willy Wonkas „Imagination“) Heute zeige ich dir, dass du deinen ganz eigenen CubeSat bauen musst! Ich und meine Partner Alyssa und
ESP8266 - Tür- und Fenstersensoren - ESP8266. Hilfe für ältere Menschen (Vergesslichkeit): 5 Schritte
ESP8266 - Tür- und Fenstersensoren - ESP8266. Hilfe für ältere Menschen (Vergesslichkeit): ESP8266 - Tür- / Fenstersensoren mit GPIO 0 und GPIO 2 (IOT). Es kann im Web oder im lokalen Netzwerk mit Browsern angezeigt werden. Auch sichtbar über die "HelpIdoso Vxapp" Anwendung. Verwendet eine 110/220 VAC-Versorgung für 5 VDC, 1 Relais / Spannung