Innholdsfortegnelse:
- Trinn 1: Klargjøre maskinvare
- Trinn 2: Aktivering av SSH
- Trinn 3: Installere Cloud4RPi
- Trinn 4: Koble til sensoren
- Trinn 5: Sende sensoravlesninger til Cloud
- Trinn 6: Kart og alarmer
Video: Overvåkning av temperatur og fuktighet ved bruk av Raspberry Pi: 6 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
Sommeren kommer, og de uten klimaanlegg bør være forberedt på å kontrollere atmosfæren innendørs manuelt. I dette innlegget beskriver jeg den moderne måten å måle de viktigste parameterne for menneskelig komfort: temperatur og fuktighet. Disse innsamlede dataene sendes til skyen og behandles der.
Jeg bruker et Raspberry Pi 1 -kort og DHT22 -sensoren. Du kan gjøre det samme på hvilken som helst datamaskin som har Internett, GPIO og Python. Den billigere DHT11 -sensoren fungerer også bra.
Trinn 1: Klargjøre maskinvare
La oss starte helt fra begynnelsen, ettersom jeg ikke brukte Raspberry Pi på lenge.
Vi trenger:
- Raspberry Pi-kort (eller annen IoT-orientert plattform).
- SD- eller microSD -kort (avhengig av plattformen).
- 5V/1A via mikro-USB.
- LAN -kabel, som gir Internett -tilkobling.
- HDMI -skjerm, RCA -skjerm eller UART -port (for å aktivere SSH).
Det aller første trinnet er å laste ned Raspbian. Jeg har valgt Lite -versjonen, ettersom jeg skal bruke SSH i stedet for skjerm. Ting har endret seg siden sist jeg gjorde det: nå er det en flott brennende programvare som heter Etcher, som fungerer perfekt og har en fantastisk design.
Etter at bildeforbrenningen var fullført, satte jeg inn SD -kortet i Pi -en, koblet til LAN- og strømkablene, og etter en stund registrerte ruteren min den nye enheten.
Trinn 2: Aktivering av SSH
SSH er deaktivert som standard. Jeg kan bruke enten UART-USB-omformer eller bare koble til en skjerm for å få tilgang til skallet og aktivere SSH.
Etter omstart er jeg endelig inne. Først av alt, la oss oppdatere:
sudo apt update && sudo apt upgrade -y
La oss nå koble denne nye enheten til nettskyen.
Trinn 3: Installere Cloud4RPi
Jeg bestemte meg for å prøve skyplattformen Cloud4RPi, som er designet for IoT.
I følge dokumentene trenger vi følgende pakker for å få det til å kjøre:
sudo apt installer git python python -pip -y
Klientbiblioteket kan installeres i en enkelt kommando:
sudo pip installer cloud4rpi
Nå trenger vi noen eksempelkode for å sikre at den fungerer.
git-klon https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python git-klon https://gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git e && mv e/minimal.py minimal.py && rmdir -re
Jeg bestemte meg for å kjøre minimal.py, men jeg liker ikke de falske dataene. Heldigvis la jeg merke til en enkel måte å gjøre diagnosedataene virkelige i dette eksemplet. Legg til en import til i importdelen:
fra rpi import *
Slett deretter disse funksjonene som gir falske data (rpi.py definerer dem nå):
def cpu_temp ():
return 70 def ip_address (): return '8.8.8.8' def host_name (): return 'hostname' def os_name (): return 'osx'
Nå trenger vi et token, som gjør at Cloud4RPi kan koble enhetene til kontoene. For å få en, opprett en konto på cloud4rpi.io og trykk på Ny enhet -knappen på denne siden. Erstatt _YOUR_DEVICE_TOKEN_ -strengen i filen minimal.py med enhetens token og lagre filen. Nå er vi klare for den første lanseringen.
python minimal.py
Åpne enhetssiden og kontroller at dataene er der.
La oss nå gå til virkelige data.
Trinn 4: Koble til sensoren
Vi trenger:
- DHT22 eller DHT11 fuktighetssensor
- Pull-up motstand (5-10 KΩ)
- Ledninger
DHT22 -sensoren måler temperatur og fuktighet samtidig. Kommunikasjonsprotokollen er ikke standardisert, så vi trenger ikke å aktivere den i raspi -config - en enkel GPIO -pin er mer enn nok.
For å skaffe dataene bruker jeg Adafruit sitt flotte bibliotek for DHT -sensorer, men det fungerer kanskje ikke som det er. Jeg fant en gang en merkelig konstant forsinkelse i koden, som ikke fungerte for maskinvaren min, og etter to år venter trekkforespørselen min fortsatt. Jeg har også endret borddeteksjonskonstantene fordi min Raspberry Pi 1 med BCM2835 ble overraskende oppdaget som Raspberry Pi 3. Jeg skulle ønske det var sant … Derfor anbefaler jeg å bruke gaffelen min. Hvis du opplever problemer med det, kan du prøve det originale depotet, kanskje det fungerer for noen, men jeg er ikke en av dem.
git -klon https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT
Siden biblioteket er skrevet i C, krever det kompilering, så du trenger de build-essential og python-dev-pakkene.
sudo apt install build-essential python-dev -ysudo python setup.py install
Mens pakkene installeres, kobler du til DHT22 som vist på bildet.
Og test det:
cd ~ python -c "importer Adafruit_DHT som d; skriv ut d.read_retry (d. DHT22, 4)"
Hvis du ser noe slikt (39.20000076293945, 22.600000381469727), bør du vite at dette er fuktigheten i prosent og temperaturen i Celsius.
La oss nå sette sammen alt sammen!
Trinn 5: Sende sensoravlesninger til Cloud
Jeg vil bruke minimal.py som en base og legge til DHT22 -interaksjonen i den.
cd cloud4rpi-raspberrypi-python
cp minimal.py ~/cloud_dht22.py cp rpi.py ~/rpi.py cd vi cloud_dht22.py
Siden DHT22 returnerer både temperatur og fuktighet i et enkelt anrop, lagrer jeg dem globalt og oppdaterer bare én gang i en forespørsel, forutsatt at forsinkelsen mellom dem er mer enn 10 sekunder. Vurder følgende kode, som henter DHT22 -dataene:
importer 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 () retur runde (temp, 2) hvis temp ikke er Ingen andre Ingen def get_h (): update_data () retur runde (hum, 2) hvis hum er ikke Ingen andre Ingen
Sett inn denne koden etter den eksisterende importen og rediger variabeldelen slik at den bruker de nye funksjonene:
variabler = {
'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Humidity': {'type': 'numeric', 'bind': get_h}, 'CPU Temp': {'type ':' numerisk ',' bind ': cpu_temp}}
Trykk på den røde knappen for å starte dataoverføringen:
python cloud_dht22.py
Deretter kan du sjekke enhetssiden.
Du kan la det være som det er, men jeg foretrekker å ha en tjeneste for alt. Dette sikrer at skriptet alltid kjører. Opprette en tjeneste med det fullt automatiserte skriptet:
wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py
Starter tjenesten:
sudo service cloud4rpi start
Og sjekker det:
pi@raspberrypi: ~ $ sudo service cloud4rpi status -l
● cloud4rpi.service-Cloud4RPi-demon Lastet: lastet (/lib/systemd/system/cloud4rpi.service; aktivert) Aktiv: aktiv (kjører) siden ons 2017-05-17 20:22:48 UTC; 1 min siden Main PID: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.pyMay 17 20:22:51 raspberrypi python [560]: Publishing iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20… y'}]} 17. mai 20:22:53 raspberrypi python [560]: Publisering av iot-hub/messages: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17. mai 20:22:53 raspberrypi python [560]: Publisering av iot-hub/meldinger: {'type': 'system', 'ts': '2017-05-17T20….4'}}
Hvis alt fungerer som forventet, kan vi fortsette og bruke Cloud4RPi -plattformens evner til å manipulere med dataene.
Trinn 6: Kart og alarmer
La oss først plotte variablene for å se hvordan de endres. Dette kan gjøres ved å legge til et nytt kontrollpanel og sette de nødvendige diagrammene i det.
En annen ting vi kan gjøre her er å sette en varsel. Denne funksjonen lar deg konfigurere det sikre området for en variabel. Så snart rekkevidden er overskredet, sender den en e -postvarsel. På redigeringssiden på kontrollpanelet kan du bytte til varsler og sette opp en.
Like etter begynte fuktigheten i rommet mitt å synke raskt uten merkbar grunn, og alarmen fulgte snart.
Du kan bruke Cloud4RPi gratis med hvilken som helst maskinvare som er i stand til å kjøre Python. Som for meg, nå vet jeg alltid når jeg skal slå på luftfukteren, og jeg kan til og med koble den til et relé for fjernkontroll via Cloud4RPi. Jeg er forberedt på varmen! Velkommen sommer!
Anbefalt:
Overvåkning av temperatur og fuktighet ved bruk av NODE MCU OG BLYNK: 5 trinn
Overvåkning av temperatur og fuktighet ved bruk av NODE MCU OG BLYNK: Hei Gutter I denne instruksen kan vi lære hvordan du får temperatur og fuktighet i atmosfæren ved hjelp av DHT11-temperatur- og fuktighetssensor ved hjelp av Node MCU og BLYNK-appen
Overvåkning av temperatur og fuktighet ved bruk av ESP-01 & DHT og AskSensors Cloud: 8 trinn
Overvåkning av temperatur og fuktighet ved bruk av ESP-01 & DHT og AskSensors Cloud: I denne instruksen skal vi lære å overvåke temperatur og fuktighetsmålinger ved hjelp av IOT-MCU/ESP-01-DHT11-kortet og AskSensors IoT-plattform .Jeg velger IOT-MCU ESP-01-DHT11-modulen for denne applikasjonen fordi den
Overvåkning av temperatur og fuktighet ved bruk av Blynk: 6 trinn
Overvåkning av temperatur og fuktighet ved bruk av Blynk: I denne opplæringen skal vi overvåke temperatur og fuktighet ved hjelp av DHT11 og sende dataene til skyen ved hjelp av BlynkKomponenter som kreves for denne opplæringen: Arduino UnoDHT11 temperatur- og fuktighetssensorESP8266-01 WiFi-modul
Overvåkning av temperatur og fuktighet ved bruk av SHT25 og Arduino Nano: 5 trinn
Overvåkning av temperatur og fuktighet ved bruk av SHT25 og Arduino Nano: Vi har nylig jobbet med forskjellige prosjekter som krevde temperatur- og fuktighetsovervåking, og da innså vi at disse to parameterne faktisk spiller en sentral rolle for å ha et estimat av arbeidseffektiviteten til et system. Begge på indus
Overvåkning av temperatur og fuktighet ved bruk av SHT25 og Raspberry Pi: 5 trinn
Overvåkning av temperatur og fuktighet ved bruk av SHT25 og Raspberry Pi: Vi har nylig jobbet med forskjellige prosjekter som krevde temperatur- og fuktighetsovervåking, og da innså vi at disse to parameterne faktisk spiller en sentral rolle for å ha et estimat av arbeidseffektiviteten til et system. Begge på indus