Isi kandungan:
- Langkah 1: Perkara yang Diperlukan untuk Projek
- Langkah 2: Muat turun dan Pasang Arduino IDE di Raspberry Pi
- Langkah 3: Kod untuk Arduino
- Langkah 4: Sediakan Raspberry Pi
- Langkah 5: Python Scipt
- Langkah 6: Diagram Litar
- Langkah 7: Hasilnya
Video: Plot Data DHT11 Menggunakan Raspberry Pi dan Arduino UNO: 7 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Petunjuk ini menerangkan bagaimana saya memplot data suhu DHT11 sensor menggunakan Arduino Uno dan Raspberry Pi. Pada suhu ini sensor dihubungkan dengan Arduino Uno dan Arduino Uno dihubungkan secara bersiri dengan Raspberry Pi. Di Raspberry Pi Side, perpustakaan matplotlib, numpy dan drawow digunakan untuk memplot grafik.
Langkah 1: Perkara yang Diperlukan untuk Projek
1. Raspberry Pi
2. Arduino Uno
3. Sensor Suhu DHT11
4. Wayar Pelompat
5. Papan roti
Langkah 2: Muat turun dan Pasang Arduino IDE di Raspberry Pi
Catatan: - Anda dapat menggunakan Arduino IDE windows, Linux atau Mac untuk memuat naik sketsa di Arduino UNO.
Langkah pertama ialah memasang Arduino IDE untuk penyemak imbas terbuka di Raspberry Pi dan membuka pautan yang diberikan di bawah
Arduino IDE Sebelumnya
Kemudian muat turun versi Linux ARM dan ekstrak menggunakan arahan
nama fail tar -xf
Selepas mengekstrak anda akan melihat direktori baru. Di sini saya menggunakan arduino-1.8.2 IDE. Kemudian pergi 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 memasang perpustakaan di Arduino, cukup muat turun perpustakaan dan tampal di folder arduino 1.8.2 ==> perpustakaan.
CATATAN: - Pastikan tidak ada (-) dalam folder perpustakaan untuk bekas (sensor DHT). Sekiranya ada (-), namakan semula.
kami akan menggunakan dua perpustakaan dalam arahan ini, DHT_Sensor dan Adafruit_Sensor
Langkah 3: Kod untuk Arduino
Sekarang, mari kita python dan Arduino bercakap bersama. Pertama, kita memerlukan program sederhana untuk mendapatkan data penghantaran Arduino melalui port bersiri. Program berikut adalah program sederhana yang akan mempunyai jumlah Arduino dan menghantar data ke port bersiri.
Kod Arduino
#masuk "DHT.h" terapung tempC; // Pemboleh ubah atau menahan temp dalam C float tempF; // Pemboleh ubah untuk menahan suhu dalam kelembapan float F; // Pemboleh ubah untuk menahan tekanan membaca
#tentukan DHTPIN 7 // pin digital apa yang kita sambungkan
#tentukan DHTTYPE DHT11 // DHT 11
// # tentukan DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
// # tentukan DHTTYPE DHT21 // DHT 21 (AM2301)
// Memulakan sensor DHT.
DHT dht (DHTPIN, DHTTYPE);
persediaan tidak sah () {Serial.begin (115200); // hidupkan monitor bersiri
dht.begin (); // mulakan dht}
gelung void () {tempC = dht.readTemperature (); // Pastikan anda menyatakan pemboleh ubah anda
kelembapan = dht.readHumidity (); // Baca Kelembapan
Serial.print (tempC);
Cetakan bersiri (",");
Cetakan bersiri (kelembapan);
Cetakan bersiri ("\ n"); // untuk linedelay baru (2000); // Jeda antara bacaan. }
Setelah lakaran disusun, pilih papan dan port dan muat naik.
Langkah 4: Sediakan Raspberry Pi
Setelah kod dimuat, Pasang beberapa perpustakaan sehingga kami dapat memplot grafik data yang datang secara bersiri dari Arduino Uno.
1. PySerial adalah perpustakaan yang menyediakan sokongan untuk sambungan bersiri melalui pelbagai peranti yang berbeza. Untuk memasangnya gunakan arahan.
Sudo apt-get pasang python-serial
2. Numpy adalah pakej yang mentakrifkan objek pelbagai dimensi dan fungsi matematik pantas yang berkaitan yang beroperasi di atasnya. Ia juga menyediakan rutin sederhana untuk aljabar linear dan FFT (Fast Fourier Transform) dan penjanaan nombor rawak yang canggih. Anda boleh memasangnya dengan banyak cara sama ada menggunakan pakej apt atau pip. Di sini saya memasang menggunakan pip kerana pertama kita harus memasang pip
sudo apt-get install python-pip python-dev build-essential
sudo pip pasang numpy
atau jika anda mahu menggunakan pakej yang sesuai
sudo apt pasang python-numpy
3. Matplotlib adalah perpustakaan plot 2D yang menyediakan API berorientasi objek untuk menyisipkan plot ke dalam aplikasi menggunakan alat alat GUI tujuan umum seperti Tkinter, wxPython, Qt, atau GTK +. Untuk memasangnya gunakan arahan
sudo pip pasang matplotlib
atau
sudo apt pasang python-matplotlib
4. Drawnow umumnya digunakan untuk melihat hasilnya setelah setiap lelaran kerana kita menggunakan "imshow" dalam MATLAB. Untuk memasangnya gunakan arahan
sudo pip install drawow
Langkah 5: Python Scipt
Langkah seterusnya adalah menulis skrip python untuk itu anda boleh menggunakan mana-mana editor untuk menulisnya.
1. Petak data dalam satu graf
import serial # import Serial Library
import numpy # Import numpy
import matplotlib.pyplot sebagai perpustakaan matplotlib plt #import
dari import drawow *
tempC = # Kekosongan array kosong =
arduino = bersiri. Serial ("/ dev / ttyACM0", 115200)
plt.ion () # mod interaktif untuk memplot jumlah data langsung = 0
def makeFig (): #Buat fungsi yang membuat plot yang kita inginkan
plt.ylim (20, 30) # Tetapkan nilai min dan maksimum
plt.title ('Data Masa Nyata DHT11') #Menulis tajuk
plt.grid (Betul) # Hidupkan grid
plt.ylabel ('Temp C') # Tetapkan ylabel
plt.plot (tempC, 'b ^ -', label = 'Degree C') #plot suhu
plt.legend (loc = 'kanan atas') #plot legenda
plt2 = plt.twinx () #Buat paksi y kedua
plt.ylim (50, 70) # Tetapkan had paksi y kedua
plt2.plot (kelembapan, 'g * -', label = 'Kelembapan') #plot data tekanan
plt2.set_ylabel ('Kelembapan') #label paksi y kedua
plt2.ticklabel_format (useOffset = Salah)
plt2.legend (loc = 'kiri atas')
while True: # Sementara gelung yang bergelung selamanya
while (arduino.inWaiting () == 0): #Tunggu di sini sehingga ada data
lulus #tak apa-apa
arduinoString = arduino.readline ()
dataArray = arduinoString.split (',') #Split ke dalam array
temp = float (dataArray [0])
hum = terapung (dataArray [1])
tempC.append (temp)
kelembapan. tambah (hum)
drawow (makeFig)
plt jeda (.000001)
hitung = hitung + 1 jika (kiraan> 20): #hanya mengambil 20 data terakhir jika data lebih banyak, ia akan muncul terlebih dahulu
tempC.pop (0)
kelembapan.pop (0)
2. Untuk merancang kelembapan dan suhu secara berasingan
import serial # import Serial Library
import numpy # Import numpy
import matplotlib.pyplot sebagai perpustakaan matplotlib plt #import
dari drawow import *
tempC = #E array kosong
kelembapan =
arduino = serial. Serial ("/ dev / ttyACM0", 115200) # Port udara yang menghubungkan arduino dan Baudrate
plt.ion () #Beritahu matplotlib anda mahukan mod interaktif untuk memplot data langsung
def CreatePlot (): #Buat fungsi yang membuat plot yang kita inginkan
plt.subplot (2, 1, 1) # Tinggi, Lebar, Petak pertama
plt.ylim (22, 34) # Tetapkan nilai min dan maksimum
plt.title ('Data Masa Nyata DHT11') #Menulis tajuk
plt.grid (Betul) # Hidupkan grid
plt.ylabel ('Temp C') #Set ylabels
plt.plot (tempC, 'b ^ -', label = 'Degree C') #plot suhu
plt.legend (loc = 'pusat atas') #plot legenda
plt.subplot (2, 1, 2) # Tinggi, Lebar, Petak kedua
plt.grid (Betul)
plt.ylim (45, 70) # Tetapkan had paksi y kedua
plt.plot (kelembapan, 'g * -', label = 'Kelembapan (g / m ^ 3)') # data kelembapan plot
plt.ylabel ('Kelembapan (g / m ^ 3)') #label paksi y kedua
plt.ticklabel_format (useOffset = False) #untuk menghentikan paksi y autoskala
plt.legend (loc = 'pusat atas')
while True: # Sementara gelung yang bergelung selamanya
while (arduino.inWaiting () == 0): #Tunggu di sini sehingga ada data pass #doakan apa-apa
arduinoString = arduino.readline () # membaca data dari port bersiri
dataArray = arduinoString.split (',') #Split ke dalam array
temp = float (dataArray [0]) #Tukar elemen pertama ke nombor terapung dan masukkan temp
hum = float (dataArray [1]) #Tukar elemen kedua ke nombor terapung dan masukkan hum
tempC.append (temp) #Bangunkan array tempC kami dengan menambahkan bacaan temp
humidity.append (hum) #Membina susunan kelembapan kami dengan menambahkan bacaan hum
drawow (BuatPlot)
plt jeda (.000001)
kiraan = hitung + 1
if (hitung> 20): #hanya mengambil 20 data terakhir jika data lebih banyak, ia akan muncul terlebih dahulu
tempC.pop (0) # keluar elemen pertama
kelembapan.pop (0)
Langkah 6: Diagram Litar
Arduino ==> DHT11
3.3V ==> VCC
GND ==> GND
D7 ==> KELUAR
Disyorkan:
Cara Membuat Perekam Data Masa Nyata Kelembapan dan Suhu Dengan Arduino UNO dan SD-Card - Simulasi Pencatat Data DHT11 dalam Proteus: 5 Langkah
Cara Membuat Perekam Data Masa Nyata Kelembapan dan Suhu Dengan Arduino UNO dan SD-Card | DHT11 Data-logger Simulation in Proteus: Pengenalan: hai, ini adalah Liono Maker, berikut adalah pautan YouTube. Kami membuat projek kreatif dengan Arduino dan mengusahakan sistem terbenam. Data-Logger: Data logger (juga data-logger atau data recorder) adalah peranti elektronik yang merekod data dari masa ke masa dengan
Sistem Kehadiran Jari Jari dan RFID Menggunakan Pangkalan Data Raspberry Pi dan MySQL: 5 Langkah
Sistem Kehadiran Cap Jari dan RFID Menggunakan Raspberry Pi dan MySQL Pangkalan Data: Video Projek Ini
Robot SCARA: Belajar Mengenai Foward dan Inverse Kinematics !!! (Plot Twist Pelajari Cara Membuat Antaramuka Masa Nyata di ARDUINO Menggunakan PEMPROSESAN !!!!): 5 Langkah (dengan Gambar)
Robot SCARA: Belajar Mengenai Kinematik Foward dan Inverse !!! (Plot Twist Pelajari Cara Membuat Antaramuka Masa Nyata di ARDUINO Menggunakan PEMPROSESAN !!!!): Robot SCARA adalah mesin yang sangat popular di dunia industri. Nama bermaksud Lengan Robot Perhimpunan Selektif Selektif atau Lengan Robot Artikulasi Selektif Selektif. Ini pada dasarnya adalah robot kebebasan tiga darjah, menjadi dua perubahan pertama
Log Data dan Petak Grafik Dalam Talian Menggunakan NodeMCU, MySQL, PHP dan Chartjs.org: 4 Langkah
Log Data dan Plot Grafik Dalam Talian Menggunakan NodeMCU, MySQL, PHP dan Chartjs.org: Instructable ini menerangkan bagaimana kita dapat menggunakan papan Node MCU untuk mengumpulkan data dari pelbagai sensor, menghantar data ini ke fail PHP yang dihoskan yang kemudian menambahkan data ke pangkalan data MySQL. Data kemudian dapat dilihat dalam talian sebagai grafik, menggunakan chart.js.A
Paparan Suhu dan Kelembapan dan Pengumpulan Data Dengan Arduino dan Pemprosesan: 13 Langkah (dengan Gambar)
Paparan Suhu dan Kelembapan dan Pengumpulan Data Dengan Arduino dan Pemprosesan: Pengenalan: Ini adalah Projek yang menggunakan papan Arduino, Sensor (DHT11), komputer Windows dan program Pemprosesan (boleh dimuat turun percuma) untuk memaparkan data Suhu, Kelembapan dalam digital dan borang graf bar, masa dan tarikh paparan dan jalankan waktu mengira