Cuprins:
- Provizii
- Pasul 1: Pregătirea hardware-ului
- Pasul 2: Instalarea Cloud4RPi
- Pasul 3: Conectarea senzorului
- Pasul 4: Trimiterea citirilor senzorilor în cloud
- Pasul 5: diagrame și alarme
Video: Umiditate în nor: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Vine vara, iar cei fără aer condiționat ar trebui să fie pregătiți să controleze manual atmosfera din interior. În această postare descriu modul modern de măsurare a celor mai importanți parametri pentru confortul uman: temperatura și umiditatea. Aceste date colectate sunt trimise în cloud și procesate acolo.
Provizii
Folosesc o placă Raspberry Pi și senzorul DHT22. Puteți face același lucru pe orice computer care are Internet, GPIO și Python. Senzorul DHT11 mai ieftin funcționează bine.
Pasul 1: Pregătirea hardware-ului
Să începem de la bun început, deoarece nu am folosit Raspberry Pi de mult timp.
Noi vom avea nevoie:
- Placă Raspberry Pi (sau altă platformă orientată spre IoT).
- Card SD sau microSD (în funcție de platformă).
- 5V / 1A prin cablu micro-USB. LAN, care asigură conexiunea la internet.
- Afișaj HDMI, afișaj RCA sau port UART (pentru a activa SSH).
Primul pas este descărcarea Raspbian. Am ales versiunea Lite, deoarece voi folosi SSH în loc de afișare.
Lucrurile s-au schimbat de la ultima dată când am făcut-o: acum există un software excelent numit Etcher, care funcționează perfect și are un design uimitor.
După ce s-a finalizat arderea imaginii, am introdus cardul SD în Pi, am conectat cablurile LAN și de alimentare și, după un timp, routerul meu a înregistrat noul dispozitiv.
Grozav! Să continuăm și SSH în el.
Securitatea este OK, îmi place, dar acest lucru îngreunează lucrurile. Voi folosi adaptorul UART-USB pentru a accesa shell-ul și a activa SSH …
Utilizarea unui afișaj în locul UART îl face mult mai ușor.
După repornire, sunt în sfârșit.
În primul rând, să actualizăm:
sudo apt update && sudo apt upgrade -y
Acum să conectăm acest dispozitiv nou la Cloud.
Pasul 2: Instalarea Cloud4RPi
Am decis să încerc platforma cloud numită Cloud4RPi, care este concepută pentru IoT.
Conform documentelor, avem nevoie de următoarele pachete pentru a-l rula:
sudo apt instalează git python3 python3-pip -y
Biblioteca client poate fi instalată într-o singură comandă:
sudo pip3 instalează cloud4rpi
Acum avem nevoie de câteva exemple de cod.
git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python
Scriptul executabil este control.py.
Avem nevoie de un simbol, care să permită Cloud4RPi să conecteze dispozitivele cu conturile. Pentru a obține unul, creați un cont pe cloud4rpi.io și apăsați butonul Dispozitiv nou de pe această pagină. Înlocuiți șirul _YOUR_DEVICE_TOKEN_ din fișierul control.py cu simbolul dispozitivului dvs. și salvați fișierul. Acum suntem pregătiți pentru prima lansare.
sudo python3 control.py
Deschideți pagina dispozitivului și verificați dacă datele sunt acolo.
Acum să trecem la date din lumea reală.
Pasul 3: Conectarea senzorului
Noi vom avea nevoie:
- Senzor de umiditate DHT22 sau DHT11
- Rezistor de tragere (5-10 KΩ)
- Firele
Senzorul DHT22 măsoară simultan temperatura și umiditatea. Protocolul de comunicație nu este standardizat, deci nu este nevoie să îl activăm în raspi-config - un simplu pin GPIO este mai mult decât suficient.
Pentru a achiziționa datele, voi folosi marea bibliotecă Adafruit pentru senzorii DHT, dar este posibil să nu funcționeze așa cum este. Odată am găsit o întârziere constantă ciudată în cod, care nu a funcționat pentru hardware-ul meu și, după doi ani, solicitarea mea de pull este încă în așteptare. De asemenea, am schimbat constantele de detectare a plăcii deoarece Raspberry Pi 1 cu BCM2835 a fost surprinzător detectat ca Raspberry Pi 3. Mi-aș dori să fie adevărat … Astfel, vă recomand să folosiți furca mea. Dacă aveți probleme cu acesta, vă rugăm să încercați depozitul original, poate că funcționează pentru cineva, dar nu sunt unul dintre ei.
git clone https://github.com/Himura2la/Adafruit_Python_DHT.gitcd Adafruit_Python_DHT
Deoarece biblioteca este scrisă în C, necesită compilare, deci aveți nevoie de pachetele build-essential și python-dev.
sudo apt install build-essential python-dev -ysudo python setup.py install
În timp ce pachetele se instalează, conectați DHT22 așa cum se arată în imagine.
Și testați-l:
cd ~ python -c "import Adafruit_DHT ca d; print d.read_retry (d. DHT22, 4)"
Dacă vedeți ceva de genul (39.20000076293945, 22.600000381469727), ar trebui să știți că aceasta este umiditatea în procente și temperatura în grade Celsius.
Acum, să asamblăm totul împreună!
Pasul 4: Trimiterea citirilor senzorilor în cloud
Voi folosi control.py ca bază și voi adăuga interacțiunea DHT22 în ea.
cp cloud4rpi-raspberrypi-python / control.py./cloud_dht22.pycp cloud4rpi-raspberrypi-python / rpi.py./rpi.pyvi cloud_dht22.py
Eliminați codul eșantion ca în imaginea de mai sus.
Deoarece DHT22 returnează atât temperatura, cât și umiditatea într-un singur apel, le voi stoca la nivel global și le voi actualiza o singură dată într-o solicitare, presupunând că întârzierea dintre ele este mai mare de 10 secunde. Luați în considerare următorul cod, care dobândește datele DHT22:
import Adafruit_DHT
temp, hum = None, None
last_update = time.time () - 20
def update_data ():
global last_update, hum, temp if time.time () - last_update> 10: hum, temp = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22, 4) last_update = time.time ()
def get_t ():
update_data () return round (temp, 2) if temp is not None else None get get_h (): update_data () return round (hum, 2) if hum is None
Introduceți acest cod după importurile existente și editați secțiunea variabile astfel încât să utilizeze noile funcții:
variables = {'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Umiditate': {'type': 'numeric', 'bind': get_h}, 'CPU Temp': {'type': 'numeric', 'bind': cpu_temp}}
Dacă considerați că aceste manipulări sunt confuze, apucați versiunea finală a acestui fișier. Apăsați butonul roșu pentru a începe transferul de date:
Apoi, puteți verifica pagina dispozitivului.
python3 cloud_dht22.py
Apoi puteți verifica pagina dispozitivului.
O puteți lăsa așa cum este, dar prefer să am un serviciu pentru toate. Acest lucru asigură că scriptul rulează întotdeauna. Crearea unui serviciu cu scriptul complet automatizat pe care îl aveți deja în directorul cloud4rpi-raspberrypi-python:
service_install.sh cloud_dht22.py
Pornirea serviciului:
sudo service cloud4rpi start
Și verificându-l:
pi @ raspberrypi: ~ $ sudo service cloud4rpi status -l ● cloud4rpi.service - Daemon Cloud4RPi Încărcat: încărcat (/lib/systemd/system/cloud4rpi.service; activat) Activ: activ (rulează) de miercuri 2017-05-17 20: 22: 48 UTC; Acum 1min PID principal: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560 / usr / bin / python /home/pi/cloud_dht22.py
17 mai 20:22:51 raspberrypi python [560]: Publicarea iot-hub / mesaje: {'type': 'config', 'ts': '2017-05-17T20 … y'}]}
17 mai 20:22:53 raspberrypi python [560]: Publicarea iot-hub / mesaje: {'type': 'data', 'ts': '2017-05-17T20: 2 … 40'}} 17 mai 20: 22:53 raspberrypi python [560]: Publicarea iot-hub / mesaje: {'type': 'system', 'ts': '2017-05-17T20 ….4'}}
Dacă totul funcționează conform așteptărilor, putem continua și folosi capacitățile platformei Cloud4RPi pentru a manipula datele.
Pasul 5: diagrame și alarme
În primul rând, să trasăm variabilele pentru a vedea cum se schimbă. Acest lucru se poate face prin adăugarea unui nou panou de control și prin introducerea diagramelor necesare.
Un alt lucru pe care îl putem face aici este setarea unei Alerte. Această caracteristică vă permite să configurați intervalul sigur pentru o variabilă. De îndată ce intervalul este depășit, acesta trimite o notificare prin e-mail. Pe pagina de editare a Panoului de control, puteți trece la Alerte și setați una.
Imediat după aceea, umiditatea din camera mea a început să scadă rapid fără niciun motiv vizibil, iar alarma a urmat în curând.
Puteți folosi Cloud4RPi gratuit cu orice hardware capabil să execute Python. În ceea ce mă privește, acum știu întotdeauna când să pornesc umidificatorul de aer și chiar îl pot conecta la un releu pentru control de la distanță prin Cloud4RPi. Sunt pregătit pentru căldură! Bine ai venit, vara!
Cu Cloud4RPi, puteți controla de la distanță Raspberry Pi și alte dispozitive IoT în timp real. Vizitați site-ul nostru și conectați gratuit dispozitive nelimitate.
Recomandat:
Antenă radio Ham Ham Quarth Wave Dual Band VHF / UHF de Asni Nor Rizwan: 10 pași
Antenă radio Ham Ham Quarth Wave Dual Band VHF / UHF de Asni Nor Rizwan: A Simple & Antenă dual band ieftină vă va economisi să aveți două antene diferite pentru UHF și VHF
Construiți un senzor de calitate a aerului IoT intern Nu este necesar un nor: 10 pași
Construiți un senzor de calitate a aerului IoT intern Nu este necesar un nor: Calitatea aerului interior sau exterior depinde de multe surse de poluare și, de asemenea, de vreme. Temperatură Umiditate Presiune Gaz organicMicro
Automatizarea unei sere cu LoRa! (Partea 1) -- Senzori (temperatură, umiditate, umiditate a solului): 5 pași
Automatizarea unei sere cu LoRa! (Partea 1) || Senzori (temperatură, umiditate, umiditate a solului): În acest proiect vă voi arăta cum am automatizat o seră. Asta înseamnă că vă voi arăta cum am construit sera și cum am conectat electronica de putere și automatizare. De asemenea, vă voi arăta cum să programați o placă Arduino care utilizează L
Nor artificial: 3 pași
Nor artificial: Bună ziua tuturor, astăzi voi face un nor artificial de culoare curcubeu
Monitor de umiditate fără fir (ESP8266 + senzor de umiditate): 5 pași
Monitor de umiditate fără fir (ESP8266 + senzor de umiditate): Cumpăr pătrunjel în oală, iar cea mai mare parte a zilei, solul era uscat. Deci, decid să fac acest proiect, despre detectarea umezelii solului în oală cu pătrunjel, pentru a verifica, când am nevoie să turn sol cu apă. Cred că acest senzor (senzor capacitiv de umiditate v1.2) este bun pentru că