Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Sledování teploty a vlhkosti je důležité, pokud máte skleník nebo máte plány do budoucna upgradovat svůj skleník na mini chytrou farmu.
Pro svůj první Instructable předvedu, jak vytvořit prototyp:
- Připojte snímač teploty a vlhkosti DHT11 k Arduino Mega 2560
- Naprogramujte Arduino v C tak, aby četlo data ze senzorů
- Zobrazte údaje o teplotě a vlhkosti na LCD připojeném k Arduinu
- Požádejte Arduino, aby odeslalo data ze senzoru na Raspberry Pi 3 Model B+
- Chcete -li zobrazit data senzorů, napište kód v Pythonu
Proč používat RPi a Arduino společně?
Připojení Arduino a RPi může poskytnout velké možnosti, pokud potřebujete I/O, v nichž Arduino vyniká, a síťovou komunikaci/vícevláknové/vizuály, ve kterých je RPi mnohem lepší.
Jinými slovy, budeme používat Arduino pro úkoly náročné na ovládání a RPi pro úkoly náročné na výpočet.
Robustní verze Arduinos jsou k dispozici na Rugged-Circuits
Krok 1: Získání hardwaru Arduino a RPi
Startovací sady Arduino jsou snadno dostupné a umožňují experimentovat s různými typy senzorů a pomůcek. Nákup startovací sady vychází levněji, místo objednání různých dílů samostatně. Níže jsem uvedl některé odkazy na pobočky směřující na Banggood a Amazon USA.
Startovací sada Arduino (Banggood)
Startovací sada Arduino (Amazon USA)
Základní deska Element14 RPi 3 B+ (Amazon USA)
Pouzdro Raspberry Pi 3 B+ (Amazon USA)
32 GB karta Micro SD (Amazon USA).
Krok 2: Připojte DHT11 a LCD k Arduinu
Krok 3: Naprogramujte Arduino
#arduino-dht11-lcd2004
#Autor: Vasoo Veerapen
#https://www.instructables.com/member/VasooV/ #Čte data z DHT11 připojeného k Arduinu, zobrazuje se na LCD2004 a odesílá data přes sériový port na Raspberry Pi
#zahrnout
#zahrnout
// LCD displej je definován jako číslo zařízení 0x27 na sběrnici I2C
LiquidCrystal_I2C lcd (0x27, 20, 4);
// DHT11 je připojen na pin 8
dht DHT; #definovat senzorPin 8
// Raspberry Pi je připojeno k Serial 0
#define serialPi Serial
neplatné nastavení () {
lcd.begin (20, 4); // Inicializuje rozhraní na obrazovku LCD a určuje rozměry (šířku a výšku) displeje lcd.init (); lcd.backlight (); serialPi.begin (9600); // Arduino na sériový monitor}
prázdná smyčka () {
// Přečíst data ze senzoru
int sensorData = DHT.read11 (sensorPin); plovoucí teplota = DHT. teplota; plovoucí vlhkost = DHT. vlhkost;
// Teplota tisku
lcd.setCursor (0, 0); lcd.print („teplota“); lcd.print (teplota); lcd.print ("C");
// Vlhkost tisku
lcd.setCursor (0, 1); lcd.print („Vlhkost“); lcd.print (vlhkost); lcd.print (" %");
// Odeslání údajů o teplotě a vlhkosti do Raspberry Pi
serialPi.print ("");
// Počkejte 10 sekund
zpoždění (10 000); }
Krok 4: Pracovní nastavení Arduina, LCD a DHT11
Krok 5: Připojte Raspberry Pi k Arduinu
Krok 6: RPi Python kód pro čtení sériových dat portu USB
#rpi-arduino-dht11
#Raspberry Pi čte data ze snímače teploty a vlhkosti z Arduina
importovat seriál, řetězec, čas
#V tomto příkladu se používá /dev /ttyUSB0
#To se může ve vašem případě změnit na/dev/ttyUSB1,/dev/ttyUSB2 atd. Ser = serial. Serial ('/dev/ttyUSB0', 9600)
#Následující blok kódu funguje takto:
#Pokud jsou k dispozici sériová data, přečtěte si řádek, dekódujte data UTF8, #… odeberte koncový konec znaků řádku #… rozdělte data na teplotu a vlhkost #… odstraňte počáteční a koncové ukazatele () #… vytiskněte výstup, zatímco Pravda: pokud ser.in_waiting> 0: rawserial = ser.readline () brewserial = rawserial.decode ('utf-8'). Strip ('\ r / n') datasplit = brewserial.split (',') teplota = datasplit [0].strip ('') tisk (teplota) tisk (vlhkost)