Sadržaj:
- Korak 1: Odricanje odgovornosti
- Korak 2: Postavite besplatni IFTTT račun
- Korak 3: Kreirajte IFTTT Applet
- Korak 4: Konfigurirajte "ovaj" dio vašeg apleta
- Korak 5: Dodajte uslugu WebHooks u svoj applet
- Korak 6: Postavite okidač za primanje web zahtjeva
- Korak 7: Navedite naziv događaja
- Korak 8: Konfigurirajte "taj" dio vašeg apleta
- Korak 9: Postavite akcijsku uslugu
- Korak 10: Povežite se s Google tablicama
- Korak 11: Odaberite radnju
- Korak 12: Postavite akciju
- Korak 13: Pregledajte i dovršite svoj aplet
- Korak 14: Dohvatite kasnije potrebne informacije o konfiguraciji
- Korak 15: Pređite na dokumentaciju Webhooks za API ključ
- Korak 16: Sačuvajte API ključ
- Korak 17: Skupite komponente
- Korak 18: Sastavite komponente
- Korak 19: Napišite Arduino kod
- Korak 20: Rezultati
- Korak 21: Krediti
Video: Projekt zapisivanja statusa vrata i temperature: 21 korak
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Ovaj Instructable će vam pokazati kako napraviti jednostavan zapisnik stanja vrata i temperature za manje od 10,00 USD pomoću ESP8266 NodeMCU, DHT11 senzora temperature i vlažnosti, prekidača za vrata/prozore, otpornika od 10K ohma i neke žice za spajanje.
Geneza ovog projekta proizašla je iz moje želje da napravim više kućne automatizacije s Arduino pločom. Budući da sam puno čitao o Arduino kompatibilnom EPS8266 NodeMCU -u, odlučio sam da bi ova ploča bila savršena niskobudžetna ploča za eksperimentiranje. Nakon pretraživanja Interneta za projekte kućne automatizacije koristeći ploče ESP8266, odlučio sam se za svoj prvi pokušaj kombiniranja zapisnika o temperaturi i stanju vrata. Na kraju će se ovaj projekt kombinirati sa servo motorima, senzorima vlage i drugom elektronikom za automatizaciju male zelene kuće koju je moj djed projektirao i izgradio prije 50 godina. Senzor temperature će se koristiti za utvrđivanje treba li uključiti ili isključiti sustav grijanja, kao i signalizirati servo pogonima da otvore i zatvore ventilacijski sustav po potrebi. Stanje ventilacijskog sustava nadzirat će se upotrebom magnetnih trska. Konačno, senzori vlage će se koristiti za automatizaciju sistema zalijevanja.
Korak 1: Odricanje odgovornosti
Samo brzo odricanje od odgovornosti kako bismo izjavili da ne preuzimamo nikakvu odgovornost za sve što se dogodi kao rezultat slijeđenja ovih uputa. Uvijek je najbolje slijediti upute proizvođača i sigurnosne listove pri izgradnji bilo čega, pa se u tim dokumentima obratite za bilo koji dio i alat koji koristite za izradu vlastitih. Mi samo pružamo informacije o koracima koje smo koristili za stvaranje naših. Mi nismo profesionalci. Zapravo, 2 od 3 osobe koje su učestvovale u ovoj izgradnji su djeca.
Korak 2: Postavite besplatni IFTTT račun
Ako ga već nemate, sada je vrijeme za postavljanje besplatnog IFTTT računa odlaskom na njihovu početnu stranicu. IFTTT označava If This Then That i besplatna je platforma koja vam omogućuje povezivanje internetskih usluga na nove načine omogućuju vam da te usluge iskoristite na nove načine. Za ovaj projekt koristit ćemo IFTTT kako bismo omogućili ESP8266 da evidentira status vrata preko sklopke sa trstikom, a temperaturu i vlagu putem senzora DHT11 u dokumentu Google tablice.
Korak 3: Kreirajte IFTTT Applet
Dok ste još u IFTTT -u, prijeđite na odjeljak „Moji apleti“i kreirajte novi aplet klikom na gumb „Novi aplet“.
Korak 4: Konfigurirajte "ovaj" dio vašeg apleta
Kliknite na riječ „ova“koja je plave boje - kako je istaknuto na gornjoj slici.
Korak 5: Dodajte uslugu WebHooks u svoj applet
Na traci za pretraživanje potražite uslugu “Webhooks” i odaberite ikonu Webhooks.
Kada pronađete uslugu "Webhooks", kliknite na nju.
Korak 6: Postavite okidač za primanje web zahtjeva
Odaberite okidač "Primanje web zahtjeva".
Korak 7: Navedite naziv događaja
U okvir za tekst unesite svoj novi aplet s nazivom događaja. Odabrao sam "Data Logger", ali možete odabrati šta god želite.
Korak 8: Konfigurirajte "taj" dio vašeg apleta
Kliknite na riječ „ta“koja je plave boje - kako je istaknuto na gornjoj slici.
Korak 9: Postavite akcijsku uslugu
U okviru za pretraživanje potražite uslugu „Google tablice“i kliknite ikonu Google tablice.
Korak 10: Povežite se s Google tablicama
Ako to već niste učinili, morat ćete povezati svoj IFTTT račun s Google tablicama. Pritisnite gore prikazano dugme Povezivanje i slijedite upute na ekranu.
Korak 11: Odaberite radnju
Kliknite na "Dodaj red u proračunsku tablicu".
Korak 12: Postavite akciju
Navedite ime u tekstualnom okviru "Naziv proračunske tablice". Odlučio sam koristiti "Data_Logger" za dosljednost. Ostavite ostatak postavke na miru (možete eksperimentirati s postavkama u neko drugo vrijeme), a zatim pritisnite gumb "Kreiraj akciju" pri dnu ekrana.
Korak 13: Pregledajte i dovršite svoj aplet
Nakon što ste zadovoljni konfiguracijom apleta, pritisnite dugme "Završi".
Korak 14: Dohvatite kasnije potrebne informacije o konfiguraciji
Kliknite na "Webhooks" kako je gore istaknuto.
Korak 15: Pređite na dokumentaciju Webhooks za API ključ
Možda zvuči čudno, ali kliknite na vezu Dokumentacija u gornjem desnom kutu da biste prešli na stranicu sa svojim jedinstvenim API ključem.
Korak 16: Sačuvajte API ključ
Prvi red ekrana Dokumentacija prikazuje vaš jedinstveni API ključ. Kopirajte i spremite ovaj ključ za kasniju upotrebu.
Također je dobra ideja isprobati aplet ovdje. Ne zaboravite promijeniti {event} u Data_Logger ili kako god ste nazvali svoj događaj i dodajte neke podatke u 3 prazne vrijednosti, a zatim kliknite gumb "Testiraj" pri dnu stranice. Trebali biste vidjeti zelenu poruku koja kaže "Događaj je pokrenut". U tom slučaju prijeđite na Google dokumente i potvrdite da su se podaci koje ste unijeli na testnu stranicu prikazali u dokumentu Google tablice.
Korak 17: Skupite komponente
Trebat će vam samo nekoliko dijelova.
1) ESP8266 NodeMcu razvojna ploča
2) DHT11 Senzor temperature/vlažnosti
3) Reed prekidač za vrata/prozore
4) 10k ohmski otpornik
5) Priključna žica
Korak 18: Sastavite komponente
1) Spojite jedan od 3v3 pina na ESP8266 sa vcc pinom na DHT11.
2) Spojite jedan od igle za uzemljenje na ESP8266 sa iglom za uzemljenje na DHT11.
3) Spojite pin D4 (zvani pin 2 u IDE -u) na ESP8266 na pin za podatke na DHT11.
4) Spojite još jedan 3v3 pin na ESP8266 s jedne strane prekidača vrata/prozora.
5) Spojite pin D5 (poznat i kao pin 14 u IDE -u) na ESP8266 na drugu stranu trstičnog prekidača vrata/prozora i također ga spojite na jednu stranu 10k ohmskog otpornika.
6) Spojite drugu stranu 10k ohmskog otpornika na drugi pin za uzemljenje na ESP8266.
Za odabir pinova ESP8266 pogledajte ovaj korisni dijagram ili vrlo koristan video zapis.
Korak 19: Napišite Arduino kod
Kopirajte i zalijepite donji kod u svoj Arduino IDE.
#include #include #include "DHT.h"
#define DHTPIN 2 // na koji smo digitalni pin povezani
#define DOORPIN 14 // koji digitalni pin je na prekidaču vrata.
#define DHTTYPE DHT11 // DHT 11
DHT dht (DHTPIN, DHTTYPE);
int broj = 1;
const char* ssid = "some_ssid"; // promijenite ovo kako biste koristili svoj ssid const char* password = "some_password"; // promijenite ovo kako biste koristili lozinku int sleepTime = 100;
// Maker Webhooks IFTTT
const char* server = "maker.ifttt.com";
// IFTTT URL resurs
const char* resource = "/trigger/SOME_SERVICE_NAME/with/key/SOME_API_KEY"; // Obavezno koristite naziv usluge i svoj api ključ.
String doorStatus = "Zatvoreno";
volatile bool stateChanged = false;
// Ako spavate satima, postavite interval za hr * 60 minuta * 60 sekundi * 1000 milisekundi
const long interval = 1,0 * 60 * 60 * 1000; // 1 sat bez potpisa dugački previousMillis = 0 - (2 * interval);
void setup () {
Serial.begin (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); pinMode (DOORPIN, INPUT); // Senzor vrata dht.begin (); WiFi.begin (ssid, lozinka);
Serial.print ("\ nPovezivanje..");
while (WiFi.status ()! = WL_CONNECTED) {kašnjenje (1000); Serial.print ("."); } Serial.print ("\ n"); }
void eventTriggered () {
stateChanged = true; Serial.println ("Provjera vrata!"); if (digitalRead (DOORPIN) == HIGH) // Provjerite jesu li vrata otvorena {Serial.println ("Vrata su zatvorena!"); doorStatus = "Zatvoreno"; } else {Serial.println ("Vrata su otvorena!"); doorStatus = "Otvoreno"; }}
void checkStatus () {
if (WiFi.status () == WL_CONNECTED) {// Provjerite status WiFi veze // Očitavanje temperature ili vlažnosti traje oko 250 milisekundi! // Očitavanja senzora mogu biti i do 2 sekunde "stara" (to je vrlo spor senzor) plovak h = dht.readHumidity (); // Očitavanje temperature kao Celsius (zadano) float t = dht.readTemperature (); // Očitajte temperaturu kao Fahrenheit (isFahrenheit = true) float f = dht.readTemperature (true); // Provjerite da li neko čitanje nije uspjelo i izađite ranije (da pokušate ponovo). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("Nije uspjelo čitanje sa DHT senzora!"); //Serial.print ("."); // Očitavanje sa DHT senzora nije uspjelo! return; } // Izračunajte toplinski indeks u Fahrenheitu (zadani) float hif = dht.computeHeatIndex (f, h); // Izračunajte toplinski indeks u Celzijusima (isFahreheit = false) float 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 ("Indeks topline:"); Serial.print (hif); Serial.print (" *F ("); Serial.print (hic); Serial.print (" *C)%"); Serial.print ("\ t"); Serial.print ("Vlažnost:"); Serial.println (h);
if (digitalRead (DOORPIN) == HIGH) // Provjerite jesu li vrata otvorena
{Serial.println ("Vrata su zatvorena!"); doorStatus = "Zatvoreno"; } else {Serial.println ("Vrata su otvorena!"); doorStatus = "Otvoreno"; } String jsonObject = String ("{" value1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" value2 / ": \" " + h +" / ", \" value3 / ": \" " + doorStatus +" / "}"; HTTPClient http; String completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin (completeUrl); // http.begin (server); http.addHeader ("Vrsta sadržaja", "aplikacija/json"); http. POST (jsonObject); http.writeToStream (& serijski); http.end (); // Zatvorite vezu
stateChanged = false;
int sleepTimeInMinutes = interval / 1000 /60; Serial.print ("\ n / nIdi na spavanje za"); Serial.print (sleepTimeInMinutes); Serial.println ("minute (i) …"); }}
void loop () {{100} {101}
bez potpisa duga strujaMillis = millis (); kašnjenje (4000); // Ako smo premašili proteklo vrijeme, prisilno provjerite vrata i temp. if (currentMillis - previousMillis> = interval) {stateChanged = true; previousMillis = trenutniMillis; Serial.print (broj ++); Serial.println (") Provjera zbog proteklog vremena!"); } else if (stateChanged) {Serial.print (count ++); Serial.println (") Provjera zbog promjene stanja!"); }
// Ako se stanje promijenilo, provjerite vrata i temp.
if (stateChanged) {checkStatus (); }
kašnjenje (vrijeme spavanja);
}
Korak 20: Rezultati
Nakon što učitate izvorni kod u prethodnom koraku, trebali biste imati rezultate poput gore prikazanog primjera.
Korak 21: Krediti
Našao sam mnogo korisnih savjeta i savjeta iz udžbenika Random Nerd Tutorials i želio bih im zahvaliti na svoj pomoći. Posebno njihov odličan vodič o ESP32 ESP8266 Objavljivanje očitanja senzora u Google tablicama na kojima se temelje glavni dijelovi ovog uputstva.
Osim toga, DHT11 Instructable iz TheCircuita pomogao mi je da shvatim kako koristiti ovaj vrlo jeftin, ali zanimljiv mali senzor.
Nadalje, postoje mnogi vodiči koji se bave nadzorom vaših vrata, poput monitora garažnih vrata i još jedan iz udžbenika Random Nerd Tutorials. Koristio sam ove komadiće kako bih razumio kako ispravno raditi prekidač trske.
Konačno, pomoću ovih podataka, kao i drugih detalja koje sam pronašao na internetu, uspio sam stvoriti sistem koji je odgovarao mojim potrebama. Nadam se da vam je ovaj Instructable koristan i da ćete izgraditi svoj vlastiti.
Preporučuje se:
Korak po korak Izgradnja računara: 9 koraka
Korak po korak Izgradnja računara: Potrošni materijal: Hardver: Matična ploča CPU & Hladnjak procesoraPSU (jedinica za napajanje) Skladištenje (HDD/SSD) RAMGPU (nije potrebno) Alati za kućište: OdvijačESD narukvica/mattermalna pasta s aplikatorom
Tri kola zvučnika -- Korak po korak vodič: 3 koraka
Tri kola zvučnika || Korak po korak vodič: Krug zvučnika pojačava audio signale koji se primaju iz okruženja na mikrofon i šalje ih zvučniku s mjesta na kojem se proizvodi pojačani zvuk. Ovdje ću vam pokazati tri različita načina kako napraviti ovaj zvučnik pomoću:
Korak po korak obrazovanje iz robotike s kompletom: 6 koraka
Korak po korak edukacija o robotici s kompletom: Nakon nekoliko mjeseci izgradnje vlastitog robota (pogledajte sve ove stavke), a nakon što su dijelovi dva puta otkazali, odlučio sam napraviti korak unatrag i razmisliti o svom strategija i smjer. Višemjesečno iskustvo ponekad je bilo vrlo korisno i
Akustična levitacija sa Arduino Uno Korak po korak (8 koraka): 8 koraka
Akustična levitacija s Arduino Uno Korak po korak (8 koraka): ultrazvučni pretvarači zvuka L298N Dc ženski adapter za napajanje s muškim dc pinom Arduino UNOBreadboard Kako to funkcionira: Prvo učitajte kôd na Arduino Uno (to je mikrokontroler opremljen digitalnim i analogni portovi za pretvaranje koda (C ++)
Hakiranje svjetla statusa garažnih vrata: 3 koraka
Hakiranje svjetla statusa garažnih vrata: Živim u kući u kojoj nije lako vidjeti jesu li garažna vrata otvorena ili zatvorena. Imamo dugme u kući, ali vrata se ne vide. Pomisao na inženjering neke vrste prekidača i napajanja bila je nepoželjna zbog visokih cijena