Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Tôi muốn đo nhiệt độ và độ ẩm bằng Raspberry Pi của mình. Tôi chọn cảm biến DHT11 vì nó mạnh và rẻ. Việc định cấu hình nó cũng đã được ghi chép đầy đủ nhưng có một số cạm bẫy trên đường mà tôi muốn tập trung vào.
DHT11 có 4 chân. Phần lớn bên trái dành cho Vcc hoặc chân dương (+) được kết nối với chân Raspberry Pi 3.3V. Chân tiếp theo là chân dữ liệu phải được kết nối với chân GPIO trên Raspberry Pi. Hai chân này phải được kết nối bằng điện trở 4,7K.
Chốt thứ 3 từ bên trái không được sử dụng. Chân thứ tư và ngoài cùng bên phải là chân nối đất hoặc chân âm phải được kết nối với một trong các chân nối đất trên Raspberry Pi.
Bước 1: Các thành phần bắt buộc
1. Raspberry Pi
2. DHT11
3. Điện trở 4,7k
4. Các loại dây breadboard khác nhau
5. Breadboard
Bước 2: Kết nối mọi thứ
Kết nối Raspberry Pi và DHT11 như sau:
DHT11 (+ pin) RaspberryPi (chân 3,3V)
DHT11 (chân dữ liệu) RaspberryPi (chân GPIO - Tôi đã sử dụng GPIO22)
DHT11 (chân thứ 3) Không có kết nối
DHT11 (- pin) ------ Raspberry Pi (gnd pin)
Bước 3: Cài đặt phần mềm
Từ dòng lệnh RaspberryPi, hãy làm như sau: (LƯU Ý, không bỏ qua SUDO)
sudo git clone
Bạn sẽ thấy - Nhân bản vào 'Adafruit_Python_DHT'… từ xa: Đếm đối tượng: 249, đã xong. từ xa: Tổng số 249 (delta 0), sử dụng lại 0 (delta 0), gói tái sử dụng 249 Đối tượng nhận: 100% (249/249), 77.01 KiB, đã xong. Giải quyết delta: 100% (142/142), đã xong.
cd Adafruit_Python_DHT /
sudo apt-get update sudo apt-get install build-essential python-dev python-openssl
ls
Bạn sẽ thấy - Ví dụ về Adafruit_DHT ez_setup.py LICENSE README.md setup.py nguồn
cd Adafruit_DHT /
Bạn sẽ thấy -Beaglebone_Black.py common.py _init_.py platform_detect.py Raspberry_Pi_2.py Raspberry_Pi.py Test.py
sudo python setup.py cài đặt
(Lưu ý, nếu bạn bỏ qua bước này thì bạn có thể gặp lỗi - Traceback (lần gọi gần đây nhất):
Tệp "./AdafruitDHT.py", dòng 24, trong nhập Adafruit_DHT Nhập khẩu Lỗi: Không có mô-đun nào có tên Adafruit_DHT)
ví dụ cd
sudo./AdafruitDHT.py 11 22 (11 = DHT11 và 22 = GPIO22 mà bạn đã chọn trước đó)
Bạn sẽ thấy Nhiệt độ = 18.0 * Độ ẩm = 46.0% (tức là nhiệt độ và độ ẩm cho môi trường của bạn)
Bước 4: Làm gì với đầu ra
Vì vậy, như chúng ta đã thấy, đầu ra là "Nhiệt độ = 18.0 * Độ ẩm = 46.0%"
Có một số cách mà bạn có thể khai thác outpu này, chẳng hạn như sử dụng tệp php thử nghiệm này, tệp test_dht11.php
Đầu tiên, tôi đã chuyển tập lệnh AdafruitDHT.py thành / var / www /.
Để kiểm tra và chạy tập lệnh php, hãy thay đổi thành / var / www rồi sudo php test_dht11.php
Đầu ra hiển thị hai số đại diện cho nhiệt độ và độ ẩm. Những con số này có thể được ghi vào cơ sở dữ liệu hoặc so sánh với giới hạn cảnh báo và gửi cảnh báo, v.v
// <? php // bỏ ghi chú dòng trên - chỉ thị không thích lệnh bắt đầu php //test_dht11.php
// thực thi tệp python để đọc cảm biến nhiệt độ DHT11
// và trích xuất các giá trị nhiệt độ và độ ẩm $ nhiệt độ = 0; $ độ ẩm = 0; $ my_pos = 0; $ execute_msg = "sudo /var/www/AdafruitDHT.py 11 22 2> & 1"; $ test = shell_exec ($ execute_msg); // trích xuất nhiệt độ $ my_pos = strpos ($ test, "Temp =", 0); $ nhiệt độ = substr ($ test, $ my_pos + 5, 4); echo "\ n". $ nhiệt độ; // chiết xuất độ ẩm $ my_pos = strpos ($ test, "Humidity =", $ my_pos); $ độ ẩm = substr ($ test, $ my_pos + 9, 4); echo "\ n". $ độ ẩm; ?>