İçindekiler:

Arduino'dan Raspberry Pi'ye Sıcaklık ve Nem: 6 Adım
Arduino'dan Raspberry Pi'ye Sıcaklık ve Nem: 6 Adım

Video: Arduino'dan Raspberry Pi'ye Sıcaklık ve Nem: 6 Adım

Video: Arduino'dan Raspberry Pi'ye Sıcaklık ve Nem: 6 Adım
Video: Robotistan Canlı Yayın - Arduino vs. Raspberry Pi - 02/11/2017 2024, Temmuz
Anonim
Arduino'dan Raspberry Pi'ye Sıcaklık ve Nem
Arduino'dan Raspberry Pi'ye Sıcaklık ve Nem

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

DHT11 ve LCD'yi Arduino'ya bağlayın
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

Çalışan Arduino, LCD ve DHT11 Kurulumu
Çalışan Arduino, LCD ve DHT11 Kurulumu

Adım 5: Raspberry Pi'yi Arduino'ya bağlayın

Raspberry Pi'yi Arduino'ya bağlayın
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)

Önerilen: