Obsah:
- Krok 1: Choďte na nákupy
- Krok 2: Nastavenie a pozadie
- Krok 3: Časť Arduino - ESP12
- Krok 4: Testovanie ESP ako klienta NTP (Network Time Protocol)
- Krok 5: Testovanie senzora DHT22
- Krok 6: Spojenie …
- Krok 7: Serverová stránka vecí
Video: Senzor teploty domácej siete: 7 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Čo potrebujete vedieť k realizácii tohto projektu:
Potrebujete vedieť o:- niektorých znalostiach elektroniky (spájkovanie)
- Linux
- Arduino IDE
(budete musieť aktualizovať ďalšie dosky v IDE:
- aktualizácia/programovanie dosky ESP prostredníctvom Arduino IDE.
(na webe je k dispozícii niekoľko pekných návodov)
To sa dá urobiť pomocou Arduino Uno alebo pomocou FTDI (USB na sériový adaptér).
Použil som svoje Uno, pretože som v počítači nemal žiadny sériový port ani FTDI
Krok 1: Choďte na nákupy
Čo budete potrebovať, aby sa to stalo?
Pre digitálny snímač teploty a vlhkosti:
- Buď nepájivá doska, alebo alternatíva ako prototyp plošných spojov, spájkovačka, spájkovačka …
- Nejaký drôt
- dvaja skokani
- odpor 10 kOhm
- ESP12F (môžu fungovať aj iné modely …)
- DHT22 (o niečo drahší ako DHT11, ale presnejší)
- 3 nabíjateľné batérie AA a držiak na batérie
- malá plastová škatuľka, do ktorej môžete vložiť svoj projekt
- V neskoršej fáze plánujem pridať HT7333 s dvoma 10uF kondenzátormi medzi batériu a ESP
na stabilizáciu vstupného napätia (VCC) na odporúčaných 3,3 V ale aj na ochranu ESP pred prepätím.
Pokiaľ ide o časť Sieť:
- Vaša domáca sieť WiFi
Pokiaľ ide o časť servera:
- Akýkoľvek systém založený na Linuxe (vždy zapnutý!)
Použil som Raspberry Pi (ktorý tiež používam ako server pre svoje vonkajšie IP kamery.)
- kompilátor gcc na kompiláciu kódu servera
- balík rrdtool na ukladanie údajov a generovanie grafov
- apache (alebo iný webový server)
Váš obľúbený počítač alebo prenosný počítač so systémom Arduino IDE.
Krok 2: Nastavenie a pozadie
V tejto verzii senzora teploty a vlhkosti pripojeného k WiFi, nehovoriac o IOT, som použil ESP12F, DHT22 a držiak batérií 3 AA s nabíjateľnými batériami.
ESP každých 20 minút vykoná meranie z DHT22 a odošle ho na server (Raspberry Pi) cez UDP v mojej domácej sieti WiFi. Po odoslaní meraní ESP prejde do hlbokého spánku. To znamená, že iba hodiny reálneho času modulu zostanú napájané, čo má za následok neuveriteľnú úsporu energie. Modul potrebuje asi 5 sekúnd asi 100mA, potom počas 20 minút hlbokého spánku iba 150uA.
Nechcel som používať žiadnu službu založenú na internete, pretože mám Raspberry Pi, ktoré je vždy zapnuté, a týmto spôsobom som mal to potešenie napísať aj serverovú časť.
Na server (Raspberry Pi so systémom Raspbian) som napísal jednoduchý poslucháč UDP (server), ktorý ukladá hodnoty do jednoduchého RRD. (Databáza Round Robin pomocou RRDtool od Tobiasa Oetikera.)
Výhodou RRDtool je, že databázu vytvoríte raz a veľkosť zostane rovnaká. Inak nemusíte mať na pozadí spustený databázový server (napríklad mySQLd). RRDtool vám ponúka nástroje na vytvorenie databázy a generovanie grafov.
Môj server vytvára grafy pravidelne a zobrazuje všetko na veľmi jednoduchej http stránke. Môžem si prečítať svoje údaje pomocou jednoduchého prehliadača po pripojení k webovému serveru Apache2 na Raspberry Pi!
Nakoniec som nemal FTDI (USB to Serial), takže som použil Arduino UNO. Musíte prepojiť TX a RX a GND ESP a UNO. (Viem, váš inštinkt vám môže povedať, aby ste prekročili RX a TX … skúsil to tiež, nefunguje.)
Neurobil som konverziu úrovne (UNO: High = 5V, ale ESP je v zásade zariadenie 3,3V … Na trhu je niekoľko pekných FTDI, kde si môžete dokonca vybrať vysokú úroveň 5 alebo 3,3V.
Môj obvod je napájaný 3 nabíjateľnými batériami AA - teda v skutočnosti 3 x 1,2 V. V neskoršej fáze mám v úmysle vložiť HT7333 medzi batériu a obvod kvôli bezpečnosti; novo nabité batérie môžu mať viac ako 1,2 V a ESP by mal byť napájaný min. 3V a max. 3,6 V. Tiež, ak sa rozhodnem - vo chvíli slabosti - vložiť alkalické batérie (3 X 1,5 V = 4,5 V), moje ESP nebude vyprážané!
Tiež som zvažoval použitie solárneho panelu 10 cm x 10 cm, ale nestálo to za to sa trápiť. Dúfam, že vykonaním 3 meraní za hodinu (v zásade 3x 5 sekúnd pri max. 100mA a zvyšnom čase pri 100uA) napájam svoj obvod 1 rok na rovnaké nabíjateľné batérie.
Krok 3: Časť Arduino - ESP12
Tento projekt som robil v rôznych krokoch.
Existuje niekoľko odkazov, ktoré vám pomôžu importovať ESP12 (aka. ESP8266) do Arduino IDE. (Musel som použiť verziu 2.3.0 namiesto najnovšej kvôli chybe, ktorá mohla byť medzitým vyriešená …)
Začal som zapojením ESP cez svoje Arduino UNO (používa sa iba ako most medzi mojím počítačom cez USB do sériového portu) do sériového rozhrania ESP. Vysvetľujú to samostatné pokyny.
V mojom dokončenom projekte som nechal káble na pripojenie k sériovému portu pre prípad, že by som niekedy potreboval vyriešiť problém. RX
Potom musíte zapojiť svoj ESP12 nasledovne:
Kolíky ESP…
GND UNO GND
RX UNO RX
TX UNO TX
EN VCC
GPIO15 GND
Spočiatku som sa pokúšal napájať môj ESP z 3,3 V na UNO, ale rýchlo som prešiel na napájanie svojho ESP pomocou stolného zdroja, ale môžete použiť aj batériu.
GPIO0 Pripojil som tento prepojkou na GND, aby bolo možné blikať (= programovať) ESP.
Prvý test: nechajte prepojku otvorenú a spustite sériový monitor v Arduino IDE (pri 115 200 baudoch!).
Vypnite a zapnite ESP, mali by ste vidieť niekoľko nezmyselných znakov a potom správu ako:
Ai-Thinker Technology Co. Ltd. pripravená
V tomto režime funguje ESP trochu ako zastaraný modem. Musíte použiť AT príkazy.
Skúste nasledujúce príkazy:
AT+RST
a nasledujúce dva príkazy
AT+CWMODE = 3
OK
AT+CWLAP
To by vám malo poskytnúť zoznam všetkých WiFi sietí v tejto oblasti.
Ak to funguje, ste pripravení na ďalší krok.
Krok 4: Testovanie ESP ako klienta NTP (Network Time Protocol)
Do IDE Arduino v časti Súbor, Príklady, ESP8266WiFi načítajte NTPClient.
Aby to fungovalo, sú potrebné drobné úpravy; musíte zadať SSID a heslo vašej siete WiFi.
Teraz umiestnite prepojku skratujúcu GPIO0 na GND.
Vypnite a zapnite ESP a nahrajte skicu do ESP.
Po kompilácii by sa malo začať nahrávanie do ESP. Modrá LED na ESP bude rýchlo blikať počas sťahovania kódu.
Všimol som si, že sa musím trochu pohrať s reštartovaním IDE, reštartovaním ESP, než bude nahrávanie fungovať.
Predtým, ako začnete zostavovať/nahrávať skicu, zatvorte sériovú konzolu (= sériový monitor), pretože vám to zabráni v odosielaní.
Akonáhle je nahrávanie úspešné, môžete znova otvoriť sériový monitor, aby ste videli, ako ESP efektívne získava čas z internetu.
Skvelé, naprogramovali ste ESP, pripojili sa k WiFi a získali ste čas z internetu.
V ďalšom kroku otestujeme DHT22.
Krok 5: Testovanie senzora DHT22
Teraz je potrebné ďalšie zapojenie.
Piny DHT … Pripojte pin 1 (vľavo) senzora k VCC (3,3 V)
Pripojte pin 2 ESP GPIO5 (DHTPIN v náčrte)
Pripojte kolík 4 (vpravo) senzora k ZEMNI
Pripojte 10K odpor z kolíka 2 (údaje) k kolíku 1 (výkon) senzora.
Podobne ako pri teste NTP, nájdite skicu DHTtester a upravte ju nasledujúcim spôsobom:
#define DHTPIN 5 // vybrali sme GPIO5 na pripojenie k senzoru#definujte DHTTYPE DHT22 // pretože používame DHT22, ale tento kód/knižnica je vhodná aj pre DHT11
Opäť zatvorte sériový monitor, vypnite a zapnite ESP a skompilovajte a flashujte ESP.
Ak všetko pôjde dobre, mali by ste vidieť merania uvedené na sériovom monitore.
So senzorom sa môžete trochu pohrať. Ak na to dýchate, uvidíte, ako vlhkosť stúpa.
Ak máte stolnú lampu (bez LED), môžete si na senzor posvietiť, aby sa trochu zahrial.
Skvelé! Dve veľké časti senzora teraz fungujú.
V ďalšom kroku sa vyjadrím ku konečnému kódu.
Krok 6: Spojenie …
Opäť nejaké ďalšie zapojenie … toto je, aby bol DeepSleep možný.
Pamätajte si, že DeepSleep je neuveriteľná funkcia pre zariadenia IoT.
Ak je však váš senzor pevne zapojený pre DeepSleep, môže byť ťažké preprogramovať ESP, takže urobíme ďalšie prepojovacie prepojenie medzi
GPIO16-RST.
Áno, MUSÍ to byť GPIO16, pretože to je GPIO, ktoré je pevne zapojené tak, aby prebudilo zariadenie, keď sa po DeepSleep vypnú hodiny reálneho času!
Počas testovania sa môžete rozhodnúť urobiť 15 -sekundový DeepSleep.
Keď som ladil, presunul som prepojku na GPIO0, aby som mohol flashovať svoj program.
Po dokončení sťahovania by som prepojku presunul na GPIO16, aby DeepSleep fungoval.
Kód pre ESP sa nazýva TnHclient.c
Musíte zmeniť svoje SSID, heslo a IP adresu servera.
Existujú ďalšie riadky kódu, ktoré môžete použiť na riešenie problémov alebo testovanie vášho nastavenia.
Krok 7: Serverová stránka vecí
Je bežným nedorozumením, že UDP je nespoľahlivý a TCP je …
Je to rovnako hlúpe, ako tvrdiť, že kladivo je užitočnejšie ako skrutkovač. Sú to jednoducho rôzne veľmi užitočné nástroje a obaja majú svoje využitie.
Mimochodom, bez UDP by internet nefungoval … DNS je založené na UDP.
Vybral som si preto UDP, pretože je veľmi ľahký, ľahký a rýchly.
Skôr si myslím, že moja WiFi je veľmi spoľahlivá, takže klient pošle maximálne 3 pakety UDP, ak potvrdí „OK!“nie je prijatý.
C-kód pre TnHserver je v súbore TnHServer.c.
V kóde je niekoľko komentárov, ktoré to vysvetľujú.
Na serveri budeme potrebovať ďalšie nástroje: rrdtool, apache a možno tcpdump.
Ak chcete nainštalovať rrdtool na Raspbian, môžete jednoducho nainštalovať balík takto: apt-get install rrdtool
Ak potrebujete ladiť sieťový prenos, príde vhod tcpdump apt-get install tcpdump
Potreboval som webový server, aby som mohol používať prehliadač na prezeranie grafov: apt-get install apache2
Na získanie príkazu na vytvorenie databázy Round Robin som použil tento nástroj: https://rrdwizard.appspot.com/index.php. Stačí, ak to spustíte raz (ak to pochopíte správne prvýkrát).
rrdtool create TnHdatabase.rrd-start now-10s
-krok '1200'
'DS: Teplota: GAUGE: 1200: -20,5: 45,5'
'DS: Vlhkosť: GAUGE: 1200: 0: 100,0'
'RRA: PRIEMER: 0,5: 1: 720'
'RRA: PRIEMER: 0,5: 3: 960'
„RRA: PRIEMER: 0,5: 18: 1600“
Nakoniec používam záznam crontab na reštartovanie môjho TnHservera každý deň o polnoci. Používam TnHserver ako normálneho používateľa (tj. NIE root) ako bezpečnostné opatrenie.
0 0 * * */usr/bin/pkill TnHserver; /home/user/bin/TnHserver>/dev/null 2> & 1
Vykonaním tohto postupu môžete skontrolovať, či je server TnHserver spustený
$ ps -elf | grep TnHserver
a môžete si overiť, že počúva pakety na porte 7777
$ netstat -anu
Aktívne internetové pripojenia (servery a zavedené)
Proto Recv-Q Send-Q Miestna adresa Štát zahraničnej adresy
udp 0 0 0.0.0.0:7777 0.0.0.0:*
Nakoniec CreateTnH_Graphs.sh.txt je ukážkový skript na generovanie grafov. (Skripty generujem ako root, možno to nebudete chcieť urobiť.)
Na veľmi jednoduchej webovej stránke môžete sledovať grafy z ľubovoľného prehliadača vo vašej domácej sieti.
Odporúča:
Ako si vyrobiť inteligentný domov pomocou reléového modulu Arduino - Myšlienky domácej automatizácie: 15 krokov (s obrázkami)
Ako vytvoriť inteligentný domov pomocou reléového modulu Arduino | Nápady na automatizáciu domácnosti: V tomto projekte automatizácie domácnosti navrhneme reléový modul inteligentnej domácnosti, ktorý dokáže ovládať 5 domácich spotrebičov. Tento reléový modul je možné ovládať z mobilného telefónu alebo smartfónu, diaľkového ovládača IR alebo televízora, manuálneho prepínača. Toto inteligentné relé môže cítiť aj
Batériový senzor dverí s integráciou domácej automatizácie, WiFi a ESP-TERAZ: 5 krokov (s obrázkami)
Batériový senzor dverí s integráciou domácej automatizácie, WiFi a ESP-TERAZ: V tomto návode vám ukážem, ako som vyrobil dverový senzor napájaný z batérie s integráciou domácej automatizácie. Videl som ďalšie pekné senzory a poplašné systémy, ale chcel som si ich vyrobiť sám. Moje ciele: Senzor, ktorý detekuje a hlási doo
Ovládajte domáce spotrebiče nad LoRa - LoRa v domácej automatizácii - Diaľkové ovládanie LoRa: 8 krokov
Ovládajte domáce spotrebiče nad LoRa | LoRa v domácej automatizácii | Diaľkové ovládanie LoRa: Ovládajte a automatizujte svoje elektrické spotrebiče na dlhé vzdialenosti (kilometre) bez internetu. To je možné prostredníctvom LoRa! Hej, čo sa deje, chlapci? Akarsh tu od CETech. Táto doska plošných spojov má tiež OLED displej a 3 relé, ktoré
Plánovanie systému domácej automatizácie pre domácich majstrov: 12 krokov
Plánovanie systému domácej automatizácie pre domácich majstrov: Cieľom tohto návodu nie je povedať vám, ako môžete robiť to, čo by ste chceli, aby robil váš domov. Namiesto toho bolo napísané, aby sa myšlienka stala realitou, ale tiež aby sa šialenstvo stalo rozumom tým, že pochopíte limity (technológie, náklady, časová náročnosť
Inteligentná hudba v spálni a vani s Raspberry Pi - integrácia multiroomu, alarmu, ovládania tlačidlami a domácej automatizácie: 7 krokov
Inteligentná hudba v spálni a vani s Raspberry Pi - integrácia multiroomu, alarmu, ovládania tlačítkami a domácej automatizácie: Dnes vám chceme dať dva príklady toho, ako môžete Raspberry Pi používať s naším softvérom Max2Play na domácu automatizáciu: v kúpeľni a spálni . Oba projekty sú podobné v tom, že hudbu s vysokou vernosťou z rôznych zdrojov je možné streamovať prostredníctvom