Inhoudsopgave:
- Stap 1: Hardware voorbereiden
- Stap 2: SSH. inschakelen
- Stap 3: Cloud4RPi installeren
- Stap 4: De sensor aansluiten
- Stap 5: Sensormetingen naar de cloud verzenden
- Stap 6: grafieken en alarmen
Video: Temperatuur- en vochtigheidsbewaking met Raspberry Pi - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
De zomer komt eraan en mensen zonder airconditioning moeten erop voorbereid zijn om de atmosfeer binnenshuis handmatig te regelen. In deze post beschrijf ik de moderne manier om de belangrijkste parameters voor menselijk comfort te meten: temperatuur en vochtigheid. Deze verzamelde data wordt naar de cloud gestuurd en daar verwerkt.
Ik gebruik een Raspberry Pi 1-kaart en de DHT22-sensor. U kunt hetzelfde doen op elke computer met internet, GPIO en Python. De goedkopere DHT11-sensor werkt ook prima.
Stap 1: Hardware voorbereiden
Laten we bij het begin beginnen, want ik heb mijn Raspberry Pi al heel lang niet meer gebruikt.
Wij hebben nodig:
- Raspberry Pi-bord (of ander IoT-georiënteerd platform).
- SD- of microSD-kaart (afhankelijk van het platform).
- 5V/1A via micro-USB.
- LAN-kabel, die zorgt voor de internetverbinding.
- HDMI-scherm, RCA-scherm of UART-poort (om SSH in te schakelen).
De allereerste stap is het downloaden van Raspbian. Ik heb de Lite-versie gekozen, omdat ik SSH ga gebruiken in plaats van display. Er zijn dingen veranderd sinds de laatste keer dat ik het deed: nu is er een geweldige brandsoftware genaamd Etcher, die perfect werkt en een verbluffend ontwerp heeft.
Nadat het branden van de afbeelding was voltooid, heb ik de SD-kaart in mijn Pi gestoken, de LAN- en stroomkabels aangesloten en na een tijdje registreerde mijn router het nieuwe apparaat.
Stap 2: SSH. inschakelen
SSH is standaard uitgeschakeld. Ik kan een UART-USB-converter gebruiken of gewoon een display aansluiten om toegang te krijgen tot de shell en SSH in te schakelen.
Na het opnieuw opstarten ben ik eindelijk binnen. Allereerst, laten we updaten:
sudo apt update && sudo apt upgrade -y
Laten we dit nieuwe apparaat nu verbinden met de cloud.
Stap 3: Cloud4RPi installeren
Ik besloot het cloudplatform Cloud4RPi te proberen, dat is ontworpen voor IoT.
Volgens de documenten hebben we de volgende pakketten nodig om het te laten werken:
sudo apt install git python python-pip -y
De clientbibliotheek kan in één opdracht worden geïnstalleerd:
sudo pip installeer cloud4rpi
Nu hebben we wat voorbeeldcode nodig om ervoor te zorgen dat het werkt.
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
Ik besloot minimal.py uit te voeren, maar ik hou niet van de nepgegevens. Gelukkig zag ik een gemakkelijke manier om de diagnostische gegevens in dit voorbeeld echt te maken. Voeg nog een import toe aan de importsectie:
van rpi import *
Verwijder vervolgens deze functies die nepgegevens leveren (de rpi.py definieert ze nu):
def cpu_temp():
return 70 def ip_address(): return '8.8.8.8' def host_name(): return 'hostname' def os_name(): return 'osx'
Nu hebben we een token nodig, waarmee Cloud4RPi de apparaten aan de accounts kan koppelen. Om er een te krijgen, maakt u een account aan op cloud4rpi.io en klikt u op de knop Nieuw apparaat op deze pagina. Vervang de tekenreeks _YOUR_DEVICE_TOKEN_ in het bestand minimal.py door de token van uw apparaat en sla het bestand op. Nu zijn we klaar voor de eerste lancering.
python minimal.py
Open de apparaatpagina en controleer of de gegevens aanwezig zijn.
Laten we nu overgaan op gegevens uit de echte wereld.
Stap 4: De sensor aansluiten
Wij hebben nodig:
- DHT22 of DHT11 vochtigheidssensor
- Optrekweerstand (5-10 KΩ)
- Draden
De DHT22-sensor meet tegelijkertijd temperatuur en vochtigheid. Het communicatieprotocol is niet gestandaardiseerd, dus we hoeven het niet in raspi-config in te schakelen - een simpele GPIO-pin is meer dan genoeg.
Om de gegevens te verkrijgen, zal ik de geweldige bibliotheek van Adafruit voor DHT-sensoren gebruiken, maar het kan zijn dat het niet werkt zoals het is. Ik heb ooit een vreemde constante vertraging in de code gevonden, die niet werkte voor mijn hardware, en na twee jaar is mijn pull-verzoek nog steeds in behandeling. Ik heb ook de detectieconstanten van het bord gewijzigd omdat mijn Raspberry Pi 1 met BCM2835 verrassend genoeg werd gedetecteerd als Raspberry Pi 3. Ik wou dat het waar was … Daarom raad ik aan om mijn vork te gebruiken. Als je er problemen mee hebt, probeer dan de originele repository, misschien werkt het voor iemand, maar ik ben niet een van hen.
git kloon https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT
Omdat de bibliotheek in C is geschreven, moet deze worden gecompileerd, dus je hebt de build-essentiële en python-dev-pakketten nodig.
sudo apt install build-essentiële python-dev -ysudo python setup.py install
Terwijl de pakketten worden geïnstalleerd, sluit u de DHT22 aan zoals weergegeven in de afbeelding.
En test het:
cd ~python -c "importeer Adafruit_DHT als d; print d.read_retry(d. DHT22, 4)"
Als je iets ziet als (39.20000076293945, 22.600000381469727), moet je weten dat dit de vochtigheid in procenten en de temperatuur in Celsius is.
Laten we nu alles samenvoegen!
Stap 5: Sensormetingen naar de cloud verzenden
Ik gebruik de minimal.py als basis en voeg de DHT22-interactie eraan toe.
cd cloud4rpi-raspberrypi-python
cp minimal.py ~/cloud_dht22.py cp rpi.py ~/rpi.py cd vi cloud_dht22.py
Omdat DHT22 zowel de temperatuur als de vochtigheid in een enkele oproep retourneert, sla ik ze wereldwijd op en update ik ze slechts één keer in een verzoek, ervan uitgaande dat de vertraging tussen beide meer dan 10 seconden is. Overweeg de volgende code, die de DHT22-gegevens verwerft:
importeer Adafruit_DHT
temp, hum = Geen, Geen 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) als temp niet is Geen anders Geen def get_h(): update_data() return round(hum, 2) als brom niet is Geen anders Geen
Voeg deze code in na de bestaande import en bewerk de variabelensectie zodat deze de nieuwe functies gebruikt:
variabelen = {
'DHT22 Temp': { 'type': 'numeric', 'bind': get_t }, 'DHT22 Humidity': { 'type': 'numeric', 'bind': get_h }, 'CPU Temp': { 'type ': 'numeriek', 'bind': cpu_temp } }
Druk op de rode knop om de gegevensoverdracht te starten:
python cloud_dht22.py
Dan kunt u de apparaatpagina bekijken.
Je kunt het laten zoals het is, maar ik heb liever een service voor alles. Dit zorgt ervoor dat het script altijd actief is. Een service maken met het volledig geautomatiseerde script:
wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py
De dienst starten:
sudo-service cloud4rpi start
En het controleren:
pi@raspberrypi:~ $ sudo-service cloud4rpi-status -l
● cloud4rpi.service - Cloud4RPi-daemon Geladen: geladen (/lib/systemd/system/cloud4rpi.service; ingeschakeld) Actief: actief (actief) sinds wo 2017-05-17 20:22:48 UTC; 1min geleden Belangrijkste PID: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560 /usr/bin/python /home/pi/cloud_dht22.py 17 mei 20:22:51 raspberrypi python [560]: iot publiceren -hub/messages: {'type': 'config', 'ts': '2017-05-17T20…y'}]} 17 mei 20:22:53 raspberrypi python[560]: iot-hub/messages publiceren: {'type': 'data', 'ts': '2017-05-17T20:2…40'}} 17 mei 20:22:53 raspberrypi python[560]: iot-hub/berichten publiceren: {'type': 'systeem', 'ts': '2017-05-17T20….4'}}
Als alles werkt zoals verwacht, kunnen we doorgaan en de mogelijkheden van het Cloud4RPi-platform gebruiken om met de gegevens te manipuleren.
Stap 6: grafieken en alarmen
Laten we eerst de variabelen plotten om te zien hoe ze veranderen. Dit kan door een nieuw Control Panel toe te voegen en de benodigde grafieken erin te plaatsen.
Een ander ding dat we hier kunnen doen, is een waarschuwing instellen. Met deze functie kunt u het veilige bereik voor een variabele configureren. Zodra het bereik wordt overschreden, stuurt het een e-mailmelding. Op de bewerkingspagina van het Configuratiescherm kunt u overschakelen naar Waarschuwingen en er een instellen.
Meteen daarna begon de luchtvochtigheid in mijn kamer snel te dalen zonder merkbare reden, en al snel volgde het alarm.
Je kunt Cloud4RPi gratis gebruiken met alle hardware die Python kan uitvoeren. Wat mij betreft, ik weet nu altijd wanneer ik de luchtbevochtiger moet inschakelen en ik kan hem zelfs aansluiten op een relais voor afstandsbediening via Cloud4RPi. Ik ben voorbereid op de hitte! Welkom zomer!
Aanbevolen:
Aan de slag met draadloze temperatuur- en trillingssensoren met groot bereik: 7 stappen
Aan de slag met draadloze temperatuur- en trillingssensoren met groot bereik: Soms zijn trillingen de oorzaak van ernstige problemen in veel toepassingen. Van machineassen en lagers tot de prestaties van de harde schijf, trillingen veroorzaken schade aan de machine, vroegtijdige vervanging, lage prestaties en veroorzaken een grote aanslag op de nauwkeurigheid. Toezicht houden
DHT-temperatuur- en vochtigheidsbewaking met behulp van de ESP8266 en het AskSensors IoT-platform: 8 stappen
DHT-temperatuur- en vochtigheidsbewaking met behulp van de ESP8266 en het AskSensors IoT-platform: in een vorige instructable presenteerde ik een stapsgewijze handleiding om aan de slag te gaan met de ESP8266-nodeMCU en het AskSensors IoT-platform. In deze tutorial sluit ik een DHT11-sensor aan naar het knooppunt MCU. De DHT11 is een veelgebruikte Temperatuur- en luchtbevochtiger
Temperatuur- en vochtigheidsbewaking met behulp van de ESP-01 & DHT en de AskSensors Cloud: 8 stappen
Temperatuur- en vochtigheidsbewaking met behulp van de ESP-01 & DHT en de AskSensors Cloud: in deze instructie gaan we leren hoe we de temperatuur- en vochtigheidsmetingen kunnen bewaken met behulp van het IOT-MCU/ESP-01-DHT11-bord en het AskSensors IoT-platform .Ik kies de IOT-MCU ESP-01-DHT11-module voor deze toepassing omdat het
Temperatuur bewaken en opnemen met Bluetooth LE en RaspberryPi 9 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Monitor en registreer temperatuur met Bluetooth LE en RaspberryPi: deze instructie gaat over het samenstellen van een multi-node temperatuurbewakingssysteem met Bluetooth LE-sensorbug van Blue Radios (BLEHome) en RaspberryPi 3B Dankzij de ontwikkeling van de Bluetooth LE-standaard is er nu direct beschikbaar
Temperatuur meten vanaf PT100 met Arduino: 6 stappen (met afbeeldingen)
Temperatuur meten van PT100 met behulp van Arduino: De PT100 is een weerstandstemperatuurdetector (RTD) die zijn weerstand verandert afhankelijk van de omgevingstemperatuur, hij wordt veel gebruikt voor industriële processen met een langzame dynamiek en relatief brede temperatuurbereiken. Het wordt gebruikt voor langzame dynam