Përmbajtje:

Projekti i regjistruesit të statusit të derës dhe temperaturës: 21 hapa
Projekti i regjistruesit të statusit të derës dhe temperaturës: 21 hapa

Video: Projekti i regjistruesit të statusit të derës dhe temperaturës: 21 hapa

Video: Projekti i regjistruesit të statusit të derës dhe temperaturës: 21 hapa
Video: Çka është regjistrimi i Popullsisë, Ekonomive Familjare dhe Banesave? 2024, Korrik
Anonim
Projekti i regjistruesit të statusit të derës dhe temperaturës
Projekti i regjistruesit të statusit të derës dhe temperaturës

Ky udhëzues do t'ju tregojë se si të bëni një regjistrues të thjeshtë të statusit të derës dhe temperaturës për nën 10,00 dollarë duke përdorur një ESP8266 NodeMCU, një sensor të temperaturës dhe lagështisë DHT11, një çelës kallami derë/dritare, një rezistencë 10K ohm dhe një tel lidhës.

Zanafilla e këtij projekti erdhi nga dëshira ime për të bërë më shumë automatizim në shtëpi me bordin Arduino, Meqenëse kisha lexuar shumë për EPS8266 NodeMCU të pajtueshëm me Arduino, vendosa që ky bord do të ishte bordi i përsosur me kosto të ulët për të bërë disa eksperimente. Pasi kërkova në internet për projekte të automatizimit të shtëpisë duke përdorur bordet ESP8266, u vendosa të kombinoja një regjistrues të temperaturës dhe statusit të derës për përpjekjen time të parë. Përfundimisht ky projekt do të kombinohet me servos, sensorë lagështie dhe pajisje të tjera elektronike për të automatizuar një shtëpi të vogël të gjelbër që gjyshi im projektoi dhe ndërtoi 50 vjet më parë. Sensori i temperaturës do të përdoret për të përcaktuar nëse sistemi i ngrohjes duhet të jetë i kyçur ose i shkyçur, si dhe të sinjalizojë servos që të hapin dhe mbyllin sistemin e ventilimit kur është e nevojshme. Gjendja e sistemit të ventilimit do të monitorohet nga përdorimi i çelsave të kallamit magnetik. Së fundi, sensorët e lagështisë do të përdoren për të automatizuar një sistem lotimi.

Hapi 1: Mohimi i përgjegjësisë

Vetëm një mohim i shpejtë për të deklaruar se ne nuk marrim përgjegjësi për asgjë që ndodh si rezultat i ndjekjes së këtij udhëzimi. Alwaysshtë gjithmonë më mirë të ndiqni udhëzimet e prodhuesve dhe fletët e sigurisë kur ndërtoni ndonjë gjë, kështu që ju lutemi konsultohuni me ato dokumente për cilindo nga pjesët dhe mjetet që përdorni për të ndërtuar tuajin. Ne thjesht po japim informacion mbi hapat që kemi përdorur për të krijuar tonën. Ne nuk jemi profesionistë. Në fakt, 2 nga 3 nga individët që morën pjesë në këtë ndërtim janë fëmijë.

Hapi 2: Vendosni Llogarinë Falas IFTTT

Vendosni një llogari falas IFTTT
Vendosni një llogari falas IFTTT

Nëse nuk e keni tashmë, tani është koha për të krijuar një llogari falas IFTTT duke shkuar në faqen e tyre kryesore. IFTTT qëndron për If This Then That dhe është një platformë falas që ju lejon të lidhni shërbimet e bazuara në internet në mënyra të reja ju mundësojnë të shfrytëzoni ato shërbime në mënyra të reja. Për këtë projekt ne do të përdorim IFTTT për të lejuar që një ESP8266 të regjistrojë statusin e një dere përmes një çelësi kallami dhe temperatura dhe lagështia përmes sensorit DHT11 në një dokument të Google Sheets.

Hapi 3: Krijoni një Aplet IFTTT

Krijoni një Aplet IFTTT
Krijoni një Aplet IFTTT

Ndërsa jeni akoma në IFTTT, vazhdoni në seksionin "Apletet e mia" dhe krijoni një aplet të ri duke klikuar butonin "Apleti i ri".

Hapi 4: Konfiguroni pjesën "kjo" të Apletit tuaj

Konfiguro
Konfiguro

Klikoni në fjalën "kjo" që është në një ngjyrë blu - siç theksohet në figurën e mësipërme.

