Indholdsfortegnelse:
- Trin 1: Ansvarsfraskrivelse
- Trin 2: Konfigurer gratis IFTTT -konto
- Trin 3: Opret en IFTTT -applet
- Trin 4: Konfigurer "denne" del af din applet
- Trin 5: Føj WebHooks -tjenesten til din applet
- Trin 6: Konfigurer modtageren af en webanmodning
- Trin 7: Angiv et begivenhedsnavn
- Trin 8: Konfigurer "den" del af din applet
- Trin 9: Konfigurer en handlingstjeneste
- Trin 10: Opret forbindelse til Google Sheets
- Trin 11: Vælg en handling
- Trin 12: Konfigurer handlingen
- Trin 13: Gennemgå og færdiggør din applet
- Trin 14: Hent konfigurationsoplysninger, der er nødvendige senere
- Trin 15: Fortsæt til Webhooks -dokumentationen for API -nøglen
- Trin 16: Gem API -nøglen
- Trin 17: Saml komponenterne
- Trin 18: Saml komponenterne
- Trin 19: Skriv Arduino -koden
- Trin 20: Resultater
- Trin 21: Kreditter
Video: Dør- og temperaturstatusloggerprojekt: 21 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Denne instruktør viser dig, hvordan du laver en simpel dør- og temperaturstatuslogger til under $ 10,00 ved hjælp af en ESP8266 NodeMCU, en DHT11 temperatur- og fugtighedsføler, en dør-/vinduesrørkontakt, en 10K ohm modstand og noget tilslutningstråd.
Oprettelsen af dette projekt kom fra mit ønske om at lave mere hjemmeautomatisering med Arduino -kortet, da jeg havde læst meget om det Arduino -kompatible EPS8266 NodeMCU, besluttede jeg, at dette board ville være det perfekte billige bord til at eksperimentere med. Efter at have søgt på internettet efter hjemmeautomatiseringsprojekter ved hjælp af ESP8266 -kortene, besluttede jeg mig for at kombinere en temperatur- og dørstatuslogger til mit første forsøg. Til sidst vil dette projekt blive kombineret med servoer, fugtfølere og anden elektronik til at automatisere et lille drivhus, min bedstefar designede og byggede for 50 år siden. Temperatursensoren bruges til at bestemme, om varmesystemet skal kobles til eller fra, samt signalere servoer til at åbne og lukke ventilationssystemet, når det er nødvendigt. Udluftningssystemets tilstand vil blive overvåget ved brug af de magnetiske rørkontakter. Endelig vil fugtsensorerne blive brugt til at automatisere et vandingssystem.
Trin 1: Ansvarsfraskrivelse
Bare en hurtig ansvarsfraskrivelse for at oplyse, at vi ikke tager noget ansvar for noget, der sker som følge af at følge dette instruerbare. Det er altid bedst at følge producentens instruktioner og sikkerhedsark, når du bygger noget, så konsulter disse dokumenter for alle de dele og værktøjer, du bruger til at bygge dine egne. Vi giver simpelthen bare oplysninger om de trin, vi brugte til at oprette vores. Vi er ikke professionelle. Faktisk er 2 ud af 3 af de personer, der deltog i dette byggeri, børn.
Trin 2: Konfigurer gratis IFTTT -konto
Hvis du ikke allerede har en, er det nu tid til at oprette en gratis IFTTT -konto ved at gå til deres hjemmeside. IFTTT står for If This Then That og er en gratis platform, der giver dig mulighed for at forbinde internetbaserede tjenester på nye måder til giver dig mulighed for at udnytte disse tjenester på nye måder. Til dette projekt vil vi bruge IFTTT til at tillade en ESP8266 at logge status for en dør via en rørkontakt og temperatur og fugtighed via DHT11 -sensoren i et Google Sheets -dokument.
Trin 3: Opret en IFTTT -applet
Mens du stadig er i IFTTT, skal du gå videre til afsnittet "Mine appletter" og oprette en ny applet ved at klikke på knappen "Ny applet".
Trin 4: Konfigurer "denne" del af din applet
Klik på "dette" ord, der er i en blå farve - som fremhævet i figuren ovenfor.
Trin 5: Føj WebHooks -tjenesten til din applet
I søgelinjen skal du søge efter "Webhooks" -tjenesten og vælge Webhooks -ikonet.
Når du har fundet "Webhooks" -tjenesten, skal du klikke på den.
Trin 6: Konfigurer modtageren af en webanmodning
Vælg udløseren "Modtag en webanmodning".
Trin 7: Angiv et begivenhedsnavn
I tekstboksen skal du give din nye applet et hændelsesnavn. Jeg valgte "Data Logger", men du kan vælge, hvad du vil.
Trin 8: Konfigurer "den" del af din applet
Klik på "det" ord, der er i en blå farve - som fremhævet i figuren ovenfor.
Trin 9: Konfigurer en handlingstjeneste
Søg efter "Google Sheets" -tjenesten i søgefeltet, og klik på ikonet Google Sheets.
Trin 10: Opret forbindelse til Google Sheets
Hvis du ikke allerede har gjort det, skal du ikke forbinde din IFTTT -konto til Google Sheets. Tryk på knappen Tilslut som vist ovenfor, og følg vejledningen på skærmen.
Trin 11: Vælg en handling
Klik på "Tilføj række til regneark".
Trin 12: Konfigurer handlingen
Angiv et navn i tekstfeltet "Regnearksnavn". Jeg vælger at bruge "Data_Logger" til konsistens. Lad resten af indstillingen være i fred (du kan eksperimentere med disse indstillinger på et andet tidspunkt), og tryk derefter på knappen "Opret handling" nederst på skærmen.
Trin 13: Gennemgå og færdiggør din applet
Når du er tilfreds med din applet -konfiguration, skal du trykke på knappen "Afslut".
Trin 14: Hent konfigurationsoplysninger, der er nødvendige senere
Klik på "Webhooks" som fremhævet ovenfor.
Trin 15: Fortsæt til Webhooks -dokumentationen for API -nøglen
Det kan virke underligt, men klik på linket Dokumentation øverst til højre for at fortsætte til siden med din unikke API -nøgle.
Trin 16: Gem API -nøglen
Den første linje på dokumentationsskærmen viser din unikke API -nøgle. Kopier og gem denne nøgle til senere brug.
Det er også en god idé at teste appleten her. Husk at ændre {event} til Data_Logger eller hvad du end har navngivet din begivenhed, og tilføj nogle data til de 3 tomme værdier, og klik derefter på knappen "Test det" nederst på siden. Du bør se en grøn meddelelse, der siger "Begivenhed er udløst". Hvis det er tilfældet, skal du gå videre til Google Docs og bekræfte, at de data, du har indtastet på testsiden, blev vist i Google Sheets -dokumentet.
Trin 17: Saml komponenterne
Du skal kun bruge et par dele.
1) ESP8266 NodeMcu Development Board
2) DHT11 temperatur/luftfugtighedssensor
3) Dør-/vinduesrørkontakt
4) 10k Ohm modstand
5) Tilslutningstråd
Trin 18: Saml komponenterne
1) Tilslut en af 3v3 -stiften på ESP8266 til vcc -stiften på DHT11.
2) Tilslut en af jordstifterne på ESP8266 til jordstiften på DHT11.
3) Tilslut pin D4 (alias pin 2 i IDE) på ESP8266 til data pin på DHT11.
4) Tilslut en anden 3v3 -pin på ESP8266 til den ene side af dør-/vinduesrørkontakten.
5) Tilslut pin D5 (alias pin 14 i IDE) på ESP8266 til den anden side af dør-/vinduesrørkontakten, og slut den også til den ene side af 10k ohm -modstanden.
6) Tilslut den anden side af 10k ohm modstanden til en anden jordstift på ESP8266.
For ESP8266 pin valg, se dette nyttige diagram eller den meget nyttige video.
Trin 19: Skriv Arduino -koden
Kopier og indsæt koden herunder i din Arduino IDE.
#include #include #include "DHT.h"
#define DHTPIN 2 // hvilken digital pin vi er forbundet til
#define DOORPIN 14 // hvilken digital pin dørkontakten er tændt.
#define DHTTYPE DHT11 // DHT 11
DHT dht (DHTPIN, DHTTYPE);
int tæller = 1;
const char* ssid = "some_ssid"; // ændre dette for at bruge dit ssid const char* password = "some_password"; // ændre dette for at bruge din adgangskode int sleepTime = 100;
// Maker Webhooks IFTTT
const char* server = "maker.ifttt.com";
// IFTTT URL -ressource
const char* resource = "/trigger/SOME_SERVICE_NAME/med/key/SOME_API_KEY"; // Sørg for at bruge dit servicenavn og din api -nøgle.
String doorStatus = "Lukket";
flygtig bool stateChanged = false;
// Hvis du sover i timevis, skal du indstille interval med timer * 60 minutter * 60 sekunder * 1000 millisekunder
konstant langt interval = 1,0 * 60 * 60 * 1000; // 1 time usigneret lang previousMillis = 0 - (2 * interval);
ugyldig opsætning () {
Serial.begin (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); pinMode (DOORPIN, INPUT); // Dørsensor dht.begin (); WiFi.begin (ssid, adgangskode);
Serial.print ("\ nForbindelse..");
mens (WiFi.status ()! = WL_CONNECTED) {forsinkelse (1000); Serial.print ("."); } Serial.print ("\ n"); }
void eventTriggered () {
stateChanged = true; Serial.println ("Kontrol af døren!"); if (digitalRead (DOORPIN) == HIGH) // Kontroller om døren er åben {Serial.println ("Døren er lukket!"); doorStatus = "Lukket"; } else {Serial.println ("Døren er åben!"); doorStatus = "Åbnet"; }}
void checkStatus () {
hvis (WiFi.status () == WL_CONNECTED) {// Kontroller WiFi -forbindelsesstatus // Læsningstemperatur eller fugtighed tager cirka 250 millisekunder! // Sensoraflæsninger kan også være op til 2 sekunder 'gamle' (det er en meget langsom 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); // Kontroller, om nogen læsning mislykkedes, og afslut tidligt (for at prøve igen). hvis (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("Kunne ikke læse fra DHT -sensor!"); //Serial.print ("."); // Kunne ikke læse fra DHT -sensor! Vend tilbage; } // Beregn varmeindeks i Fahrenheit (standard) float hif = dht.computeHeatIndex (f, h); // Beregn varmeindeks 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 ("Varmeindeks:"); Serial.print (hif); Serial.print (" *F ("); Serial.print (hic); Serial.print (" *C)%"); Serial.print ("\ t"); Serial.print ("Fugtighed:"); Serial.println (h);
hvis (digitalRead (DOORPIN) == HIGH) // Kontroller om døren er åben
{Serial.println ("Døren er lukket!"); doorStatus = "Lukket"; } else {Serial.println ("Døren er åben!"); doorStatus = "Åbnet"; } String jsonObject = String ("{" værdi1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" værdi2 / ": \" " + h +" / ", \" værdi3 / ": \" " + dørStatus +" / "}"; HTTPClient http; String completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin (completeUrl); // http.begin (server); http.addHeader ("Indholdstype", "applikation/json"); http. POST (jsonObject); http.writeToStream (& seriel); http.end (); // Luk forbindelse
stateChanged = falsk;
int sleepTimeInMinutes = interval / 1000 /60; Serial.print ("\ n / nGå i dvale for"); Serial.print (sleepTimeInMinutes); Serial.println ("minut (er) …"); }}
void loop () {
usigneret lang strømMillis = millis (); forsinkelse (4000); // Hvis vi overskred den forløbne tid, så tving en kontrol af døren og temp. hvis (currentMillis - previousMillis> = interval) {stateChanged = true; previousMillis = currentMillis; Serial.print (count ++); Serial.println (") Kontrol på grund af forløbet tid!"); } ellers hvis (stateChanged) {Serial.print (count ++); Serial.println (") Kontrol på grund af tilstandsændring!"); }
// Hvis tilstanden ændres, skal du kontrollere døren og temp.
hvis (stateChanged) {checkStatus (); }
forsinkelse (sleepTime);
}
Trin 20: Resultater
Når du har uploadet kildekoden i det foregående trin, skal du have resultater som eksemplet vist ovenfor.
Trin 21: Kreditter
Jeg fandt en masse nyttige tip og tips fra Random Nerd Tutorials og vil gerne takke dem for al deres hjælp. Især deres fremragende vejledning om ESP32 ESP8266 Udgiv sensorlæsninger til Google Sheets, som store dele af denne instruktionsbog er baseret på.
Derudover hjalp DHT11 Instructable fra TheCircuit mig med at forstå, hvordan jeg bruger denne meget billige, men interessante lille sensor.
Desuden er der mange selvstudier om overvågning af dine døre som Garage Door Monitor og en anden fra Random Nerd Tutorials. Jeg brugte bits og stykker af disse til at hjælpe mig med at forstå, hvordan jeg får min reed switch til at fungere korrekt.
Endelig kunne jeg med disse oplysninger såvel som andre detaljer, jeg fandt på Internettet, oprette et system, der opfyldte mine behov. Jeg håber, at du finder denne Instructable nyttig og bygger en af dine egne.
Anbefalede:
Smart dør: 3 trin
Smart Door: Smart Door er en let løsning at forbinde din dør til din smartphone med et par enkle trin. Smart Door vil give dig besked, når du har glemt at låse døren, og når nogen nærmer dig din dør. Hvem er vi? To datalogistuderende fra Inte
Grøn dobbelt dør: 11 trin
Green Double Die: Dette projekt er en Double die -konstruktion med CMOS -teknologi fra sine tællere til dens porte. Begyndende ved den dobbelte tæller 4518, dens OR, AND og NOT -porte 4071, 4081 og 4049, henholdsvis mens en 555 -timer genererer en variabel frekvens for at fuldføre
Den magiske dør: 5 trin
Den magiske dør: Den magiske dør Hej alle sammen Jeg er Mustafa Ali Adil Jeg er fra IRAQ / BAGHDAD Min alder er 9 år og jeg i 4. grad, jeg laver et simpelt projekt for at hjælpe os med at være rene især i disse dage, fordi corona- virus dets navn " Den magiske dør " Jeg brugte instruerbare
ESP8266 - Dør- og vinduesfølere - ESP8266. Ældrehjælp (glemsomhed): 5 trin
ESP8266 - Dør- og vinduesfølere - ESP8266. Ældrehjælp (glemsomhed): ESP8266 - Dør- / vinduesfølere ved hjælp af GPIO 0 og GPIO 2 (IOT). Det kan ses på internettet eller på det lokale netværk med browsere. Også synlig gennem " HelpIdoso Vxapp " Ansøgning. Bruger en 110/220 VAC forsyning til 5Vdc, 1 relæ / spænding
DIY dør sensor til sikkerhed ved hjælp af ESP8266: 3 trin
DIY dør sensor til sikkerhed ved hjælp af ESP8266: Beskyt dit hjem ved hjælp af en smart dør sensor fuldstændigt designet ved hjælp af open source teknologier. I denne video laver vi en enhed, der registrerer, om døren er åben eller lukket og registrerer informationen til din smartphone ved hjælp af BLYNK -serveren, w