Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
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
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
Hapi 5: 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)