Mục lục:
- Bước 1: Vật liệu
- Bước 2: Chọn cảm biến
- Bước 3: LM35
- Bước 4: DS18B20
- Bước 5: Mã ESP8266
- Bước 6: Mã ESP8266: Người dùng LM35
- Bước 7: Mã ESP8266: Người dùng DS18B20
- Bước 8: ESP8266 Little Trick
- Bước 9: Hoạt động lần đầu tiên
- Bước 10: Kết luận
Video: Bộ ghi nhiệt độ WiFi (với ESP8266): 11 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:35
Xin chào, rất vui khi thấy bạn ở đây. Tôi hy vọng rằng trong hướng dẫn này, bạn sẽ tìm thấy một số thông tin hữu ích. Vui lòng gửi cho tôi đề xuất, câu hỏi,… Dưới đây là một số dữ liệu cơ bản và tổng quan nhanh về dự án. Đối với người dùng di động: Video. Hãy cho tôi biết bạn nghĩ gì về dự án trong phần bình luận, cảm ơn. Gần đây tôi đã mua một bo mạch NodeMcu (dựa trên esp8266) chỉ để dùng thử vì vậy đây không phải là một dự án thực sự tiên tiến. Nhưng nó hoạt động và đó là những gì tôi cần, vì vậy nó không sao. Chức năng chính của bộ ghi dữ liệu này là thu thập nhiệt độ và lưu nó vào máy chủ. Điều này cho phép người dùng kiểm tra dữ liệu và vẽ biểu đồ trực tuyến ngay cả khi họ không ở cùng vị trí của thiết bị ghi (ví dụ: đối với trạm thời tiết). Một tính năng hữu ích khác là cập nhật OTA có trong mã cho phép người dùng cập nhật và tùy chỉnh phần mềm một cách dễ dàng. Tôi sẽ phân tích hai cảm biến và phương pháp thu thập liên quan của chúng để cân bằng tất cả các ưu và nhược điểm.
Spoiler: sau khi thử nghiệm một chút, tôi thấy rằng cảm biến kỹ thuật số như DS18B20 là giải pháp tốt nhất vì nó mang lại sự ổn định và độ chính xác cao hơn. Nó đã không thấm nước và có cáp.
Bước 1: Vật liệu
Đây là một dự án tối thiểu với chỉ một số thành phần bên ngoài, vì vậy danh sách BOM sẽ thực sự ngắn. Tuy nhiên, hãy xem tài liệu nào được yêu cầu:
- NodeMcu V3 (hoặc bất kỳ bộ xử lý ESP8266 μ tương thích nào);
- LED RGB (cực dương chung);
- Điện trở cho đèn led (1x10Ω, 1x22Ω, 1x100Ω, 1x10kΩ)
- DS18B20 (Nhiệt kế tích hợp Maxim);
- LM35 (Nhiệt kế Texas Instrument);
- Pin bên ngoài (tùy chọn);
- Cáp;
- Trình kết nối (để làm cho nó "nâng cao" hơn);
- Hộp (tùy chọn, một lần nữa để làm cho nó "nâng cao" hơn);
- Giá đỡ đèn Led (tùy chọn);
Lưu ý: Như tôi đã nói bạn cần chọn một trong hai phương pháp. Nếu bạn chọn nhiệt kế LM35, bạn sẽ cần một số thành phần khác:
- Attiny45 / 85;
- Lập trình viên AVR (hoặc Arduino làm ISP);
- Điện trở (1x1kΩ, 1x2kΩ, 1x10kΩ, 1x18kΩ)
- Đầu nối dải 2,54mm (tùy chọn)
- Diode (2x1N914)
- Tấm đục lỗ hoặc PCB;
Bước 2: Chọn cảm biến
Chọn cảm biến có thể là một bước khó khăn: ngày nay có rất nhiều đầu dò (TI cung cấp 144 phần tử khác nhau) cả tương tự và kỹ thuật số với phạm vi nhiệt độ, độ chính xác và trường hợp khác nhau.
- Bộ ghi dữ liệu có thể dễ dàng thay đổi từ nhiệt độ sang đại lượng khác (điện áp, dòng điện,…);
- Có thể rẻ hơn một chút;
- Dễ sử dụng vì nó không yêu cầu bất kỳ thư viện đặc biệt nào;
Nhược điểm:
- Yêu cầu ADC (có thể ảnh hưởng đến độ chính xác của phép đo) và các thành phần bên ngoài khác. Vì esp8266 chỉ có một ADC (và không thực sự chính xác), tôi khuyên bạn nên sử dụng một ADC bên ngoài.
- Cần cáp chuyên dụng loại bỏ tiếng ồn vì bất kỳ điện áp cảm ứng nào cũng có thể thay đổi kết quả.
Sau một chút suy nghĩ, tôi quyết định sử dụng LM35, một cảm biến tuyến tính với hệ số thang đo + 10mV / ° C với độ chính xác 0,5 ° C và dòng điện rất thấp (khoảng 60uA) với điện áp hoạt động từ 4V đến 30V. Để biết thêm chi tiết, tôi đề nghị xem biểu dữ liệu: LM35.
Cảm biến kỹ thuật số (rất khuyến khích) Ưu điểm:
Hầu hết các thành phần bên ngoài cần thiết;
ADC tích hợp
Nhược điểm:
Yêu cầu thư viện hoặc phần mềm giải mã tín hiệu số (I2C, SPI, Serial, One Wire,…);
Đắt hơn;
Tôi đã chọn DS18B20 vì tôi tìm thấy bộ 5 cảm biến chống thấm nước trên Amazon và vì nó được ghi nhận rộng rãi trên internet. Tính năng chính là đo 9-12bit, bus 1-Wire, điện áp cung cấp 3.0 đến 5.5, độ chính xác 0,5 ° C. Một lần nữa, để biết thêm chi tiết ở đây là biểu dữ liệu: DS18B20.
Bước 3: LM35
Hãy phân tích cách tôi đã triển khai ADC bên ngoài và tính năng khác cho nhiệt kế LM35. Tôi tìm thấy một sợi cáp có ba dây, một có tấm chắn và hai không có. Tôi quyết định thêm một tụ tách để ổn định điện áp cung cấp gần cảm biến. Để chuyển đổi nhiệt độ tương tự sang kỹ thuật số, tôi đã sử dụng bộ vi xử lý Attiny85 trong gói dip8 (một lần nữa để biết thêm thông tin, hãy xem biểu dữ liệu: attiny85). Điều quan trọng nhất đối với chúng tôi là ADC 10 bit (không thực sự là tốt nhất nhưng đủ chính xác đối với tôi). Để giao tiếp với Esp8266, tôi quyết định sử dụng giao tiếp Serial, lưu ý rằng esp8266 hoạt động với 3.3V và attiny85 ở 5V (vì nó cần cấp nguồn cho cảm biến). Để đạt được điều đó, tôi đã sử dụng một bộ chia điện áp đơn giản (xem sơ đồ). Để đọc nhiệt độ âm, chúng ta cần thêm một số thành phần bên ngoài (2x1N914 và điện trở 1x18k), vì tôi không muốn sử dụng nguồn điện âm. Đây là mã: Kho lưu trữ TinyADC. Lưu ý: để biên dịch mã này, bạn sẽ cần cài đặt attiny to ide (chèn tùy chọn này trong tùy chọn: https://drazzy.com/package_drazzy.com_index.json), nếu bạn không biết cách thực hiện, chỉ cần tìm kiếm trên Google hoặc tải trực tiếp tệp.hex lên.
Bước 4: DS18B20
Tôi đã mua những cảm biến đó từ Amazon (5 cái giá khoảng 10 €). Nó đi kèm với một vỏ thép không gỉ và một sợi cáp dài 1m. Cảm biến này có thể trả về dữ liệu nhiệt độ từ 9 đến 12 bit. Rất nhiều cảm biến có thể được cắm vào cùng một chân vì tất cả chúng đều có một ID duy nhất. Để cắm DS18B20 với esp8266, bạn chỉ cần làm theo sơ đồ (ảnh thứ hai). Vì tôi đã quyết định rằng máy ghi nhật ký của tôi sẽ có ba đầu dò, tôi phải phân biệt cái nào là cái nào. Vì vậy, tôi đã nghĩ để cung cấp cho họ một màu sắc được liên kết thông qua phần mềm đến địa chỉ của họ. Tôi đã sử dụng một số ống co nhiệt (ảnh thứ ba).
Bước 5: Mã ESP8266
Vì tôi là người mới đến thế giới này, tôi đã quyết định sử dụng rất nhiều thư viện. Như đã nói trong phần giới thiệu các tính năng chính là:
- Cập nhật OTA: bạn không cần phải cắm esp8266 vào máy tính của mình mỗi khi bạn cần tải mã lên (bạn chỉ phải làm điều đó trong lần đầu tiên);
- Trình quản lý không dây, nếu mạng không dây thay đổi, bạn không cần tải lại bản phác thảo. Bạn chỉ cần cấu hình lại các thông số mạng kết nối với điểm truy cập esp8266;
- Thingspeak truyền dữ liệu;
- Cả LM35 và DS18B20 đều được hỗ trợ;
- Giao diện người dùng đơn giản (đèn LED RGB cho biết một số thông tin hữu ích);
Xin lỗi tôi vì phần mềm của tôi không phải là tốt nhất và nó không thực sự được đặt hàng tốt. Trước khi tải lên thiết bị, bạn cần thay đổi một số thông số để mã phù hợp với thiết lập của mình. Tại đây, bạn có thể tải xuống phần mềm. Cấu hình phổ biến LM35 và DS18B20 Bạn cần thay đổi định nghĩa mã pin, mã thông báo, số kênh, người dùng và mật khẩu để cập nhật OTA. Dòng từ 15 đến 23.
# xác định màu đỏ YOURPINHERE # xác định màu xanh lá cây YOURPINHERE
#define blue YOURPINHERE const char * host = "chọn địa chỉ máy chủ lưu trữ"; // không thực sự cần thiết bạn có thể để esp8266-webupdate const char * update_path = "/ firmware"; // để thay đổi địa chỉ cập nhật ví dụ: 192.168.1.5/firmware const char * update_username = "YOURUSERHERE"; const char * update_password = "YOURPASSWORDHERE; unsigned long myChannelNumber = CHANNELNUMBERHERE; const char * myWriteAPIKey =" WRITEAPIHERE ";
Bước 6: Mã ESP8266: Người dùng LM35
Bạn cần kết nối bo mạch attiny với esp8266, để cấp nguồn cho bộ ADC, hãy sử dụng chân VU và chân G. Bạn cần chọn chân nào bạn muốn sử dụng cho giao tiếp nối tiếp (để giữ cho phần cứng không có nối tiếp cho mục đích gỡ lỗi). Pin Tx phải được chọn nhưng không thực sự được sử dụng. (Dòng 27). SoftwareSerial mySerial (RXPIN, TXPIN); Ở trên cùng, bạn cần thêm: #define LM35USER
Bước 7: Mã ESP8266: Người dùng DS18B20
Như hoạt động đầu tiên, bạn cần xác định Địa chỉ thiết bị cho mỗi cảm biến. Biên dịch và lập trình mã này thành esp và tìm kiếm kết quả trong tuần tự. Bạn có thể tìm thấy mã tại đây (tìm kiếm tiêu đề này trong trang: «Đọc địa chỉ nội bộ DS18B20 của cá nhân»). Chỉ kết nối một cảm biến để lấy địa chỉ, kết quả sẽ giống như thế này (số ngẫu nhiên ở đây! Chẳng hạn như ví dụ): 0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12. Khi đó, bạn cần thay đổi mã của tôi trong phần " Cấu hình cho DS18B20 "(dòng 31 đến 36)":
#define ONE_WIRE_BUS ONEWIREPINHERE # xác định TEMPERATURE_PRECISION TEMPBITPRECISION // (từ 9 đến 12) #define delayDallas READINTERVAL // (Tính bằng mili giây, tối thiểu là 15 giây hoặc 15000mS) DeviceAddress blueSensor = {0x4511, 0x22x17, 0x4511, 0x22x22 0x12}; // THAY ĐỔI VỚI ĐỊA CHỈ CỦA BẠN DeviceAddress redSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // THAY ĐỔI VỚI ĐỊA CHỈ CỦA BẠN DeviceAddress greenSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // THAY ĐỔI VỚI ĐỊA CHỈ CỦA BẠN Ở trên cùng, bạn cần thêm: #define DSUSER
Bước 8: ESP8266 Little Trick
Sau khi kiểm tra một chút, tôi thấy rằng nếu bạn cắm esp8266 mà không lập trình, nó sẽ không chạy mã cho đến khi bạn nhấn đặt lại một lần. Để giải quyết vấn đề này, sau khi nghiên cứu một chút, tôi phát hiện ra rằng bạn phải thêm một điện trở kéo lên từ 3,3V đến D3. Điều này sẽ yêu cầu bộ xử lý tải mã từ bộ nhớ flash. Với phương pháp này, D3 có thể được sử dụng trực tiếp để nhập dữ liệu cho cảm biến DS18B20.
Bước 9: Hoạt động lần đầu tiên
Nếu bạn đã tải mã lên đúng cách nhưng không bao giờ sử dụng thư viện trình quản lý Wifi thì đã đến lúc bạn phải định cấu hình kết nối wifi của mình. Chờ cho đến khi bạn thấy đèn LED RGB nhấp nháy nhanh hơn trước, sau đó tìm kiếm trên điện thoại di động hoặc PC của bạn mạng wifi có tên "AutoConnectAp" và kết nối. Sau khi kết nối, mở trình duyệt web và nhập 192.168.4.1, bạn sẽ tìm thấy giao diện GUI của trình quản lý wifi (xem ảnh) và nhấn "Cấu hình Wifi". Chờ esp8266 tìm kiếm các mạng wifi và chọn mạng mong muốn. Chèn mật khẩu và nhấn "lưu". Esp8266 sẽ khởi động lại (không quan tâm đèn LED RGB lần này vì nó sẽ xuất ra một số thông tin ngẫu nhiên) và kết nối với mạng.
Bước 10: Kết luận
Cuối cùng, đây là một biểu đồ được lấy từ trình ghi dữ liệu đang hoạt động trong khi ghi nhiệt độ tủ đông của tôi. Màu cam là DS18B20 và màu xanh là LM35 và mạch của nó. Bạn có thể thấy sự khác biệt lớn nhất về độ chính xác từ cảm biến kỹ thuật số sang cảm biến tương tự (với "mạch ADC" kém của tôi) cung cấp một số dữ liệu phi vật lý. dễ đọc hơn và gần như "plug and play", nó ổn định và chính xác hơn, nó chạy ở 3.3V và chỉ yêu cầu một chân cho rất nhiều cảm biến. tìm thấy một số thông tin hữu ích. Và đối với những người muốn nhận ra điều đó, tôi ước rằng tôi đã cung cấp tất cả thông tin cần thiết. Nếu không tự do hỏi mọi thứ, tôi sẽ sẵn lòng trả lời tất cả các câu hỏi. Vì tôi không phải là một người nói tiếng Anh, nếu có gì sai hoặc không hiểu, vui lòng cho tôi biết. Nếu bạn thích dự án này, hãy bình chọn nó cho các cuộc thi và / hoặc để lại nhận xét ☺. Nó sẽ khuyến khích tôi tiếp tục cập nhật và xuất bản nội dung mới. Cảm ơn bạn.
Đề 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 độ 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
Hiển thị nhiệt độ & độ ẩm nhiệt nhiệt - Phiên bản PCB: 6 bước (có hình ảnh)
Hiển thị Nhiệt độ & Độ ẩm Thermochromic - Phiên bản PCB: Cách đây không lâu, một dự án có tên Nhiệt độ Nhiệt & Màn hình độ ẩm nơi tôi đã chế tạo màn hình 7 phân đoạn từ các tấm đồng được làm nóng / làm mát bằng các phần tử peltier. Các tấm đồng được bao phủ bởi một lá mỏng nhiệt sắc
Nhiệt kế ghi nhật ký tự làm với 2 cảm biến: 3 bước (có hình ảnh)
Nhiệt kế ghi nhật ký tự làm với 2 cảm biến: Dự án này là sự cải tiến của dự án trước đây của tôi " Nhiệt kế ghi nhật ký tự làm ". Nó ghi lại các phép đo nhiệt độ vào thẻ nhớ micro SD
Theo dõi và ghi lại nhiệt độ với Bluetooth LE và RaspberryPi: 9 bước (có hình ảnh)
Theo dõi và ghi lại nhiệt độ với Bluetooth LE và RaspberryPi: Hướng dẫn này là về cách kết hợp một hệ thống theo dõi nhiệt độ nhiều nút với lỗi cảm biến Bluetooth LE từ Blue Radios (BLEHome) và RaspberryPi 3BT. Nhờ sự phát triển của tiêu chuẩn Bluetooth LE, có hiện đã có sẵn
Nhiệt kế nấu ăn đầu dò nhiệt độ ESP32 NTP với cảnh báo nhiệt độ và hiệu chỉnh Steinhart-Hart.: 7 bước (có hình ảnh)
Nhiệt kế nấu ăn đầu dò nhiệt độ ESP32 NTP với cảnh báo nhiệt độ và hiệu chỉnh Steinhart-Hart. là một chương trình Có thể hướng dẫn cho thấy cách tôi thêm đầu dò nhiệt độ NTP, piezo b