Sisällysluettelo:

Lämpötila ja kosteus Arduinosta Raspberry Pi: 6 vaihetta
Lämpötila ja kosteus Arduinosta Raspberry Pi: 6 vaihetta

Video: Lämpötila ja kosteus Arduinosta Raspberry Pi: 6 vaihetta

Video: Lämpötila ja kosteus Arduinosta Raspberry Pi: 6 vaihetta
Video: Земляника из семян 🔴 Посев ремонтантной земляники на рассаду 🔴 Сорта земляники Рюген и Фреска F1 2024, Heinäkuu
Anonim
Lämpötila ja kosteus Arduinosta Raspberry Pi: hen
Lämpötila ja kosteus Arduinosta Raspberry Pi: hen

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

Liitä DHT11 ja LCD Arduinoon
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

Toimiva Arduino, LCD ja DHT11 -asetus
Toimiva Arduino, LCD ja DHT11 -asetus

Vaihe 5: Liitä Raspberry Pi Arduinoon

Liitä Raspberry Pi Arduinoon
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)

Suositeltava: