Sisukord:
- 1. samm: minge ostlema
- Samm: seadistamine ja taust
- Samm: Arduino - ESP12 osa
- 4. samm: ESP kui võrguajaprotokolli (NTP) kliendi testimine
- Samm 5: DHT22 anduri testimine
- 6. samm: selle kokkupanek…
- Samm: asjade serveripool
Video: Koduvõrgu temperatuuriandur: 7 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Mida peate selle projekti tegemiseks teadma:
Peate teadma järgmist:- Mõned elektroonikaoskused (jootmine)
- Linux
- Arduino IDE
(peate IDE -s täiendavaid tahvleid värskendama:
- ESP -plaadi värskendamine/programmeerimine Arduino IDE kaudu.
(veebis on saadaval mõnusaid õpetusi)
Seda saab teha Arduino Uno või FTDI (USB -jadaadapter) abil.
Kasutasin oma Unot, kuna mul ei olnud arvutis jadaporti ega FTDI -d
1. samm: minge ostlema
Mida vajate, et see teoks saaks?
Digitaalse temperatuuri ja niiskuse anduri jaoks:
- Kas leivaplaat või alternatiiv, näiteks PCB prototüüp, jootetool, jootekolb…
- Mingi traat
- kaks hüppajat
- 10 kΩ takisti
- ESP12F (teised mudelid võivad ka töötada …)
- DHT22 (natuke kallim kui DHT11, kuid täpsem)
- 3 AA laetavat patareid ja patareipesa
- väike plastkarp, kuhu oma projekt panna
- Hilisemal etapil kavatsen lisada aku ja ESP vahele HT7333 koos kahe 10uF kondensaatoriga
sisendpinge (VCC) stabiliseerimiseks soovitatud 3,3 V -ni, aga ka ESP kaitsmiseks ülepinge eest.
Võrgu osa jaoks:
- teie kodu WiFi -võrk
Serveri osas:
- Mis tahes Linuxil põhinev süsteem (alati sisse lülitatud!)
Kasutasin Raspberry Pi (mida kasutan ka oma välistingimustes kasutatavate IP -kaamerate serverina.)
- gcc kompilaator teie serveri koodi kompileerimiseks
- rrdtooli pakett andmete salvestamiseks ja graafikute loomiseks
- apache (või mõni muu veebiserver)
Teie lemmikarvuti või sülearvuti, millel on Arduino IDE.
Samm: seadistamine ja taust
Selles ühendatud WiFi versioonis - et mitte öelda IOT - temperatuuri- ja niiskusandurit kasutasin ESP12F, DHT22 ja 3 AA patareipesa koos laetavate akudega.
Iga 20 minuti järel võtab ESP mõõtmise DHT22 -st ja saadab selle minu koduse WiFi -võrgu UDP kaudu serverisse (Raspberry Pi). Pärast mõõtmiste saatmist läheb ESP sügavasse unne. See tähendab, et ainult mooduli reaalajas kell jääb toiteks, mille tulemuseks on uskumatu energiasääst. Umbes 5 sekundit vajab moodul umbes 100 mA, seejärel 20 minuti jooksul ainult 150 uA.
Ma ei tahtnud kasutada ühtegi Interneti -põhist teenust, sest mul on oma Raspberry Pi, mis on alati sisse lülitatud, ja sel viisil oli mul rõõm kirjutada ka serveriosa.
Serverisse (Raspberry Pi, mis töötab Raspbianiga) olen kirjutanud lihtsa UDP kuulaja (serveri), mis salvestab väärtused lihtsasse RRD -sse. (Round Robini andmebaas, kasutades RRDtooli, autor Tobias Oetiker.)
RRDtooli eeliseks on see, et loote oma andmebaasi üks kord ja selle suurus jääb samaks. Muidu ei pea taustal töötama andmebaasiserver (nagu mySQLd). RRDtool annab teile tööriistad andmebaasi loomiseks ja graafikute loomiseks.
Minu server loob graafikud perioodiliselt ja kuvab kõik väga lihtsal http -lehel. Ma saan oma näitu vaadata lihtsa brauseriga, kui ühendan Raspberry Pi Apache2 veebiserveriga!
Lõpuks ei olnud mul FTDI -d (USB to Serial), nii et ma kasutasin oma Arduino UNO -d. Peate ühendama TX -id ja RX -id ning ESP ja UNO GND. (Ma tean, et teie sisetunne võib teile öelda, et peate RX -i ja TX -i ületama… proovinud ka, ei tööta.)
Ma ei teinud taseme muundamist (UNO: kõrge = 5 V, kuid ESP on põhimõtteliselt 3,3 V seade … Turul on mõningaid toredaid FTDI -sid, kus saate isegi valida oma kõrge taseme 5 või 3,3 V.
Minu vooluahelat toidavad 3 AA laetavat patareid - seega tegelikult 3 X 1,2 V. Hilisemas etapis kavatsen ohutuse tagamiseks panna aku ja vooluahela vahele HT7333; äsja laetud akudel võib olla rohkem kui 1,2 V ja ESP toiteallikaks peab olema min. 3V ja max. 3.6V. Samuti, kui ma nõrkusehetkel otsustan leelispatareid (3 X 1,5 V = 4,5 V) sisse panna, ei hakka mu ESP praadima!
Kaalusin ka 10cm x 10cm päikesepaneeli kasutamist, kuid see ei olnud lihtsalt vaeva väärt. Tehes 3 mõõtmist tunnis (põhimõtteliselt 3x 5 sekundit @ 100mA max ja ülejäänud aja @ 100uA), loodan ma oma vooluringi 1 aastaks toita samadel laetavatel patareidel.
Samm: Arduino - ESP12 osa
Tegin seda projekti erinevates etappides.
On mitmeid linke, mis aitavad teil importida ESP12 (teise nimega ESP8266) Arduino IDE -sse. (Pidin kasutama versiooni 2.3.0 viimase asemel, kuna viga oli vahepeal lahendatud …)
Alustasin ESP ühendamisega oma Arduino UNO kaudu (kasutatakse ainult sillana arvuti vahel USB kaudu jadaliidese kaudu) ESP jadaliidesesse. Seda selgitavad eraldi juhendid.
Lõpetasin oma valmis projektis juhtmed, et ühendada Serialiga juhuks, kui peaksin kunagi tõrkeotsingut tegema. RX
Seejärel peate oma ESP12 ühendama järgmiselt:
ESP tihvtid…
GND UNO GND
RX UNO RX
TX UNO TX
ET VCC
GPIO15 GND
Esialgu proovisin oma ESP -d toita UNO 3,3 V toiteallikast, kuid hakkasin kiiresti ESP -d toiteallikaga varustama, kuid saate ka oma akut kasutada.
GPIO0 Ühendasin selle hüppajaga GND -ga, et võimaldada ESP vilkumist (= programmeerimist).
Esimene test: jätke hüppaja lahti ja käivitage Arduino IDE -s jadamonitor (115200 baud!).
Kui lülitate ESP -i sisse, peaksite nägema mõnda prügi ja seejärel sõnumit:
Ai-Thinker Technology Co. Ltd. valmis
Selles režiimis toimib ESP natuke nagu vanamoodne modem. Peate kasutama AT -käske.
Proovige järgmisi käske:
AT+RST
ja kaks järgmist käsku
AT+CWMODE = 3
Okei
AT+CWLAP
See peaks andma teile kõigi piirkonna WiFi -võrkude loendi.
Kui see töötab, olete järgmise sammu jaoks valmis.
4. samm: ESP kui võrguajaprotokolli (NTP) kliendi testimine
Laadige Arduino IDE jaotises Fail, näited, ESP8266WiFi alla NTPClient.
Selle toimimiseks on vaja teha väikeseid muudatusi; peate sisestama oma WiFi -võrgu SSID ja parooli.
Nüüd asetage hüppaja, lühistades GPIO0 GND -ga.
Lülitage ESP sisse ja lülitage eskiis ESP -sse üles.
Pärast koostamist peaks alustama üleslaadimist ESP -sse. Koodi allalaadimisel hakkab ESP sinine LED vilkuma kiiresti.
Märkasin, et pidin natuke mängima IDE taaskäivitamisega, ESP taaskäivitamine enne üleslaadimise toimimist.
Enne visandi koostamise/üleslaadimise alustamist sulgege kindlasti jadakonsool (= jadamonitor), kuna see takistab teil üleslaadimist.
Kui üleslaadimine on õnnestunud, saate seeriamonitori uuesti avada, et näha, kas ESP saab Internetist aega.
Suurepärane, olete programmeerinud oma ESP, ühendanud oma WiFi -ga ja saanud internetist aega.
Järgmisena testime DHT22.
Samm 5: DHT22 anduri testimine
Nüüd on vaja täiendavaid juhtmeid.
DHT -tihvtid … Ühendage anduri tihvt 1 (vasakul) VCC -ga (3,3 V)
Ühendage tihvt 2 ESP GPIO5 (visandis DHTPIN)
Ühendage anduri tihvt 4 (paremal) maandusega
Ühendage 10K takisti kontaktist 2 (andmed) anduri kontakti 1 (toide).
Sarnaselt NTP -testile otsige üles DHTtesteri visand ja kohandage seda järgmisel viisil:
#define DHTPIN 5 // valisime anduriga ühendamiseks GPIO5#defineerime DHTTYPE DHT22 // kuna kasutame DHT22, kuid see kood/teek sobib ka DHT11 jaoks
Jällegi sulgege jadamonitor, lülitage ESP sisse ja lülitage ESP kokku ja vilgutage.
Kui kõik läheb hästi, peaksite mõõtmisi näitama jadamonitoril.
Anduriga saab natuke mängida. Kui te sellele sisse hingate, näete, et niiskus tõuseb.
Kui teil on (mitte -LED) laualamp, võite anduril särada, et seda veidi soojendada.
Suurepärane! Kaks suurt anduri osa töötavad nüüd.
Järgmises etapis kommenteerin lõplikku koodi.
6. samm: selle kokkupanek…
Jällegi täiendavad juhtmed … see teeb DeepSleepi võimalikuks.
Pidage meeles, et DeepSleep on IoT -seadmete jaoks uskumatu funktsioon.
Kui aga teie andur on DeepSleepi jaoks juhtmega ühendatud, võib ESP -i ümberprogrammeerimine olla keeruline, nii et teeme uue hüppajaühenduse
GPIO16-RST.
Jah, see PEAB olema GPIO16, sest see on GPIO, mis on ühendatud seadme äratamiseks, kui reaalajas kell kustub pärast DeepSleepi!
Testimise ajal võite otsustada teha 15 -sekundilise DeepSleepi.
Silumise ajal nihutasin hüppaja GPIO0 -le, et saaksin oma programmi välgutada.
Kui allalaadimine on lõpule viidud, liigutaksin hüppaja GPIO16 -le, et DeepSleep töötaks.
ESP koodi nimetatakse TnHclient.c
Peate muutma oma SSID -d, parooli ja serveri IP -aadressi.
Seal on täiendavaid koodiridu, mida saate kasutada seadistuste tõrkeotsinguks või testimiseks.
Samm: asjade serveripool
On levinud arusaamatus, et UDP on ebausaldusväärne ja TCP on…
See on sama rumal kui öelda, et haamer on kasulikum kui kruvikeeraja. Need on lihtsalt erinevad väga kasulikud tööriistad ja mõlemal on oma kasutusotstarve.
Muide, ilma UDP -ta Internet ei töötaks … DNS põhineb UDP -l.
Niisiis, valisin UDP, kuna see on väga kerge, lihtne ja kiire.
Kaldun arvama, et minu WiFi on väga usaldusväärne, nii et klient saadab maksimaalselt 3 UDP -paketti, kui kinnitus "OK!" pole vastu võetud.
TnHserveri C-kood on failis TnHServer.c.
Koodis on mitmeid selgitusi.
Vajame serveris lisatööriistu: rrdtool, apache ja võib -olla tcpdump.
Rrdtooli installimiseks Raspbiani saate selle paketi lihtsalt installida järgmiselt: apt-get install rrdtool
Kui teil on vaja võrguliiklust siluda, on tcpdump abiks apt-get install tcpdump
Vajasin veebiserverit, et saaksin graafikutega tutvumiseks brauserit kasutada: apt-get install apache2
Round Robini andmebaasi loomise käsu saamiseks kasutasin seda tööriista: https://rrdwizard.appspot.com/index.php. Peate selle käivitama ainult üks kord (kui saate esimest korda õigesti aru).
rrdtool loo TnHdatabase.rrd-alusta kohe-10s
-samm "1200"
"DS: temperatuur: GAUGE: 1200: -20,5: 45,5"
"DS: niiskus: GAUGE: 1200: 0: 100.0"
"RRA: KESKMINE: 0,5: 1: 720"
"RRA: KESKMINE: 0,5: 3: 960"
"RRA: KESKMINE: 0,5: 18: 1600"
Lõpuks kasutan iga päev keskööl TnHserveri taaskäivitamiseks crontab -kirjet. Käitan TnHserverit tavakasutajana (st. EI ole juur) turvameetmena.
0 0 * * */usr/bin/pkill TnHserver; /home/user/bin/TnHserver>/dev/null 2> & 1
Seda tehes saate kontrollida, kas TnHserver töötab
$ ps -ise | grep TnHserver
ja te saate kontrollida, kas see kuulab portide 7777 pakette
$ netstat -anu
Aktiivsed Interneti -ühendused (serverid ja loodud)
Proto Recv-Q Send-Q Kohalik aadress Välis-aadressriik
udp 0 0 0.0.0.0:7777 0.0.0.0:*
Lõpuks CreateTnH_Graphs.sh.txt on diagrammide genereerimise näidisskript. (Ma genereerin skripte juurjuurina, te ei pruugi seda teha.)
Väga lihtsa veebilehe abil saate vaadata graafikuid oma koduvõrgu mis tahes brauserist.
Soovitan:
DIY temperatuuriandur ühe dioodi abil: 3 sammu
DIY temperatuuriandur ühe dioodi abil: Nii et üks faktidest PN-ristmike kohta on see, et nende ettepoole suunatud pingelangus muutub vastavalt läbivoolule ja ka ristmiku temperatuurile, kasutame seda lihtsa odava temperatuurianduri valmistamiseks .Seda seadistust kasutatakse tavaliselt
TMP36 temperatuuriandur ja LCD -ekraan Arduino (Tinkercad) abil: 7 sammu
TMP36 temperatuuriandur ja LCD -ekraan Arduino (Tinkercad) abil: Tere kõigile! Oleme üliõpilased Tun Hussein Onn Malaisia ülikoolist (UTHM), kes viivad läbi projekti, et näidata, kuidas saame simuleerida temperatuuriandurit, LCD -d ja Arduinot, kasutades Tinkercadi UQD0801 (Robocon 1) õppekava osana (
IoT-Ubidots-ESP32+pikaajaline traadita vibratsiooni- ja temperatuuriandur: 7 sammu
IoT-Ubidots-ESP32+kaugjuhtimispuldi vibratsiooni ja temperatuuri andur: vibratsioon on tõepoolest mootoriga seadmete vidinate masinate ja komponentide edasi-tagasi liikumine või võnkumine. Vibratsioon tööstussüsteemis võib olla probleemide sümptom või motiiv või seostada igapäevase kasutamisega. Näiteks osci
Stemma niiskus- ja temperatuuriandur: 5 sammu
Stemma niiskus- ja temperatuuriandur: Stemma pinnaseandur kasutab taimedes niiskustaseme tuvastamiseks ühte sondi. Samuti saab see tuvastada ümbritseva õhu temperatuuri mikrokontrolleri sisemise temperatuurianduri abil. See seade ei vaja jootmist
Koduvõrgu seadistamine: 6 sammu
Koduvõrgu seadistamine: Võrgu seadistamine võib esialgu tunduda hirmutav, kuid kui teil on kõik vajalik olemas, on seda väga lihtne teha. Traditsiooniline seadistus nõuab modemit ja ruuterit, kuid mõned võivad vajada rohkem seadmeid ja mõned vähem. Neid on palju erinevaid