Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Sledovanie teploty a vlhkosti je dôležité, ak máte skleník alebo máte v budúcnosti v pláne upgradovať svoj skleník na mini inteligentnú farmu.
Pre môj prvý Instructable ukážem, ako vytvoriť prototyp:
- Pripojte snímač teploty a vlhkosti DHT11 k Arduino Mega 2560
- Naprogramujte Arduino v C tak, aby čítalo údaje zo senzorov
- Zobrazte údaje o teplote a vlhkosti na LCD displeji pripojenom k Arduinu
- Požiadajte Arduino, aby odoslalo údaje zo senzora na Raspberry Pi 3 Model B+
- Na zobrazenie údajov senzora napíšte kód v Pythone
Prečo používať RPi a Arduino spoločne?
Pripojenie Arduino a RPi môže poskytnúť veľké možnosti, ak potrebujete I/O, v ktorých Arduino vyniká, a sieťovú komunikáciu/viacvláknové/vizuály, v ktorých je RPi oveľa lepší.
Inými slovami, použijeme Arduino na riadenie náročných úloh a RPi na výpočet náročných úloh.
Robustné verzie Arduinos sú k dispozícii na Rugged-Circuits
Krok 1: Získanie hardvéru Arduino a RPi
Štartovacie sady Arduino sú ľahko dostupné a umožňujú vám experimentovať s rôznymi druhmi senzorov a pomôcok. Kúpa štartovacej sady vyjde lacnejšie, ako objednávať rôzne diely samostatne. Ďalej som uviedol niekoľko odkazov na pobočky, ktoré odkazujú na Banggood a Amazon USA.
Štartovacia sada Arduino (Banggood)
Štartovacia sada Arduino (Amazon USA)
Základná doska Element14 RPi 3 B+ (Amazon USA)
Puzdro Raspberry Pi 3 B+ (Amazon USA)
32 GB karta Micro SD (Amazon USA).
Krok 2: Pripojte DHT11 a LCD k Arduinu
Krok 3: Naprogramujte Arduino
#arduino-dht11-lcd2004
#Autor: Vasoo Veerapen
#https://www.instructables.com/member/VasooV/ #Číta údaje z DHT11 pripojeného k Arduinu, zobrazuje sa na LCD2004 a odosiela sériové údaje na Raspberry Pi
#zahrnúť
#zahrnúť
// LCD displej je definovaný ako číslo zariadenia 0x27 na zbernici I2C
LiquidCrystal_I2C lcd (0x27, 20, 4);
// DHT11 je pripojený k pinu 8
dht DHT; #definovať senzorPin 8
// Raspberry Pi je pripojené k sériovej 0
#define serialPi Serial
neplatné nastavenie () {
lcd.begin (20, 4); // Inicializuje rozhranie na obrazovku LCD a určuje rozmery (šírku a výšku) displeja lcd.init (); lcd.backlight (); serialPi.begin (9600); // Arduino na sériový monitor}
prázdna slučka () {
// Prečítajte si údaje senzora
int sensorData = DHT.read11 (sensorPin); plávajúca teplota = DHT.teplota; plaváková vlhkosť = DHT.vlhkosť;
// Teplota tlače
lcd.setCursor (0, 0); lcd.print („teplota“); lcd.print (teplota); lcd.print ("C");
// Vlhkosť tlače
lcd.setCursor (0, 1); lcd.print („Vlhkosť“); lcd.print (vlhkosť); lcd.print (" %");
// Odoslanie údajov o teplote a vlhkosti do Raspberry Pi
serialPi.print ("");
// Počkajte 10 sekúnd
oneskorenie (10 000); }
Krok 4: Fungujúce nastavenie Arduina, LCD a DHT11
Krok 5: Pripojte Raspberry Pi k Arduinu
Krok 6: RPi Python kód na čítanie sériových údajov portu USB
#rpi-arduino-dht11
#Raspberry Pi číta údaje senzora teploty a vlhkosti z Arduina
import seriálu, reťazca, času
#V tomto prípade sa používa /dev /ttyUSB0
#To sa môže vo vašom prípade zmeniť na/dev/ttyUSB1,/dev/ttyUSB2 atď. Ser = serial. Serial ('/dev/ttyUSB0', 9600)
#Nasledujúci blok kódu funguje takto:
#Ak sú k dispozícii sériové údaje, prečítajte si riadok, dekódujte údaje UTF8, #… odstráňte koncový koniec znakov riadka #… rozdeľte údaje na teplotu a vlhkosť #… odstráňte počiatočné a koncové ukazovatele () #… vytlačte výstup, kým Pravda: ak ser.in_waiting> 0: rawserial = ser.readline () brewserial = rawserial.decode ('utf-8'). Strip ('\ r / n') datasplit = brewserial.split (',') teplota = datasplit [0].strip ('') tlač (teplota) tlač (vlhkosť)