Obsah:

Projekt zapisovača stavu dverí a teploty: 21 krokov
Projekt zapisovača stavu dverí a teploty: 21 krokov

Video: Projekt zapisovača stavu dverí a teploty: 21 krokov

Video: Projekt zapisovača stavu dverí a teploty: 21 krokov
Video: ПЕРВЫЕ ПОСЛЕВОЕННЫЕ ГОДЫ. ВОСТОЧНАЯ ПРУССИЯ. КАЛИНИНГРАД. ИСТОРИИ ПРОФЕССОРА. КОП ПО ВОЙНЕ 2024, Júl
Anonim
Projekt zapisovača stavu dverí a teploty
Projekt zapisovača stavu dverí a teploty

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

Založte si bezplatný účet IFTTT
Založte 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

Vytvorte aplet IFTTT
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

Konfigurujte
Konfigurujte

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

Pridajte do svojho apletu službu WebHooks
Pridajte do svojho apletu službu WebHooks

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

Nastavte spúšťač príjmu webových požiadaviek
Nastavte spúšťač príjmu webových požiadaviek

Vyberte spúšťač „Prijať webovú žiadosť“.

Krok 7: Zadajte názov udalosti

Zadajte názov udalosti
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

Konfigurujte
Konfigurujte

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

Nastavte si akčnú službu
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

Pripojiť k Tabuľkám Google
Pripojiť 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

Vyberte akciu
Vyberte akciu

Kliknite na „Pridať riadok do tabuľky“.

Krok 12: Nastavte akciu

Nastavte akciu
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

Skontrolujte a dokončite svoj aplet
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

Načítajte informácie o konfigurácii potrebné neskôr
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

Prejdite k dokumentácii Webhooks pre kľúč API
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

Uložte kľúč API
Uložte kľúč API
Uložte kľúč API
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

Zhromaždite komponenty
Zhromaždite komponenty
Zhromaždite komponenty
Zhromaždite komponenty
Zhromaždite komponenty
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

Napíšte kód Arduino
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

Výsledky
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: