![Vẽ sơ đồ dữ liệu DHT11 bằng Raspberry Pi và Arduino UNO: 7 bước Vẽ sơ đồ dữ liệu DHT11 bằng Raspberry Pi và Arduino UNO: 7 bước](https://i.howwhatproduce.com/images/004/image-9255-8-j.webp)
Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-23 15:15
![Vẽ dữ liệu DHT11 bằng Raspberry Pi và Arduino UNO Vẽ dữ liệu DHT11 bằng Raspberry Pi và Arduino UNO](https://i.howwhatproduce.com/images/004/image-9255-9-j.webp)
Tài liệu hướng dẫn này giải thích cách tôi vẽ biểu đồ dữ liệu cảm biến nhiệt độ DHT11 bằng Arduino Uno và Raspberry Pi. Trong cảm biến nhiệt độ này được kết nối với Arduino Uno và Arduino Uno được kết nối nối tiếp với Raspberry Pi. Tại Raspberry Pi Side, các thư viện matplotlib, numpy và drawnow được sử dụng để vẽ đồ thị.
Bước 1: Những điều cần thiết cho dự án
![Những điều cần thiết cho dự án Những điều cần thiết cho dự án](https://i.howwhatproduce.com/images/004/image-9255-10-j.webp)
![Những điều cần thiết cho dự án Những điều cần thiết cho dự án](https://i.howwhatproduce.com/images/004/image-9255-11-j.webp)
![Những điều cần thiết cho dự án Những điều cần thiết cho dự án](https://i.howwhatproduce.com/images/004/image-9255-12-j.webp)
1. Raspberry Pi
2. Arduino Uno
3. Cảm biến nhiệt độ DHT11
4. Dây nhảy
5. Breadboard
Bước 2: Tải xuống và cài đặt Arduino IDE trong Raspberry Pi
![Tải xuống và cài đặt Arduino IDE trong Raspberry Pi Tải xuống và cài đặt Arduino IDE trong Raspberry Pi](https://i.howwhatproduce.com/images/004/image-9255-13-j.webp)
![Tải xuống và cài đặt Arduino IDE trong Raspberry Pi Tải xuống và cài đặt Arduino IDE trong Raspberry Pi](https://i.howwhatproduce.com/images/004/image-9255-14-j.webp)
![Tải xuống và cài đặt Arduino IDE trong Raspberry Pi Tải xuống và cài đặt Arduino IDE trong Raspberry Pi](https://i.howwhatproduce.com/images/004/image-9255-15-j.webp)
Lưu ý: - Bạn có thể sử dụng Arduino IDE của windows, Linux hoặc Mac để tải lên bản phác thảo trong Arduino UNO.
Bước đầu tiên là cài đặt Arduino IDE cho trình duyệt đang mở đó trong Raspberry Pi và mở liên kết được cung cấp bên dưới
Arduino IDE trước
Sau đó tải xuống phiên bản Linux ARM và giải nén nó bằng lệnh
tên tệp tar -xf
Sau khi giải nén bạn sẽ thấy một thư mục mới. Ở đây tôi đang sử dụng arduino-1.8.2 IDE. Sau đó đi đến thư mục bằng cách sử dụng lệnh.
cd arduino-1.8.1
Để chạy Arduino IDE, hãy sử dụng lệnh này trong thư mục arduino-1.8.2
./arduino
Cách sử dụng thư viện
Để cài đặt bất kỳ thư viện nào trong Arduino, chỉ cần tải xuống thư viện và dán vào thư mục arduino 1.8.2 ==> Library.
LƯU Ý: - Đảm bảo không có (-) trong thư mục thư viện cho ex (DHT-sensor). Nếu có dấu (-), hãy đổi tên nó.
chúng tôi sẽ sử dụng hai thư viện trong có thể hướng dẫn này, DHT_Sensor và Adafruit_Sensor
Bước 3: Mã cho Arduino
![Mã cho Arduino Mã cho Arduino](https://i.howwhatproduce.com/images/004/image-9255-16-j.webp)
Bây giờ, hãy để python và Arduino nói chuyện cùng nhau. Đầu tiên, chúng ta cần một chương trình đơn giản để Arduino gửi dữ liệu qua cổng nối tiếp. Chương trình sau đây là một chương trình đơn giản sẽ đếm Arduino và gửi dữ liệu đến cổng nối tiếp.
Mã Arduino
#include "DHT.h" float tempC; // Biến hoặc giữ nhiệt độ trong C float tempF; // Biến để giữ nhiệt độ trong độ ẩm F float; // Biến để đọc áp suất
#define DHTPIN 7 // loại pin kỹ thuật số mà chúng tôi đang kết nối với
#define DHTTYPE DHT11 // DHT 11
// # xác định DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
// # xác định DHTTYPE DHT21 // DHT 21 (AM2301)
// Khởi tạo cảm biến DHT.
DHT dht (DHTPIN, DHTTYPE);
void setup () {Serial.begin (115200); // bật màn hình nối tiếp
dht.begin (); // khởi tạo dht}
void loop () {tempC = dht.readTempe Heat (); // Đảm bảo khai báo các biến của bạn
độ ẩm = dht.readHumidity (); // Đọc độ ẩm
Serial.print (tempC);
Serial.print (",");
Serial.print (độ ẩm);
Serial.print ("\ n"); // cho new lineselay (2000); // Tạm dừng giữa các lần đọc. }
Sau khi bản phác thảo được biên dịch, hãy chọn bo mạch và cổng và tải nó lên.
Bước 4: Thiết lập Raspberry Pi
![Thiết lập Raspberry Pi Thiết lập Raspberry Pi](https://i.howwhatproduce.com/images/004/image-9255-17-j.webp)
Sau khi mã được tải lên, hãy cài đặt một số thư viện để chúng tôi có thể vẽ biểu đồ dữ liệu sắp xếp từ Arduino Uno.
1. PySerial là một thư viện cung cấp hỗ trợ cho các kết nối nối tiếp trên nhiều thiết bị khác nhau. Để cài đặt nó, hãy sử dụng lệnh.
Sudo apt-get install python-serial
2. Numpy là một gói định nghĩa một đối tượng mảng đa chiều và các hàm toán học nhanh liên quan hoạt động trên nó. Nó cũng cung cấp các quy trình đơn giản cho đại số tuyến tính và FFT (Fast Fourier Transform) và tạo số ngẫu nhiên phức tạp. Bạn có thể cài đặt nó theo nhiều cách hoặc sử dụng gói apt hoặc pip. Ở đây tôi đang cài đặt bằng cách sử dụng pip, đầu tiên chúng ta phải cài đặt pip
sudo apt-get install python-pip python-dev build-essential
sudo pip cài đặt numpy
hoặc nếu bạn muốn sử dụng gói apt
sudo apt install python-numpy
3. Matplotlib là một thư viện vẽ đồ thị 2D cung cấp một API hướng đối tượng để nhúng các đồ thị vào các ứng dụng sử dụng các bộ công cụ GUI có mục đích chung như Tkinter, wxPython, Qt hoặc GTK +. Để cài đặt nó, hãy sử dụng lệnh
sudo pip cài đặt matplotlib
hoặc
sudo apt install python-matplotlib
4. Drawnow thường được sử dụng để xem kết quả sau mỗi lần lặp khi chúng ta sử dụng "imshow" trong MATLAB. Để cài đặt nó, hãy sử dụng lệnh
sudo pip cài đặt drawnow
Bước 5: Python Scipt
![Python Scipt Python Scipt](https://i.howwhatproduce.com/images/004/image-9255-18-j.webp)
![Python Scipt Python Scipt](https://i.howwhatproduce.com/images/004/image-9255-19-j.webp)
Bước tiếp theo là viết một tập lệnh python mà bạn có thể sử dụng bất kỳ trình soạn thảo nào để viết nó.
1. Vẽ dữ liệu trong một biểu đồ
import serial # import Serial Library
import numpy # Import numpy
nhập matplotlib.pyplot dưới dạng plt #import matplotlib thư viện
từ nhập drawnow *
tempC = #Empty arrayhumidity =
arduino = serial. Serial ("/ dev / ttyACM0", 115200)
plt.ion () # chế độ tương tác để vẽ số liệu trực tiếp = 0
def makeFig (): # Tạo một hàm tạo âm mưu mong muốn của chúng ta
plt.ylim (20, 30) # Đặt y giá trị tối thiểu và tối đa
plt.title ('Dữ liệu DHT11 Thời gian thực') # Đánh dấu tiêu đề
plt.grid (True) # Bật lưới
plt.ylabel ('Temp C') #Set ylabel
plt.plot (tempC, 'b ^ -', label = 'Độ C') #plot nhiệt độ
plt.legend (loc = 'phía trên bên phải') # vẽ chú giải
plt2 = plt.twinx () # Tạo trục y thứ hai
plt.ylim (50, 70) # Đặt giới hạn của trục y thứ hai
plt2.plot (độ ẩm, 'g * -', label = 'Độ ẩm') #plot dữ liệu áp suất
plt2.set_ylabel ('Độ ẩm') # nhãn trục y thứ hai
plt2.ticklabel_format (useOffset = False)
plt2.legend (loc = 'phía trên bên trái')
while True: # Vòng lặp while lặp lại mãi mãi
while (arduino.inWaiting () == 0): # Chờ ở đây cho đến khi có dữ liệu
vượt qua # không làm gì cả
arduinoString = arduino.readline ()
dataArray = arduinoString.split (',') # Ghép nó vào một mảng
temp = float (dataArray [0])
hum = float (dataArray [1])
tempC.append (tạm thời)
độ ẩm.append (hum)
drawnow (makeFig)
plt.pause (.000001)
count = count + 1 if (count> 20): # chỉ lấy 20 dữ liệu cuối cùng nếu dữ liệu nhiều hơn, nó sẽ bật ra đầu tiên
tempC.pop (0)
độ ẩm.pop (0)
2. Lập biểu đồ độ ẩm và nhiệt độ riêng biệt
import serial # import Serial Library
import numpy # Import numpy
nhập matplotlib.pyplot dưới dạng plt #import matplotlib thư viện
từ nhập drawnow *
tempC = # Mảng #Empty
độ ẩm =
arduino = serial. Serial ("/ dev / ttyACM0", 115200) Cổng #Serial mà arduino được kết nối và Baudrate
plt.ion () # Nói với matplotlib rằng bạn muốn chế độ tương tác để vẽ dữ liệu trực tiếp
def CreatePlot (): # Tạo một hàm tạo ra âm mưu mong muốn của chúng ta
plt.subplot (2, 1, 1) # Chiều cao, Chiều rộng, Biểu đồ đầu tiên
plt.ylim (22, 34) # Đặt y giá trị tối thiểu và tối đa
plt.title ('Dữ liệu DHT11 Thời gian thực') # Đánh dấu tiêu đề
plt.grid (True) # Bật lưới
plt.ylabel ('Temp C') #Set ylabels
plt.plot (tempC, 'b ^ -', label = 'Độ C') #plot nhiệt độ
plt.legend (loc = 'upper center') # vẽ chú giải
plt.subplot (2, 1, 2) # Chiều cao, Chiều rộng, Biểu đồ thứ hai
plt.grid (Đúng)
plt.ylim (45, 70) # Đặt giới hạn của trục y thứ hai
plt.plot (độ ẩm, 'g * -', label = 'Độ ẩm (g / m ^ 3)') #plot dữ liệu độ ẩm
plt.ylabel ('Độ ẩm (g / m ^ 3)') # nhãn trục y thứ hai
plt.ticklabel_format (useOffset = False) # để dừng trục y tự động chỉnh tỷ lệ
plt.legend (loc = 'phía trên trung tâm')
while True: # Vòng lặp while lặp lại mãi mãi
while (arduino.inWaiting () == 0): # Chờ ở đây cho đến khi có dữ liệu truyền # không làm gì cả
arduinoString = arduino.readline () # đọc dữ liệu từ cổng nối tiếp
dataArray = arduinoString.split (',') # Ghép nó vào một mảng
temp = float (dataArray [0]) #Chuyển đổi phần tử đầu tiên thành số thực và đưa vào tạm thời
hum = float (dataArray [1]) #Chuyển phần tử thứ hai thành số thực và đặt vào hum
tempC.append (tạm thời) # Xây dựng mảng tempC của chúng tôi bằng cách bổ sung đọc tạm thời
Moisturiser.append (hum) # Xây dựng mảng độ ẩm của chúng tôi bằng cách bổ sung đọc hum
drawnow (CreatePlot)
plt.pause (.000001)
count = count + 1
if (count> 20): # chỉ lấy 20 dữ liệu cuối cùng nếu dữ liệu nhiều hơn, nó sẽ bật ra đầu tiên
tempC.pop (0) # phần tử đầu tiên bật ra
độ ẩm.pop (0)
Bước 6: Sơ đồ mạch
![Sơ đồ mạch Sơ đồ mạch](https://i.howwhatproduce.com/images/004/image-9255-20-j.webp)
![Sơ đồ mạch Sơ đồ mạch](https://i.howwhatproduce.com/images/004/image-9255-21-j.webp)
![Sơ đồ mạch Sơ đồ mạch](https://i.howwhatproduce.com/images/004/image-9255-22-j.webp)
Arduino ==> DHT11
3.3V ==> VCC
GND ==> GND
D7 ==> HẾT
Đề xuất:
Cách tạo bộ ghi dữ liệu thời gian thực về độ ẩm và nhiệt độ với Arduino UNO và thẻ nhớ SD. DHT11 Mô phỏng ghi dữ liệu trong Proteus: 5 bước
![Cách tạo bộ ghi dữ liệu thời gian thực về độ ẩm và nhiệt độ với Arduino UNO và thẻ nhớ SD. DHT11 Mô phỏng ghi dữ liệu trong Proteus: 5 bước Cách tạo bộ ghi dữ liệu thời gian thực về độ ẩm và nhiệt độ với Arduino UNO và thẻ nhớ SD. DHT11 Mô phỏng ghi dữ liệu trong Proteus: 5 bước](https://i.howwhatproduce.com/images/002/image-3231-3-j.webp)
Cách tạo bộ ghi dữ liệu thời gian thực về độ ẩm và nhiệt độ bằng Arduino UNO và thẻ nhớ SD. DHT11 Data-logger Simulation in Proteus: Giới thiệu: xin chào, đây là Liono Maker, đây là liên kết YouTube. Chúng tôi đang thực hiện một dự án sáng tạo với Arduino và làm việc trên các hệ thống nhúng.Data-Logger: Một trình ghi dữ liệu (cũng là trình ghi dữ liệu hoặc trình ghi dữ liệu) là một thiết bị điện tử ghi lại dữ liệu theo thời gian
Cách gửi dữ liệu DHT11 đến máy chủ MySQL bằng NodeMCU: 6 bước
![Cách gửi dữ liệu DHT11 đến máy chủ MySQL bằng NodeMCU: 6 bước Cách gửi dữ liệu DHT11 đến máy chủ MySQL bằng NodeMCU: 6 bước](https://i.howwhatproduce.com/images/001/image-884-31-j.webp)
Cách gửi dữ liệu DHT11 đến máy chủ MySQL bằng NodeMCU: Trong Dự án này, chúng tôi đã giao diện DHT11 với gật đầu và sau đó chúng tôi gửi dữ liệu của dht11 là độ ẩm và nhiệt độ đến cơ sở dữ liệu phpmyadmin
Hệ thống chấm công bằng cách gửi dữ liệu RFID đến máy chủ MySQL bằng Python với Arduino: 6 bước
![Hệ thống chấm công bằng cách gửi dữ liệu RFID đến máy chủ MySQL bằng Python với Arduino: 6 bước Hệ thống chấm công bằng cách gửi dữ liệu RFID đến máy chủ MySQL bằng Python với Arduino: 6 bước](https://i.howwhatproduce.com/images/002/image-5256-23-j.webp)
Hệ thống chấm công bằng cách gửi dữ liệu RFID đến máy chủ MySQL bằng Python với Arduino: Trong Dự án này, tôi đã giao tiếp RFID-RC522 với arduino và sau đó tôi gửi dữ liệu của RFID đến cơ sở dữ liệu phpmyadmin. Không giống như các dự án trước đây của chúng tôi, chúng tôi không sử dụng bất kỳ lá chắn ethernet nào trong trường hợp này, ở đây chúng tôi chỉ đọc dữ liệu nối tiếp đến từ ar
Arduino đang gửi dữ liệu Dht11 đến máy chủ MySQL (PHPMYADMIN) bằng Python: 5 bước
![Arduino đang gửi dữ liệu Dht11 đến máy chủ MySQL (PHPMYADMIN) bằng Python: 5 bước Arduino đang gửi dữ liệu Dht11 đến máy chủ MySQL (PHPMYADMIN) bằng Python: 5 bước](https://i.howwhatproduce.com/images/003/image-6934-2-j.webp)
Arduino đang gửi dữ liệu Dht11 đến máy chủ MySQL (PHPMYADMIN) bằng Python: Trong Dự án này, tôi đã giao tiếp DHT11 với arduino và sau đó tôi gửi dữ liệu của dht11 là độ ẩm và nhiệt độ đến cơ sở dữ liệu phpmyadmin. Không giống như dự án trước đây của chúng tôi, chúng tôi không sử dụng bất kỳ lá chắn ethernet nào trong trường hợp này, ở đây chúng tôi chỉ đang đọc t
Hệ thống chấm công có lưu trữ dữ liệu trên bảng tính Google bằng RFID và Arduino Ethernet Shield: 6 bước
![Hệ thống chấm công có lưu trữ dữ liệu trên bảng tính Google bằng RFID và Arduino Ethernet Shield: 6 bước Hệ thống chấm công có lưu trữ dữ liệu trên bảng tính Google bằng RFID và Arduino Ethernet Shield: 6 bước](https://i.howwhatproduce.com/images/004/image-9254-17-j.webp)
Hệ thống Chấm công với Lưu trữ Dữ liệu trên Bảng tính Google Sử dụng RFID và Arduino Ethernet Shield: Xin chào các bạn, Sau đây chúng tôi đưa ra một dự án rất thú vị và đó là cách gửi dữ liệu rfid tới bảng tính google bằng Arduino. Tóm lại, chúng tôi sẽ tạo ra một hệ thống chấm công dựa trên trình đọc rfid, hệ thống này sẽ lưu dữ liệu chấm công theo thời gian thực vào goog