Sisukord:

Ukse ja temperatuuri oleku logija projekt: 21 sammu
Ukse ja temperatuuri oleku logija projekt: 21 sammu

Video: Ukse ja temperatuuri oleku logija projekt: 21 sammu

Video: Ukse ja temperatuuri oleku logija projekt: 21 sammu
Video: RTX 3090 Ti vs RTX 3060 Ultimate Showdown for Stable Diffusion, ML, AI & Video Rendering Performance 2024, November
Anonim
Ukse ja temperatuuri oleku logija projekt
Ukse ja temperatuuri oleku logija projekt

See juhendab teile, kuidas teha lihtsat ukse- ja temperatuuri oleku logijat alla 10 dollari eest, kasutades ESP8266 NodeMCU, DHT11 temperatuuri- ja niiskusandurit, ukse/akna roo lülitit, 10K oomi takistit ja mõnda ühendustraati.

Selle projekti tekkepõhjus oli minu soov Arduino plaadiga rohkem koduautomaatikat teha. Kuna olin lugenud palju Arduino ühilduva EPS8266 NodeMCU kohta, otsustasin, et see plaat on ideaalne odavate hindadega plaat, millega katsetada. Pärast seda, kui otsisin Internetist koduautomaatika projekte ESP8266 tahvlite abil, otsustasin oma esimesel katsel kombineerida temperatuuri ja ukse oleku logija. Lõpuks ühendatakse see projekt servode, niiskusandurite ja muu elektroonikaga, et automatiseerida väike roheline maja, mille mu vanaisa 50 aastat tagasi projekteeris ja ehitas. Temperatuuriandurit kasutatakse selleks, et teha kindlaks, kas küttesüsteem tuleks sisse või välja lülitada, ning anda signaal servodele vajadusel ventilatsioonisüsteemi avada ja sulgeda. Ventilatsioonisüsteemi olekut jälgitakse magnetiliste pilliroo lülitite abil. Lõpuks kasutatakse niiskussensoreid jootmissüsteemi automatiseerimiseks.

1. samm: lahtiütlemine

Lihtsalt lühike lahtiütlemine, et öelda, et me EI vastuta selle eest, mis juhtub selle juhendi järgimise tagajärjel. Midagi ehitades on alati kõige parem järgida tootja juhiseid ja ohutuslehti, nii et palun vaadake nendest dokumentidest nende osade ja tööriistade kohta, mida te oma ehitamiseks kasutate. Anname lihtsalt teavet sammude kohta, mida kasutasime oma loomiseks. Me ei ole professionaalid. Tegelikult on 2 kolmest selles ehitamises osalenud isikust lapsed.

Samm: seadistage tasuta IFTTT konto

Seadistage tasuta IFTTT konto
Seadistage tasuta IFTTT konto

Kui teil seda veel pole, on nüüd aeg seadistada tasuta IFTTT konto, minnes nende kodulehele. IFTTT tähistab If This Then That ja on tasuta platvorm, mis võimaldab teil Interneti -põhiseid teenuseid uuel viisil ühendada võimaldab teil neid teenuseid uuel viisil kasutada. Selle projekti jaoks kavatseme kasutada IFTTT -d, et võimaldada ESP8266 -l Google'i lehtede dokumendis registreerida ukse olekut pilliroo lüliti kaudu ning temperatuuri ja niiskust DHT11 anduri kaudu.

Samm: looge IFTTT aplett

Looge IFTTT aplett
Looge IFTTT aplett

Kui olete veel IFTTT -s, minge jaotisse „Minu apletid” ja looge uus aplett, klõpsates nuppu „Uus aplett”.

Samm: seadistage oma apleti see osa

Seadistage
Seadistage

Klõpsake "seda" sõna, mis on sinist värvi - nagu ülaltoodud joonisel esile tõstetud.

Samm: lisage oma apletile teenus WebHooks

Lisage oma apletile teenus WebHooks
Lisage oma apletile teenus WebHooks

Otsige otsinguribalt teenust „Webhooks” ja valige ikoon Webhooks.

Kui leiate teenuse "Webhooks", klõpsake sellel.

6. toiming: seadistage veebipäringu vastuvõtmise käivitaja

Seadistage veebipäringu vastuvõtja
Seadistage veebipäringu vastuvõtja

Valige päästik „Võta vastu veebipäring”.

Samm: sisestage sündmuse nimi

Sisestage sündmuse nimi
Sisestage sündmuse nimi

Sisestage tekstiväljale oma uus aplett sündmuse nimega. Valisin "Andmelogija", kuid saate valida, mis teile meeldib.

Samm: konfigureerige oma apleti "see" osa

Seadistage
Seadistage

Klõpsake "sellel" sinise värvi sõna - nagu ülaltoodud joonisel esile tõstetud.

9. toiming: seadistage tegevusteenus

Seadistage tegevusteenus
Seadistage tegevusteenus

Otsige otsingukastist teenust „Google'i arvutustabelid” ja klõpsake Google'i arvutustabelite ikooni.

10. toiming: looge ühendus Google'i arvutustabelitega

Ühendage Google'i arvutustabelitega
Ühendage Google'i arvutustabelitega

Kui te pole seda veel teinud, peate oma IFTTT -konto Google'i arvutustabelitega ühendama. Vajutage ülaltoodud nuppu Ühenda ja järgige ekraanil kuvatavaid juhiseid.

Samm: valige toiming

Valige toiming
Valige toiming

Klõpsake "Lisa rida arvutustabelisse".

12. samm: seadistage toiming

Seadistage toiming
Seadistage toiming

Sisestage tekstiväljale „Arvutustabeli nimi” nimi. Järjepidevuse huvides valin "Data_Logger". Jätke ülejäänud seaded rahule (saate neid seadeid mõnel muul ajal katsetada) ja seejärel vajutage ekraani allosas asuvat nuppu „Loo toiming”.

Samm: vaadake oma aplett üle ja viimistlege see

Vaadake oma aplett üle ja viimistlege see
Vaadake oma aplett üle ja viimistlege see

Kui olete oma apleti konfiguratsiooniga rahul, vajutage nuppu "Lõpeta".

14. toiming: hankige hiljem vajaminev konfiguratsiooniteave

Hankige hiljem vajaminev konfiguratsiooniteave
Hankige hiljem vajaminev konfiguratsiooniteave

Klõpsake ülaltoodud nupul „Veebihaagid”.

Samm: jätkake API võtme Webhooks dokumentatsiooni

Jätkake API võtme Webhooks dokumentatsiooni
Jätkake API võtme Webhooks dokumentatsiooni

See võib tunduda kummaline, kuid unikaalse API -võtmega lehele liikumiseks klõpsake paremas ülanurgas lingil Dokumentatsioon.

16. samm: salvestage API -võti

Salvestage API võti
Salvestage API võti
Salvestage API võti
Salvestage API võti

Dokumentatsiooni ekraani esimesel real kuvatakse teie ainulaadne API -võti. Kopeerige ja salvestage see võti hilisemaks kasutamiseks.

Samuti on siin hea katsetada apletti. Ärge unustage muuta {event} väärtuseks Data_Logger või mis iganes te oma sündmusele nime panite ja lisage mõned andmed kolmele tühjale väärtusele, seejärel klõpsake lehe allosas nuppu „Testige”. Peaksite nägema rohelist teadet „Sündmus on käivitatud”. Kui jah, minge teenusesse Google Docs ja veenduge, et testlehele sisestatud andmed ilmusid Google'i arvutustabelite dokumendis.

17. samm: koguge komponendid kokku

Koguge komponendid
Koguge komponendid
Koguge komponendid
Koguge komponendid
Koguge komponendid
Koguge komponendid

Teil on vaja ainult mõnda osa.

1) ESP8266 NodeMcu arendusamet

2) DHT11 temperatuuri/niiskuse andur

3) Ukse/akna reed lüliti

4) 10k oomi takisti

5) Ühendusjuhe

Samm 18: Komponentide kokkupanek

1) Ühendage üks ESP8266 3v3 nööpnõelast DHT11 vcc -tihvtiga.

2) Ühendage üks ESP8266 maanduspistikutest DHT11 maandusnõelaga.

3) Ühendage ESP8266 tihvt D4 (ka IDE 2 tihvt) DHT11 andmeklemmiga.

4) Ühendage ESP8266 -l veel üks 3v3 tihvt ukse/akna roolüliti ühele küljele.

5) Ühendage ESP8266 tihvt D5 (ka IDE tihvt 14) ukse/akna roolüliti teisele küljele ja ühendage see ka 10 k oomi takisti ühele küljele.

6) Ühendage 10k oomi takisti teine pool ESP8266 teise maandusnõelaga.

ESP8266 tihvtide valimiseks vaadake seda kasulikku diagrammi või väga kasulikku videot.

Samm: kirjutage Arduino kood

Kirjutage Arduino kood
Kirjutage Arduino kood

Kopeerige ja kleepige allolev kood oma Arduino IDE -sse.

#kaasama #kaasama #sisalda "DHT.h"

#define DHTPIN 2 // millise digitaalse tihvtiga oleme ühendatud

#define DOORPIN 14 // mis digitaalse tihvtiga ukselüliti on sisse lülitatud.

#defineeri DHTTYPE DHT11 // DHT 11

DHT dht (DHTPIN, DHTTYPE);

int loend = 1;

const char* ssid = "some_ssid"; // muuda seda, et kasutada oma ssid const char* password = "some_password"; // muuda seda oma parooli kasutamiseks int sleepTime = 100;

// Tegija Webhooks IFTTT

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

// IFTTT URL -i ressurss

const char* resource = "/trigger/SOME_SERVICE_NAME/koos/key/SOME_API_KEY"; // Kasutage kindlasti oma teenuse nime ja api võtit.

String doorStatus = "Suletud";

lenduv bool olekMuudetud = vale;

// Kui magate tundide kaupa, määrake intervall tundide kaupa * 60 minutit * 60 sekundit * 1000 millisekundit

const pikk intervall = 1,0 * 60 * 60 * 1000; // 1 tund allkirjata pikk eelmineMillis = 0 - (2 * intervall);

tühine seadistus () {

Seriaalne algus (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); pinMode (DOORPIN, INPUT); // Ukseandur dht.begin (); WiFi.begin (ssid, parool);

Serial.print ("\ nÜhendamine..");

while (WiFi.status ()! = WL_CONNECTED) {delay (1000); Seeria.print ("."); } Serial.print ("\ n"); }

void eventTriggered () {

stateChanged = true; Serial.println ("Ukse kontrollimine!"); if (digitalRead (DOORPIN) == HIGH) // Kontrollige, kas uks on lahti {Serial.println ("Uks on suletud!"); doorStatus = "Suletud"; } else {Serial.println ("Uks on lahti!"); doorStatus = "Avatud"; }}

void checkStatus () {

if (WiFi.status () == WL_CONNECTED) {// WiFi ühenduse oleku kontrollimine // Temperatuuri või niiskuse lugemine võtab aega umbes 250 millisekundit! // Andurite näidud võivad olla ka kuni 2 sekundit vanad (see on väga aeglane andur) float h = dht.readHumidity (); // Temperatuuri lugemine Celsiuse järgi (vaikimisi) float t = dht.readTemperature (); // Temperatuuri lugemine Fahrenheiti järgi (isFahrenheit = tõene) float f = dht.readTemperature (true); // Kontrollige, kas mõni lugemine ebaõnnestus, ja väljuge varakult (uuesti proovimiseks). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("DHT -andurilt ei õnnestunud lugeda!"); //Seriaalne.print ("."); // DHT -andurilt lugemine ebaõnnestus! tagasipöördumine; } // Arvuta soojusindeks Fahrenheiti järgi (vaikimisi) float hif = dht.computeHeatIndex (f, h); // Soojusindeksi arvutamine Celsiuse järgi (isFahreheit = false) float hic = dht.computeHeatIndex (t, h, false);

Serial.print ("\ n");

Serial.print ("Temperatuur:"); Seeriatrükk (f); Serial.print (" *F ("); Serial.print (t); Serial.print (" *C)"); Serial.print ("\ t"); Serial.print ("Soojusindeks:"); Serial.print (hif); Serial.print (" *F ("); Serial.print (hic); Serial.print (" *C)%"); Serial.print ("\ t"); Serial.print ("Niiskus:"); Seeria.println (h);

if (digitalRead (DOORPIN) == HIGH) // Kontrollige, kas uks on avatud

{Serial.println ("Uks on suletud!"); doorStatus = "Suletud"; } else {Serial.println ("Uks on lahti!"); doorStatus = "Avatud"; } String jsonObject = String ("{" value1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" value2 / ": \" " + h +" / ", \" value3 / ": \" " + doorStatus +" / "}"; HTTP -klient 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 (); // Ühenduse sulgemine

stateChanged = vale;

int sleepTimeInMinutes = intervall / 1000 /60; Serial.print ("\ n / nMine magama"); Serial.print (sleepTimeInMinutes); Serial.println ("minut (id) …"); }}

void loop () {

allkirjata pikk voolMillis = millis (); viivitus (4000); // Kui ületasime möödunud aja, sundige ukse ja temperatuuri kontrollima. if (currentMillis - previousMillis> = intervall) {stateChanged = true; previousMillis = currentMillis; Serial.print (arv ++); Serial.println (") Kontrollimine kulunud aja tõttu!"); } else if (stateChanged) {Serial.print (count ++); Serial.println (") Kontrollitakse oleku muutumise tõttu!"); }

// Kui olek on muutunud, kontrollige ust ja temperatuuri.

if (stateChanged) {checkStatus (); }

viivitus (uneaeg);

}

20. samm: tulemused

Tulemused
Tulemused

Kui olete eelmises etapis lähtekoodi üles laadinud, peaks teil olema ülaltoodud näite sarnased tulemused.

21. samm: krediidid

Random Nerd Tutorialsist leidsin palju kasulikke näpunäiteid ja sooviksin tänada neid kogu abi eest. Eriti nende suurepärane õpetus ESP32 kohta ESP8266 Avalda andurinäidud Google'i arvutustabelitele, millel selle juhendi peamised osad põhinevad.

Lisaks aitas TheCircuiti DHT11 Instructable mul mõista, kuidas seda väga odavat, kuid huvitavat väikest sensorit kasutada.

Lisaks on palju õpetusi, mis käsitlevad teie uste jälgimist, nagu garaažiukse monitor ja veel üks juhuslike närvide õpetustest. Kasutasin nende tükikesi, et aidata mul mõista, kuidas oma pilliroo lüliti korralikult tööle panna.

Lõpuks suutsin selle teabe ja muude Internetist leitud andmetega luua minu vajadustele vastava süsteemi. Loodan, et leiate selle juhendi kasulikuks ja loote selle oma.

Soovitan: