Obsah:
- Krok 1: Vylúčenie zodpovednosti
- Krok 2: Nastavte si bezplatný účet IFTTT
- Krok 3: Vytvorte aplet IFTTT
- Krok 4: Nakonfigurujte „túto“časť svojho apletu
- Krok 5: Pridajte službu WebHooks do svojho apletu
- Krok 6: Nastavte spúšťač príjmu webových požiadaviek
- Krok 7: Zadajte názov udalosti
- Krok 8: Nakonfigurujte „tú“časť svojho apletu
- Krok 9: Nastavte si akčnú službu
- Krok 10: Pripojte sa k Tabuľkám Google
- Krok 11: Vyberte akciu
- Krok 12: Nastavte akciu
- Krok 13: Skontrolujte a dokončite svoj aplet
- Krok 14: Načítajte informácie o konfigurácii potrebné neskôr
- Krok 15: Prejdite k dokumentácii Webhooks pre kľúč API
- Krok 16: Uložte kľúč API
- Krok 17: Zhromaždite komponenty
- Krok 18: Zostavte komponenty
- Krok 19: Napíšte kód Arduino
- Krok 20: Výsledky
- Krok 21: Kredity
Video: Projekt zapisovača stavu dverí a teploty: 21 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Tento návod vám ukáže, ako vytvoriť jednoduchý záznamník stavu dverí a teploty za menej ako 10,00 dolárov pomocou ESP8266 NodeMCU, snímača teploty a vlhkosti DHT11, spínača dverí/okien, odporu 10 K ohmov a nejakého prepojovacieho drôtu.
Genesis tohto projektu pochádza z mojej túžby urobiť väčšiu domácu automatizáciu s doskou Arduino. Pretože som veľa čítal o Arduino kompatibilnom NodeMCU EPS8266, rozhodol som sa, že táto doska bude perfektnou nízkonákladovou doskou, s ktorou by som mohol experimentovať. Po vyhľadaní projektov automatizácie domácnosti na doskách pomocou dosiek ESP8266 na internete som sa pri prvom pokuse rozhodol skombinovať záznamník teploty a stavu dverí. Nakoniec bude tento projekt kombinovaný so servami, snímačmi vlhkosti a ďalšou elektronikou na automatizáciu malého zeleného domu, ktorý môj dedko navrhol a postavil pred 50 rokmi. Teplotný snímač sa použije na určenie, či sa má vykurovací systém zapnúť alebo vypnúť, a v prípade potreby signalizuje servám, aby otvorili a zatvorili odvzdušňovací systém. Stav ventilačného systému bude monitorovaný pomocou magnetických jazýčkových spínačov. Nakoniec senzory vlhkosti budú použité na automatizáciu zavlažovacieho systému.
Krok 1: Vylúčenie zodpovednosti
Toto je iba stručné vyhlásenie, že nepreberáme žiadnu zodpovednosť za čokoľvek, čo sa stane v dôsledku dodržiavania tohto pokynu. Pri stavbe čohokoľvek je vždy najlepšie riadiť sa pokynmi výrobcu a bezpečnostnými listami, a preto si v týchto dokumentoch prečítajte všetky diely a nástroje, ktoré pri stavbe svojich vlastných nástrojov používate. Jednoducho poskytujeme informácie o krokoch, ktoré sme použili pri vytváraní našich. Nie sme profesionáli. V skutočnosti 2 z 3 osôb, ktoré sa zúčastnili na tejto stavbe, sú deti.
Krok 2: Nastavte si bezplatný účet IFTTT
Ak ho ešte nemáte, teraz je načase si založiť bezplatný účet IFTTT tak, že prejdete na jeho domovskú stránku.. IFTTT znamená If This Then That a je bezplatnou platformou, ktorá vám umožňuje novým spôsobom pripojiť internetové služby k vám umožní využiť tieto služby novými spôsobmi. V tomto projekte použijeme IFTTT, aby ESP8266 umožnil zaznamenať stav dverí pomocou jazýčkového spínača a teplotu a vlhkosť cez senzor DHT11 v dokumente Tabuliek Google.
Krok 3: Vytvorte aplet IFTTT
Keď ste stále v IFTTT, prejdite na časť „Moje aplety“a kliknutím na tlačidlo „Nový aplet“vytvorte nový aplet.
Krok 4: Nakonfigurujte „túto“časť svojho apletu
Kliknite na „toto“slovo v modrej farbe - ako je zvýraznené na obrázku vyššie.
Krok 5: Pridajte službu WebHooks do svojho apletu
Na paneli vyhľadávania vyhľadajte službu „Webhooks“a vyberte ikonu Webhooks.
Akonáhle nájdete službu „Webhooks“, kliknite na ňu.
Krok 6: Nastavte spúšťač príjmu webových požiadaviek
Vyberte spúšťač „Prijať webovú žiadosť“.
Krok 7: Zadajte názov udalosti
Do textového poľa zadajte nový aplet s názvom udalosti. Vybral som „Data Logger“, ale môžete si vybrať, čo sa vám páči.
Krok 8: Nakonfigurujte „tú“časť svojho apletu
Kliknite na „to“slovo, ktoré je modrej farby - ako je zvýraznené na obrázku vyššie.
Krok 9: Nastavte si akčnú službu
Do vyhľadávacieho poľa vyhľadajte službu „Tabuľky Google“a kliknite na ikonu Tabuľky Google.
Krok 10: Pripojte sa k Tabuľkám Google
Ak ste to ešte neurobili, budete musieť svoj účet IFTTT prepojiť s Tabuľkami Google. Stlačte tlačidlo Pripojiť zobrazené vyššie a postupujte podľa pokynov na obrazovke.
Krok 11: Vyberte akciu
Kliknite na „Pridať riadok do tabuľky“.
Krok 12: Nastavte akciu
Do textového poľa „Názov tabuľky“zadajte názov. Kvôli konzistentnosti som sa rozhodol použiť „Data_Logger“. Ostatné nastavenia nechajte na pokoji (s týmito nastaveniami môžete experimentovať aj inokedy) a potom stlačte tlačidlo „Vytvoriť akciu“v spodnej časti obrazovky.
Krok 13: Skontrolujte a dokončite svoj aplet
Keď ste spokojní s konfiguráciou vášho apletu, kliknite na tlačidlo „Dokončiť“.
Krok 14: Načítajte informácie o konfigurácii potrebné neskôr
Kliknite na „Webhooky“, ako je uvedené vyššie.
Krok 15: Prejdite k dokumentácii Webhooks pre kľúč API
Môže sa to zdať zvláštne, ale kliknutím na odkaz Dokumentácia v pravom hornom rohu prejdete na stránku s vašim jedinečným kľúčom API.
Krok 16: Uložte kľúč API
Prvý riadok obrazovky Dokumentácia zobrazuje váš jedinečný kľúč API. Skopírujte a uložte tento kľúč pre neskoršie použitie.
Tiež je dobré applet otestovať tu. Nezabudnite zmeniť {event} na Data_Logger alebo čokoľvek, čo ste pomenovali pre svoju udalosť, a pridajte údaje k 3 prázdnym hodnotám, potom kliknite na tlačidlo „Testovať“v spodnej časti stránky. Mali by ste vidieť zelenú správu s názvom „Udalosť bola spustená“. Ak je to tak, prejdite na Dokumenty Google a potvrďte, že údaje, ktoré ste zadali na testovacej stránke, sa zobrazili v dokumente Tabuliek Google.
Krok 17: Zhromaždite komponenty
Budete potrebovať iba niekoľko dielov.
1) Vývojová rada ESP8266 NodeMcu
2) Snímač teploty/vlhkosti DHT11
3) Jazýčkový spínač dverí/okien
4) Rezistor 10 kOhm
5) Pripojovací drôt
Krok 18: Zostavte komponenty
1) Pripojte jeden z pinov 3v3 na ESP8266 k pinu vcc na DHT11.
2) Pripojte jeden z uzemňovacích kolíkov na ESP8266 k uzemňovaciemu kolíku na DHT11.
3) Pripojte kolík D4 (a kolík 2 v IDE) na ESP8266 k dátovému kolíku na DHT11.
4) Pripojte ďalší kolík 3v3 na ESP8266 k jednej strane jazýčkového spínača dverí/okien.
5) Pripojte kolík D5 (aka pin 14 v IDE) na ESP8266 k druhej strane jazýčkového spínača dverí/okien a tiež ho pripojte k jednej strane odporu 10 kOhm.
6) Pripojte druhú stranu odporu 10 kOhm k ďalšiemu uzemňovaciemu kolíku na ESP8266.
Výber pinov ESP8266 nájdete v tomto užitočnom diagrame alebo vo veľmi užitočnom videu.
Krok 19: Napíšte kód Arduino
Skopírujte a prilepte nižšie uvedený kód do svojho Arduino IDE.
#include #include #include "DHT.h"
#define DHTPIN 2 // k akému digitálnemu pinu sme pripojení
#define DOORPIN 14 // aký digitálny kolíkový spínač dverí je zapnutý.
#define DHTTYPE DHT11 // DHT 11
DHT dht (DHTPIN, DHTTYPE);
počet int = 1;
const char* ssid = "some_ssid"; // zmeňte to tak, aby používalo vaše ssid const char* heslo = "some_password"; // zmeňte to, aby ste používali heslo int sleepTime = 100;
// Maker Webhooks IFTTT
const char* server = "maker.ifttt.com";
// Zdroj adresy URL IFTTT
const char* resource = "/trigger/SOME_SERVICE_NAME/s/key/SOME_API_KEY"; // Uistite sa, že používate názov svojej služby a kľúč API.
String doorStatus = "Zatvorené";
volatile bool stateChanged = false;
// Ak spíte niekoľko hodín, nastavte interval po hodinách * 60 minút * 60 sekúnd * 1 000 milisekúnd
konštantný dlhý interval = 1,0 * 60 * 60 * 1000; // 1 hodina bez znamienka dlhá predchádzajúcaMillis = 0 - (2 * interval);
neplatné nastavenie () {
Serial.begin (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); pinMode (DVERE, VSTUP); // Senzor dverí dht.begin (); WiFi.begin (ssid, heslo);
Serial.print ("\ nPripojenie..");
while (WiFi.status ()! = WL_CONNECTED) {oneskorenie (1000); Serial.print ("."); } Serial.print ("\ n"); }
void eventTriggered () {
stateChanged = true; Serial.println („Kontrola dverí!“); if (digitalRead (DOORPIN) == HIGH) // Skontrolujte, či sú dvere otvorené {Serial.println ("Dvere sú zatvorené!"); doorStatus = "Zatvorené"; } else {Serial.println ("Dvere sú otvorené!"); doorStatus = "Otvorené"; }}
neplatný checkStatus () {
if (WiFi.status () == WL_CONNECTED) {// Kontrola stavu pripojenia WiFi // Čítanie teploty alebo vlhkosti trvá asi 250 milisekúnd! // Hodnoty senzorov môžu byť tiež „staré“až 2 sekundy (je to veľmi pomalý senzor) float h = dht.readHumidity (); // Čítanie teploty ako Celzia (predvolené) float t = dht.readTemperature (); // Čítanie teploty ako Fahrenheit (isFahrenheit = true) float f = dht.readTemperature (true); // Skontrolujte, či niektoré čítanie zlyhalo, a ukončite operáciu predčasne (skúste to znova). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("Zlyhalo čítanie zo senzora DHT!"); //Serial.print ("."); // Čítanie zo senzora DHT zlyhalo! návrat; } // Vypočítajte tepelný index vo Fahrenheite (predvolené) float hif = dht.computeHeatIndex (f, h); // Vypočítajte tepelný index v stupňoch Celzia (isFahreheit = false) float hic = dht.computeHeatIndex (t, h, false);
Serial.print ("\ n");
Serial.print ("Teplota:"); Serial.print (f); Serial.print (" *F ("); Serial.print (t); Serial.print (" *C)"); Serial.print ("\ t"); Serial.print ("Tepelný index:"); Serial.print (hif); Serial.print (" *F ("); Serial.print (hic); Serial.print (" *C)%"); Serial.print ("\ t"); Serial.print ("Vlhkosť:"); Serial.println (h);
if (digitalRead (DOORPIN) == HIGH) // Skontrolujte, či sú dvere otvorené
{Serial.println ("Dvere sú zatvorené!"); doorStatus = "Zatvorené"; } else {Serial.println ("Dvere sú otvorené!"); doorStatus = "Otvorené"; } Reťazec jsonObject = Reťazec ("{" hodnota1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" hodnota2 / ": \" " + h +" / ", \" hodnota3 / ": \" " + stav dverí +" / "}"; HTTPClient http; Reťazec 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 (& sériové); http.end (); // Zavrieť spojenie
stateChanged = false;
int sleepTimeInMinutes = interval / 1000 /60; Serial.print ("\ n / nPrejdite spať"); Serial.print (sleepTimeInMinutes); Serial.println ("minúty (s) …"); }}
prázdna slučka () {
nepodpísaný dlhý prúd Millis = millis (); oneskorenie (4000); // Ak sme prekročili uplynulý čas, vynútite kontrolu dverí a tepl. if (currentMillis - previousMillis> = interval) {stateChanged = true; previousMillis = súčasnýMillis; Serial.print (počet ++); Serial.println (") Kontrola z dôvodu uplynutého času!"); } else if (stateChanged) {Serial.print (count ++); Serial.println (") Kontrola z dôvodu zmeny stavu!"); }
// Ak sa stav zmenil, skontrolujte dvere a teplotu.
if (stateChanged) {checkStatus (); }
oneskorenie (sleepTime);
}
Krok 20: Výsledky
Po nahraní zdrojového kódu v predchádzajúcom kroku by ste mali mať výsledky ako v príklade uvedenom vyššie.
Krok 21: Kredity
Našiel som veľa užitočných rád a tipov z Random Nerd Tutorials a rád by som sa im poďakoval za všetku ich pomoc. Zvlášť ich vynikajúci návod na publikovanie čítaní senzorov ESP32 ESP8266 v tabuľkách Google, na ktorých sú založené hlavné časti tohto návodu.
Inštrukcia DHT11 od TheCircuit mi navyše pomohla pochopiť, ako používať tento veľmi lacný, ale zaujímavý malý snímač.
Okrem toho existuje mnoho návodov na monitorovanie vašich dverí, ako napríklad monitor garážových dverí a ďalší z návodov pre Random Nerd. Použil som ich kúsky, ktoré mi pomohli porozumieť tomu, ako zabezpečiť, aby môj jazýčkový spínač správne fungoval.
Nakoniec s týmito informáciami a ďalšími podrobnosťami, ktoré som našiel na internete, sa mi podarilo vytvoriť systém, ktorý zodpovedal mojim potrebám. Dúfam, že vám tento návod bude užitočný a vytvoríte si vlastný.
Odporúča:
Aktualizátor stavu Slack s ESP8266: 5 krokov (s obrázkami)
Slack Status Updater s ESP8266: Tento projekt vám pomôže trocha uľahčiť deň, ak ste vzdialený pracovník a používate Slack. Ukážem vám, ako ho vytvoriť pomocou wifi dosky ESP8266. Prehľad si nenechajte ujsť vyššie uvedené video. Či už ste s Slackom noví, alebo ste práve používali
Indikátor stavu rodiny / spolupracovníka: 6 krokov (s obrázkami)
Ukazovateľ stavu rodiny / spolupracovníka: Môj prvý poučiteľný, mnoho projektov mi za tie roky pomohlo, dúfajme, že to pomôže niekomu ďalšiemu. Poviedka … Potrebovali sme spôsob, ako si navzájom ukázať svoj stav, a nie prerušovať hovory alebo sa držať bokom, keď predpokladáme inú
Jednoduchý systém stavu a rezervácie kickeru s integráciou Slack: 12 krokov (s obrázkami)
Jednoduchý stav a rezervačný systém kopačky s integráciou Slack: V spoločnosti, kde pracujem, je stôl na kicker. Spoločnosť zaberá mnoho poschodí a niektorým zamestnancom trvá až 3 minúty, kým sa dostanú k stolu a … kým si uvedomia, že stôl je už obsadený. Preto vznikol nápad postaviť ki
Cvičenie zapisovača s Makey Makey: 7 krokov (s obrázkami)
Cvičenie zapisovača s Makey Makey: Naši študenti hudby musia dokončovať piesne na zapisovači, aby získali opasky (kúsky farebnej priadze), kým nedosiahnu stav Black Belt. Niekedy majú problémy s umiestnením prstov a " počutím " pieseň ožije
Automatické svetlá prepojené s monitorovaním dverí a dverí .: 5 krokov
Automatické svetlá spojené s monitorovaním dverí a dverí .: Zdá sa, že je veľmi ťažké nájsť rozvádzač v tme, ale tento projekt je pri riešení tohto problému skutočne nápomocný. Ak chcete poznať riešenie tohto problému, postupujte podľa nižšie uvedených krokov