Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Klargjøre maskinvare
- Trinn 2: Installere Cloud4RPi
- Trinn 3: Koble til sensoren
- Trinn 4: Sende sensoravlesninger til Cloud
- Trinn 5: Kart og alarmer
Video: Fuktighet i skyen: 5 trinn
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.
Rekvisita
Jeg bruker et Raspberry Pi -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.
Flott! La oss fortsette og SSH inn i det.
Sikkerhet er OK, jeg liker det, men dette gjør ting litt vanskeligere. Jeg bruker UART-USB-adapter for å få tilgang til skallet og aktivere SSH …
Å bruke en skjerm i stedet for UART gjør det mye enklere.
Etter omstart er jeg endelig inne.
Første ting først, la oss oppdatere:
sudo apt update && sudo apt upgrade -y
La oss nå koble denne nye enheten til nettskyen.
Trinn 2: 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 install git python3 python3 -pip -y
Klientbiblioteket kan installeres i en enkelt kommando:
sudo pip3 installer cloud4rpi
Nå trenger vi noen eksempler på kode.
git-klon https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python
Det kjørbare skriptet er control.py.
Vi trenger 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 control.py med enhetens token og lagre filen. Nå er vi klare for den første lanseringen.
sudo python3 control.py
Åpne enhetssiden og kontroller at dataene er der.
La oss nå gå til virkelige data.
Trinn 3: Koble til sensoren
Vi trenger:
- DHT22 eller DHT11 fuktighetssensor
- Pull-up motstand (5-10 KΩ)
- WiresThe
DHT22 -sensor 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.gitcd 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 4: Sende sensoravlesninger til Cloud
Jeg vil bruke control.py som en base og legge til DHT22 -interaksjonen i den.
cp cloud4rpi-raspberrypi-python/control.py./cloud_dht22.pycp cloud4rpi-raspberrypi-python/rpi.py./rpi.pyvi cloud_dht22.py
Fjern prøvekoden som på bildet ovenfor.
Ettersom DHT22 returnerer både temperatur og fuktighet i et enkelt anrop, kommer jeg til å lagre dem globalt og oppdatere 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 = 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 () 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}}
Hvis du synes at manipulasjoner er forvirrende, kan du ta tak i den siste versjonen av denne filen. Trykk på den røde knappen for å starte dataoverføringen:
Deretter kan du sjekke enhetssiden.
python3 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 helautomatiske skriptet du allerede har i katalogen cloud4rpi-raspberrypi-python:
service_install.sh cloud_dht22.py
Starter tjenesten:
sudo service cloud4rpi start
Og sjekker det:
pi@raspberrypi: ~ $ sudo service cloud4rpi status -l ● cloud4rpi.service -Cloud4RPi daemon 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) CGruppe: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.py
17. mai 20:22:51 raspberrypi python [560]: Publisering av iot-hub/meldinger: {'type': 'config', 'ts': '2017-05-17T20… y'}]}
17. mai 20:22:53 raspberrypi python [560]: Publisering av iot-hub/meldinger: {'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 5: 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!
Med Cloud4RPi kan du styre Raspberry Pi og andre IoT -enheter eksternt i sanntid. Besøk nettstedet vårt og koble til ubegrensede enheter gratis.
Anbefalt:
Slik kobler du Raspberry Pi til skyen ved hjelp av Node.js: 7 trinn
Slik kobler du Raspberry Pi til skyen ved hjelp av Node.js: Denne opplæringen er nyttig for alle som ønsker å koble en Raspberry Pi til skyen, spesielt til AskSensors IoT -plattform, ved hjelp av Node.js. Har du ikke en Raspberry Pi? Hvis du ikke eier en Raspberry Pi for øyeblikket, vil jeg anbefale deg å kjøpe en Raspberry
Slik sender du data til skyen med Arduino Ethernet: 8 trinn
Slik sender du data til skyen med Arduino Ethernet: Denne instruksjonen viser deg hvordan du publiserer dataene dine til AskSensors IoT -plattform ved hjelp av Arduino Ethernet Shield. Med Ethernet Shield kan Arduino enkelt kobles til skyen, sende og motta data med en internettforbindelse. Hva vi
Koble Arduino WiFi til skyen ved hjelp av ESP8266: 7 trinn
Koble Arduino WiFi til skyen ved hjelp av ESP8266: I denne opplæringen vil vi forklare deg hvordan du kobler Arduino til IoT -skyen via WiFi. Vi konfigurerer et oppsett sammensatt av en Arduino og en ESP8266 WiFi -modul som en IoT -ting og gjør den klar å kommunisere med AskSensors -skyen. L
Koble anlegget til skyen: 10 trinn
Koble planten din til skyen: På kontoret vårt er det en kaktus som ikke fikk den oppmerksomheten den fortjente. Siden jeg jobber i et IT -selskap og ønsket å eksperimentere med LoRa, serverløse løsninger og AWS, kalte jeg kaktusen vår Steeve og koblet ham til skyen. Du kan nå overvåke
IoT Grunnleggende: Koble IoT til skyen ved hjelp av Mongoose OS: 5 trinn
IoT Grunnleggende: Koble din IoT til skyen ved hjelp av Mongoose OS: Hvis du er en person som liker å tinke og elektronikk, vil du oftere enn ikke komme over begrepet Internet of Things, vanligvis forkortet som IoT, og at det refererer til et sett med enheter som kan koble til internett! Å være en slik person