Mục lục:
- Quân nhu
- Bước 1: Mạch
- Bước 2: Phương pháp
- Bước 3: TMP36 - Thử nghiệm ban đầu
- Bước 4: Kết quả thay thế chiết áp
- Bước 5: Số lần đọc trung bình và kết quả
- Bước 6: DS18B20 - Thử nghiệm ban đầu
- Bước 7: DS18B20 hoạt động tốt
- Bước 8: DHT22 và DHT11
- Bước 9: Kết quả DHT22
- Bước 10: Kiểm tra DTH11
- Bước 11: BME680
- Bước 12: Tôi nên sử dụng cái nào?
- Bước 13: Suy nghĩ và thử nghiệm thêm
- Bước 14: Đồ thị đầy đủ
- Bước 15: Kết luận
Video: Kiểm tra cảm biến nhiệt độ - Cái nào cho tôi ?: 15 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Một trong những cảm biến đầu tiên mà những người mới làm quen với máy tính vật lý muốn thử là một thứ để đo nhiệt độ. Bốn trong số các cảm biến phổ biến nhất là TMP36, có đầu ra tương tự và cần một bộ chuyển đổi tương tự sang kỹ thuật số, DS18B20, sử dụng kết nối một dây, DHT22 hoặc DHT11 rẻ hơn một chút, chỉ cần một chân kỹ thuật số, nhưng cũng cung cấp chỉ số độ ẩm và cuối cùng là BME680 sử dụng I2C (với SPI cũng như trên một số bảng đột phá) và cung cấp nhiệt độ, độ ẩm, khí (VOC) và áp suất khí quyển nhưng chi phí cao hơn một chút.
Tôi muốn xem độ chính xác của chúng và khám phá bất kỳ ưu điểm hoặc nhược điểm nào. Tôi đã sở hữu một nhiệt kế thủy ngân chính xác, còn sót lại từ việc in ảnh màu trong những ngày xử lý hóa chất, để so sánh chúng với nhau. (Đừng bao giờ ném bất cứ thứ gì ra ngoài - bạn sẽ cần nó sau này!)
Tôi sẽ sử dụng CircuitPython và bảng phát triển Adafruit Itsybitsy M4 cho các thử nghiệm này. Trình điều khiển phù hợp có sẵn cho tất cả các thiết bị.
Quân nhu
Danh sách ban đầu của tôi:
- Bộ vi điều khiển Itsybitsy M4 Express
- cáp micro USB - để lập trình
- TMP36
- DS18B20
- Điện trở 4,7K Ohm
- DHT22
- BME680
- Nhiều mét
- Breadboard hoặc dải bảng
- Kết nối dây
Bước 1: Mạch
Các dây màu cam là 3,3 V
Các dây màu đen là GND
Ở dưới cùng của bảng là các điểm kiểm tra để đo điện áp. (Đầu ra tương tự 3.3v, GND và TMP36)
Các ổ cắm trung tâm là, từ trái sang phải:
- TMP36: 3.3v, đầu ra tín hiệu tương tự, GND
- DS18B20: GND, đầu ra tín hiệu kỹ thuật số, 3.3v
- DHT22: 3.3v, tín hiệu ra, trống, GND
- BME680: 3.3v, SDA, SCL, trống, GND
Đầu nối phía sau, để kết nối với bo mạch IB M4E, từ trái sang phải
- 3,3v
- TMP36 - đầu ra tương tự đến chân A2
- GND
- DS18B20 đầu ra kỹ thuật số đến chân D3 - màu xanh lá cây
- DHT22 đầu ra kỹ thuật số đến chân D2 - màu vàng
- SDA - trắng
- SCL - màu hồng
Điện trở 4,7K Ohm là một pullup từ tín hiệu lên 3,3v cho kết nối 0ne-wire trên DS18B20.
Có 2 vết cắt ở mặt sau của bảng:
Bên dưới đầu tay trái của cả dây màu hồng và màu trắng. (Dưới dây màu vàng.)
Bước 2: Phương pháp
Đối với mỗi cảm biến, tôi sẽ viết một đoạn mã ngắn để đọc nhiệt độ (và các mục khác nếu có) nhiều lần và kiểm tra nhiệt độ so với nhiệt kế thủy ngân (Hg) của tôi. Tôi sẽ xem xét nhiệt độ so sánh chặt chẽ như thế nào với số đọc thủy ngân và liệu các số đọc có ổn định / nhất quán hay không.
Tôi cũng sẽ xem xét tài liệu để xem liệu các bài đọc có phù hợp với độ chính xác mong đợi hay không và liệu có thể làm gì để cải thiện không.
Bước 3: TMP36 - Thử nghiệm ban đầu
Chân trái là 3.3v, chân phải là GND và chân giữa là điện áp tương tự biểu thị nhiệt độ theo công thức sau. TempC = (milivôn - 500) / 10
Vì vậy, 750 milivôn cho nhiệt độ 25 C
Có vẻ như có một vài vấn đề ở đây. Nhiệt độ từ nhiệt kế thủy ngân 'bình thường' thấp hơn nhiều so với nhiệt kế TMP36 và các kết quả đọc được không nhất quán lắm - có một số 'chập chờn' hoặc tiếng ồn.
Cảm biến TMP36 gửi ra một điện áp tỷ lệ với nhiệt độ. Điều này phải được đọc bởi bộ chuyển đổi A / D trước khi nhiệt độ được tính toán. Hãy đọc điện áp trực tiếp từ chân giữa của cảm biến bằng đồng hồ đa năng và so sánh nó với kết quả từ A / D. Số đọc từ chân giữa với đồng hồ đa năng của tôi là 722 milivôn, thấp hơn nhiều và đọc rất ổn định.
Có hai điều chúng ta có thể thử. Thay thế một chiết áp cho TMP36 và điều chỉnh điện áp trong tính toán thành điện áp thực tế của bộ vi điều khiển. Sau đó, chúng tôi sẽ xem liệu điện áp được tính toán có gần hơn và tiếng ồn / jitter có giảm hay không.
Hãy đo điện áp thực tế đang được sử dụng của tôi trên bộ vi điều khiển và A / D. Điều này được giả định là 3,3v nhưng thực tế chỉ là 3,275v.
Bước 4: Kết quả thay thế chiết áp
Điều này tốt hơn nhiều. Các kết quả đọc được trong vòng vài milivôn với tiếng ồn ít hơn nhiều. Điều này cho thấy tiếng ồn là từ TMP36 chứ không phải A / D. Số đọc trên đồng hồ luôn ổn định - không bị chập chờn. (Máy đo có thể đang 'làm mịn' đầu ra chập chờn.)
Một cách để cải thiện tình hình có thể là đọc trung bình. Đọc nhanh mười bài đọc và sử dụng giá trị trung bình. Tôi cũng sẽ tính toán độ lệch chuẩn trong khi tôi thay đổi chương trình, để đưa ra dấu hiệu về sự lan truyền kết quả. Tôi cũng sẽ đếm số lần đọc trong vòng 1 độ lệch chuẩn của giá trị trung bình - càng cao càng tốt.
Bước 5: Số lần đọc trung bình và kết quả
Vẫn có nhiều tiếng ồn và số đọc từ TMP36 vẫn cao hơn so với nhiệt kế thủy ngân. Để giảm tiếng ồn, tôi đã bao gồm một tụ điện 100NF giữa tín hiệu và GND
Sau đó, tôi đã tìm kiếm các giải pháp khác trên internet và tìm thấy những giải pháp này: https://www.doctormonk.com/2015/02/accurate-and-re… Tiến sĩ Monk đề xuất bao gồm một điện trở 47 k Ohm giữa tín hiệu và GND.
www.desert-home.com/2015/03/battery-operate… Trong khi anh chàng này gợi ý sắp xếp 15 bài đọc theo thứ tự và lấy trung bình 5.
Tôi đã sửa đổi tập lệnh và mạch điện để bao gồm những gợi ý này và bao gồm một số đọc từ nhiệt kế thủy ngân.
Cuối cùng! Giờ đây, chúng tôi có các kết quả đọc ổn định trong phạm vi độ chính xác của mô tả thiết bị.
Đây là một nỗ lực khá lớn để làm cho cảm biến hoạt động mà chỉ có độ chính xác của nhà sản xuất là:
Độ chính xác - Cao nhất (Thấp nhất): ± 3 ° C (± 4 ° C) Chúng chỉ có giá khoảng $ 1,50 (£ 2)
Bước 6: DS18B20 - Thử nghiệm ban đầu
Hãy hết sức cẩn thận. Gói này trông rất giống với TMP36 nhưng các chân khác nhau, với 3.3v ở bên phải và GND ở bên trái. Tín hiệu ra nằm ở trung tâm. Để thiết bị này hoạt động, chúng ta cần một điện trở 4,7 k Ohm giữa tín hiệu và 3,3v. Thiết bị này sử dụng giao thức một dây và chúng tôi cần tải xuống một vài trình điều khiển vào thư mục lib của Itsybitsy M4 Express.
Điều này có giá khoảng $ 4 / £ 4
- Phạm vi nhiệt độ có thể sử dụng: -55 đến 125 ° C (-67 ° F đến + 257 ° F)
- Độ phân giải có thể lựa chọn 9 đến 12 bit
- Sử dụng giao diện 1 dây - chỉ yêu cầu một chân kỹ thuật số để giao tiếp
- ID 64 bit duy nhất được ghi vào chip
- Nhiều cảm biến có thể dùng chung một chân
- ± 0,5 ° C Độ chính xác từ -10 ° C đến + 85 ° C
- Hệ thống báo động giới hạn nhiệt độ
- Thời gian truy vấn dưới 750 mili giây
- Sử dụng được với nguồn 3.0V đến 5.5V
Vấn đề chính với cảm biến này là nó sử dụng giao diện Dallas 1-Wire và không phải tất cả vi điều khiển đều có trình điều khiển phù hợp. Thật may mắn, có một tài xế cho Itsybitsy M4 Express.
Bước 7: DS18B20 hoạt động tốt
Điều này cho thấy một kết quả tuyệt vời.
Một tập hợp các số đọc ổn định mà không cần thêm bất kỳ công việc và chi phí tính toán nào. Các kết quả đọc được nằm trong phạm vi chính xác dự kiến là ± 0,5 ° C khi so sánh với nhiệt kế thủy ngân của tôi.
Ngoài ra còn có một phiên bản không thấm nước với giá khoảng $ 10 mà tôi đã sử dụng trong quá khứ với thành công tương đương.
Bước 8: DHT22 và DHT11
DHT22 sử dụng nhiệt điện trở để đo nhiệt độ và có giá khoảng $ 10 / £ 10 và là người anh em chính xác hơn và đắt tiền hơn của DHT11 nhỏ hơn. Nó cũng sử dụng giao diện một dây nhưng KHÔNG tương thích với giao thức Dallas được sử dụng với DS18B20. Nó cảm nhận độ ẩm cũng như nhiệt độ. Các thiết bị này đôi khi cần một điện trở kéo lên giữa 3,3 v và chân tín hiệu. Gói này đã được cài đặt.
- Giá thấp
- Nguồn 3 đến 5V và I / O
- Sử dụng dòng điện tối đa 2,5mA trong quá trình chuyển đổi (trong khi yêu cầu dữ liệu)
- Tốt cho các bài đọc độ ẩm 0-100% với độ chính xác 2-5%
- Tốt cho các phép đọc nhiệt độ -40 đến 80 ° C ± 0,5 ° C
- Tốc độ lấy mẫu không quá 0,5 Hz (2 giây một lần)
- Kích thước thân máy 27mm x 59mm x 13,5mm (1,05 "x 2,32" x 0,53 ")
- 4 chân, khoảng cách 0,1"
- Trọng lượng (chỉ DHT22): 2,4g
So với DHT11, cảm biến này chính xác hơn, chính xác hơn và hoạt động trong phạm vi nhiệt độ / độ ẩm lớn hơn, nhưng nó lớn hơn và đắt hơn.
Bước 9: Kết quả DHT22
Đây là những kết quả tuyệt vời với rất ít nỗ lực. Các kết quả đọc khá ổn định và nằm trong mức dung sai dự kiến. Việc đọc độ ẩm là một phần thưởng.
Bạn chỉ có thể đọc mỗi giây.
Bước 10: Kiểm tra DTH11
Nhiệt kế thủy ngân của tôi cho thấy 21,9 độ C. Đây là chiếc DHT11 khá cũ mà tôi lấy lại từ một dự án cũ và giá trị độ ẩm rất khác với giá trị DHT22 từ vài phút trước. Nó có giá khoảng $ 5 / £ 5.
Mô tả của nó bao gồm:
- Tốt cho các bài đọc độ ẩm 20-80% với độ chính xác 5%
- Tốt cho các bài đọc nhiệt độ 0-50 ° C độ chính xác ± 2 ° C - thấp hơn DTH22
Nhiệt độ dường như vẫn nằm trong phạm vi chính xác nhưng tôi không tin tưởng vào kết quả đo độ ẩm từ thiết bị cũ này.
Bước 11: BME680
Cảm biến này chứa các khả năng cảm biến nhiệt độ, độ ẩm, áp suất khí quyển và khí VOC trong một gói duy nhất nhưng là cảm biến đắt nhất trong số các cảm biến được thử nghiệm ở đây. Nó có giá khoảng £ 18,50 / $ 22. Có một sản phẩm tương tự không có cảm biến khí rẻ hơn một chút.
Đây là cảm biến tiêu chuẩn vàng trong số năm cảm biến. Cảm biến nhiệt độ chính xác và với trình điều khiển phù hợp, rất dễ sử dụng. Phiên bản này sử dụng I2C nhưng bảng đột phá Adafruit cũng có thể sử dụng SPI.
Giống như BME280 & BMP280, cảm biến chính xác này của Bosch có thể đo độ ẩm với độ chính xác ± 3%, áp suất khí quyển với độ chính xác tuyệt đối ± 1 hPa và nhiệt độ với độ chính xác ± 1.0 ° C. Bởi vì áp suất thay đổi theo độ cao và các phép đo áp suất rất tốt, bạn cũng có thể sử dụng nó như một máy đo độ cao với độ chính xác ± 1 mét hoặc tốt hơn!
Tài liệu cho biết nó cần một số 'thời gian đốt cháy' cho cảm biến khí.
Bước 12: Tôi nên sử dụng cái nào?
- TMP36 rất rẻ, nhỏ và phổ biến nhưng khá khó sử dụng và có thể không chính xác.
- DS18B20 nhỏ, chính xác, rẻ, rất dễ sử dụng và có phiên bản chống thấm nước.
- DTH22 cũng cho biết độ ẩm, có giá vừa phải và dễ sử dụng nhưng có thể quá chậm.
- BME680 làm được nhiều điều hơn những chiếc khác nhưng lại đắt.
Nếu tôi chỉ muốn nhiệt độ, tôi sẽ sử dụng DS18B20 với độ chính xác ± 0,5 ° C nhưng tôi thích nhất là BME680 vì nó làm được nhiều hơn thế và có thể được sử dụng trong một số lượng lớn các dự án khác nhau.
Một suy nghĩ cuối cùng. Đảm bảo rằng bạn giữ cảm biến nhiệt độ của mình cách xa bộ vi xử lý. Một số Raspberry Pi HATs cho phép nhiệt từ bo mạch chính làm nóng cảm biến, tạo ra kết quả đọc sai.
Bước 13: Suy nghĩ và thử nghiệm thêm
Cảm ơn gulliverrr, ChristianC231 và pgagen vì những nhận xét của bạn về những gì tôi đã làm cho đến nay. Tôi xin lỗi vì sự chậm trễ nhưng tôi đã đi nghỉ ở Ireland, không có quyền truy cập vào bộ thiết bị điện tử của mình trong vài tuần.
Đây là nỗ lực đầu tiên cho thấy các cảm biến hoạt động cùng nhau.
Tôi đã viết script để đọc lần lượt các cảm biến và in ra các giá trị nhiệt độ cứ sau 20 giây hoặc lâu hơn.
Tôi đặt bộ dụng cụ vào tủ lạnh trong một giờ, để làm mát mọi thứ. Tôi cắm nó vào PC và được Mu in kết quả. Kết quả đầu ra sau đó được sao chép, chuyển thành tệp.csv (các biến được phân tách bằng dấu phẩy) và đồ thị vẽ từ kết quả trong Excel.
Mất khoảng ba phút kể từ khi lấy bộ dụng cụ ra khỏi tủ lạnh trước khi kết quả được ghi lại, do đó, một số sự gia tăng nhiệt độ đã diễn ra trong khoảng thời gian này. Tôi nghi ngờ rằng bốn cảm biến có công suất nhiệt khác nhau và do đó sẽ nóng lên ở các tốc độ khác nhau. Tốc độ nóng lên dự kiến sẽ giảm khi các cảm biến tiến gần đến nhiệt độ phòng. Tôi đã ghi nhiệt độ này là 24,4 ° C bằng nhiệt kế thủy ngân của mình.
Sự khác biệt lớn về nhiệt độ tại điểm bắt đầu của các đường cong có thể là do nhiệt dung khác nhau của các cảm biến. Tôi rất vui khi thấy rằng các đường hội tụ về phía cuối khi chúng tiếp cận nhiệt độ phòng. Tôi lo ngại rằng TMP36 luôn cao hơn nhiều so với các cảm biến khác.
Tôi đã tra cứu bảng dữ liệu để kiểm tra lại độ chính xác được mô tả của các thiết bị này
TMP36
- Độ chính xác ± 2 ° C theo nhiệt độ (typ)
- Độ tuyến tính ± 0,5 ° C (điển hình)
DS18B20
± 0,5 ° C Độ chính xác từ -10 ° C đến + 85 ° C
DHT22
nhiệt độ ± 0,5 ° C
BME680
nhiệt độ với độ chính xác ± 1,0 ° C
Bước 14: Đồ thị đầy đủ
Bây giờ bạn có thể thấy rằng các cảm biến cuối cùng đã ổn định và đồng ý về nhiệt độ nhiều hơn hoặc ít hơn trong độ chính xác được mô tả của chúng. Nếu 1,7 độ được lấy ra khỏi các giá trị TMP36 (dự kiến là ± 2 ° C) thì có sự thống nhất tốt giữa tất cả các cảm biến.
Lần đầu tiên tôi chạy thử nghiệm này, cảm biến DHT22 đã gây ra sự cố:
main.py đầu ra:
14.9, 13.5, 10.3, 13.7
15.7, 14.6, 10.5, 14.0
16.6, 15.6, 12.0, 14.4
18.2, 16.7, 13.0, 15.0
18.8, 17.6, 14.0, 15.6
19.8, 18.4, 14.8, 16.2
21.1, 18.7, 15.5, 16.9
21.7, 19.6, 16.0, 17.5
22.4, 20.2, 16.5, 18.1
23.0, 20.7, 17.1, 18.7
Lỗi đọc DHT: ('Không tìm thấy cảm biến DHT, hãy kiểm tra hệ thống dây điện',)
Traceback (cuộc gọi gần đây nhất sau cùng):
Tệp "main.py", dòng 64, trong
Tệp "main.py", dòng 59, trong get_dht22
NameError: biến cục bộ được tham chiếu trước khi gán
Vì vậy, tôi đã sửa đổi tập lệnh để đối phó với sự cố này và bắt đầu lại quá trình ghi:
Lỗi đọc DHT: ('Không tìm thấy cảm biến DHT, hãy kiểm tra hệ thống dây điện',)
25.9, 22.6, -999.0, 22.6
Lỗi đọc DHT: ('Không tìm thấy cảm biến DHT, hãy kiểm tra hệ thống dây điện',)
25.9, 22.8, -999.0, 22.7
25.9, 22.9, 22.1, 22.8
25.9, 22.9, 22.2, 22.9
Lỗi đọc DHT: ('Không tìm thấy cảm biến DHT, hãy kiểm tra hệ thống dây điện',)
27.1, 23.0, -999.0, 23.0
Lỗi đọc DHT: ('Không tìm thấy cảm biến DHT, hãy kiểm tra hệ thống dây điện',)
27.2, 23.0, -999.0, 23.1
25.9, 23.3, 22.6, 23.2
Lỗi đọc DHT: ('Không tìm thấy cảm biến DHT, hãy kiểm tra hệ thống dây điện',)
28.4, 23.2, -999.0, 23.3
Lỗi đọc DHT: ('Không tìm thấy cảm biến DHT, hãy kiểm tra hệ thống dây điện',)
26.8, 23.1, -999.0, 23.3
26.5, 23.2, 23.0, 23.4
26.4, 23.3, 23.0, 23.5
26.4, 23.4, 23.1, 23.5
26.2, 23.3, 23.1, 23.6
Tôi không gặp vấn đề gì với lần chạy thứ hai. Tài liệu Adafruit cảnh báo rằng đôi khi các cảm biến DHT bỏ lỡ các kết quả đọc.
Bước 15: Kết luận
Đường cong này cho thấy rõ ràng rằng nhiệt dung cao hơn của một số cảm biến làm tăng thời gian phản ứng của chúng.
Tất cả các cảm biến ghi lại nhiệt độ tăng và giảm.
Chúng không nhanh chóng lắng xuống nhiệt độ mới.
Chúng không chính xác lắm. (Chúng có đủ tốt cho một trạm thời tiết không?)
Bạn có thể cần phải hiệu chỉnh cảm biến của mình với một nhiệt kế đáng tin cậy.
Đề xuất:
BGA X-Ray Kiểm tra- Tìm hiểu Cách Kiểm tra ?: 7 Bước
Kiểm tra BGA X-Ray- Tìm hiểu Cách Kiểm tra ?: Tài liệu hướng dẫn này sẽ dạy bạn cách chuẩn bị sử dụng và hệ thống X-quang 2D để kiểm tra BGA, cũng như một số gợi ý về những gì cần tìm khi thực hiện kiểm tra BGA X-Ray cho bạn sẽ cần: Hệ thống tia X có khả năng giữ dây đeo tay PCBPCBESD áo khoác
Cảm biến nhiệt độ cho Arduino Được áp dụng cho COVID 19: 12 Bước (có Hình ảnh)
Cảm biến nhiệt độ cho Arduino Áp dụng cho COVID 19: Cảm biến nhiệt độ cho Arduino là yếu tố cơ bản khi chúng ta muốn đo nhiệt độ của bộ xử lý của cơ thể con người. Cảm biến nhiệt độ với Arduino phải tiếp xúc hoặc gần để nhận và đo mức nhiệt. Đó là cách t
Kế hoạch kiểm tra cảm biến độ ẩm của đất: 6 bước (có hình ảnh)
Kế hoạch kiểm tra cảm biến độ ẩm của đất: Thử thách: Thiết kế và thực hiện kế hoạch sẽ bật đèn LED ĐỎ khi đất ướt và đèn LED XANH khi đất khô. Điều này sẽ liên quan đến việc sử dụng Cảm biến độ ẩm của đất
CẢM BIẾN SUHU DENGAN LCD DAN LED (Tạo cảm biến nhiệt độ với LCD và LED): 6 bước (có hình ảnh)
CẢM BIẾN SUHU DENGAN LCD DAN LED (Chế tạo cảm biến nhiệt độ với LCD và LED): hai, saya Devi Rivaldi mahasiswa UNIVERSITAS NUSA PUTRA dari Indonesia, di sini saya akan berbagi cara membuat sensor suhu menggunakan Arduino dengan Output ke LCD dan LED. Ini adalah pembaca suhu dengan desain saya sendiri, dengan sensor ini anda
Công cụ kiểm tra: Máy kiểm tra 555 Khá đơn giản. Đã sửa và cập nhật.: 3 bước
Công cụ kiểm tra: Máy kiểm tra 555 Khá đơn giản. Đã sửa và cập nhật: Ở đây tôi sẽ đưa ra một mạch nhỏ để kiểm tra xem bộ đếm thời gian 555 bạn vừa thử trong một mạch khác (và nó nóng lên hoặc không hoạt động gì cả) hoạt động hay không. Bạn đã bao giờ tự hỏi liệu đó có phải là mạch của bạn hay không, hay liệu có thể đã khiến bạn