INHOUDSOPGAWE:

Deur- en temperatuurstatusloggerprojek: 21 stappe
Deur- en temperatuurstatusloggerprojek: 21 stappe

Video: Deur- en temperatuurstatusloggerprojek: 21 stappe

Video: Deur- en temperatuurstatusloggerprojek: 21 stappe
Video: Opmeten van stompe deur en opdekdeur - DeurenGigant 2024, Desember
Anonim
Deur- en temperatuurstatusloggerprojek
Deur- en temperatuurstatusloggerprojek

Hierdie instruksie sal u wys hoe u 'n eenvoudige deur- en temperatuurstatusregistreerder vir minder as $ 10,00 kan maak met behulp van 'n ESP8266 NodeMCU, 'n DHT11 -temperatuur- en humiditeitsensor, 'n deur/venster -rietskakelaar, 'n 10K ohm -weerstand en 'n aansluitdraad.

Die ontstaan van hierdie projek was die gevolg van my begeerte om meer tuisautomatisering met die Arduino -bord te doen, aangesien ek baie gelees het oor die Arduino -versoenbare EPS8266 NodeMCU, het ek besluit dat hierdie bord die perfekte goedkoop bord sou wees om mee te eksperimenteer. Nadat ek op die internet gesoek het na tuisautomatiseringsprojekte met behulp van die ESP8266 -borde, het ek besluit om 'n temperatuur- en deurstatuslogger te kombineer vir my eerste poging. Uiteindelik word hierdie projek gekombineer met servo's, vogsensors en ander elektronika om 'n klein kothuis te outomatiseer wat my oupa 50 jaar gelede ontwerp en gebou het. Die temperatuursensor sal gebruik word om te bepaal of die verwarmingstelsel in- of uitgeskakel moet word, asook om die servo's te sein om die ontluchtingstelsel oop en toe te maak wanneer dit nodig is. Die toestand van die ontluchtingstelsel word gemonitor deur die gebruik van die magnetiese rietskakelaars. Laastens sal die vogsensors gebruik word om 'n besproeiingstelsel te outomatiseer.

Stap 1: Vrywaring

Net 'n vinnige vrywaring om te sê dat ons GEEN verantwoordelikheid neem vir enigiets wat gebeur as gevolg van die opvolging van hierdie instruksies nie. Dit is altyd die beste om die vervaardiger se instruksies en veiligheidsblaaie te volg wanneer u iets bou, raadpleeg die dokumente vir enige onderdele en gereedskap wat u gebruik om u eie te bou. Ons gee eenvoudig inligting oor die stappe wat ons gebruik het om ons s'n te skep. Ons is nie professionele persone nie. In werklikheid is 2 uit 3 van die individue wat aan hierdie konstruksie deelgeneem het, kinders.

Stap 2: Stel 'n gratis IFTTT -rekening op

Stel gratis IFTTT -rekening op
Stel gratis IFTTT -rekening op

As u nog nie een het nie, is dit nou die tyd om 'n gratis IFTTT -rekening op te stel deur na hul tuisblad te gaan. IFTTT staan vir If This Then That en is 'n gratis platform waarmee u internetgebaseerde dienste op nuwe maniere kan verbind stel u in staat om hierdie dienste op nuwe maniere te benut. Vir hierdie projek gaan ons IFTTT gebruik om 'n ESP8266 in staat te stel om die status van 'n deur te teken via 'n rietskakelaar en temperatuur en humiditeit via die DHT11 -sensor in 'n Google Sheets -dokument.

Stap 3: Skep 'n IFTTT -applet

Skep 'n IFTTT -applet
Skep 'n IFTTT -applet

Terwyl u nog in IFTTT is, gaan na die afdeling "My applets" en skep 'n nuwe applet deur op die "New Applet" -knoppie te klik.

Stap 4: Stel die 'hierdie' gedeelte van u applet op

Stel die
Stel die

Klik op die 'hierdie' woord in 'n blou kleur - soos in die figuur hierbo uitgelig.

Stap 5: Voeg die WebHooks -diens by u applet

Voeg die WebHooks -diens by u applet
Voeg die WebHooks -diens by u applet

Soek in die soekbalk na die diens "Webhooks" en kies die Webhooks -ikoon.

Sodra u die diens "Webhooks" gevind het, klik daarop.

Stap 6: Stel die ontvanger vir 'n webversoek in

Stel die ontvanger van 'n webversoek in
Stel die ontvanger van 'n webversoek in

Kies die sneller "Ontvang 'n webversoek".

Stap 7: Gee 'n gebeurtenisnaam

Gee 'n gebeurtenisnaam
Gee 'n gebeurtenisnaam

Gee 'n gebeurtenisnaam in die tekskassie. Ek het 'Data Logger' gekies, maar u kan kies wat u wil.

Stap 8: Stel die 'daardie' gedeelte van u applet op

Stel die
Stel die

Klik op die 'daardie' woord in 'n blou kleur - soos in die figuur hierbo uitgelig.

Stap 9: Stel 'n aksiediens op

