Taula de continguts:
- Pas 1: Preparació del maquinari
- Pas 2: activació de SSH
- Pas 3: Instal·lació de Cloud4RPi
- Pas 4: Connexió del sensor
- Pas 5: enviament de lectures del sensor al núvol
- Pas 6: gràfics i alarmes
Vídeo: Monitorització de temperatura i humitat mitjançant Raspberry Pi: 6 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
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.
Estic fent servir una placa Raspberry Pi 1 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
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 micro-USB.
- Cable LAN, que proporciona 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-la. 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.
Pas 2: activació de SSH
SSH està desactivat per defecte. Puc utilitzar un convertidor UART-USB o simplement connectar una pantalla per accedir a l'intèrpret d'ordres i activar SSH.
Després de reiniciar-me, finalment hi sóc. Primer de tot, actualitzem:
sudo apt update && sudo apt upgrade -y
Ara connectem aquest nou dispositiu al núvol.
Pas 3: 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 python python-pip -y
La biblioteca client es pot instal·lar en una sola ordre:
sudo pip instal·la cloud4rpi
Ara necessitem algun codi de mostra per garantir que funcioni.
git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python git clone https://gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git e&&mv e / minimal.py minimal.py && rmdir -re
Vaig decidir executar minimal.py, però no m'agraden les dades falses. Afortunadament, he vist una manera senzilla de fer reals les dades de diagnòstic en aquest exemple. Afegiu una importació més a la secció d’importacions:
des de la importació de rpi *
A continuació, suprimiu aquestes funcions que proporcionen dades falses (el rpi.py les defineix ara):
def cpu_temp ():
return 70 def ip_address (): return '8.8.8.8' def host_name (): return 'hostname' def os_name (): return 'osx'
Ara 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 minimal.py pel testimoni del vostre dispositiu i deseu-lo. Ara estem preparats per al primer llançament.
python minimal.py
Obriu la pàgina del dispositiu i comproveu que hi hagi dades.
Ara passem a les dades del món real.
Pas 4: Connexió del sensor
Necessitarem:
- Sensor d’humitat DHT22 o DHT11
- Resistència de tracció (5-10 KΩ)
- Filferros
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…. 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 5: enviament de lectures del sensor al núvol
Faré servir el minimal.py com a base i hi afegiré la interacció DHT22.
cd cloud4rpi-raspberrypi-python
cp minimal.py ~ / cloud_dht22.py cp rpi.py ~ / rpi.py cd vi cloud_dht22.py
Com que DHT22 retorna la temperatura i la humitat en una sola trucada, les emmagatzemo globalment i les actualitzo només una vegada en una sol·licitud, suposant que el retard entre elles és de més de 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 Cap més Cap
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 ':' numèric ',' bind ': cpu_temp}}
Premeu el botó vermell per iniciar la transferència de dades:
python 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:
wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s 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 dc 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 python raspberrypi [560]: Publicació iot -hub / messages: {'type': 'config', 'ts': '2017-05-17T20 … y'}]} 17 de maig 20:22:53 raspberrypi python [560]: Publicació de iot-hub / missatges: {'type': 'data', 'ts': '2017-05-17T20: 2 … 40'}} 17 de maig 20:22:53 raspberrypi python [560]: Publicació de iot-hub / missatges: {'type': 'sistema', '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 6: 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!
Recomanat:
Monitorització de temperatura i humitat mitjançant NODE MCU I BLYNK: 5 passos
Supervisió de la temperatura i la humitat mitjançant NODE MCU I BLYNK: Hola, nois. En aquest instructiu, aprendrem com obtenir la temperatura i la humitat de l’atmosfera mitjançant el sensor DHT11-Temperatura i humitat mitjançant l’aplicació Node MCU i BLYNK
Monitorització de la temperatura i la humitat DHT mitjançant l’ESP8266 i la plataforma IoT AskSensors: 8 passos
Supervisió de la temperatura i la humitat DHT amb l’ESP8266 i la plataforma IoT AskSensors: en una instrucció prèvia, vaig presentar una guia pas a pas per començar a utilitzar el node ESP8266 MCU i la plataforma IoS AskSensors. En aquest tutorial, estic connectant un sensor DHT11. al node MCU. El DHT11
Monitorització de temperatura i humitat mitjançant ESP-01 i DHT i el núvol AskSensors: 8 passos
Monitorització de temperatura i humitat mitjançant ESP-01 i DHT i el núvol AskSensors: en aquest instructiu aprendrem a controlar la temperatura i les mesures d’humitat mitjançant la placa IOT-MCU / ESP-01-DHT11 i la plataforma IoT AskSensors .Tric el mòdul IOT-MCU ESP-01-DHT11 per a aquesta aplicació perquè
ESP8266 Monitorització de temperatura Nodemcu mitjançant DHT11 en un servidor web local - Obteniu la temperatura i la humitat de l'habitació al navegador: 6 passos
ESP8266 Monitorització de temperatura Nodemcu mitjançant DHT11 en un servidor web local | Obteniu la temperatura i la humitat de l'habitació al vostre navegador: Hola nois, avui farem una humitat i un amp; sistema de control de temperatura que utilitza ESP 8266 NODEMCU & Sensor de temperatura DHT11. La temperatura i la humitat s’obtindran del sensor DHT11 & es pot veure en un navegador quina pàgina web es gestionarà
Monitorització de temperatura i humitat mitjançant SHT25 i Raspberry Pi: 5 passos
Supervisió de la temperatura i la humitat mitjançant SHT25 i Raspberry Pi: recentment hem treballat en diversos projectes que requereixen un control de la temperatura i la humitat i després ens vam adonar que aquests dos paràmetres realment tenen un paper fonamental en tenir una estimació de l’eficiència de treball d’un sistema. Tant a la indústria