Cảm biến nhiệt độ ESP8266 DS18B20 với Arduino IDE (Máy chủ Web, Đơn, Nhiều)

26 32 0
Cảm biến nhiệt độ ESP8266 DS18B20 với Arduino IDE (Máy chủ Web, Đơn, Nhiều)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đây là hướng dẫn chuyên sâu về cảm biến nhiệt độ DS18B20 với ESP8266 sử dụng Arduino IDE. Chúng tôi sẽ đề cập đến cách nối dây cảm biến, cài đặt các thư viện cần thiết và viết mã để đọc cảm biến từ một và nhiều cảm biến. Cuối cùng, chúng ta sẽ xây dựng một máy chủ web đơn giản để hiển thị các chỉ số cảm biến.Trong suốt hướng dẫn này, chúng tôi sẽ đề cập đến các chủ đề sau:1. Đọc nhiệt độ từ một cảm biến nhiệt độ DS18B20;2. Đọc nhiệt độ từ nhiều cảm biến nhiệt độ DS18B20;3. Hiển thị số đọc cảm biến DS18B20 trên máy chủ web

Cảm biến nhiệt độ ESP8266 DS18B20 với Arduino IDE (Máy chủ Web, Đơn, Nhiều) Đây hướng dẫn chuyên sâu cảm biến nhiệt độ DS18B20 với ESP8266 sử dụng Arduino IDE Chúng đề cập đến cách nối dây cảm biến, cài đặt thư viện cần thiết viết mã để đọc cảm biến từ nhiều cảm biến Cuối cùng, xây dựng máy chủ web đơn giản để hiển thị số cảm biến Trong suốt hướng dẫn này, đề cập đến chủ đề sau: Đọc nhiệt độ từ cảm biến nhiệt độ DS18B20; Đọc nhiệt độ từ nhiều cảm biến nhiệt độ DS18B20; Hiển thị số đọc cảm biến DS18B20 máy chủ web Bạn thích đọc hướng dẫn DS18B20 khác: Tìm hiểu thêm ESP8266 với khóa học chúng tơi: Tự động hóa gia đình ESP8266 Giới thiệu cảm biến nhiệt độ DS18B20 Cảm biến nhiệt độ DS18B20 cảm biến nhiệt độ kỹ thuật số dây Điều có nghĩa yêu cầu dòng liệu (và GND) để giao tiếp với ESP8266 bạn 1/26 Nó cung cấp lượng nguồn điện bên lấy lượng từ đường liệu (được gọi "chế độ ký sinh trùng"), giúp loại bỏ cần thiết nguồn điện bên Mỗi cảm biến nhiệt độ DS18B20 có mã sê-ri 64-bit Điều cho phép bạn nối nhiều cảm biến vào dây liệu Vì vậy, bạn nhận nhiệt độ từ nhiều cảm biến GPIO Cảm biến nhiệt độ DS18B20 có sẵn phiên chống thấm nước 2/26 Dưới tóm tắt thơng số kỹ thuật phù hợp cảm biến nhiệt độ DS18B20: Giao tiếp qua bus dây Phạm vi cung cấp điện: 3.0V đến 5.5V Phạm vi nhiệt độ hoạt động: -55ºC đến + 125ºC Độ xác +/-0,5 ºC (giữa phạm vi -10ºC đến 85ºC) Để biết thêm thông tin, tham khảo bảng liệu DS18B20 Các phận cần thiết Để hoàn thành hướng dẫn này, bạn cần thành phần sau: ESP8266 - đọc Bảng phát triển Wi-Fi ESP8266 tốt Cảm biến nhiệt độ DS18B20 (một nhiều cảm biến) – phiên chống thấm nước Điện trở 4.7k Ohm Breadboard Dây nhảy ESP8266 với sơ đồ DS18B20 Như đề cập trước đây, cảm biến nhiệt độ DS18B20 cấp nguồn thơng qua chân VDD (chế độ bình thường) lấy sức mạnh từ đường liệu (chế độ ký sinh trùng) Bạn chọn hai chế độ Chế độ ký sinh trùng 3/26 Chế độ bình thường 4/26 Lưu ý: hướng dẫn này, kết nối đường liệu DS18B20 với GPIO 4, bạn sử dụng GPIO phù hợp khác Đọc Hướng dẫn tham khảo GPIO ESP8266 chúng tơi để tìm hiểu thêm GPIO ESP8266 Lưu ý: bạn sử dụng ESP-01, GPIO chân phù hợp để kết nối với chân liệu DS18B20 Chuẩn bị Arduino IDE bạn 5/26 Chúng tơi lập trình ESP8266 Arduino IDE, đảm bảo bạn cài đặt tiện ích bổ sung ESP8266 trước tiếp tục: Cài đặt bảng ESP8266 Arduino IDE (hướng dẫn Windows, Mac OS X Linux) Cài đặt thư viện cho DS18B20 Để giao tiếp với cảm biến nhiệt độ DS18B20, bạn cần cài đặt thư viện One Wire Paul Stoffregen thư viện Nhiệt độ Dallas Làm theo bước để cài đặt thư viện Mở Arduino IDE bạn tới Sketch > Include Library > Manage Libraries Trình quản lý thư viện mở Nhập "onewire" vào hộp tìm kiếm cài đặt thư viện OneWire Paul Stoffregen Sau đó, tìm kiếm "Dallas" cài đặt thư viện Nhiệt độ Dallas Miles Burton 6/26 Sau cài đặt thư viện, khởi động lại Arduino IDE bạn Mã (Đơn DS18B20) Sau cài đặt thư viện cần thiết, bạn tải mã sau lên ESP8266 Mã đọc nhiệt độ từ cảm biến nhiệt độ DS18B20 hiển thị số đọc Màn hình nối tiếp Arduino IDE 7/26 /********* Rui Santos Complete project details at https://RandomNerdTutorials.com *********/ #include #include // GPIO where the DS18B20 is connected to const int oneWireBus = 4; // Setup a oneWire instance to communicate with any OneWire devices OneWire oneWire(oneWireBus); // Pass our oneWire reference to Dallas Temperature sensor DallasTemperature sensors(&oneWire); void setup() { // Start the Serial Monitor Serial.begin(115200); // Start the DS18B20 sensor sensors.begin(); } void loop() { sensors.requestTemperatures(); float temperatureC = sensors.getTempCByIndex(0); float temperatureF = sensors.getTempFByIndex(0); Serial.print(temperatureC); Serial.println("ºC"); Serial.print(temperatureF); Serial.println("ºF"); delay(5000); } Xem mã thơ Có nhiều cách khác để có nhiệt độ từ cảm biến nhiệt độ DS18B20 Tuy nhiên, bạn sử dụng cảm biến nhất, cách dễ đơn giản 8/26 Mã hoạt động Bắt đầu cách bao gồm thư viện OneWire DallasTemperature #include #include Tạo phiên cần thiết cho cảm biến nhiệt độ Cảm biến nhiệt độ kết nối với GPIO // GPIO where the DS18B20 is connected to const int oneWireBus = 4; // Setup a oneWire instance to communicate with any OneWire devices OneWire oneWire(oneWireBus); // Pass our oneWire reference to Dallas Temperature sensor DallasTemperature sensors(&oneWire); Trong setup(), khởi tạo Serial Monitor với tốc độ truyền 115200 Serial.begin(115200); Khởi tạo cảm biến nhiệt độ DS18B20: sensors.begin(); Trước thực nhận nhiệt độ, bạn cần gọi phương thức requestTemperatures() sensors.requestTemperatures(); Sau đó, lấy nhiệt độ tính Celsius cách sử dụng phương thức getTempCByIndex() hình đây: float temperatureC = sensors.getTempCByIndex(0); 9/26 Hoặc sử dụng getTempFByIndex() để lấy nhiệt độ tính Fahrenheit float temperatureF = sensors.getTempFByIndex(0); Các phương thức getTempCByIndex() getTempFByIndex() chấp nhận số cảm biến nhiệt độ Bởi chúng tơi sử dụng cảm biến, số Nếu bạn muốn đọc nhiều cảm biến, bạn sử dụng số cho cảm biến, mục cho cảm biến khác, v.v Cuối cùng, in kết Serial Monitor Serial.print(temperatureC); Serial.println("ºC"); Serial.print(temperatureF); Serial.println("ºF"); Chỉ số nhiệt độ yêu cầu sau giây delay(5000); Cuộc biểu tình Sau tải mã lên, mở Màn hình nối tiếp Arduino IDE với tốc độ truyền 9600 Bạn nhận nhiệt độ hiển thị độ C độ F: 10/26 Mã (Nhiều DS18B20) Sau đó, tải lên mã sau Nó quét tất thiết bị GPIO in nhiệt độ cho thiết bị Bản phác thảo dựa ví dụ cung cấp thư viện DallasTemperature 12/26 /********* Rui Santos Complete project details at https://RandomNerdTutorials.com *********/ #include #include // Data wire is plugged TO GPIO #define ONE_WIRE_BUS // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs) OneWire oneWire(ONE_WIRE_BUS); // Pass our oneWire reference to Dallas Temperature DallasTemperature sensors(&oneWire); // Number of temperature devices found int numberOfDevices; // We'll use this variable to store a found device address DeviceAddress tempDeviceAddress; void setup(){ // start serial port Serial.begin(115200); // Start up the library sensors.begin(); // Grab a count of devices on the wire numberOfDevices = sensors.getDeviceCount(); // locate devices on the bus Serial.print("Locating devices "); Serial.print("Found "); Serial.print(numberOfDevices, DEC); Serial.println(" devices."); // Loop through each device, print out address for(int i=0;isend_P(200, "text/html", index_html, processor); }); server.on("/temperaturec", HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, "text/plain", temperatureC.c_str()); }); server.on("/temperaturef", HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, "text/plain", temperatureF.c_str()); }); // Start server server.begin(); } void loop(){ if ((millis() - lastTime) > timerDelay) { temperatureC = readDSTemperatureC(); temperatureF = readDSTemperatureF(); lastTime = millis(); } } Xem mã thô Chèn thông tin đăng nhập mạng bạn vào biến sau mã hoạt động const char* ssid = "REPLACE_WITH_YOUR_SSID"; const char* password = "REPLACE_WITH_YOUR_PASSWORD"; Mã hoạt động Trong đoạn sau, chúng tơi giải thích cách mã hoạt động Hãy tiếp tục đọc bạn muốn tìm hiểu thêm chuyển đến phần "Trình diễn" để xem kết cuối Nhập thư viện Đầu tiên, nhập thư viện cần thiết #include #include #include #include #include #include #include Cảm biến khởi tạo DS18B20 20/26

Ngày đăng: 09/04/2023, 18:43

Tài liệu cùng người dùng

Tài liệu liên quan