İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bir seranız varsa veya seranızı mini bir akıllı çiftliğe yükseltmeyi planlıyorsanız, sıcaklık ve nemi takip etmek önemlidir.
İlk Eğitilebilir Dersim için bir prototipin nasıl oluşturulacağını göstereceğim:
- Arduino Mega 2560'a bir DHT11 sıcaklık ve nem sensörü bağlayın
- Sensör verilerini okumak için Arduino'yu C'de programlayın
- Arduino'ya bağlı bir LCD'de sıcaklık ve nem verilerini görüntüleyin
- Arduino'ya sensör verilerini bir Raspberry Pi 3 Model B+'ya göndermesini söyleyin
- Sensör verilerini görüntülemek için Python'da kod yazın
Neden bir RPI ve Arduino'yu birlikte kullanmalısınız?
Arduino'nun üstün olduğu G/Ç'ye ve RPi'nin çok daha iyi olduğu ağ iletişimi/çoklu okuma/görsellere ihtiyacınız varsa, Arduino ve RPi bağlantısı harika yeteneklere izin verebilir.
Başka bir deyişle, Arduino'yu yoğun kontrol gerektiren görevler için ve RPi'yi hesaplama yoğun görevler için kullanacağız.
Arduinos'un sağlamlaştırılmış versiyonları Rugged-Circuits'te mevcuttur
Adım 1: Arduino ve RPi Donanımını Alma
Arduino başlangıç kitleri hazırdır ve farklı tipte sensörler ve araçlarla denemeler yapmanıza olanak tanır. Bir başlangıç kiti satın almak, çeşitli parçaları ayrı ayrı sipariş etmek yerine daha ucuza çalışır. Aşağıda Banggood ve Amazon ABD'ye işaret eden bazı bağlı kuruluş bağlantıları sağladım.
Arduino Başlangıç Seti (Banggood)
Arduino Başlangıç Seti (Amazon ABD)
Element14 RPi 3 B+ Anakart (Amazon ABD)
Raspberry Pi 3 B+ Kasası (Amazon ABD)
32 GB Mikro SD kart (Amazon ABD).
Adım 2: DHT11 ve LCD'yi Arduino'ya bağlayın
Adım 3: Arduino'yu programlayın
#arduino-dht11-lcd2004
#Yazar: Vasoo Veerapen
#https://www.instructables.com/member/VasooV/ #Arduino'ya bağlı bir DHT11'den veri okur, bir LCD2004'te görüntüler ve seri üzerinden Raspberry Pi'ye veri gönderir
#Dahil etmek
#Dahil etmek
//LCD ekran, I2C veriyolunda 0x27 cihaz numarası olarak tanımlanır
LiquidCrystal_I2C lcd (0x27, 20, 4);
//DHT11 pin 8'e bağlı
dht DHT; #define sensorPin 8
//Raspberry Pi Seri 0'a bağlandı
#define serialPi Seri
geçersiz kurulum() {
lcd.başla(20, 4); // LCD ekran arayüzünü başlatır ve ekranın boyutlarını (genişlik ve yükseklik) belirtir lcd.init(); lcd.backlight(); serialPi.begin(9600); //Arduino'dan seri monitöre }
boşluk döngüsü () {
// Sensör verilerini oku
int sensorData = DHT.read11(sensorPin); şamandıra sıcaklığı = DHT.sıcaklık; yüzer nem = DHT.nem;
//Baskı sıcaklığı
lcd.setCursor(0, 0); lcd.print("Sıcaklık"); lcd.print(sıcaklık); lcd.print("C");
//Nemi yazdır
lcd.setCursor(0, 1); lcd.print("Nem"); lcd.print(nem); lcd.print(" %");
//Sıcaklık ve nem verilerini Raspberry Pi'ye gönder
seriPi.print("");
// 10 saniye bekleyin
gecikme (10000); }
Adım 4: Çalışan Arduino, LCD ve DHT11 Kurulumu
Adım 5: Raspberry Pi'yi Arduino'ya bağlayın
Adım 6: USB Bağlantı Noktası Seri Verilerini Okumak için RPi Python Kodu
#rpi-arduino-dht11
#Raspberry Pi, Arduino'dan sıcaklık ve nem sensörü verilerini okur
seriyi, diziyi, zamanı içe aktar
#Bu örnekte /dev/ttyUSB0 kullanılmıştır
#Bu sizin durumunuzda /dev/ttyUSB1, /dev/ttyUSB2, vb. olarak değişebilir. ser = serial. Serial('/dev/ttyUSB0', 9600)
#Aşağıdaki kod bloğu şu şekilde çalışır:
#Seri veri mevcutsa, satırı okuyun, UTF8 verilerinin kodunu çözün, #…sondaki satır sonu karakterlerini kaldırın #…verileri sıcaklık ve neme ayırın #…başlangıç ve bitiş işaretçilerini kaldırın () #…çıktıyı yazdırırken Doğru: if ser.in_waiting > 0: rawserial = ser.readline() pişmiş seri = rawserial.decode('utf-8').strip('\r\n') datasplit =cookserial.split(', ') sıcaklık = datasplit[0].strip('') print(sıcaklık) print(nem)