Cuprins:

Umiditate în nor: 5 pași
Umiditate în nor: 5 pași

Video: Umiditate în nor: 5 pași

Video: Umiditate în nor: 5 pași
Video: Carla's Dreams - Imperfect | Official Video 2024, Iulie
Anonim
Umiditate în nor
Umiditate în nor

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

Pregătirea hardware-ului
Pregătirea hardware-ului
Pregătirea hardware-ului
Pregătirea hardware-ului
Pregătirea hardware-ului
Pregătirea hardware-ului
Pregătirea hardware-ului
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

Instalarea Cloud4RPi
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

Conectarea senzorului
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

Trimiterea citirilor senzorilor în cloud
Trimiterea citirilor senzorilor în cloud
Trimiterea citirilor senzorilor în cloud
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

Diagramele și alarmele
Diagramele și alarmele
Diagramele și alarmele
Diagramele și alarmele
Diagramele și alarmele
Diagramele și alarmele

Î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: