Taula de continguts:

Humitat al núvol: 5 passos
Humitat al núvol: 5 passos

Vídeo: Humitat al núvol: 5 passos

Vídeo: Humitat al núvol: 5 passos
Vídeo: El Secreto para el SUEÑO MÁS PROFUNDO ¡Mejora tu Memoria! (Nidra) 2024, De novembre
Anonim
Humitat al núvol
Humitat al núvol

Arriba l’estiu i els que no disposin d’aire condicionat haurien d’estar preparats per controlar manualment l’atmosfera a l’interior. En aquest post, descric la forma moderna de mesurar els paràmetres més importants per a la comoditat humana: temperatura i humitat. Aquestes dades recollides s’envien al núvol i s’hi processen.

Subministraments

Estic fent servir una placa Raspberry Pi i el sensor DHT22. Podeu fer el mateix en qualsevol equip que tingui Internet, GPIO i Python. El sensor DHT11 més barat també funciona bé.

Pas 1: Preparació del maquinari

Preparació de maquinari
Preparació de maquinari
Preparació del maquinari
Preparació del maquinari
Preparació del maquinari
Preparació del maquinari
Preparació del maquinari
Preparació del maquinari

Comencem des del primer moment, ja que fa temps que no vaig fer servir el meu Raspberry Pi.

Necessitarem:

  • Taula Raspberry Pi (o una altra plataforma orientada a l'IoT).
  • Targeta SD o microSD (segons la plataforma).
  • 5V / 1A mitjançant cable micro-USB. LAN, que proporciona la connexió a Internet.
  • Pantalla HDMI, pantalla RCA o port UART (per habilitar SSH).

El primer pas és descarregar Raspbian. He triat la versió Lite, ja que utilitzaré SSH en lloc de mostrar-lo.

Les coses han canviat des de la darrera vegada que ho vaig fer: ara hi ha un gran programari de gravació anomenat Etcher, que funciona perfectament i té un disseny impressionant.

Un cop finalitzada la gravació de la imatge, vaig introduir la targeta SD al meu Pi, vaig connectar la LAN i els cables d’alimentació i, al cap d’un temps, el router va registrar el nou dispositiu.

Genial! Continuem amb SSH.

La seguretat està bé, m’agrada, però això fa que les coses siguin una mica més difícils. Faré servir l’adaptador UART-USB per accedir a l’intèrpret d’ordres i activar SSH …

L’ús d’una pantalla en lloc d’UART ho fa molt més fàcil.

Després de reiniciar, finalment hi sóc.

Primer de tot, actualitzem:

sudo apt update && sudo apt upgrade -y

Ara connectem aquest nou dispositiu al núvol.

Pas 2: Instal·lació de Cloud4RPi

Instal·lació de Cloud4RPi
Instal·lació de Cloud4RPi

Vaig decidir provar la plataforma de núvol anomenada Cloud4RPi, que està dissenyada per a IoT.

Segons els documents, necessitem els paquets següents per executar-lo:

sudo apt install git python3 python3-pip -y

La biblioteca client es pot instal·lar en una sola ordre:

sudo pip3 instal·la cloud4rpi

Ara necessitem algun codi de mostra.

git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python

L'escript executable és control.py.

Necessitem un testimoni que permeti a Cloud4RPi enllaçar els dispositius amb els comptes. Per obtenir-ne un, creeu un compte a cloud4rpi.io i premeu el botó Nou dispositiu en aquesta pàgina. Substituïu la cadena _YOUR_DEVICE_TOKEN_ del fitxer control.py pel testimoni del dispositiu i deseu-lo. Ara estem preparats per al primer llançament.

sudo python3 control.py

Obriu la pàgina del dispositiu i comproveu que hi hagi dades.

Ara passem a les dades del món real.

Pas 3: Connexió del sensor

Connexió del sensor
Connexió del sensor

Necessitarem:

  • Sensor d’humitat DHT22 o DHT11
  • Resistència de tracció (5-10 KΩ)
  • WiresThe

El sensor DHT22 mesura la temperatura i la humitat simultàniament. El protocol de comunicació no està estandarditzat, de manera que no necessitem habilitar-lo a raspi-config: un simple pin GPIO és més que suficient.

Per adquirir les dades, faré servir la gran biblioteca d’Adafruit per a sensors DHT, però potser no funcioni tal com és. Una vegada vaig trobar un estrany retard constant en el codi, que no funcionava per al meu maquinari i, al cap de dos anys, la meva sol·licitud d'extracció encara està pendent. També he canviat les constants de detecció de la placa perquè el meu Raspberry Pi 1 amb BCM2835 es va detectar sorprenentment com a Raspberry Pi 3. M'agradaria que fos cert … Per tant, recomano utilitzar la meva forquilla. Si teniu algun problema, proveu el repositori original, potser funciona per a algú, però jo no en sóc cap.

git clon https://github.com/Himura2la/Adafruit_Python_DHT.gitcd Adafruit_Python_DHT

Com que la biblioteca està escrita en C, requereix una compilació, de manera que necessiteu els paquets build-essential i python-dev.

sudo apt install build-essential python-dev -ysudo python setup.py install

Mentre s’instal·len els paquets, connecteu el DHT22 tal com es mostra a la imatge.

I proveu-ho:

cd ~ python -c "importa Adafruit_DHT com a d; imprimeix d.read_retry (d. DHT22, 4)"

Si veieu alguna cosa com (39.20000076293945, 22.600000381469727), heu de saber que aquesta és la humitat en percentatges i la temperatura en centígrads.

Ara, muntem-ho tot junts!

Pas 4: enviament de lectures del sensor al núvol

Enviament de lectures de sensors al núvol
Enviament de lectures de sensors al núvol
Enviament de lectures de sensors al núvol
Enviament de lectures de sensors al núvol

Faré servir el control.py com a base i hi afegiré la interacció DHT22.

cp cloud4rpi-raspberrypi-python / control.py./cloud_dht22.pycp cloud4rpi-raspberrypi-python / rpi.py./rpi.pyvi cloud_dht22.py

Elimineu el codi de mostra com a la imatge superior.

Com que DHT22 retorna la temperatura i la humitat en una sola trucada, les emmagatzemaré globalment i les actualitzaré només una vegada en una sol·licitud, suposant que el retard entre elles sigui superior a 10 segons. Penseu en el codi següent, que adquireix les dades DHT22:

importa 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 def get_h (): update_data () return round (hum, 2) if hum is not None else None

Inseriu aquest codi després de les importacions existents i editeu la secció de variables perquè utilitzi les noves funcions:

variables = {'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Humidity': {'type': 'numeric', 'bind': get_h}, 'CPU Temp': {'type': 'numeric', 'bind': cpu_temp}}

Si trobeu que les manipulacions són confuses, agafeu la versió final d’aquest fitxer. Premeu el botó vermell per iniciar la transferència de dades:

A continuació, podeu consultar la pàgina del dispositiu.

python3 cloud_dht22.py

A continuació, podeu consultar la pàgina del dispositiu.

Podeu deixar-ho tal qual, però prefereixo tenir un servei per a tot. Això garanteix que l'script sempre s'està executant. Creació d'un servei amb l'script totalment automatitzat que ja teniu al directori cloud4rpi-raspberrypi-python:

service_install.sh cloud_dht22.py

Inici del servei:

sudo service cloud4rpi start

I comprovant-ho:

pi @ raspberrypi: ~ $ sudo service cloud4rpi status -l ● cloud4rpi.service - Dimoni Cloud4RPi Carregat: carregat (/lib/systemd/system/cloud4rpi.service; activat) Actiu: actiu (en execució) des de dimecres 2017-05-17 20: 22: 48 UTC; Fa 1 minut PID principal: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560 / usr / bin / python /home/pi/cloud_dht22.py

17 de maig 20:22:51 raspberrypi python [560]: Publicació de iot-hub / missatges: {'type': 'config', 'ts': '2017-05-17T20 … y'}]}

17 de maig 20:22:53 raspberrypi python [560]: Publicació de iot-hub / messages: {'type': 'data', 'ts': '2017-05-17T20: 2 … 40'}} 17 de maig 20: 22:53 raspberrypi python [560]: Publicació de iot-hub / missatges: {'type': 'system', 'ts': '2017-05-17T20 ….4'}}

Si tot funciona com s’esperava, podem continuar i utilitzar les capacitats de la plataforma Cloud4RPi per manipular les dades.

Pas 5: gràfics i alarmes

Gràfics i alarmes
Gràfics i alarmes
Gràfics i alarmes
Gràfics i alarmes
Gràfics i alarmes
Gràfics i alarmes

En primer lloc, representem les variables per veure com canvien. Això es pot fer afegint un nou tauler de control i posant-hi els gràfics necessaris.

Una altra cosa que podem fer aquí és establir una alerta. Aquesta característica us permet configurar l'abast segur d'una variable. Tan bon punt l’abast es superi, envia una notificació per correu electrònic. A la pàgina d'edició del tauler de control, podeu canviar a Alertes i configurar-ne una.

Just després, la humitat de la meva habitació va començar a disminuir ràpidament sense cap motiu notable, i l’alarma va succeir aviat.

Podeu utilitzar Cloud4RPi de forma gratuïta amb qualsevol maquinari capaç d’executar Python. Pel que fa a mi, ara sempre sé quan heu d’encendre l’humidificador d’aire i fins i tot el puc connectar a un relé de control remot mitjançant Cloud4RPi. Estic preparat per la calor! Benvingut estiu!

Amb Cloud4RPi, podeu controlar el vostre Raspberry Pi i altres dispositius IoT de forma remota en temps real. Visiteu el nostre lloc i connecteu dispositius il·limitats de forma gratuïta.

Recomanat: