Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Lämpötilan ja kosteuden seuranta on tärkeää, jos sinulla on kasvihuone tai jos aiot tulevaisuudessa päivittää kasvihuoneesi mini-älytilaksi.
Ensimmäisessä Instructable -ohjelmassa esitän prototyypin luomisen:
- Liitä DHT11 -lämpötila- ja kosteusanturi Arduino Mega 2560 -laitteeseen
- Ohjelmoi Arduino C: ssä lukemaan anturitiedot
- Näytä lämpötila- ja kosteustiedot LCD -näytöllä, joka on liitetty Arduinoon
- Ohjaa Arduinoa lähettämään anturitiedot Raspberry Pi 3 Model B+ -laitteelle
- Kirjoita koodi Pythoniin näyttääksesi anturitiedot
Miksi käyttää RPi: tä ja Arduinoa yhdessä?
Arduino- ja RPi -yhteys voivat tarjota suuria ominaisuuksia, jos tarvitset I/O: ta, jossa Arduino loistaa, ja verkkoviestintää/monisäikeistä/visuaalista, jossa RPi on paljon parempi.
Toisin sanoen aiomme käyttää Arduinoa intensiivisten tehtävien hallintaan ja RPi: tä intensiivisten tehtävien laskemiseen.
Arduinojen kestävät versiot ovat saatavilla Rugged-Circuitsissa
Vaihe 1: Arduino- ja RPi -laitteiston hankkiminen
Arduino -aloituspaketit ovat helposti saatavilla ja niiden avulla voit kokeilla erityyppisiä antureita ja laitteita. Aloituspakkauksen ostaminen on halvempaa kuin tilata erilaisia osia erikseen. Olen toimittanut alla joitakin kumppanilinkkejä, jotka osoittavat Banggoodiin ja Amazon USA: han.
Arduino -aloituspakkaus (Banggood)
Arduino Starter Kit (Amazon USA)
Element14 RPi 3 B+ emolevy (Amazon USA)
Raspberry Pi 3 B+ -kotelo (Amazon USA)
32 Gt: n Micro SD -kortti (Amazon USA).
Vaihe 2: Liitä DHT11 ja LCD Arduinoon
Vaihe 3: Ohjelmoi Arduino
#arduino-dht11-lcd2004
#Kirjailija: Vasoo Veerapen
#https://www.instructables.com/member/VasooV/ #Lukee tietoja DHT11 -laitteesta, joka on kytketty Arduinoon, näkyy LCD2004: llä ja lähettää tietoja sarjaliikenteen kautta Raspberry Pi: lle
#sisältää
#sisältää
// LCD -näyttö määritellään laitteen numeroksi 0x27 I2C -väylällä
LiquidCrystal_I2C lcd (0x27, 20, 4);
// DHT11 on kytketty nastaan 8
dht DHT; #määritä anturiPin 8
// Raspberry Pi on kytketty sarjaan 0
#define serialPi -sarja
void setup () {
lcd. alku (20, 4); // Alustaa LCD -näytön käyttöliittymän ja määrittää näytön mitat (leveys ja korkeus) lcd.init (); lcd.taustavalo (); serialPi.begin (9600); // Arduino sarjamonitoriin}
void loop () {
// Lue anturitiedot
int sensorData = DHT.read11 (sensorPin); kelluva lämpötila = DHT.lämpötila; kellukosteus = DHT.kosteus;
// Tulostuslämpötila
lcd.setCursor (0, 0); lcd.print ("Lämpötila"); lcd.print (lämpötila); lcd.print ("C");
// Tulostuskosteus
lcd.setCursor (0, 1); lcd.print ("Kosteus"); lcd.print (kosteus); lcd.print (" %");
// Lämpötilan ja kosteuden tietojen lähettäminen Raspberry Pi: lle
serialPi.print ("");
// Odota 10 sekuntia
viive (10000); }
Vaihe 4: Toimiva Arduino, LCD- ja DHT11 -asetukset
Vaihe 5: Liitä Raspberry Pi Arduinoon
Vaihe 6: RPi Python -koodi USB -portin sarjatietojen lukemiseen
#rpi-arduino-dht11
#Raspberry Pi lukee lämpötila- ja kosteusanturitiedot Arduinolta
tuo sarja, merkkijono, aika
#Tässä esimerkissä käytetään /dev /ttyUSB0
#Tämä voi muuttua tapauksessasi/dev/ttyUSB1,/dev/ttyUSB2 jne. Ser = sarja. Sarja ('/dev/ttyUSB0', 9600)
#Seuraava koodilohko toimii näin:
#Jos sarjatietoja on, lue rivi, purkaa UTF8 -tiedot, #… poista rivin lopussa olevat merkit …… jaa tiedot lämpötilaan ja kosteuteen #… poista alku- ja loppukohdistimet () #… tulosta tulos Totta: jos ser.in_waiting> 0: rawserial = ser.readline () cookedserial = rawserial.decode ('utf-8'). Strip ('\ r / n') datasplit = cookedserial.split (',') lämpötila = datasplit [0]. nauha ('') tulosta (lämpötila) tulosta (kosteus)