Daftar Isi:

Suhu & Kelembaban Dari Arduino ke Raspberry Pi: 6 Langkah
Suhu & Kelembaban Dari Arduino ke Raspberry Pi: 6 Langkah

Video: Suhu & Kelembaban Dari Arduino ke Raspberry Pi: 6 Langkah

Video: Suhu & Kelembaban Dari Arduino ke Raspberry Pi: 6 Langkah
Video: Monitoring Suhu Menggunakan Raspberry Pi Berbasis Internet of Things 2024, Juli
Anonim
Suhu & Kelembaban Dari Arduino ke Raspberry Pi
Suhu & Kelembaban Dari Arduino ke Raspberry Pi

Melacak suhu dan kelembaban penting jika Anda memiliki rumah kaca, atau memiliki rencana masa depan untuk meningkatkan rumah kaca Anda menjadi pertanian pintar mini.

Untuk Instructable pertama saya, saya akan menunjukkan cara membuat prototipe:

  • Hubungkan sensor suhu dan kelembaban DHT11 ke Arduino Mega 2560
  • Program Arduino dalam C untuk membaca data sensor
  • Menampilkan data suhu dan kelembaban pada LCD yang terhubung ke Arduino
  • Perintahkan Arduino untuk mengirim data sensor ke Raspberry Pi 3 Model B+
  • Tulis kode dengan Python untuk menampilkan data sensor

Mengapa menggunakan RPi dan Arduino bersama?

Koneksi Arduino dan RPi dapat memungkinkan kemampuan yang hebat jika Anda membutuhkan I/O yang Arduino unggul dan komunikasi jaringan/multithreading/visual yang RPi jauh lebih baik.

Dengan kata lain, kita akan menggunakan Arduino untuk mengontrol tugas intensif dan menggunakan RPi untuk menghitung tugas intensif.

Versi Arduino yang kokoh tersedia di Rugged-Circuits

Langkah 1: Mendapatkan Perangkat Keras Arduino & RPi

Kit starter Arduino sudah tersedia dan memungkinkan Anda bereksperimen dengan berbagai jenis sensor dan gadget. Membeli starter kit lebih murah daripada memesan berbagai suku cadang secara terpisah. Saya telah menyediakan beberapa tautan afiliasi di bawah ini yang menunjuk ke Banggood dan Amazon US.

Kit Pemula Arduino (Banggood)

Kit Pemula Arduino (Amazon AS)

Motherboard Element14 RPi 3 B+ (Amazon AS)

Casing Raspberry Pi 3 B+ (Amazon AS)

Kartu Micro SD 32GB (Amazon AS).

Langkah 2: Hubungkan DHT11 & LCD ke Arduino

Hubungkan DHT11 & LCD ke Arduino
Hubungkan DHT11 & LCD ke Arduino

Langkah 3: Program Arduino

#arduino-dht11-lcd2004

#Penulis: Vasoo Veerapen

#https://www.instructables.com/member/VasooV/ #Membaca data dari DHT11 yang terhubung ke Arduino, ditampilkan pada LCD2004 dan mengirimkan data melalui serial ke Raspberry Pi

#termasuk

#termasuk

//Layar LCD didefinisikan sebagai nomor perangkat 0x27 pada bus I2C

LiquidCrystal_I2C lcd (0x27, 20, 4);

//DHT11 terhubung ke pin 8

dht dht; #tentukan sensorPin 8

//Raspberry Pi terhubung ke Serial 0

#menentukan serialPi Serial

batalkan pengaturan() {

lcd.begin(20, 4); // Menginisialisasi antarmuka ke layar LCD, dan menentukan dimensi (lebar dan tinggi) tampilan lcd.init(); lcd.lampu latar(); serialPi.begin(9600); //Arduino ke monitor serial }

lingkaran kosong() {

//Baca data sensor

int sensorData = DHT.read11(sensorPin); suhu mengambang = DHT.suhu; kelembaban mengambang = DHT.kelembaban;

//Suhu cetak

lcd.setCursor(0, 0); lcd.print("Suhu"); lcd.print(suhu); lcd.print("C");

//Kelembaban cetak

lcd.setCursor(0, 1); lcd.print("Kelembaban"); lcd.print(kelembaban); lcd.print("%");

//Kirim data suhu dan kelembaban ke Raspberry Pi

serialPi.print("");

//Tunggu 10 detik

penundaan (10000); }

Langkah 4: Pengaturan Arduino, LCD & DHT11 yang Bekerja

Pengaturan Arduino, LCD & DHT11 yang Bekerja
Pengaturan Arduino, LCD & DHT11 yang Bekerja

Langkah 5: Hubungkan Raspberry Pi ke Arduino

Hubungkan Raspberry Pi ke Arduino
Hubungkan Raspberry Pi ke Arduino

Langkah 6: Kode Python RPi untuk Membaca Data Serial Port USB

#rpi-arduino-dht11

#Raspberry Pi membaca data sensor suhu dan kelembaban dari Arduino

impor serial, string, waktu

#Dalam contoh ini /dev/ttyUSB0 digunakan

#Ini dapat berubah dalam kasus Anda menjadi /dev/ttyUSB1, /dev/ttyUSB2, dll. ser = serial. Serial('/dev/ttyUSB0', 9600)

#Blok kode berikut berfungsi seperti ini:

#Jika data serial ada, baca baris, dekode data UTF8, #…hapus akhir karakter baris yang tertinggal #…bagi data menjadi suhu dan kelembaban #…hapus pointer awal dan akhir () #…cetak output sementara Benar: jika ser.in_waiting > 0: rawserial = ser.readline() cookingserial = rawserial.decode('utf-8').strip('\r\n') datasplit = cookingserial.split(', ') temperature = datasplit[0].strip('') print(suhu) print(kelembaban)

Direkomendasikan: