Përmbajtje:

Temperatura dhe lagështia nga Arduino në Raspberry Pi: 6 hapa
Temperatura dhe lagështia nga Arduino në Raspberry Pi: 6 hapa

Video: Temperatura dhe lagështia nga Arduino në Raspberry Pi: 6 hapa

Video: Temperatura dhe lagështia nga Arduino në Raspberry Pi: 6 hapa
Video: Arduino Nano, BME280 и SSD1306 OLED-метеостанция 2024, Korrik
Anonim
Temperatura dhe Lagështia Nga Arduino në Raspberry Pi
Temperatura dhe Lagështia Nga Arduino në Raspberry Pi

Ndjekja e temperaturës dhe lagështisë është e rëndësishme nëse keni një serë ose keni plane të ardhshme për të përmirësuar serën tuaj në një mini-fermë të zgjuar.

Për Instructable -in tim të parë do të demonstroj se si të krijoj një prototip:

  • Lidhni një sensor DHT11 të temperaturës dhe lagështisë me një Arduino Mega 2560
  • Programoni Arduino në C për të lexuar të dhënat e sensorit
  • Shfaqni të dhënat e temperaturës dhe lagështisë në një LCD të lidhur me Arduino
  • Udhëzoni Arduino të dërgojë të dhënat e sensorit në një Raspberry Pi 3 Model B+
  • Shkruani kod në Python për të shfaqur të dhënat e sensorit

Pse të përdorni një RPi dhe Arduino së bashku?

Lidhja Arduino dhe RPi mund të lejojnë aftësi të mëdha nëse keni nevojë për hyrje/dalje në të cilën Arduino shkëlqen dhe komunikim në rrjet/multitreading/vizual në të cilin RPi është shumë më i mirë.

Me fjalë të tjera, ne do të përdorim Arduino për kontrollin e detyrave intensive dhe do të përdorim RPi për llogaritjen e detyrave intensive.

Versionet e thyera të Arduinos janë në dispozicion në Rugged-Circuits

Hapi 1: Marrja e harduerit Arduino & RPi

Kompletet fillestare Arduino janë në dispozicion dhe ju lejojnë të eksperimentoni me lloje të ndryshme të sensorëve dhe veglave. Blerja e një çantë fillestar funksionon më lirë në vend që të porositni pjesë të ndryshme veç e veç. Unë kam furnizuar disa lidhje filiale më poshtë duke treguar Banggood dhe Amazon US.

Arduino Starter Kit (Banggood)

Arduino Starter Kit (Amazon US)

Element14 RPi 3 B+ Motherboard (Amazon US)

Raspberry Pi 3 B+ Rast (Amazon US)

Kartë Micro SD 32 GB (Amazon US).

Hapi 2: Lidhni DHT11 & LCD me Arduino

Lidhni DHT11 & LCD me Arduino
Lidhni DHT11 & LCD me Arduino

Hapi 3: Programoni Arduino

#arduino-dht11-lcd2004

#Autor: Vasoo Veerapen

#https://www.instructables.com/member/VasooV/ #Lexon të dhëna nga një DHT11 e lidhur me një Arduino, shfaqet në një LCD2004 dhe dërgon të dhëna mbi seri te Raspberry Pi

#përfshi

#përfshi

// Ekrani LCD përcaktohet si numri i pajisjes 0x27 në autobusin I2C

LiquidCrystal_I2C LCD (0x27, 20, 4);

// DHT11 është i lidhur me pin 8

dht DHT; #përcaktoni sensorinPin 8

// Raspberry Pi është e lidhur me Serial 0

#cakto serialPi Serial

void setup () {

lcd.filloni (20, 4); // Fillon ndërfaqen në ekranin LCD dhe specifikon dimensionet (gjerësinë dhe lartësinë) e ekranit lcd.init (); lcd. backlight (); serialPi.filloj (9600); // Arduino te monitori serik}

lak void () {

// Lexoni të dhënat e sensorit

int sensorData = DHT.read11 (sensorPin); temperatura e notimit = DHT.temperatura; lagështia e notit = DHT. lagështia;

// Temperatura e printimit

lcd.setCursor (0, 0); lcd.print ("Temperatura"); lcd.print (temperatura); lcd.print ("C");

// Lagështia e printimit

lcd.setCursor (0, 1); lcd.print ("Lagështia"); lcd.print (lagështia); lcd.print (" %");

// Dërgoni të dhëna për temperaturën dhe lagështinë tek Raspberry Pi

serialPi.print ("");

// Prisni për 10 sekonda

vonesë (10000); }

Hapi 4: Arduino, LCD & DHT11 i punës

Arduino, LCD & DHT11 i punës
Arduino, LCD & DHT11 i punës

Hapi 5: Lidhni Raspberry Pi me Arduino

Lidhni Raspberry Pi me Arduino
Lidhni Raspberry Pi me Arduino

Hapi 6: Kodi Python RPi për të lexuar të dhënat serike të Portës USB

#rpi-arduino-dht11

#Raspberry Pi lexon të dhënat e sensorit të temperaturës dhe lagështisë nga Arduino

serial import, varg, kohë

#Në këtë shembull /dev /ttyUSB0 përdoret

#Kjo mund të ndryshojë në rastin tuaj në/dev/ttyUSB1,/dev/ttyUSB2, etj ser = serial. Serial ('/dev/ttyUSB0', 9600)

#Blloku i mëposhtëm i kodit funksionon kështu:

#Nëse të dhënat serike janë të pranishme, lexoni rreshtin, deshifroni të dhënat UTF8, #… hiqni fundin pasues të karaktereve të rreshtit #… ndani të dhënat në temperaturë dhe lagështi #… hiqni treguesit e fillimit dhe mbarimit () #… printoni daljen ndërsa E vërtetë: nëse ser.in_waiting> 0: rawserial = ser.readline () cookserial = rawserial.decode ('utf-8'). Strip ('\ r / n') datasplit = cookserial.split (',') temperature = datasplit [0].strip ('') print (temperaturë) print (lagështi)

Recommended: