INHOUDSOPGAWE:

Temperatuur en humiditeit van Arduino tot Framboos Pi: 6 stappe
Temperatuur en humiditeit van Arduino tot Framboos Pi: 6 stappe

Video: Temperatuur en humiditeit van Arduino tot Framboos Pi: 6 stappe

Video: Temperatuur en humiditeit van Arduino tot Framboos Pi: 6 stappe
Video: 🇳🇱 DHT11 / DHT22 TEMPERATUUR EN LUCHTVOCHTIGHEID SENSOR - Arduino les #13 2024, Julie
Anonim
Temperatuur en humiditeit van Arduino tot Framboos Pi
Temperatuur en humiditeit van Arduino tot Framboos Pi

Dit is belangrik om temperatuur en humiditeit by te hou as u 'n kweekhuis het, of as u planne het om u kweekhuis op te gradeer in 'n klein boerdery.

Vir my eerste Instructable sal ek demonstreer hoe om 'n prototipe te maak:

  • Koppel 'n DHT11 temperatuur- en humiditeitsensor aan 'n Arduino Mega 2560
  • Program die Arduino in C om die sensor data te lees
  • Vertoon data oor temperatuur en humiditeit op 'n LCD wat aan die Arduino gekoppel is
  • Gee die Arduino die opdrag om die sensordata na 'n Raspberry Pi 3 Model B+ te stuur
  • Skryf kode in Python om die sensordata te vertoon

Waarom 'n RPi en Arduino saam gebruik?

Die Arduino- en RPi -verbinding kan uitstekende moontlikhede bied as u I/O nodig het waarmee die Arduino uitblink en netwerkkommunikasie/multithreading/visuals waarmee die RPi baie beter is.

Met ander woorde, ons gaan die Arduino gebruik vir beheerintensiewe take en die RPi vir rekenaarintensiewe take.

Robuuste weergawes van Arduinos is beskikbaar by Rugged-Circuits

Stap 1: Kry Arduino en RPi -hardeware

Arduino -voorgeregstelle is geredelik beskikbaar en laat u eksperimenteer met verskillende soorte sensors en toestelle. Die aankoop van 'n beginpakket werk goedkoper in plaas daarvan om verskillende onderdele afsonderlik te bestel. Ek het 'n paar aangeslote skakels hieronder verskaf wat verwys na Banggood en Amazon US.

Arduino Starter Kit (Banggood)

Arduino Starter Kit (Amazon VS)

Element14 RPi 3 B+ moederbord (Amazon VS)

Raspberry Pi 3 B+ Case (Amazon VS)

32 GB Micro SD -kaart (Amazon VS).

Stap 2: Koppel die DHT11 en LCD aan op die Arduino

Koppel die DHT11 en LCD aan op die Arduino
Koppel die DHT11 en LCD aan op die Arduino

Stap 3: Programmeer die Arduino

#arduino-dht11-lcd2004

#Auteur: Vasoo Veerapen

#https://www.instructables.com/member/VasooV/ #Lees data van 'n DHT11 wat aan 'n Arduino gekoppel is, vertoon op 'n LCD2004 en stuur data oor die reeks na Raspberry Pi

#insluit

#insluit

// LCD -skerm word gedefinieer as toestelnommer 0x27 op die I2C -bus

LiquidCrystal_I2C lcd (0x27, 20, 4);

// DHT11 is gekoppel aan pen 8

dht DHT; #definieer sensorPin 8

// Raspberry Pi is gekoppel aan Serial 0

#define serialPi Serial

ongeldige opstelling () {

lcd.begin (20, 4); // Initialiseer die koppelvlak na die LCD -skerm en spesifiseer die afmetings (breedte en hoogte) van die skerm lcd.init (); lcd.backlight (); serialPi.begin (9600); // Arduino na seriële monitor}

leemte -lus () {

// Lees sensor data

int sensorData = DHT.read11 (sensorPin); vlottemperatuur = DHT.temperatuur; float humiditeit = DHT.vochtigheid;

// Druk temperatuur

lcd.setCursor (0, 0); lcd.print ("temperatuur"); lcd.print (temperatuur); lcd.print ("C");

// Druk humiditeit af

lcd.setCursor (0, 1); lcd.print ("Humiditeit"); lcd.print (humiditeit); lcd.print (" %");

// Stuur temperatuur- en humiditeitsdata na Raspberry Pi

serialPi.print ("");

// Wag 10 sekondes

vertraging (10000); }

Stap 4: Die werkende Arduino-, LCD- en DHT11 -opstelling

Die werkende Arduino-, LCD- en DHT11 -opstelling
Die werkende Arduino-, LCD- en DHT11 -opstelling

Stap 5: Koppel die Raspberry Pi aan die Arduino

Koppel die Raspberry Pi aan die Arduino
Koppel die Raspberry Pi aan die Arduino

Stap 6: RPi Python -kode om die seriële data van die USB -poort te lees

#rpi-arduino-dht11

#Raspberry Pi lees data van temperatuur en humiditeit van Arduino

invoer reeks, string, tyd

#In hierdie voorbeeld word /dev /ttyUSB0 gebruik

#Dit kan in u geval verander na/dev/ttyUSB1,/dev/ttyUSB2, ens. Ser = serial. Serial ('/dev/ttyUSB0', 9600)

#Die volgende blok kode werk so:

#As seriële data teenwoordig is, lees die reël, dekodeer die UTF8 -data, #… verwyder die agterkant van reëlkarakters #… verdeel die data in temperatuur en humiditeit #… verwyder die begin- en eindaanwysings () #… druk die uitset af terwyl Waar: as ser.in_waiting> 0: rawserial = ser.readline () cookedserial = rawserial.decode ('utf-8'). Strip ('\ r / n') datasplit = cookedserial.split (',') temperatuur = datasplit [0]. strook ('') druk (temperatuur) druk (humiditeit)

Aanbeveel: