Sisukord:
- 1. samm: lahtiütlemine
- Samm: seadistage tasuta IFTTT konto
- Samm: looge IFTTT aplett
- Samm: seadistage oma apleti see osa
- Samm: lisage oma apletile teenus WebHooks
- 6. toiming: seadistage veebipäringu vastuvõtmise käivitaja
- Samm: sisestage sündmuse nimi
- Samm: konfigureerige oma apleti "see" osa
- 9. toiming: seadistage tegevusteenus
- 10. toiming: looge ühendus Google'i arvutustabelitega
- Samm: valige toiming
- 12. samm: seadistage toiming
- Samm: vaadake oma aplett üle ja viimistlege see
- 14. toiming: hankige hiljem vajaminev konfiguratsiooniteave
- Samm: jätkake API võtme Webhooks dokumentatsiooni
- 16. samm: salvestage API -võti
- 17. samm: koguge komponendid kokku
- Samm 18: Komponentide kokkupanek
- Samm: kirjutage Arduino kood
- 20. samm: tulemused
- 21. samm: krediidid
Video: Ukse ja temperatuuri oleku logija projekt: 21 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
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
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
Kui olete veel IFTTT -s, minge jaotisse „Minu apletid” ja looge uus aplett, klõpsates nuppu „Uus aplett”.
Samm: seadistage oma apleti see osa
Klõpsake "seda" sõna, mis on sinist värvi - nagu ülaltoodud joonisel esile tõstetud.
Samm: 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
Valige päästik „Võta vastu veebipäring”.
Samm: 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
Klõpsake "sellel" sinise värvi sõna - nagu ülaltoodud joonisel esile tõstetud.
9. toiming: seadistage tegevusteenus
Otsige otsingukastist teenust „Google'i arvutustabelid” ja klõpsake Google'i arvutustabelite ikooni.
10. toiming: looge ühendus 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
Klõpsake "Lisa rida arvutustabelisse".
12. samm: 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
Kui olete oma apleti konfiguratsiooniga rahul, vajutage nuppu "Lõpeta".
14. toiming: hankige hiljem vajaminev konfiguratsiooniteave
Klõpsake ülaltoodud nupul „Veebihaagid”.
Samm: 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
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
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
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
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:
Lihtne Kickeri oleku- ja reserveerimissüsteem koos lõdva integreerimisega: 12 sammu (piltidega)
Lihtne Kickeri oleku- ja reserveerimissüsteem koos lõdva integratsiooniga: ettevõttes, kus ma töötan, on kicker -laud. Ettevõte asub paljudel korrustel ja mõnel töötajal kulub laua juurde jõudmiseks kuni 3 minutit ja … mõistmaks, et laud on juba hõivatud. Seetõttu tekkis idee ehitada ki
NBIoT andmeedastus Kuidas kasutada BC95G modemipõhiseid kilpe - UDP test ja võrgu oleku signaalimine: 4 sammu
NBIoT andmeedastus Kuidas kasutada BC95G modemipõhiseid kilpe - UDP test ja võrgu oleku signaalimine: Teave selle projekti kohta: Kontrollige NB IoT võrgu võimalusi ja töötlemata UDP andmeedastust, kasutades xyz -mIoT by itbrainpower.net kilp, mis on varustatud Quectel BC95G modemiga. Vajalik aeg: 10-15 minutit. Raskusaste: keskmine. Remarque: nõutavad jootmisoskused
Raspberry Pi temperatuuri logija: 8 sammu
Raspberry Pi temperatuurilogija: siin on juhised lihtsa temperatuurilogija ehitamiseks, kasutades $ 5,00 I2C temperatuuriandurit. Andmed salvestatakse SD -kaardile ja neid saab hõlpsasti Excelisse importida. Lihtsalt muud andurit muutes või lisades saab ka muud tüüpi andmeid
Ukse ja ukse jälgimisega ühendatud automaatsed tuled: 5 sammu
Ukse ja ukse jälgimisega ühendatud automaatsed tuled: tundub, et pimedas on lülitusplaati väga raske leida, kuid see projekt on selle probleemi lahendamiseks tõesti kasulik. Selle lahenduse leidmiseks järgige alltoodud samme
Kes on minu ukse taga? PIR -liikumisanduri/vahemikuanduri projekt: 5 sammu
Kes on minu ukse taga? PIR -liikumisanduri/vahemikuanduri projekt: meie projekti eesmärk on liikumise tajumine PIR- ja kaugusandurite kaudu. Arduino kood väljastab visuaalse ja helisignaali, et teavitada kasutajat kellegi lähedusest. MATLAB -kood saadab mulle e -posti teel signaali, et hoiatada kasutajat, et keegi on lähedal. See seade