Innehållsförteckning:
- Steg 1: Ansvarsfriskrivning
- Steg 2: Konfigurera gratis IFTTT -konto
- Steg 3: Skapa en IFTTT -applet
- Steg 4: Konfigurera "den här" delen av din applet
- Steg 5: Lägg till WebHooks -tjänsten i din applet
- Steg 6: Konfigurera mottagaren av en webbförfrågan
- Steg 7: Ange ett evenemangsnamn
- Steg 8: Konfigurera "den" delen av din applet
- Steg 9: Konfigurera en åtgärdstjänst
- Steg 10: Anslut till Google Kalkylark
- Steg 11: Välj en åtgärd
- Steg 12: Konfigurera åtgärden
- Steg 13: Granska och slutför din applet
- Steg 14: Hämta konfigurationsinformation som behövs senare
- Steg 15: Fortsätt till Webhooks -dokumentationen för API -nyckeln
- Steg 16: Spara API -nyckeln
- Steg 17: Samla komponenterna
- Steg 18: Montera komponenterna
- Steg 19: Skriv Arduino -koden
- Steg 20: Resultat
- Steg 21: Poäng
Video: Dörr- och temperaturstatusloggprojekt: 21 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
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
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
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
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
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
Välj utlösaren "Ta emot en webbförfrågan".
Steg 7: 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
Klicka på "det" ordet som är i en blå färg - som markeras i figuren ovan.
Steg 9: Konfigurera 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
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
Klicka på "Lägg till rad i kalkylblad".
Steg 12: Konfigurera å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
När du är nöjd med din appletkonfiguration trycker du på "Slutför" -knappen.
Steg 14: Hämta konfigurationsinformation som behövs senare
Klicka på "Webhooks" som markeras ovan.
Steg 15: 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
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
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
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
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:
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)
Hur man bygger en dörr till Redstone -lösenord: 4 steg
Hur man bygger en Redstone -lösenordsdörr: Detta är ett foto av Redstone -kretsarna när det är klart, även om det ser mer komplicerat ut eftersom larmsystemet är en pilskytt istället för en klocka
Miniatyr automatiserad dörr: 3 steg
Miniatyr automatiserad dörr: Detta är en modell av en dörr som öppnas när du rör en kraftsensor som ligger framför den. Dörren kommer att förbli öppen i 3 sekunder så att du kan passera. För att göra det behöver du: Kartonglim / tejpAn arduinoWiresA servoA force sens
Vem är vid min dörr? PIR -rörelsesensor/avståndssensorprojekt: 5 steg
Vem är vid min dörr? PIR -rörelsesensor/avståndssensorprojekt: Vårt projekt syftar till att känna av rörelse via PIR- och distanssensorer. Arduino -koden kommer att mata ut en visuell och ljudsignal för att berätta för användaren att någon är i närheten. MATLAB -koden skickar en e -postsignal för att varna användaren om att någon är i närheten. Den här enheten
Öka signalutbudet av SimpliSafe dörr-/fönstersensorer: 6 steg (med bilder)
Öka signalutbudet för SimpliSafe dörr-/fönstersensorer: SimpliSafe dörr-/fönsteröppningsgivare har notoriskt korta avstånd. Detta gör det svårt att använda sensorer mer än 20 eller 30 fot från basstationen, om det finns några väggar emellan. Många SimpliSafe -kunder har bett företaget att pr