Kazalo:
- 1. korak: zavrnitev odgovornosti
- 2. korak: Nastavite brezplačni račun IFTTT
- 3. korak: Ustvarite programček IFTTT
- 4. korak: Konfigurirajte "ta" del svojega programčka
- 5. korak: Dodajte storitev WebHooks v svoj programček
- 6. korak: Nastavite sprožilec prejemanja spletnih zahtev
- 7. korak: Vnesite ime dogodka
- 8. korak: Konfigurirajte "tisti" del svojega programčka
- 9. korak: Nastavite akcijsko storitev
- 10. korak: Povežite se z Google Preglednicami
- 11. korak: Izberite dejanje
- 12. korak: Nastavite dejanje
- 13. korak: Preglejte in dokončajte svoj programček
- Korak 14: Pridobite konfiguracijske podatke, ki bodo potrebni pozneje
- 15. korak: pojdite na dokumentacijo Webhooks za ključ API
- Korak 16: Shranite ključ API
- 17. korak: Zberite komponente
- Korak 18: Sestavite komponente
- Korak 19: Napišite kodo Arduino
- 20. korak: Rezultati
- 21. korak: Krediti
Video: Projekt zapisovalnika stanja vrat in temperature: 21 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:06
Ta Instructable vam bo pokazal, kako narediti preprost zapisovalnik stanja vrat in temperature za manj kot 10,00 USD z uporabo ESP8266 NodeMCU, senzorja temperature in vlažnosti DHT11, trstičnega stikala za vrata/okna, 10K ohmskega upora in nekaj priključne žice.
Nastanek tega projekta je izhajal iz moje želje, da bi s ploščo Arduino naredil več avtomatizacije doma. Ker sem veliko bral o Arduino združljivem EPS8266 NodeMCU, sem se odločil, da bi bila ta plošča popolna nizkocenovna plošča, s katero bi lahko eksperimentirali. Ko sem po internetu iskal projekte avtomatizacije doma z uporabo plošč ESP8266, sem se za svoj prvi poskus odločil za kombinacijo zapisovalnika temperature in stanja vrat. Sčasoma bo ta projekt v kombinaciji s servomotorji, senzorji vlage in drugo elektroniko avtomatiziral majhno zeleno hišo, ki jo je moj dedek zasnoval in zgradil pred 50 leti. Senzor temperature bo uporabljen za ugotavljanje, ali je treba ogrevalni sistem vključiti ali izključiti, ter signalizirati servomotorje, da po potrebi odprejo in zaprejo prezračevalni sistem. Stanje prezračevalnega sistema bo spremljano z uporabo magnetnih trstičnih stikal. Končno bodo senzorji vlage uporabljeni za avtomatizacijo zalivalnega sistema.
1. korak: zavrnitev odgovornosti
Samo hitra izjava, da ne prevzemamo nobene odgovornosti za vse, kar se zgodi zaradi upoštevanja tega navodila. Pri gradnji je vedno najbolje upoštevati navodila proizvajalcev in varnostne liste, zato se za vse dele in orodja, ki jih uporabljate za izdelavo lastnih delov, posvetujte s temi dokumenti. Preprosto posredujemo informacije o korakih, ki smo jih uporabili pri ustvarjanju našega. Nismo profesionalci. Pravzaprav sta 2 od 3 posameznikov, ki so sodelovali pri tej gradnji, otroci.
2. korak: Nastavite brezplačni račun IFTTT
Če ga še nimate, je čas, da nastavite brezplačen račun IFTTT, tako da obiščete njihovo domačo stran. IFTTT pomeni If This Then That in je brezplačna platforma, ki vam omogoča povezovanje internetnih storitev na nove načine vam omogočajo, da te storitve izkoristite na nove načine. Za ta projekt bomo uporabili IFTTT, da omogočimo ESP8266, da zabeleži stanje vrat prek trstičnega stikala in temperaturo in vlažnost preko senzorja DHT11 v dokumentu Google Preglednice.
3. korak: Ustvarite programček IFTTT
Ko ste še v IFTTT, pojdite na razdelek »Moji jabolki« in ustvarite nov programček s klikom na gumb »Nov programček«.
4. korak: Konfigurirajte "ta" del svojega programčka
Kliknite na besedo »ta«, ki je v modri barvi - kot je označeno na zgornji sliki.
5. korak: Dodajte storitev WebHooks v svoj programček
V iskalni vrstici poiščite storitev »Webhooks« in izberite ikono Webhooks.
Ko najdete storitev »Webhooks«, jo kliknite.
6. korak: Nastavite sprožilec prejemanja spletnih zahtev
Izberite sprožilec »Prejemanje spletne zahteve«.
7. korak: Vnesite ime dogodka
V besedilno polje vnesite novi programček z imenom dogodka. Izbral sem "Data Logger", vendar lahko izberete, kar želite.
8. korak: Konfigurirajte "tisti" del svojega programčka
Kliknite na »tisto« besedo, ki je v modri barvi - kot je označeno na zgornji sliki.
9. korak: Nastavite akcijsko storitev
V iskalnem polju poiščite storitev »Google Preglednice« in kliknite ikono Google Preglednice.
10. korak: Povežite se z Google Preglednicami
Če tega še niste storili, morate račun IFTTT povezati z Google Preglednicami. Pritisnite zgoraj prikazani gumb Poveži in sledite navodilom na zaslonu.
11. korak: Izberite dejanje
Kliknite "Dodaj vrstico v preglednico".
12. korak: Nastavite dejanje
V besedilno polje "Ime preglednice" vnesite ime. Za doslednost sem se odločil uporabiti "Data_Logger". Preostale nastavitve pustite pri miru (s temi nastavitvami lahko poskusite kdaj drugič) in nato pritisnite gumb "Ustvari dejanje" na dnu zaslona.
13. korak: Preglejte in dokončajte svoj programček
Ko ste zadovoljni s konfiguracijo programčka, pritisnite gumb "Dokončaj".
Korak 14: Pridobite konfiguracijske podatke, ki bodo potrebni pozneje
Kliknite na "Webhooks", kot je označeno zgoraj.
15. korak: pojdite na dokumentacijo Webhooks za ključ API
Morda se zdi nenavadno, vendar kliknite povezavo Dokumentacija v zgornjem desnem kotu, da nadaljujete na stran z vašim edinstvenim ključem API.
Korak 16: Shranite ključ API
Prva vrstica zaslona z dokumentacijo prikazuje vaš edinstven ključ API. Kopirajte in shranite ta ključ za kasnejšo uporabo.
Prav tako je dobro preizkusiti programček tukaj. Ne pozabite spremeniti dogodka {dogodek} v Data_Logger ali karkoli že ste poimenovali svoj dogodek in trem praznim vrednostim dodati nekaj podatkov, nato kliknite gumb "Preizkusi" na dnu strani. Videti bi morali zeleno sporočilo »Dogodek je bil sprožen«. Če je tako, pojdite v Google Dokumente in potrdite, da so bili podatki, ki ste jih vnesli na preskusni strani, prikazani v dokumentu Google Preglednice.
17. korak: Zberite komponente
Potrebovali boste le nekaj delov.
1) Razvojni odbor ESP8266 NodeMcu
2) Senzor temperature/vlažnosti DHT11
3) Reed stikalo za vrata/okna
4) 10k ohmski upor
5) Priključna žica
Korak 18: Sestavite komponente
1) Priključite enega od zatičev 3v3 na ESP8266 na vcc vhod na DHT11.
2) Enega od ozemljitvenih zatičev na ESP8266 priključite na ozemljitveni zatič na DHT11.
3) Priključite pin D4 (imenovan tudi pin 2 v IDE) na ESP8266 s podatkovnim zatičem na DHT11.
4) Priključite še en zatič 3v3 na ESP8266 na eno stran stikala vrat/oken.
5) Priključite zatič D5 (imenovan tudi zatič 14 v IDE) na ESP8266 na drugo stran vratnega stikala za vrata/okna in ga priključite tudi na eno stran upora 10k ohm.
6) Priključite drugo stran 10k ohmskega upora na drug ozemljitveni zatič na ESP8266.
Za izbiro pin ESP8266 si oglejte ta koristen diagram ali zelo koristen video.
Korak 19: Napišite kodo Arduino
Kopirajte in prilepite spodnjo kodo v svoj Arduino IDE.
#include #include #include "DHT.h"
#define DHTPIN 2 // s katerim digitalnim zatičem smo povezani
#define DOORPIN 14 // kateri digitalni zatič je na stikalu za vrata.
#define DHTTYPE DHT11 // DHT 11
DHT dht (DHTPIN, DHTTYPE);
int count = 1;
const char* ssid = "some_ssid"; // spremenite to, če želite uporabiti svoj ssid const char* geslo = "some_password"; // spremenite to, da uporabite geslo int sleepTime = 100;
// Ustvarjalnik Webhooks IFTTT
const char* server = "maker.ifttt.com";
// vir URL IFTTT
const char* resource = "/trigger/SOME_SERVICE_NAME/with/key/SOME_API_KEY"; // Uporabite ime storitve in ključ api.
String doorStatus = "Zaprto";
hlapno bool stanjeChanged = false;
// Če več ur spite, nastavite interval za hr * 60 minut * 60 sekund * 1000 milisekund
dolg interval const = 1,0 * 60 * 60 * 1000; // 1 ura brez podpisa dolga previousMillis = 0 - (2 * interval);
void setup () {
Serial.begin (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); pinMode (DOORPIN, INPUT); // Senzor vrat dht.begin (); WiFi.begin (ssid, geslo);
Serial.print ("\ nPovezava..");
while (WiFi.status ()! = WL_CONNECTED) {zakasnitev (1000); Serial.print ("."); } Serial.print ("\ n"); }
void eventTriggered () {
stateChanged = res; Serial.println ("Preverjanje vrat!"); if (digitalRead (DOORPIN) == HIGH) // Preverite, ali so vrata odprta {Serial.println ("Vrata so zaprta!"); doorStatus = "Zaprto"; } else {Serial.println ("Vrata so odprta!"); doorStatus = "Odprto"; }}
void checkStatus () {
if (WiFi.status () == WL_CONNECTED) {// Preverite stanje povezave WiFi // Branje temperature ali vlažnosti traja približno 250 milisekund! // Odčitki senzorjev so lahko tudi do 2 sekundi "stari" (to je zelo počasen senzor) float h = dht.readHumidity (); // Temperatura se bere kot Celzius (privzeto) float t = dht.readTemperature (); // Temperatura se bere kot Fahrenheit (isFahrenheit = true) float f = dht.readTemperature (true); // Preverim, ali kakšno branje ni uspelo, in izstopite zgodaj (poskusite znova). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("Ni bilo mogoče prebrati s senzorja DHT!"); //Serial.print ("."); // Odčitavanje s senzorja DHT ni uspelo! vrnitev; } // Izračunajte toplotni indeks v Fahrenheitu (privzeto) float hif = dht.computeHeatIndex (f, h); // Izračunamo toplotni indeks v Celsiusih (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 ("Toplotni indeks:"); 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) // Preverite, ali so vrata odprta
{Serial.println ("Vrata so zaprta!"); doorStatus = "Zaprto"; } else {Serial.println ("Vrata so odprta!"); doorStatus = "Odprto"; } Niz jsonObject = Niz ("{" vrednost1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" value2 / ": \" " + h +" / ", \" value3 / ": \" " + doorStatus +" / "}"; HTTPClient http; Niz completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin (completeUrl); // http.begin (strežnik); http.addHeader ("Vrsta vsebine", "aplikacija/json"); http. POST (jsonObject); http.writeToStream (& Serial); http.end (); // Zapri povezavo
stateChanged = false;
int sleepTimeInMinutes = interval / 1000 /60; Serial.print ("\ n / nPojdi spat"); Serial.print (sleepTimeInMinutes); Serial.println ("minute (minute) …"); }}
void loop () {
nepodpisani dolgi tokMillis = millis (); zamuda (4000); // Če smo presegli pretečeni čas, prisilno preverimo vrata in temp. if (currentMillis - previousMillis> = interval) {stateChanged = true; previousMillis = trenutniMillis; Serial.print (štetje ++); Serial.println (") Preverjanje zaradi pretečenega časa!"); } else if (stateChanged) {Serial.print (count ++); Serial.println (") Preverjanje zaradi spremembe stanja!"); }
// Če se stanje spremeni, preverite vrata in temp.
if (stateChanged) {checkStatus (); }
zakasnitev (čas spanja);
}
20. korak: Rezultati
Ko naložite izvorno kodo v prejšnjem koraku, bi morali dobiti rezultate, kot je zgornji primer.
21. korak: Krediti
Našel sem veliko koristnih namigov in namigov iz Random Nerd Tutorialov in bi se jim rad zahvalil za vso pomoč. Še posebej njihova odlična vadnica o ESP32 ESP8266 Publish Sensor Readings to Google Sheets, na katerih temeljijo veliki deli tega navodila.
Poleg tega mi je DHT11 Instructable iz TheCircuita pomagal razumeti, kako uporabljati ta zelo poceni, a zanimiv mali senzor.
Poleg tega obstaja veliko vadnic, ki obravnavajo nadzor vaših vrat, na primer monitor garažnih vrat in še ena iz Vadnic o naključnih norcih. Te delce sem uporabil, da sem razumel, kako pravilno zagotoviti delovanje trstičnega stikala.
Nazadnje sem s temi informacijami in drugimi podrobnostmi, ki sem jih našel po internetu, lahko ustvaril sistem, ki bi ustrezal mojim potrebam. Upam, da vam bo ta Instructable koristen in sestavite svojega.
Priporočena:
Kako narediti snemalnik podatkov o vlažnosti in temperaturi v realnem času z Arduino UNO in kartico SD - Simulacija zapisovalnika podatkov DHT11 v Proteusu: 5 korakov
Kako narediti snemalnik podatkov o vlažnosti in temperaturi v realnem času z Arduino UNO in kartico SD | Simulacija zapisovalnika podatkov DHT11 v Proteusu: Uvod: zdravo, to je Liono Maker, tukaj je povezava YouTube. Z Arduinom ustvarjamo projekt in delamo na vgrajenih sistemih. Data-Logger: Zapisovalnik podatkov (tudi zapisovalnik podatkov ali zapisovalnik podatkov) je elektronska naprava, ki sčasoma beleži podatke z
Mikro: odpirač vrat za pasje vrat: 8 korakov (s slikami)
Micro: Odpiralnik vrat za pse: Ali se vaši hišni ljubljenčki ujamejo v sobe? Bi radi, da bi svoj dom naredili bolj dostopen svojim kosmatim* prijateljem ?? Zdaj lahko, hura !! Ta projekt uporablja mikrokrmilnik micro: bit, da odpre vrata, ko pritisnete (hišnim ljubljenčkom prijazno) stikalo. Mi bomo
Hack luči stanja garažnih vrat: 3 koraki
Hack Garage Door Status Light Hack: Živim v hiši, kjer ni lahko videti, ali so garažna vrata odprta ali zaprta. V hiši imamo gumb, vendar vrata niso vidna. Misel na inženiring neke vrste stikala in napajanja je bila nezaželena zaradi visokih cen
Samodejne luči, povezane z nadzorom vrat in vrat .: 5 korakov
Samodejne luči, povezane z nadzorom vrat in vrat. Zdi se, da je v temi zelo težko najti stikalno ploščo, vendar je ta projekt res v pomoč pri reševanju te težave. Če želite izvedeti rešitev tega problema, sledite spodnjim korakom
Izdelava zapisovalnika podatkov z Raspberry Pi: 3 koraki (s slikami)
Izdelava zapisovalnika podatkov z Raspberry Pi: Ta preprost zapisovalnik podatkov redno izvaja meritve svetlobe z analognim LDR (Photoresistor) in jih shranjuje v besedilno datoteko na vašem Raspberry Pi. Ta zapisovalnik podatkov bo meril in snemal raven svetlobe vsakih 60 sekund, kar vam omogoča spremljanje ho