Hapi 5: Shtoni Shërbimin WebHooks në Apletin tuaj

Shtoni Shërbimin WebHooks në Apletin tuaj
Shtoni Shërbimin WebHooks në Apletin tuaj

Në shiritin e kërkimit, kërkoni shërbimin "Webhooks" dhe zgjidhni ikonën Webhooks.

Pasi të gjeni shërbimin "Webhooks", klikoni mbi të.

Hapi 6: Konfiguroni Shkasin e Marrjes së Kërkesës në Ueb

Konfiguroni Shkrepësin e Marrjes së Kërkesës në Ueb
Konfiguroni Shkrepësin e Marrjes së Kërkesës në Ueb

Zgjidhni shkaktarin "Merrni një kërkesë në internet".

Hapi 7: Siguroni një emër ngjarjeje

Jepni një emër ngjarjeje
Jepni një emër ngjarjeje

Në kutinë e tekstit jepni apletin tuaj të ri me një emër ngjarjeje. Zgjodha "Data Logger", por ju mund të zgjidhni çfarë të doni.

Hapi 8: Konfiguroni pjesën "that" të Apletit tuaj

Konfiguro
Konfiguro

Klikoni në fjalën "ajo" që është në një ngjyrë blu - siç theksohet në figurën e mësipërme.

Hapi 9: Vendosni një Shërbim Veprimi

Vendosni një shërbim veprimi
Vendosni një shërbim veprimi

Në kutinë e kërkimit, kërkoni shërbimin "Google Sheets" dhe klikoni ikonën e Google Sheets.

Hapi 10: Lidhu me Google Sheets

Lidhu me Fletët e Google
Lidhu me Fletët e Google

Nëse nuk e keni bërë tashmë këtë, nuk do të keni nevojë të lidhni llogarinë tuaj IFTTT me Google Sheets. Shtypni butonin Lidhu të treguar më sipër dhe ndiqni udhëzimet në ekran.

Hapi 11: Zgjidhni një veprim

Zgjidhni një Veprim
Zgjidhni një Veprim

Klikoni në "Shto rresht në fletëllogaritëse".

Hapi 12: Konfiguroni Veprimin

Vendosni Veprimin
Vendosni Veprimin

Jepni një emër në kutinë e tekstit "Emri i tabelave". Unë zgjedh të përdor "Data_Logger" për qëndrueshmëri. Lëreni pjesën tjetër të cilësimit vetëm (mund të eksperimentoni me ato cilësime në një kohë tjetër) dhe më pas shtypni butonin "Krijo veprim" në fund të ekranit.

Hapi 13: Rishikoni dhe Përfundoni Apletin tuaj

Rishikoni dhe Përfundoni Apletin tuaj
Rishikoni dhe Përfundoni Apletin tuaj

Pasi të jeni të kënaqur me konfigurimin e apletit tuaj, shtypni butonin "Finish".

Hapi 14: Merrni informacionin e konfigurimit të nevojshëm më vonë

Merrni informacionin e konfigurimit të nevojshëm më vonë
Merrni informacionin e konfigurimit të nevojshëm më vonë

Klikoni në "Webhooks" siç u theksua më lart.

Hapi 15: Vazhdoni te Dokumentacioni Webhooks për Çelësin API

Vazhdoni te Dokumentacioni Webhooks për çelësin API
Vazhdoni te Dokumentacioni Webhooks për çelësin API

Mund të duket e çuditshme, por klikoni në lidhjen e Dokumentacionit në të djathtën e sipërme për të vazhduar në faqe me Çelësin tuaj unik API.

Hapi 16: Ruani çelësin API

Ruani çelësin API
Ruani çelësin API
Ruani çelësin API
Ruani çelësin API

Linja e parë e ekranit të Dokumentacionit shfaq Çelësin tuaj unik API. Kopjoni dhe ruani këtë çelës për përdorim më vonë.

Alsoshtë gjithashtu një ide e mirë për të testuar apletin këtu. Mos harroni të ndryshoni {ngjarjen} në Data_Logger ose çfarëdo që e keni quajtur ngjarjen tuaj dhe shtoni disa të dhëna në 3 vlerat boshe, pastaj klikoni butonin "Testoje atë" në fund të faqes. Ju duhet të shihni një mesazh të gjelbër që thotë "Ngjarja është shkaktuar". Nëse është kështu, vazhdoni te Google Docs dhe konfirmoni që të dhënat që keni futur në faqen e provës të shfaqen në dokumentin e Google Sheets.

Hapi 17: Mblidhni Komponentët

Mblidhni Komponentët
Mblidhni Komponentët
Mblidhni Komponentët
Mblidhni Komponentët
Mblidhni Komponentët
Mblidhni Komponentët

Do t'ju duhen vetëm disa pjesë.

1) Bordi i Zhvillimit ESP8266 NodeMcu

2) Sensori i temperaturës/lagështisë DHT11

3) Çelësi i kallamit të derës/dritares

4) Rezistencë 10k Ohm

5) Tela lidhëse

Hapi 18: Mblidhni Komponentët

1) Lidhni një nga kunjat 3v3 në ESP8266 me kunjin vcc në DHT11.

2) Lidhni një nga kunjat e tokëzimit në ESP8266 me kunjin e tokëzimit në DHT11.

3) Lidhni pinin D4 (a.k.a. pin 2 në IDE) në ESP8266 me pinin e të dhënave në DHT11.

4) Lidhni një kunj tjetër 3v3 në ESP8266 në njërën anë të çelësit të kallamit të derës/dritares.

5) Lidhni pinin D5 (a.k.a. pin 14 në IDE) në ESP8266 në anën tjetër të ndërprerësit të kallamit të derës/dritares dhe gjithashtu lidheni atë në njërën anë të rezistencës 10k ohm.

6) Lidhni anën tjetër të rezistencës 10khm me një kunj tjetër tokëzimi në ESP8266.

Për përzgjedhjet e kunjave ESP8266, referojuni këtij diagrami të dobishëm ose videos shumë të dobishme.

Hapi 19: Shkruani Kodin Arduino

Shkruani Kodin Arduino
Shkruani Kodin Arduino

Kopjoni dhe ngjisni kodin më poshtë në ID tuaj Arduino.

#përfshi #përfshi #përfshi "DHT.h"

#define DHTPIN 2 // me cilën pin dixhital jemi lidhur

#define DOORPIN 14 // në cilën pin dixhital është kyçi i derës.

#përcaktoni DHTTYPE DHT11 // DHT 11

DHT dht (DHTPIN, DHTTYPE);

int numërimi = 1;

const char* ssid = "some_ssid"; // ndryshoni këtë për të përdorur ssid const char* fjalëkalimin tuaj = "some_password"; // ndryshoni këtë për të përdorur fjalëkalimin tuaj int sleepTime = 100;

// Maker Webhooks IFTTT

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

// Burimi i URL -së IFTTT

const char* burim = "/trigger/SOME_SERVICE_NAME/me/kyç/SOME_API_KEY"; // Sigurohuni që të përdorni emrin e shërbimit tuaj dhe çelësin tuaj api.

String doorStatus = "Mbyllur";

gjendje e paqëndrueshme e boolChanged = false;

// Nëse flini për orë të tëra, atëherë caktoni intervalin me orë * 60 minuta * 60 sekonda * 1000 milisekonda

inter interval i gjatë = 1.0 * 60 * 60 * 1000; // 1 orë e panënshkruar gjatë e mëparshmeMillis = 0 - (2 * interval);

void setup () {

Serial.fillo (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); pinMode (DORORPIN, HYRJE); // Sensori i dyerve dht.filloj (); WiFi.filloni (ssid, fjalëkalim);

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

ndërsa (WiFi.status ()! = WL_CONNECTED) {vonesë (1000); Serial.print ("."); } Serial.print ("\ n"); }

void eventTriggered () {

stateChanged = e vërtetë; Serial.println ("Duke kontrolluar derën!"); nëse (digitalRead (DERIZA) == LART) // Kontrolloni për të parë nëse dera është e hapur {Serial.println ("Dera është e mbyllur!"); doorStatus = "Mbyllur"; } else {Serial.println ("Dera është e hapur!"); doorStatus = "U hap"; }}

void checkStatus () {

nëse (WiFi.status () == WL_CONNECTED) {// Kontrolloni statusin e lidhjes WiFi // Temperatura ose lagështia e leximit zgjat rreth 250 milisekonda! // Leximet e sensorit gjithashtu mund të jenë të vjetra deri në 2 sekonda (është një sensor shumë i ngadalshëm) noton h = dht.readHumidity (); // Lexoni temperaturën si Celsius (parazgjedhja) noton t = dht.readTemperature (); // Lexoni temperaturën si Fahrenheit (isFahrenheit = e vërtetë) notoni f = dht.readTemperatura (e vërtetë); // Kontrolloni nëse ndonjë lexim dështoi dhe dilni herët (për të provuar përsëri). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("Leximi nuk u lexua nga sensori DHT!"); //Serial.print ("."); // Dështoi të lexohet nga sensori DHT! kthim; } // Llogarit indeksin e nxehtësisë në Fahrenheit (parazgjedhja) noton hif = dht.computeHeatIndex (f, h); // Llogarit indeksin e nxehtësisë në Celsius (isFahreheit = false) noton hic = dht.computeHeatIndex (t, h, false);

Serial.print ("\ n");

Serial.print ("Temperatura:"); Serial.print (f); Serial.print (" *F ("); Serial.print (t); Serial.print (" *C)"); Serial.print ("\ t"); Serial.print ("Indeksi i nxehtësisë:"); Serial.print (hif); Serial.print (" *F ("); Serial.print (hic); Serial.print (" *C)%"); Serial.print ("\ t"); Serial.print ("Lagështia:"); Serial.println (h);

nëse (digitalRead (DERIZA) == LART) // Kontrolloni për të parë nëse dera është e hapur

{Serial.println ("Dera është e mbyllur!"); doorStatus = "Mbyllur"; } else {Serial.println ("Dera është e hapur!"); doorStatus = "U hap"; } String jsonObject = String ("{" vlera1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" vlera2 / ": \" " + h +" / ", \" vlera3 / ": \" " + doorStatus +" / "}"; HTTPClient http; String completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin (plotëUrl); // http.begin (server); http.addHeader ("Lloji i përmbajtjes", "aplikacioni/json"); http. POST (jsonObject); http.writeToStream (& Serial); http.end (); // Mbyll lidhjen

stateChanged = false;

int sleepTimeInMinutes = intervali / 1000 /60; Serial.print ("\ n / nShko për të fjetur"); Serial.print (sleepTimeInMinutes); Serial.println ("minuta (s) …"); }}

lak void () {

rrymë e gjatë e panënshkruarMillis = millis (); vonesë (4000); // Nëse e tejkalojmë kohën e kaluar atëherë detyroni një kontroll të derës dhe temperaturës. if (currentMillis - previousMillis> = interval) {stateChanged = true; previousMillis = aktualMillis; Serial.print (numër ++); Serial.println (") Kontroll për shkak të kohës së kaluar!"); } tjetër nëse (gjendje e ndryshuar) {Serial.print (numër ++); Serial.println (") Kontroll për shkak të ndryshimit të gjendjes!"); }

// Nëse gjendja ndryshon, atëherë kontrolloni derën dhe temperaturën.

if (stateChanged) {checkStatus (); }

vonesa (Koha e gjumit);

}

Hapi 20: Rezultatet

Rezultatet
Rezultatet

Pasi të keni ngarkuar kodin burimor në hapin e mëparshëm, duhet të keni rezultate si shembulli i treguar më sipër.

Hapi 21: Kredite

Kam gjetur shumë sugjerime dhe këshilla të dobishme nga Tutorials Random Nerd dhe do të doja t'i falënderoja për të gjithë ndihmën e tyre. Veçanërisht mësimi i tyre i shkëlqyeshëm në ESP32 ESP8266 Publikoni leximet e sensorëve në fletët e Google në të cilat bazohen pjesët kryesore të këtij udhëzuesi.

Për më tepër, DHT11 Instructable nga TheCircuit më ndihmoi të kuptoj se si ta përdor këtë sensor të vogël shumë të lirë, por interesant.

Për më tepër, ka shumë mësime që merren me monitorimin e dyerve tuaja si Garage Door Monitor dhe një tjetër nga Random Nerd Tutorials. Kam përdorur copa dhe pjesë të këtyre për të më ndihmuar të kuptoj se si ta bëj çelësin tim të kallamit të funksionojë siç duhet.

Më në fund, me këtë informacion, si dhe detaje të tjera që gjeta në internet, unë isha në gjendje të krijoja një sistem që plotësonte nevojat e mia. Shpresoj se do ta gjeni të dobishëm këtë Instructable dhe do të krijoni një nga tuajat.

Recommended: