Innehållsförteckning:

Dörr- och temperaturstatusloggprojekt: 21 steg
Dörr- och temperaturstatusloggprojekt: 21 steg

Video: Dörr- och temperaturstatusloggprojekt: 21 steg

Video: Dörr- och temperaturstatusloggprojekt: 21 steg
Video: Montering av dörr - och borttagning den gamla dörr - DIY Guide | Klarfönster 2024, Juli
Anonim
Dörr- och temperaturstatusloggprojekt
Dörr- och temperaturstatusloggprojekt

Denna instruktionsbok visar dig hur du gör en enkel dörr- och temperaturstatusloggare för under $ 10,00 med hjälp av en ESP8266 NodeMCU, en DHT11 -temperatur- och fuktighetssensor, en dörr-/fönsterrörsbrytare, ett 10K ohm -motstånd och lite anslutningstråd.

Uppkomsten av detta projekt kom från min önskan att göra mer hemautomation med Arduino -kortet, eftersom jag hade läst mycket om den Arduino -kompatibla EPS8266 NodeMCU, bestämde jag mig för att den här brädan skulle vara den perfekta lågkostnadskortet att experimentera med. Efter att ha sökt på internet efter hemautomatiseringsprojekt med ESP8266 -kort, bestämde jag mig för att kombinera en temperatur- och dörrstatusloggare för mitt första försök. Så småningom kommer detta projekt att kombineras med servon, fuktsensorer och annan elektronik för att automatisera ett litet växthus som min farfar designade och byggde för 50 år sedan. Temperatursensorn kommer att användas för att avgöra om värmesystemet ska kopplas in eller ur, samt signalera servon att öppna och stänga ventilationssystemet vid behov. Avluftningssystemets tillstånd kommer att övervakas genom användning av de magnetiska vassomkopplarna. Slutligen kommer fuktsensorerna att användas för att automatisera ett vattensystem.

Steg 1: Ansvarsfriskrivning

Bara en snabb ansvarsfriskrivning för att konstatera att vi inte tar något ansvar för något som händer som ett resultat av att följa detta instruerbara. Det är alltid bäst att följa tillverkarens instruktioner och säkerhetsblad när du bygger någonting, så se dessa dokument för alla delar och verktyg du använder för att bygga dina egna. Vi ger helt enkelt information om de steg vi använde för att skapa vår. Vi är inte proffs. I själva verket är 2 av 3 av individerna som deltog i detta bygge barn.

Steg 2: Konfigurera gratis IFTTT -konto

Konfigurera gratis IFTTT -konto
Konfigurera gratis IFTTT -konto

Om du inte redan har ett är det dags att skapa ett gratis IFTTT -konto genom att gå till deras hemsida.. IFTTT står för If This Then That och är en gratis plattform som låter dig ansluta internetbaserade tjänster på nya sätt att gör att du kan utnyttja dessa tjänster på nya sätt. För detta projekt kommer vi att använda IFTTT för att tillåta en ESP8266 att logga status för en dörr via en vassströmbrytare och temperatur och fuktighet via DHT11 -sensorn i ett Google Sheets -dokument.

Steg 3: Skapa en IFTTT -applet

Skapa en IFTTT -applet
Skapa en IFTTT -applet

Medan du fortfarande är i IFTTT, gå till avsnittet "Mina appar" och skapa en ny applet genom att klicka på "Ny applet" -knappen.

Steg 4: Konfigurera "den här" delen av din applet

Konfigurera
Konfigurera

Klicka på "detta" ord som är i en blå färg - som markeras i figuren ovan.

Steg 5: Lägg till WebHooks -tjänsten i din applet

Lägg till WebHooks -tjänsten i din applet
Lägg till WebHooks -tjänsten i din applet

I sökfältet, sök efter "Webhooks" -tjänsten och välj Webhooks -ikonen.

När du har hittat tjänsten "Webhooks" klickar du på den.

Steg 6: Konfigurera mottagaren av en webbförfrågan

Ställ in mottagaren för webbförfrågan
Ställ in mottagaren för webbförfrågan

Välj utlösaren "Ta emot en webbförfrågan".

Steg 7: Ange ett evenemangsnamn

Ange ett evenemangsnamn
Ange ett evenemangsnamn

Ange ett eventnamn i textrutan. Jag valde "Data Logger" men du kan välja vad du vill.

Steg 8: Konfigurera "den" delen av din applet

Konfigurera
Konfigurera

Klicka på "det" ordet som är i en blå färg - som markeras i figuren ovan.

Steg 9: Konfigurera en åtgärdstjänst

Skapa en åtgärdstjänst
Skapa en åtgärdstjänst

I sökrutan söker du efter tjänsten "Google Kalkylark" och klickar på ikonen för Google Kalkylark.

Steg 10: Anslut till Google Kalkylark

Anslut till Google Kalkylark
Anslut till Google Kalkylark

Om du inte redan har gjort det behöver du inte ansluta ditt IFTTT -konto till Google Kalkylark. Tryck på knappen Anslut som visas ovan och följ instruktionerna på skärmen.

Steg 11: Välj en åtgärd

Välj en åtgärd
Välj en åtgärd

Klicka på "Lägg till rad i kalkylblad".

Steg 12: Konfigurera åtgärden

Ställ in åtgärden
Ställ in åtgärden

Ange ett namn i textrutan "Kalkylbladets namn". Jag väljer att använda "Data_Logger" för konsekvens. Lämna resten av inställningen i fred (du kan experimentera med inställningarna någon annan gång) och tryck sedan på "Skapa åtgärd" -knappen längst ned på skärmen.

Steg 13: Granska och slutför din applet

Granska och slutför din applet
Granska och slutför din applet

När du är nöjd med din appletkonfiguration trycker du på "Slutför" -knappen.

Steg 14: Hämta konfigurationsinformation som behövs senare

Hämta konfigurationsinformation som behövs senare
Hämta konfigurationsinformation som behövs senare

Klicka på "Webhooks" som markeras ovan.

Steg 15: Fortsätt till Webhooks -dokumentationen för API -nyckeln

Fortsätt till Webhooks -dokumentationen för API -nyckeln
Fortsätt till Webhooks -dokumentationen för API -nyckeln

Det kan tyckas konstigt men klicka på länken Dokumentation längst upp till höger för att gå vidare till sidan med din unika API -nyckel.

Steg 16: Spara API -nyckeln

Spara API -nyckeln
Spara API -nyckeln
Spara API -nyckeln
Spara API -nyckeln

Den första raden på dokumentationsskärmen visar din unika API -nyckel. Kopiera och spara den här nyckeln för användning senare.

Det är också en bra idé att testa appleten här. Kom ihåg att ändra {event} till Data_Logger eller vad du nu namngav din händelse och lägga till lite data till de tre tomma värdena och klicka sedan på "Testa" -knappen längst ned på sidan. Du bör se ett grönt meddelande som säger "Händelsen har utlösts". Fortsätt i så fall till Google Dokument och bekräfta att de data du angav på testsidan visades i dokumentet i Google Kalkylark.

Steg 17: Samla komponenterna

Samla komponenterna
Samla komponenterna
Samla komponenterna
Samla komponenterna
Samla komponenterna
Samla komponenterna

Du behöver bara några delar.

1) ESP8266 NodeMcu Development Board

2) DHT11 temperatur-/fuktighetssensor

3) Dörr/fönster Reed Switch

4) 10k Ohm motstånd

5) Anslutningstråd

Steg 18: Montera komponenterna

1) Anslut en av 3v3 -stiftet på ESP8266 till vcc -stiftet på DHT11.

2) Anslut en av jordstiftet på ESP8266 till jordstiftet på DHT11.

3) Anslut stift D4 (alias stift 2 i IDE) på ESP8266 till datastiften på DHT11.

4) Anslut ytterligare en 3v3 -stift på ESP8266 till ena sidan av dörr-/fönsterrörsbrytaren.

5) Anslut stift D5 (alias stift 14 i IDE) på ESP8266 till den andra sidan av dörr-/fönsterrörsbrytaren och anslut den också till ena sidan av 10k ohm -motståndet.

6) Anslut den andra sidan av 10k ohm -motståndet till ett annat jordstift på ESP8266.

För ESP8266 -stiftval, se detta användbara diagram eller den mycket hjälpsamma videon.

Steg 19: Skriv Arduino -koden

Skriv Arduino -koden
Skriv Arduino -koden

Kopiera och klistra in koden nedan i din Arduino IDE.

#include #include #include "DHT.h"

#define DHTPIN 2 // vilken digital pin vi är anslutna till

#define DOORPIN 14 // vilken digital stift dörrkontakten är på.

#define DHTTYPE DHT11 // DHT 11

DHT dht (DHTPIN, DHTTYPE);

int count = 1;

const char* ssid = "some_ssid"; // ändra detta för att använda ditt ssid const char* password = "some_password"; // ändra detta för att använda ditt lösenord int sleepTime = 100;

// Maker Webhooks IFTTT

const char* server = "maker.ifttt.com";

// IFTTT URL -resurs

const char* resource = "/trigger/SOME_SERVICE_NAME/with/key/SOME_API_KEY"; // Se till att du använder ditt servicenamn och din api -nyckel.

String doorStatus = "Stängd";

flyktig bool stateChanged = false;

// Om du sover i timmar, ställ in intervallet med tim * 60 minuter * 60 sekunder * 1000 millisekunder

konstant långt intervall = 1,0 * 60 * 60 * 1000; // 1 timme osignerad lång previousMillis = 0 - (2 * intervall);

void setup () {

Serial.begin (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); pinMode (DOORPIN, INPUT); // Dörrsensor dht.begin (); WiFi.begin (ssid, lösenord);

Serial.print ("\ nAnsluter..");

medan (WiFi.status ()! = WL_CONNECTED) {fördröjning (1000); Serial.print ("."); } Serial.print ("\ n"); }

void eventTriggered () {

stateChanged = true; Serial.println ("Kontrollerar dörren!"); if (digitalRead (DOORPIN) == HIGH) // Kontrollera om dörren är öppen {Serial.println ("Dörren är stängd!"); doorStatus = "Stängd"; } else {Serial.println ("Dörren är öppen!"); doorStatus = "Öppnat"; }}

void checkStatus () {

if (WiFi.status () == WL_CONNECTED) {// Kontrollera WiFi -anslutningsstatus // Avläsningstemperatur eller luftfuktighet tar cirka 250 millisekunder! // Sensoravläsningar kan också vara upp till 2 sekunder "gamla" (det är en mycket långsam sensor) float h = dht.readHumidity (); // Läs temperaturen som Celsius (standard) float t = dht.readTemperature (); // Läs temperaturen som Fahrenheit (isFahrenheit = true) float f = dht.readTemperature (true); // Kontrollera om någon läsning misslyckades och avsluta tidigt (för att försöka igen). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("Det gick inte att läsa från DHT -sensor!"); //Serial.print ("."); // Misslyckades med att läsa från DHT -sensor! lämna tillbaka; } // Beräkna värmeindex i Fahrenheit (standard) float hif = dht.computeHeatIndex (f, h); // Beräkna värmeindex i Celsius (isFahreheit = false) float hic = dht.computeHeatIndex (t, h, false);

Serial.print ("\ n");

Serial.print ("Temperatur:"); Serial.print (f); Serial.print (" *F ("); Serial.print (t); Serial.print (" *C)"); Serial.print ("\ t"); Serial.print ("Värmeindex:"); Serial.print (hif); Serial.print (" *F ("); Serial.print (hic); Serial.print (" *C)%"); Serial.print ("\ t"); Serial.print ("Luftfuktighet:"); Serial.println (h);

if (digitalRead (DOORPIN) == HIGH) // Kontrollera om dörren är öppen

{Serial.println ("Dörren är stängd!"); doorStatus = "Stängd"; } else {Serial.println ("Dörren är öppen!"); doorStatus = "Öppnat"; } String jsonObject = String ("{" värde1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" värde2 / ": \" " + h +" / ", \" värde3 / ": \" " + dörrstatus +" / "}"; 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 (& Serial); http.end (); // Stäng anslutningen

stateChanged = false;

int sleepTimeInMinutes = intervall / 1000 /60; Serial.print ("\ n / nSova för"); Serial.print (sleepTimeInMinutes); Serial.println ("minut (er) …"); }}

void loop () {

osignerad lång strömMillis = millis (); fördröjning (4000); // Om vi överskred den förflutna tiden, tvinga sedan en kontroll av dörren och temp. if (currentMillis - previousMillis> = intervall) {stateChanged = true; previousMillis = currentMillis; Serial.print (count ++); Serial.println (") Kontrollerar på grund av förfluten tid!"); } annars om (stateChanged) {Serial.print (count ++); Serial.println (") Kontrollerar på grund av tillståndsändring!"); }

// Om tillstånd ändras, kontrollera dörren och temp.

if (stateChanged) {checkStatus (); }

fördröjning (sleepTime);

}

Steg 20: Resultat

Resultat
Resultat

När du har laddat upp källkoden i föregående steg bör du ha resultat som exemplet som visas ovan.

Steg 21: Poäng

Jag hittade många användbara tips och tips från Random Nerd Tutorials och vill tacka dem för all hjälp. Speciellt deras utmärkta handledning om ESP32 ESP8266 Publicera sensoravläsningar till Google Kalkylark som huvudsakliga delar av denna instruktionsboken bygger på.

Dessutom hjälpte DHT11 Instructable från TheCircuit mig att förstå hur jag använder denna mycket billiga men intressanta lilla sensor.

Dessutom finns det många självstudier om hur du övervakar dina dörrar, till exempel garageportmonitorn och en annan från Random Nerd Tutorials. Jag använde bitar av dessa för att hjälpa mig förstå hur jag får min vassströmbrytare att fungera korrekt.

Slutligen, med denna information och andra detaljer som jag hittade på Internet kunde jag skapa ett system som uppfyllde mina behov. Jag hoppas att du tycker att den här instruerbara är användbar och bygger en egen.

Rekommenderad: