Inhoudsopgave:
- Benodigdheden
- Stap 1: Hardware voorbereiden
- Stap 2: Cloud4RPi installeren
- Stap 3: De sensor aansluiten
- Stap 4: Sensormetingen naar de cloud verzenden
- Stap 5: Grafieken en alarmen
Video: Vochtigheid in de cloud: 5 stappen
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.
Benodigdheden
Ik gebruik een Raspberry Pi-bord 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 voor de internetverbinding zorgt.
- 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.
Dingen zijn 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.
Super goed! Laten we doorgaan en SSH erin opnemen.
Beveiliging is OK, ik vind het leuk, maar dit maakt het een beetje moeilijker. Ik gebruik de UART-USB-adapter om toegang te krijgen tot de shell en SSH in te schakelen …
Het gebruik van een display in plaats van UART maakt het veel gemakkelijker.
Na opnieuw opstarten ben ik eindelijk binnen.
Laten we eerst eens updaten:
sudo apt update && sudo apt upgrade -y
Laten we dit nieuwe apparaat nu verbinden met de cloud.
Stap 2: 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 python3 python3-pip -y
De clientbibliotheek kan in één opdracht worden geïnstalleerd:
sudo pip3 installeer cloud4rpi
Nu hebben we wat voorbeeldcode nodig.
git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python
Het uitvoerbare script is control.py.
We hebben 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 control.py-bestand door de token van uw apparaat en sla het bestand op. Nu zijn we klaar voor de eerste lancering.
sudo python3 control.py
Open de apparaatpagina en controleer of de gegevens aanwezig zijn.
Laten we nu overgaan op gegevens uit de echte wereld.
Stap 3: De sensor aansluiten
Wij hebben nodig:
- DHT22 of DHT11 vochtigheidssensor
- Optrekweerstand (5-10 KΩ)
- DradenDe
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.gitcd 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 4: Sensormetingen naar de cloud verzenden
Ik gebruik de control.py als basis en voeg de DHT22-interactie eraan toe.
cp cloud4rpi-raspberrypi-python/control.py./cloud_dht22.pycp cloud4rpi-raspberrypi-python/rpi.py./rpi.pyvi cloud_dht22.py
Verwijder de voorbeeldcode zoals in de afbeelding hierboven.
Omdat DHT22 zowel de temperatuur als de vochtigheid in een enkele oproep retourneert, ga ik ze wereldwijd opslaan en slechts één keer bijwerken in een verzoek, ervan uitgaande dat de vertraging ertussen meer dan 10 seconden is. Overweeg de volgende code, die de DHT22-gegevens verwerft:
importeer Adafruit_DHT
temp, brom = Geen, Geen
last_update = tijd.tijd() - 20
def update_data():
global last_update, brom, temp if time.time() - last_update > 10: brom, 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 Geen anders is 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 } }
Als je die manipulaties verwarrend vindt, pak dan de definitieve versie van dit bestand. Druk op de rode knop om de gegevensoverdracht te starten:
Dan kun je kijken op de apparaatpagina.
python3 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 dat u al in de directory cloud4rpi-raspberrypi-python heeft:
service_install.sh 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 17-05-2017 20:22:48 GMT; 1min geleden Hoofd-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-hub/messages publiceren: {'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/messages publiceren: {'type': 'system', '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 5: 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!
Met Cloud4RPi kunt u uw Raspberry Pi en andere IoT-apparaten in realtime op afstand bedienen. Bezoek onze site en sluit gratis onbeperkt apparaten aan.
Aanbevolen:
Berekening van vochtigheid, druk en temperatuur met behulp van BME280 en Photon Interfacing: 6 stappen
Berekening van vochtigheid, druk en temperatuur met behulp van BME280 en Photon Interfacing. We komen verschillende projecten tegen die temperatuur-, druk- en vochtigheidsbewaking vereisen. We realiseren ons dus dat deze parameters eigenlijk een cruciale rol spelen bij het hebben van een schatting van de werkefficiëntie van een systeem bij verschillende atmosferische cond
Een kas automatiseren met LoRa! (Deel 1) -- Sensoren (temperatuur, vochtigheid, bodemvocht): 5 stappen
Een kas automatiseren met LoRa! (Deel 1) || Sensoren (Temperatuur, Vochtigheid, Bodemvocht): In dit project laat ik zien hoe ik een kas heb geautomatiseerd. Dat betekent dat ik je laat zien hoe ik de kas heb gebouwd en hoe ik de stroom- en automatiseringselektronica heb aangesloten. Ik zal je ook laten zien hoe je een Arduino-bord programmeert dat L
Meting van temperatuur en vochtigheid met HDC1000 en Arduino Nano: 4 stappen
Meting van temperatuur en vochtigheid met HDC1000 en Arduino Nano: De HDC1000 is een digitale vochtigheidssensor met geïntegreerde temperatuursensor die een uitstekende meetnauwkeurigheid biedt bij een zeer laag stroomverbruik. Het apparaat meet de vochtigheid op basis van een nieuwe capacitieve sensor. De vochtigheids- en temperatuursensoren zijn fa
THINGSPEAK TEMPERATUUR EN VOCHTIGHEID APP MET ESP8266: 9 stappen
THINGSPEAK TEMPERATUUR- EN VOCHTIGHEID-APP MET ESP8266: Terwijl ik aan mijn elektronische spullen sleutelde, kreeg ik het idee om een webgebaseerde weer-app te maken. Deze web-app gebruikt de SHT31-sensor voor het verkrijgen van de realtime temperatuur- en vochtigheidsgegevens. We hebben ons project geïmplementeerd op de ESP8266 WiFi-module. Online of offline
ESP8266 Nodemcu-temperatuurbewaking met DHT11 op een lokale webserver - Kamertemperatuur en -vochtigheid in uw browser krijgen: 6 stappen
ESP8266 Nodemcu-temperatuurbewaking met DHT11 op een lokale webserver | Krijg kamertemperatuur en vochtigheid in uw browser: Hallo allemaal, vandaag zullen we een vochtigheid & temperatuurbewakingssysteem met ESP 8266 NODEMCU & DHT11 temperatuursensor. Temperatuur en vochtigheid worden verkregen uit DHT11 Sensor & in een browser is te zien welke webpagina wordt beheerd