Stel 'n aksiediens op
Stel 'n aksiediens op

Soek in die soekkassie na die diens "Google Blaaie" en klik op die ikoon Google Blaaie.

Stap 10: Koppel aan Google Blaaie

Koppel aan Google Blaaie
Koppel aan Google Blaaie

As u dit nog nie gedoen het nie, hoef u nie u IFTTT -rekening aan Google Blaaie te koppel nie. Druk die verbindingsknoppie hierbo getoon en volg die instruksies op die skerm.

Stap 11: Kies 'n aksie

Kies 'n aksie
Kies 'n aksie

Klik op "Voeg ry by sigblad".

Stap 12: Stel die aksie op

Stel die aksie op
Stel die aksie op

Gee 'n naam in die tekskassie "Sigbladnaam". Ek kies om 'Data_Logger' te gebruik vir konsekwentheid. Laat die res van die instelling alleen (u kan op 'n ander tyd met die instelling eksperimenteer) en druk dan op die knoppie "Skep aksie" onderaan die skerm.

Stap 13: Hersien en finaliseer u applet

Hersien en finaliseer u applet
Hersien en finaliseer u applet

As u tevrede is met die konfigurasie van u applet, druk dan op die "Voltooi" -knoppie.

Stap 14: Haal later die konfigurasie -inligting op

Haal later konfigurasie -inligting op
Haal later konfigurasie -inligting op

Klik op "Webhooks" soos hierbo uitgelig.

Stap 15: Gaan na die Webhooks -dokumentasie vir die API -sleutel

Gaan na die Webhooks -dokumentasie vir die API -sleutel
Gaan na die Webhooks -dokumentasie vir die API -sleutel

Dit mag vreemd lyk, maar klik op die dokumentasie -skakel regs bo om na die bladsy met u unieke API -sleutel te gaan.

Stap 16: Stoor die API -sleutel

Stoor die API -sleutel
Stoor die API -sleutel
Stoor die API -sleutel
Stoor die API -sleutel

Die eerste reël van die dokumentasie -skerm vertoon u unieke API -sleutel. Kopieer en stoor hierdie sleutel om later te gebruik.

Dit is ook 'n goeie idee om die applet hier te toets. Onthou om die {event} na Data_Logger te verander of wat u ook al u gebeurtenis genoem het, en voeg 'n paar data by die 3 leë waardes, klik dan op die "Test It" -knoppie onderaan die bladsy. U moet 'n groen boodskap sien wat sê: 'Gebeurtenis is geaktiveer'. Gaan dan na Google Dokumente en bevestig dat die data wat u op die toetsbladsy ingevoer het, in die Google Blaaie -dokument verskyn.

Stap 17: Versamel die komponente

Versamel die komponente
Versamel die komponente
Versamel die komponente
Versamel die komponente
Versamel die komponente
Versamel die komponente

U benodig slegs 'n paar dele.

1) ESP8266 NodeMcu -ontwikkelingsraad

2) DHT11 Temperatuur-/humiditeitsensor

3) Deur/venster rietskakelaar

4) Weerstand van 10k Ohm

5) Aansluitdraad

Stap 18: Monteer die komponente

1) Koppel een van die 3v3 -pen op die ESP8266 aan die vcc -pen op die DHT11.

2) Koppel een van die grondpenne op die ESP8266 aan die grondpen op die DHT11.

3) Koppel pen D4 (alias pen 2 in die IDE) op die ESP8266 aan die datapennetjie op die DHT11.

4) Koppel nog 'n 3v3 -pen op die ESP8266 aan die een kant van die deur/venster rietskakelaar.

5) Koppel pen D5 (alias pen 14 in die IDE) aan die ESP8266 aan die ander kant van die deur/venster rietskakelaar en koppel dit ook aan die een kant van die 10k ohm weerstand.

6) Koppel die ander kant van die 10k ohm weerstand aan 'n ander grondpen op die ESP8266.

Raadpleeg hierdie nuttige diagram of die baie nuttige video vir ESP8266 -penkeuses.

Stap 19: Skryf die Arduino -kode neer

Skryf die Arduino -kode
Skryf die Arduino -kode

Kopieer en plak die onderstaande kode in u Arduino IDE.

#include #include #include "DHT.h"

#define DHTPIN 2 // aan watter digitale pen ons gekoppel is

#define DOORPIN 14 // watter digitale pen die deurskakelaar aan is.

#define DHTTYPE DHT11 // DHT 11

DHT dht (DHTPIN, DHTTYPE);

int telling = 1;

const char* ssid = "some_ssid"; // verander dit om u ssid const char* password = "some_password" te gebruik; // verander dit om u wagwoord int sleepTime = 100 te gebruik;

// Maker Webhooks IFTTT

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

// IFTTT URL -bron

const char* resource = "/trigger/SOME_SERVICE_NAME/with/key/SOME_API_KEY"; // Maak seker dat u u diensnaam en u api -sleutel gebruik.

String doorStatus = "Geslote";

vlugtige bool stateChanged = false;

// As u ure slaap, stel dan die interval in met hr * 60 minute * 60 sekondes * 1000 millisekondes

konst lang interval = 1,0 * 60 * 60 * 1000; // 1 uur ongetekende lang vorigeMillis = 0 - (2 * interval);

ongeldige opstelling () {

Serial.begin (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); pinMode (DOORPIN, INPUT); // Deursensor dht.begin (); WiFi.begin (ssid, wagwoord);

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

terwyl (WiFi.status ()! = WL_CONNECTED) {vertraging (1000); Serial.print ("."); } Serial.print ("\ n"); }

void eventTriggered () {

stateChanged = waar; Serial.println ("Deur kyk!"); if (digitalRead (DOORPIN) == HOOG) // Kyk of die deur oop is {Serial.println ("Deur is toe!"); doorStatus = "Geslote"; } anders {Serial.println ("Deur is oop!"); doorStatus = "Oopgemaak"; }}

leegte checkStatus () {

if (WiFi.status () == WL_CONNECTED) {// Gaan die WiFi -verbindingstatus na // Die lees van temperatuur of humiditeit neem ongeveer 250 millisekondes! // Sensorlesings kan ook tot 2 sekondes oud wees (dit is 'n baie stadige sensor) dryf h = dht.readHumidity (); // Lees temperatuur as Celsius (die standaard) float t = dht.readTemperature (); // Lees temperatuur as Fahrenheit (isFahrenheit = true) float f = dht.readTemperature (true); // Kontroleer of enige lees misluk het en vertrek vroeg (om weer te probeer). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("Kan nie lees van DHT -sensor nie!"); //Serial.print ("."); // Kon nie van DHT -sensor lees nie! terugkeer; } // Bereken hitte -indeks in Fahrenheit (die standaard) float hif = dht.computeHeatIndex (f, h); // Bereken hitte -indeks in Celsius (isFahreheit = false) float hic = dht.computeHeatIndex (t, h, false);

Serial.print ("\ n");

Serial.print ("Temperatuur:"); Reeks.afdruk (f); Serial.print (" *F ("); Serial.print (t); Serial.print (" *C)")); Serial.print ("\ t"); Serial.print ("Hitte -indeks:"); Reeks.afdruk (hif); Serial.print (" *F ("); Serial.print (hic); Serial.print (" *C)%"); Serial.print ("\ t"); Serial.print ("Humiditeit:"); Serial.println (h);

if (digitalRead (DOORPIN) == HOOG) // Kyk of die deur oop is

{Serial.println ("Deur is toe!"); doorStatus = "Geslote"; } anders {Serial.println ("Deur is oop!"); doorStatus = "Oopgemaak"; } String jsonObject = String ("{" waarde1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" waarde2 / ": \" " + h +" / ", \" waarde3 / ": \" " + deurStatus +" / "}"; HTTPClient http; String completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin (completeUrl); // http.begin (bediener); http.addHeader ("Inhoudstipe", "toepassing/json"); http. POST (jsonObject); http.writeToStream (en reekse); http.end (); // Sluit verbinding

stateChanged = vals;

int sleepTimeInMinutes = interval / 1000 /60; Serial.print ("\ n / nGa slaap vir"); Serial.print (sleepTimeInMinutes); Serial.println ("minuut (e) …"); }}

leemte -lus () {

ongetekende lang stroomMillis = millis (); vertraging (4000); // As ons die verloopte tyd oorskry, dwing dan die deur en temperatuur. as (currentMillis - previousMillis> = interval) {stateChanged = true; vorigeMillis = currentMillis; Serial.print (telling ++); Serial.println (") Kontroleer as gevolg van tydsverloop!"); } anders as (stateChanged) {Serial.print (count ++); Serial.println (") Kontroleer as gevolg van staatsverandering!"); }

// As die toestand verander, kyk dan na die deur en temperatuur.

as (stateChanged) {checkStatus (); }

vertraging (slaaptyd);

}

Stap 20: Resultate

Resultate
Resultate

As u die bronkode in die vorige stap opgelaai het, moet u resultate hê soos die voorbeeld hierbo.

Stap 21: Krediete

Ek het baie nuttige wenke en wenke van Random Nerd Tutorials gevind en wil hulle bedank vir al hul hulp. Veral hul uitstekende tutoriaal oor ESP32 ESP8266 Publiseer sensorlesings op Google Sheets waarop die belangrikste gedeeltes van hierdie instruksies gebaseer is.

Boonop het die DHT11 Instructable van TheCircuit my gehelp om te verstaan hoe ek hierdie baie goedkoop, maar interessante klein sensor moet gebruik.

Verder is daar baie tutoriale oor die monitering van u deure, soos die Garage Door Monitor en nog een van Random Nerd Tutorials. Ek het stukke hiervan gebruik om my te help verstaan hoe ek my rietskakelaar reg kan laat werk.

Uiteindelik kon ek, met hierdie inligting sowel as ander besonderhede wat ek op die internet gevind het, 'n stelsel skep wat aan my behoeftes voldoen. Ek hoop dat u hierdie instruksies nuttig vind en u eie bou.

Aanbeveel: