Innehållsförteckning:
- Tillbehör
- Steg 1: Förbereda hårdvara
- Steg 2: Installera Cloud4RPi
- Steg 3: Anslutning av sensorn
- Steg 4: Skicka sensoravläsningar till molnet
- Steg 5: Diagram och larm
Video: Luftfuktighet i molnet: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:42
Sommaren kommer, och de utan luftkonditionering bör vara beredda på att styra atmosfären inomhus manuellt. I det här inlägget beskriver jag det moderna sättet att mäta de viktigaste parametrarna för mänsklig komfort: temperatur och luftfuktighet. Denna insamlade data skickas till molnet och behandlas där.
Tillbehör
Jag använder ett Raspberry Pi -kort och DHT22 -sensorn. Du kan göra samma sak på alla datorer som har Internet, GPIO och Python. Den billigare DHT11 -sensorn fungerar också bra.
Steg 1: Förbereda hårdvara
Låt oss börja från början, eftersom jag inte använde min Raspberry Pi på ganska lång tid.
Vi kommer att behöva:
- Raspberry Pi-kort (eller annan IoT-orienterad plattform).
- SD- eller microSD -kort (beroende på plattform).
- 5V/1A via mikro-USB. LAN-kabel, som ger internetanslutning.
- HDMI -skärm, RCA -skärm eller UART -port (för att aktivera SSH).
Det allra första steget är att ladda ner Raspbian. Jag har valt Lite -versionen, eftersom jag ska använda SSH istället för display.
Saker och ting har förändrats sedan förra gången jag gjorde det: nu finns det en fantastisk bränningsprogramvara som heter Etcher, som fungerar perfekt och har en fantastisk design.
Efter att bildbränningen var klar satte jag in SD -kortet i min Pi, kopplade in LAN- och strömkablarna, och efter ett tag registrerade min router den nya enheten.
Bra! Låt oss fortsätta och SSH in i det.
Säkerhet är OK, jag gillar det, men det här gör det lite svårare. Jag använder UART-USB-adapter för att komma åt skalet och aktivera SSH …
Att använda en display istället för UART gör det mycket enklare.
Efter omstart är jag äntligen inne.
Först och främst, låt oss uppdatera:
sudo apt update && sudo apt upgrade -y
Låt oss nu ansluta den här nya enheten till molnet.
Steg 2: Installera Cloud4RPi
Jag bestämde mig för att prova molnplattformen Cloud4RPi, som är designad för IoT.
Enligt dokumenten behöver vi följande paket för att få det att fungera:
sudo apt installera git python3 python3 -pip -y
Klientbiblioteket kan installeras i ett enda kommando:
sudo pip3 installera cloud4rpi
Nu behöver vi lite exempelkod.
git-klon https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python
Det körbara skriptet är control.py.
Vi behöver en token som gör att Cloud4RPi kan länka enheterna till kontona. För att få ett, skapa ett konto på cloud4rpi.io och tryck på knappen Ny enhet på den här sidan. Ersätt _YOUR_DEVICE_TOKEN_ -strängen i filen control.py med enhetens token och spara filen. Nu är vi redo för den första lanseringen.
sudo python3 control.py
Öppna enhetssidan och kontrollera att data finns där.
Låt oss nu gå till verkliga data.
Steg 3: Anslutning av sensorn
Vi kommer att behöva:
- DHT22 eller DHT11 fuktsensor
- Uppdragningsmotstånd (5-10 KΩ)
- WiresThe
DHT22 -sensor mäter temperatur och luftfuktighet samtidigt. Kommunikationsprotokollet är inte standardiserat, så vi behöver inte aktivera det i raspi -config - en enkel GPIO -pin är mer än tillräckligt.
För att skaffa data använder jag Adafruits fantastiska bibliotek för DHT -sensorer, men det kanske inte fungerar som det är. Jag hittade en gång en konstig konstant fördröjning av koden, som inte fungerade för min hårdvara, och efter två år väntar min dragbegäran fortfarande. Jag har också ändrat kortdetekteringskonstanterna eftersom min Raspberry Pi 1 med BCM2835 överraskande upptäcktes som Raspberry Pi 3. Jag önskar att det var sant … Därför rekommenderar jag att använda min gaffel. Om du upplever några problem med det, prova det ursprungliga förvaret, kanske fungerar det för någon, men jag är inte en av dem.
git -klon https://github.com/Himura2la/Adafruit_Python_DHT.gitcd Adafruit_Python_DHT
Eftersom biblioteket är skrivet i C kräver det kompilering, så du behöver paketet build-essential och python-dev.
sudo apt install build-essential python-dev -ysudo python setup.py install
Medan paketen installeras ansluter du DHT22 enligt bilden.
Och testa det:
cd ~ python -c "importera Adafruit_DHT som d; skriv ut d.read_retry (d. DHT22, 4)"
Om du ser något liknande (39.20000076293945, 22.600000381469727) bör du veta att detta är luftfuktigheten i procent och temperaturen i Celsius.
Nu ska vi sätta ihop allt!
Steg 4: Skicka sensoravläsningar till molnet
Jag använder control.py som bas och lägger till DHT22 -interaktionen i den.
cp cloud4rpi-raspberrypi-python/control.py./cloud_dht22.pycp cloud4rpi-raspberrypi-python/rpi.py./rpi.pyvi cloud_dht22.py
Ta bort provkoden som på bilden ovan.
Eftersom DHT22 returnerar både temperatur och luftfuktighet i ett enda samtal kommer jag att lagra dem globalt och uppdatera bara en gång i en begäran, förutsatt att fördröjningen mellan dem är mer än 10 sekunder. Tänk på följande kod som förvärvar DHT22 -data:
importera Adafruit_DHT
temp, hum = Ingen, ingen
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 () returrunda (temp, 2) om temp inte är Ingen annan Ingen def get_h (): update_data () returrunda (hum, 2) om hum är inte Ingen annan Ingen
Sätt in den här koden efter den befintliga importen och redigera variabelavsnittet så att den använder de nya funktionerna:
variabler = {'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Humidity': {'type': 'numeric', 'bind': get_h}, 'CPU Temp': {'type': 'numeric', 'bind': cpu_temp}}
Om du tycker att manipulationerna är förvirrande, ta den slutliga versionen av filen. Tryck på den röda knappen för att starta dataöverföringen:
Sedan kan du kontrollera enhetssidan.
python3 cloud_dht22.py
Sedan kan du kontrollera enhetssidan.
Du kan lämna det som det är, men jag föredrar att ha en tjänst för allt. Detta säkerställer att skriptet alltid körs. Skapa en tjänst med det helautomatiska skriptet som du redan har i katalogen cloud4rpi-raspberrypi-python:
service_install.sh cloud_dht22.py
Starta tjänsten:
sudo service cloud4rpi start
Och kolla:
pi@raspberrypi: ~ $ sudo service cloud4rpi status -l ● cloud4rpi.service -Cloud4RPi -demon Lastad: laddad (/lib/systemd/system/cloud4rpi.service; aktiverad) Aktiv: aktiv (körs) sedan ons 2017-05-17 20: 22: 48 UTC; 1 min sedan Main PID: 560 (python) CGrupp: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.py
17 maj 20:22:51 raspberrypi python [560]: Publicera iot-hub/meddelanden: {'type': 'config', 'ts': '2017-05-17T20… y'}]}
17 maj 20:22:53 raspberrypi python [560]: Publicera iot-hub/meddelanden: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17 maj 20: 22:53 raspberrypi python [560]: Publicera iot-hub/meddelanden: {'type': 'system', 'ts': '2017-05-17T20….4'}}
Om allt fungerar som förväntat kan vi fortsätta och använda Cloud4RPi -plattformens funktioner för att manipulera med data.
Steg 5: Diagram och larm
Först och främst, låt oss plotta variablerna för att se hur de ändras. Detta kan göras genom att lägga till en ny kontrollpanel och lägga in de önskade diagrammen i den.
En annan sak som vi kan göra här är att ställa in en varning. Med den här funktionen kan du konfigurera det säkra intervallet för en variabel. Så snart intervallet är överskridet skickar det ett e -postmeddelande. På redigeringssidan på kontrollpanelen kan du växla till varningar och ställa in en.
Direkt efter det började luftfuktigheten i mitt rum minska snabbt utan någon märkbar anledning, och larmet följde snart.
Du kan använda Cloud4RPi gratis med vilken hårdvara som helst som kan köra Python. Som för mig, nu vet jag alltid när jag ska slå på luftfuktaren, och jag kan till och med ansluta den till ett relä för fjärrkontroll via Cloud4RPi. Jag är beredd på värmen! Välkommen sommar!
Med Cloud4RPi kan du fjärrstyra din Raspberry Pi och andra IoT -enheter i realtid. Besök vår webbplats och anslut obegränsade enheter gratis.
Rekommenderad:
Så här ansluter du Raspberry Pi till molnet med hjälp av Node.js: 7 steg
Så här ansluter du Raspberry Pi till molnet med hjälp av Node.js: Denna handledning är användbar för alla som vill ansluta en Raspberry Pi till molnet, särskilt till AskSensors IoT -plattform, med Node.js. Har du ingen Raspberry Pi? Om du för närvarande inte äger en Raspberry Pi kommer jag att rekommendera dig att skaffa en Raspberry
Hur man skickar data till molnet med Arduino Ethernet: 8 steg
Så här skickar du data till molnet med Arduino Ethernet: Denna instruktion visar hur du publicerar din data till AskSensors IoT -plattform med Arduino Ethernet Shield. Med Ethernet Shield kan din Arduino enkelt anslutas till molnet, skicka och ta emot data med en internetanslutning. Vad vi
Anslutning av Arduino WiFi till molnet med hjälp av ESP8266: 7 steg
Ansluta Arduino WiFi till molnet med hjälp av ESP8266: I den här självstudien kommer vi att förklara hur du ansluter din Arduino till IoT -molnet via WiFi. för att kommunicera med AskSensors moln. L
Anslut din anläggning till molnet: 10 steg
Anslut din växt till molnet: På vårt kontor finns en kaktus som inte fick den uppmärksamhet den förtjänade. Eftersom jag arbetar på ett IT -företag och ville experimentera med LoRa, serverlösa lösningar och AWS, namngav jag vår kaktus Steeve och kopplade honom till molnet. Du kan nu övervaka
Hur man publicerar ESP32 -data med NTP -tidsstämpel till IoT -molnet: 5 steg
Hur man publicerar ESP32 -data med NTP -tidsstämpel till IoT -molnet: I många applikationer måste användarna skicka sina data tillsammans med den lokala tidsstämpeln för de värden som ska skickas i nyttolasten till AskSensors IoT -moln. Tidsstämpelformatet är UNIX Epoktid: antalet millisekunder som har gått sedan januari