Daftar Isi:
- Langkah 1: Hal-hal yang Dibutuhkan untuk Proyek
- Langkah 2: Unduh dan Instal Arduino IDE di Raspberry Pi
- Langkah 3: Kode untuk Arduino
- Langkah 4: Siapkan Raspberry Pi
- Langkah 5: Python Scipt
- Langkah 6: Diagram Sirkuit
- Langkah 7: Hasil
Video: Plot Data DHT11 Menggunakan Raspberry Pi dan Arduino UNO: 7 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Instruksi ini menjelaskan bagaimana saya memplot data sensor suhu DHT11 menggunakan Arduino Uno dan Raspberry Pi. Pada sensor suhu ini dihubungkan dengan Arduino Uno dan Arduino Uno dihubungkan secara serial dengan Raspberry Pi. Di Raspberry Pi Side, pustaka matplotlib, numpy dan drawow digunakan untuk memplot grafik.
Langkah 1: Hal-hal yang Dibutuhkan untuk Proyek
1. Raspberry Pi
2. Arduino Uno
3. Sensor Suhu DHT11
4. Kabel Jumper
5. Papan tempat memotong roti
Langkah 2: Unduh dan Instal Arduino IDE di Raspberry Pi
Catatan: - Anda dapat menggunakan Arduino IDE dari windows, Linux atau Mac untuk mengunggah sketsa di Arduino UNO.
Langkah pertama adalah menginstal Arduino IDE untuk browser yang terbuka di Raspberry Pi dan buka tautan yang diberikan di bawah ini
Arduino IDE Sebelumnya
Kemudian unduh versi ARM Linux dan ekstrak menggunakan perintah
tar -xf nama file
Setelah mengekstrak Anda akan melihat direktori baru. Disini saya menggunakan arduino-1.8.2 IDE. Kemudian masuk ke direktori dengan menggunakan perintah.
cd arduino-1.8.1
Untuk menjalankan Arduino IDE, gunakan perintah ini di direktori arduino-1.8.2
./arduino
Cara menggunakan perpustakaan
Untuk menginstal library apapun di Arduino, cukup download library dan paste di folder arduino 1.8.2 ==> libraries.
CATATAN: - Pastikan tidak ada (-) di folder perpustakaan untuk ex (DHT-sensor). Jika ada (-), ganti namanya.
kami akan menggunakan dua perpustakaan dalam instruksi ini, DHT_Sensor dan Adafruit_Sensor
Langkah 3: Kode untuk Arduino
Sekarang, mari kita python dan Arduino berbicara bersama. Pertama kita membutuhkan program sederhana untuk mendapatkan Arduino mengirimkan data melalui port serial. Program berikut adalah program sederhana yang akan menghitung Arduino dan mengirim data ke port serial.
Kode Arduino
#include "DHT.h" float tempC; // Variabel atau holding temp di C float tempF; // Variabel untuk menahan suhu dalam kelembaban float F; //Variabel untuk menahan pembacaan tekanan
#define DHTPIN 7 // pin digital yang kita sambungkan
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Inisialisasi sensor DHT.
DHT dht(DHTPIN, DHTTYPE);
void setup(){Serial.begin(115200); //nyalakan monitor serial
dht.mulai(); //inisialisasi dht }
void loop() {tempC = dht.readTemperature(); // Pastikan untuk mendeklarasikan variabel Anda
kelembaban = dht.readHumidity(); // Baca Kelembaban
Serial.print(tempC);
Serial.print(", ");
Serial.print(kelembaban);
Serial.print("\n"); // untuk penundaan baris baru(2000); // Jeda di antara pembacaan. }
Setelah sketsa dikompilasi, pilih papan dan port dan unggah.
Langkah 4: Siapkan Raspberry Pi
Setelah kode diunggah, Instal beberapa pustaka sehingga kita dapat memplot grafik data yang datang secara serial dari Arduino Uno.
1. PySerial adalah perpustakaan yang menyediakan dukungan untuk koneksi serial melalui berbagai perangkat yang berbeda. Untuk menginstalnya gunakan perintah.
Sudo apt-get install python-serial
2. Numpy adalah paket yang mendefinisikan objek array multi-dimensi dan fungsi matematika cepat terkait yang beroperasi di atasnya. Ini juga menyediakan rutinitas sederhana untuk aljabar linier dan FFT (Fast Fourier Transform) dan pembuatan angka acak yang canggih. Anda dapat menginstalnya dengan banyak cara baik menggunakan paket apt atau pip. Disini saya menginstall menggunakan pip untuk itu pertama kita harus menginstall pip
sudo apt-get install python-pip python-dev build-essential
sudo pip install numpy
atau jika Anda ingin menggunakan paket apt
sudo apt install python-numpy
3. Matplotlib adalah pustaka plot 2D yang menyediakan API berorientasi objek untuk menyematkan plot ke dalam aplikasi menggunakan toolkit GUI tujuan umum seperti Tkinter, wxPython, Qt, atau GTK+. Untuk menginstalnya gunakan perintah
sudo pip instal matplotlib
atau
sudo apt install python-matplotlib
4. Drawnow umumnya digunakan untuk melihat hasil setelah setiap iterasi seperti yang kita gunakan "imshow" di MATLAB. Untuk menginstalnya gunakan perintah
sudo pip install drawow
Langkah 5: Python Scipt
Langkah selanjutnya adalah menulis skrip python untuk itu Anda dapat menggunakan editor apa pun untuk menulisnya.
1. Plot data dalam satu grafik
impor serial # impor Perpustakaan Serial
impor numpy # Impor numpy
impor matplotlib.pyplot sebagai plt #import matplotlib library
dari impor yang ditarik *
tempC = #Empty arrayhumidity =
arduino = serial. Serial("/dev/ttyACM0", 115200)
plt.ion() # mode interaktif untuk memplot jumlah data langsung = 0
def makeFig(): #Buat fungsi yang membuat plot yang kita inginkan
plt.ylim(20, 30) #Tetapkan nilai y min dan maks
plt.title('Data DHT11 Waktu Nyata') #Plot judulnya
plt.grid(True) #Nyalakan grid
plt.ylabel('Temp C') #Set ylabel
plt.plot(tempC, 'b^-', label='Degree C') #plot suhu
plt.legend(loc='atas kanan') #plot legenda
plt2=plt.twinx() #Buat sumbu y kedua
plt.ylim(50, 70) #Tetapkan batas sumbu y kedua
plt2.plot(kelembaban, 'g*-', label='Humidity') #plot data tekanan
plt2.set_ylabel('Humidity') #label kedua sumbu y
plt2.ticklabel_format(useOffset=False)
plt2.legend(loc='kiri atas')
while Benar: # Perulangan while yang berulang selamanya
while (arduino.inWaiting()==0): #Tunggu disini sampai ada data
lulus #tidak melakukan apa-apa
arduinoString = arduino.readline()
dataArray = arduinoString.split(', ') #Pisahkan menjadi array
suhu = float(dataArray[0])
hum = float(dataArray[1])
tempC.tambahkan(temp)
kelembaban. tambahkan(hum)
ditarik (makeGbr)
plt.jeda(.000001)
count=count+1 if(count>20): #hanya ambil 20 data terakhir jika data lebih akan muncul lebih dulu
tempC.pop(0)
kelembaban.pop(0)
2. Untuk memplot kelembaban dan suhu secara terpisah
impor serial # impor Perpustakaan Serial
impor numpy # Impor numpy
impor matplotlib.pyplot sebagai plt #import matplotlib library
dari impor yang ditarik *
tempC = #Array kosong
kelembaban =
arduino = serial. Serial("/dev/ttyACM0", 115200) #Serial port tempat arduino terhubung dan Baudrate
plt.ion() #Beri tahu matplotlib bahwa Anda ingin mode interaktif untuk memplot data langsung
def CreatePlot(): #Buat fungsi yang membuat plot yang kita inginkan
plt.subplot(2, 1, 1) #Tinggi, Lebar, Plot pertama
plt.ylim(22, 34) #Tetapkan nilai y min dan maks
plt.title('Data DHT11 Waktu Nyata') #Plot judulnya
plt.grid(True) #Nyalakan grid
plt.ylabel('Temp C') #Set ylabels
plt.plot(tempC, 'b^-', label='Degree C') #plot suhu
plt.legend(loc='upper center') #plot sang legenda
plt.subplot(2, 1, 2) # Tinggi, Lebar, Plot Kedua
plt.grid(Benar)
plt.ylim(45, 70) #Tetapkan batas sumbu y kedua
plt.plot(kelembaban, 'g*-', label='Humidity (g/m^3)') #plot data kelembapan
plt.ylabel('Humidity (g/m^3)') #label kedua sumbu y
plt.ticklabel_format(useOffset=False) #untuk menghentikan skala otomatis sumbu y
plt.legend(loc='tengah atas')
while Benar: # Perulangan while yang berulang selamanya
while (arduino.inWaiting()==0): #Tunggu disini sampai ada data pass #do nothing
arduinoString = arduino.readline() #membaca data dari port serial
dataArray = arduinoString.split(', ') #Pisahkan menjadi array
temp = float(dataArray[0]) #Konversi elemen pertama ke angka mengambang dan masukkan temp
hum = float(dataArray[1]) #Konversi elemen kedua ke angka mengambang dan masukkan hum
tempC.append(temp) #Bangun array tempC kami dengan menambahkan pembacaan temp
kelembaban.append(hum) #Membangun susunan kelembaban kami dengan menambahkan pembacaan hum
drawow(Buat Plot)
plt.jeda(.000001)
hitung=hitung+1
if(count>20): #hanya ambil 20 data terakhir jika data lebih akan muncul lebih dulu
tempC.pop(0) # keluarkan elemen pertama
kelembaban.pop(0)
Langkah 6: Diagram Sirkuit
Arduino ==> DHT11
3.3V ==> VCC
GND ==> GND
D7 ==> KELUAR
Direkomendasikan:
Buat Plot Indah Dari Data Arduino Langsung (dan Simpan Data ke Excel): 3 Langkah
Buat Plot Indah Dari Data Arduino Langsung (dan Simpan Data ke Excel): Kita semua suka bermain dengan fungsi P…lotter kami di Arduino IDE. Namun, meskipun dapat berguna untuk aplikasi dasar, data akan terhapus karena lebih banyak poin ditambahkan dan itu tidak terlalu menyenangkan untuk mata. Plotter Arduino IDE tidak
Cara Membuat Perekam Data Kelembaban dan Suhu Secara Real Time Dengan Arduino UNO dan SD-Card - Simulasi Data-logger DHT11 di Proteus: 5 Langkah
Cara Membuat Perekam Data Kelembaban dan Suhu Secara Real Time Dengan Arduino UNO dan SD-Card | Simulasi Data-logger DHT11 di Proteus: Pendahuluan: hai, ini Liono Maker, ini tautan YouTube. Kami membuat proyek kreatif dengan Arduino dan bekerja pada sistem tertanam. Data-Logger: Data logger (juga data-logger atau perekam data) adalah perangkat elektronik yang merekam data dari waktu ke waktu dengan
Robot SCARA: Belajar Tentang Kinematika Maju dan Terbalik!!! (Plot Twist Pelajari Cara Membuat Antarmuka Real Time di ARDUINO Menggunakan PROCESSING !!!!): 5 Langkah (dengan Gambar)
Robot SCARA: Belajar Tentang Kinematika Maju dan Terbalik!!! (Plot Twist Pelajari Cara Membuat Antarmuka Waktu Nyata di ARDUINO Menggunakan PROCESSING !!!!): Robot SCARA adalah mesin yang sangat populer di dunia industri. Namanya adalah singkatan dari Selective Compliant Assembly Robot Arm atau Selective Compliant Articulated Robot Arm. Ini pada dasarnya adalah robot tiga derajat kebebasan, menjadi dua penampil pertama
Plot Intensitas Cahaya Menggunakan Arduino dan Perpustakaan Master Arduino Python: 5 Langkah
Plot Intensitas Cahaya Menggunakan Arduino dan Perpustakaan Master Arduino Python: Arduino menjadi alat yang ekonomis namun sangat efisien dan fungsional, memprogramnya dalam Embedded C membuat proses pembuatan proyek menjadi membosankan! Modul Arduino_Master dari Python menyederhanakan ini dan memungkinkan kita melakukan perhitungan, menghapus nilai sampah
Log Data dan Plot Grafik Online Menggunakan NodeMCU, MySQL, PHP dan Chartjs.org: 4 Langkah
Data Log dan Plot Grafik Online Menggunakan NodeMCU, MySQL, PHP dan Chartjs.org: Instruksi ini menjelaskan bagaimana kita dapat menggunakan papan Node MCU untuk mengumpulkan data dari beberapa sensor, mengirimkan data ini ke file PHP yang dihosting yang kemudian menambahkan data ke sebuah database MySQL. Data tersebut kemudian dapat dilihat secara online sebagai grafik, menggunakan bagan bagan.js.A