Skip to content
Home » Dht11 Esp8266 Arduino Uno | Esp8266 Dht Server

Dht11 Esp8266 Arduino Uno | Esp8266 Dht Server

How to Send Humidity and Temperature value to ThinkSpeak using ESP8266 DHT11 sensor module Arduino

ESP8266 DHT Server


Temperature


%TEMPERATURE%


°C


Humidity


%HUMIDITY%




)rawliteral”; // Replaces placeholder with DHT values String processor(const String& var){ //Serial.println(var); if(var == “TEMPERATURE”){ return String(t); } else if(var == “HUMIDITY”){ return String(h); } return String(); } void setup(){ // Serial port for debugging purposes Serial.begin(115200); dht.begin(); // Connect to Wi-Fi WiFi.begin(ssid, password); Serial.println(“Connecting to WiFi”); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println(“.”); } // Print ESP8266 Local IP Address Serial.println(WiFi.localIP()); // Route for root / web page server.on(“/”, HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, “text/html”, index_html, processor); }); server.on(“/temperature”, HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, “text/plain”, String(t).c_str()); }); server.on(“/humidity”, HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, “text/plain”, String(h).c_str()); }); // Start server server.begin(); } void loop(){ unsigned long currentMillis = millis(); if (currentMillis – previousMillis >= interval) { // save the last time you updated the DHT values previousMillis = currentMillis; // Read temperature as Celsius (the default) float newT = dht.readTemperature(); // Read temperature as Fahrenheit (isFahrenheit = true) //float newT = dht.readTemperature(true); // if temperature read failed, don’t change t value if (isnan(newT)) { Serial.println(“Failed to read from DHT sensor!”); } else { t = newT; Serial.println(t); } // Read Humidity float newH = dht.readHumidity(); // if humidity read failed, don’t change h value if (isnan(newH)) { Serial.println(“Failed to read from DHT sensor!”); } else { h = newH; Serial.println(h); } } }







Insert your network credentials in the following variables and the code will work straight away.


const char* ssid = "REPLACE_WITH_YOUR_SSID"; const char* password = "REPLACE_WITH_YOUR_PASSWORD";

How the Code Works

In the following paragraphs we’ll explain how the code works. Keep reading if you want to learn more or jump to the Demonstration section to see the final result.

Importing libraries

First, import the required libraries.


#include

#include

#include

#include

#include

#include

#include






Setting your network credentials

Insert your network credentials in the following variables, so that the ESP8266 can connect to your local network.


const char* ssid = "REPLACE_WITH_YOUR_SSID"; const char* password = "REPLACE_WITH_YOUR_PASSWORD";

Variables definition

Define the GPIO that the DHT data pin is connected to. In this case, it’s connected to GPIO5 (D1).


#define DHTPIN 5 // Digital pin connected to the DHT sensor

Then, select the DHT sensor type you’re using. In our example, we’re using the DHT22. If you’re using another type, you just need to uncomment your sensor and comment all the others.


#define DHTTYPE DHT22 // DHT 22 (AM2302)

Instantiate a DHTobject with the type and pin defined earlier.


DHT dht(DHTPIN, DHTTYPE);

Create an AsyncWebServerobject on port 80.


AsyncWebServer server(80);

Create float variables to hold the current temperature and humidity values. The temperature and humidity are updated in the loop().


float t = 0.0; float h = 0.0;

Create timer variables needed to update the temperature readings every 10 seconds.


unsigned long previousMillis = 0; // will store last time DHT was updated // Updates DHT readings every 10 seconds const long interval = 10000;

Building the Web Page

Proceeding to the web server page.

As you can see in the above figure, the web page shows one heading and two paragraphs. There is a paragraph to display the temperature and another to display the humidity. There are also two icons to style the page.

Let’s see how this web page is created.

All the HTML text with styles included is stored in the index_html variable. Now we’ll go through the HTML text and see what each part does.

The following tag makes your web page responsive in any browser.

The tag is needed to load the icons from the fontawesome website.

Styles

Between the tags, we add some CSS to style the web page.

Basically, we’re setting the HTML page to display the text with Arial font in block without margin, and aligned at the center.


html { font-family: Arial; display: inline-block; margin: 0px auto; text-align: center; }

We set the font size for the heading (h2), paragraph (p) and the units(.units) of the readings.


h2 { font-size: 3.0rem; } p { font-size: 3.0rem; } .units { font-size: 1.2rem; }

The labels for the readings are styled as shown below:


dht-labels{ font-size: 1.5rem; vertical-align:middle; padding-bottom: 15px; }

All of the previous tags should go between the

and

tags. These tags are used to include content that is not directly visible to the user, like the , the tags, and the styles.

HTML Body

Inside the tags is where we add the web page content.

The tags add a heading to the web page. In this case, the “ESP8266 DHT server” text, but you can add any other text.

ESP8266 DHT Server

Then, there are two paragraphs. One to display the temperature and the other to display the humidity. The paragraphs are delimited by the

and

tags. The paragraph for the temperature is the following:



Temperature


%TEMPERATURE%


°C

And the paragraph for the humidity is on the following snipet:


Humidity


%HUMIDITY%

The

tags display the fontawesome icons.

How to display icons

To chose the icons, go to the Font Awesome Icons website.

Search the icon you’re looking for. For example, “thermometer”.

Click the desired icon. Then, you just need to copy the HTML text provided.

To chose the color, you just need to pass the style parameter with the color in hexadecimal, as follows:

Proceeding with the HTML text…

The next line writes the word “Temperature” into the web page.



Temperature

The TEMPERATURE text between % signs is a placeholder for the temperature value.



%TEMPERATURE%

This means that this %TEMPERATURE% text is like a variable that will be replaced by the actual temperature value from the DHT sensor. The placeholders on the HTML text should go between % signs.

Finally, we add the degree symbol.



°C

The tags make the text superscript.

We use the same approach for the humidity paragraph, but it uses a different icon and the %HUMIDITY% placeholder.


Humidity


%HUMIDITY%

Automatic Updates

Finally, there’s some JavaScript code in our web page that updates the temperature and humidity automatically, every 10 seconds.

Scripts in HTML text should go between the tags.

To update the temperature on the background, we have a setInterval() function that runs every 10 seconds.

Basically, it makes a request in the /temperature URL to get the latest temperature reading.


xhttp.open("GET", "/temperature", true); xhttp.send(); }, 10000 ) ;

When it receives that value, it updates the HTML element whose id is temperature.


if (this.readyState == 4 && this.status == 200) { document.getElementById("temperature").innerHTML = this.responseText; }

In summary, this previous section is responsible for updating the temperature asynchronously. The same process is repeated for the humidity readings.

Important: since the DHT sensor is quite slow getting the readings, if you plan to have multiple clients connected to an ESP8266 at the same time, we recommend increasing the request interval or remove the automatic updates.

Processor

Now, we need to create the processor() function, that will replace the placeholders in our HTML text with the actual temperature and humidity values.


String processor(const String& var){ //Serial.println(var); if(var == "TEMPERATURE"){ return String(t); } else if(var == "HUMIDITY"){ return String(h); } return String(); }

When the web page is requested, we check if the HTML has any placeholders. If it finds the %TEMPERATURE% placeholder, we return the temperature that is stored on the t variable.


if(var == "TEMPERATURE"){ return String(t); }

If the placeholder is %HUMIDITY%, we return the humidity value.


else if(var == "HUMIDITY"){ return String(h); }

setup()

In the setup(), initialize the Serial Monitor for debugging purposes.


Serial.begin(115200);

Initialize the DHT sensor.


dht.begin();

Connect to your local network and print the ESP8266 IP address.


WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi.."); }

Finally, add the next lines of code to handle the web server.


server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, "text/html", index_html, processor); }); server.on("/temperature", HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, "text/plain", String(t).c_str()); }); server.on("/humidity", HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, "text/plain", String(h).c_str()); });

When we make a request on the root URL, we send the HTML text that is stored on the index_html variable. We also need to pass the processorfunction, that will replace all the placeholders with the right values.


server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, "text/html", index_html, processor); });

We need to add two additional handlers to update the temperature and humidity readings. When we receive a request on the /temperature URL, we simply need to send the updated temperature value. It is plain text, and it should be sent as a char, so, we use the c_str() method.


server.on("/temperature", HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, "text/plain", String(t).c_str()); });

The same process is repeated for the humidity.


server.on("/humidity", HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, "text/plain", String(h).c_str()); });

Lastly, we can start the server.


server.begin();

In the loop() is where we get new temperature readings from the sensor every 10 seconds.

Basically, we check if it is time to get new sensor readings:


if (currentMillis - previousMillis >= interval) {

If it is, we store a new temperature reading on the newT variable


float newT = dht.readTemperature();

If the newT variable is a valid temperature readings, we update the t variable.


else { t = newT; Serial.println(t); }

The same process is repeated for the humidity.


// Read Humidity float newH = dht.readHumidity(); // if humidity read failed, don't change h value if (isnan(newH)) { Serial.println("Failed to read from DHT sensor!"); } else { h = newH; Serial.println(h); }

That’s pretty much how the code works.

Uploading the code

After modifying the sketch with the necessary changes, if needed, upload the code to your ESP8266 (if you can’t upload code to your ESP8266, read this troubleshooting guide).

Make sure you have the right board and COM port select. Go to Tools> Board and select the ESP8266 model you’re using. In our case, we’re using the ESP8266 12-E NodeMCU Kit.

Go to Tools > Port and select the COM port the ESP8266 is connected to.

Press the Arduino IDE upload button.

Note: if you’re using an ESP-01, you need a serial adapter or an FTDI programmer to upload code.

ESP8266 IP Address

After uploading the code, open the Serial Monitor at a baud rate of 115200. Press the ESP8266 reset button. The ESP8266 IP address will be printed in the serial monitor as shown in the following figure.

Demonstration

In your local network, go to a browser and type the ESP8266 IP address. It should display the following web page with the latest sensor readings.

The temperature and humidity readings update automatically every 10 seconds without the need to refresh the web page.

How to Send Humidity and Temperature value to ThinkSpeak using ESP8266 DHT11 sensor module Arduino
How to Send Humidity and Temperature value to ThinkSpeak using ESP8266 DHT11 sensor module Arduino

Cảm biến nhiệt độ, độ ẩm DHT11

Cảm biến độ ẩm và nhiệt độ DHT11 là cảm biến rất thông dụng hiện nay vì chi phí rẻ và rất dễ lấy dữ liệu thông qua chuẩn giao tiếp 1 wire.

Chuẩn giao tiếp 1 wire là dùng 1 chân Digital để truyền dữ liệu.

Bộ tiền xử lý tín hiệu được tích hợp trong cảm biến giúp bạn có thể đọc dữ liệu chính xác mà không phải qua bất kỳ tính toán nào.

Thông số kỹ thuật của cảm biến:

  • Điện áp hoạt động: 3V – 5V (DC)
  • Dãi độ ẩm hoạt động: 20% – 90% RH, sai số ±5%RH
  • Dãi nhiệt độ hoạt động: 0°C ~ 50°C, sai số ±2°C
  • Khoảng cách truyển tối đa: 20m

Các bạn download và cài đặt thư viện hỗ trợ sử dụng DHT11: Tại đây

Code

#include “DHT.h”
#define DHTTYPE DHT11 // DHT 11
const int DHTPin = 4;
DHT dht(DHTPin, DHTTYPE); // Initialize DHT sensor.
static char celsiusTemp[7];
static char fahrenheitTemp[7];
static char humidityTemp[7];
void setup() {
Serial.begin(9600);
delay(10);
dht.begin();
}
void loop() {
// Sensor readings may also be up to 2 seconds ‘old’ (its a very slow sensor)
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(“Failed to read from DHT sensor!”);
}
else {
delay(2000);
Serial.print(“Humidity: “);
Serial.print(h);
Serial.print(” %\t Temperature: “);
Serial.print(t);
Serial.print(” *C “);
Serial.print(f);
Serial.print(” *F\t Heat index: “);
Serial.print(hic);
Serial.print(” *C “);
Serial.println(hif);
}
}

Arduino | NodeMCU ESP8266 DHT11 (Temperature & Humidity) Live Monitoring Sensor Local Web Server
Arduino | NodeMCU ESP8266 DHT11 (Temperature & Humidity) Live Monitoring Sensor Local Web Server

Demonstration

After making any necessary changes, upload the code to the ESP8266 as described in an earlier section.

Open the Arduino IDE serial monitor at a baud rate of 115200. After a few seconds your IP address should show up. In our case it’s 192.168.1.95.

Open any browser from a device that is connected to the same router that your ESP is. Then type the IP address and click Enter!

Now you should see the latest temperature and humidity readings. To update the readings, you just need to refresh the web page.

Wrapping Up

In this project we’ve shown you how to display sensor readings from a DHT sensor on a web page. We’ve provided two examples: a simple web server and an asynchronous web server with auto-updates.

Now, you can easily modify the examples provided to display readings from other sensors. If you like the ESP8266 and IoT projects take a look at some of our resources:

  • Home Automation with ESP8266 (Course)
  • Learn ESP32 with Arduino IDE (Course)
  • MicroPython Programming with ESP32 and ESP8266 (ebook)

You may also like some of our most popular projects with the ESP8266:

  • Hack a PIR Motion Sensor with an ESP8266
  • Build a Multisensor Shield for ESP8266
  • ESP8266 Wi-Fi Button – DIY Amazon Dash Button Clone
  • 30+ ESP8266 Projects

Do you have any questions? Leave a comment below!

Thanks for reading.

Module cảm biến nhiệt độ và độ ẩm DHT11 esp8266-01s là mdodule cảm biến được sử dụng phổ biến trong việc đo nhiệt độ và độ ẩm bởi độ chính xác cao, giá thành rẻ, dễ sử dụng.

Module cảm biến nhiệt độ và độ ẩm

Module cảm biến nhiệt độ và độ ẩm DHT11

Module cảm biến DHT11 esp8266-01s

Mặt sau của Module cảm biến DHT11 esp8266-01s

Kích thước Module cảm biến DHT11 esp8266-01s

Bảng Thông Số Module Cảm Biến DHT11

Chân Kết Nối Module Cảm Biến DHT11

Module Cảm Biến DHT11

Module Cảm Biến DHT11

Module Cảm Biến DHT11

Chế độ bảo hành

Chế độ bảo hành sản phẩm của Linh Kiện Điện Tử 3M

Bảo đảm chất lượng

Sản phẩm được Test, dán Tem trước khi được đóng gói Kĩ Càng gửi cho Quý Khách

Cước vận chuyển

Cước vận chuyển được tự động đồng bộ đơn vị vận chuyển, Sản phẩm phát ngay trong ngày. Hỗ trợ đơn hàng: 02420214848

Hỗ trợ kỹ thuật

Tư vấn kĩ thuật: 0969.477.417 Khi khách hàng gặp khó khăn trong quá trình sử dụng

Thành tiền:

Module WiFi Nhiệt Độ Độ Ẩm DHT11 sử dụng ESP8266-01/ESP-01S làm bộ điều khiển chính và DHT11 làm cảm biến nhiệt độ và độ ẩm. ESP8266 thu thập nhiệt độ và độ ẩm trong môi trường và tải nó lên máy chủ. Hỗ trợ nguồn DC 3.7v-12V (pin lithium 3.7V). Nó có thể được sử dụng như một nút thu thập nhiệt độ và độ ẩm cho các dự án nhà thông minh hoặc IOT.

THông số kỹ thuật Module WiFi Nhiệt Độ Độ Ẩm DHT11*Điều khiển chính: ESP-01/ESP-01S (mô-đun này chưa bao gồm ESP-01/ESP-01S)* Cảm biến nhiệt độ và độ ẩm: DHT11* Điện áp làm việc: DC 3.7V-12V (hỗ trợ nguồn pin lithium 3.7v)* Dải đo: 20-90%RH 0-50℃*Độ chính xác của phép đo: Nhiệt độ: ±2°C Độ ẩm ±5%RH

Ví dụ ứng dụng Module WiFi ESP8266 DHT11:1. Nguồn điện: Nguồn điện một chiều 3.7V-12V được kết nối với VCC GND (đầu cắm chân cắm 2.54mm)2. Tải chương trình xuống ESP-01S (kết nối này không bao gồm mô-đun không dây này)3. Chèn ESP-01/ESP-01S (kết nối này không bao gồm mô-đun không dây này) vào đầu cái 2*4 Pin (theo hướng mũi tên)

#esp8266 #dht11 #wifi

I am trying to get a DHT11 temperature/humidity sensor working with an ESP8266. The sensor I have is of the 3 pin variety with built-in resistor. I started with a simple example and got it working on a Uno to show the temperature and humidity on the display with no difficulty. However, I cannot get it to work on the ESP8266.

For the Uno, I downloaded the library referenced here:

https://playground.arduino.cc/Main/DHT11Lib/

The dht11.cpp and dht11.h files were added to my project directory and included in the sketch and this works well on the Uno giving me both temperature and humidity readings. However on the ESP8266 there are no readings at all, just zero values returned for both temperature and humidity. I thought that I maybe needed to use a library specific to the platform so I also tried DHTesp from here:

This was downloaded using the Library Manager and I found that it also does not return any data although instead of showing zero, the display now shows ‘nan’ for both parameters. I have also tried different GPIO pins. The datasheet shows these operating from 3.5V to 5V, but I found at least a couple of tutorials using this on the 3.3V. Nevertheless, I also tried powering the sensor from 5v, but still get the same result. Connecting the sensor back up to the Uno shows that it works perfectly. Here is my code:


#include #ifdef __AVR__ #include "dht11.h" #define DHT11PIN 13 dht11 dhtSensor; LiquidCrystal lcd(8, 9, 4, 5, 6, 7); #endif #if defined(ESP32) || defined(ESP8266) #include "DHTesp.h" #define DHT11PIN 2 // #define FAN 2 DHTesp dhtSensor; LiquidCrystal lcd(5, 4, 14, 12, 13, 15); #endif //uint8_t pos = 0; void setup() { Serial.begin(115200); #ifdef ESP8266 dhtSensor.setup(DHT11PIN, DHTesp::DHT22); #endif lcd.begin(16, 2); } void loop() { Serial.println(); #ifdef __AVR__ int chk = dhtSensor.read(DHT11PIN); float temperature = (float)dhtSensor.temperature; float humidity = (float)dhtSensor.humidity; #endif #if defined(ESP32) || defined(ESP8266) float temperature = dhtSensor.getTemperature(); float humidity = dhtSensor.getHumidity(); #endif // int chk = DHT11.read(DHT11PIN); outputSerial(temperature, humidity); /* lcd.setCursor(0,0); lcd.print("Hello, world!"); if (pos>0) lcd.setCursor(pos-1,1); lcd.print(" "); lcd.setCursor(pos,1); lcd.print(">"); if (pos==0) lcd.setCursor(15,1); lcd.print(" "); pos<15 ? pos += 1 : pos = 0; */ updateDisplay(temperature, humidity); delay(2000); } void outputSerial(float temp, float humid){ Serial.print("Temp (°C): "); Serial.print(temp, 2); Serial.print("\t"); Serial.print("Humidity (%): "); Serial.print(humid, 2); Serial.println(); } void updateDisplay(float temp, float humid){ // Header lcd.setCursor(0,0); lcd.print("Tmp | Hum | Fan"); //Temperature lcd.setCursor(0,1); lcd.print(temp,0); lcd.print((char)223); lcd.setCursor(4,1); lcd.print("|"); // Humidity lcd.setCursor(6,1); lcd.print(humid,0); lcd.print("%"); lcd.setCursor(10,1); lcd.print("|"); // Fan status lcd.setCursor(12,1); fanOn(humid) ? lcd.print("ON ") : lcd.print("OFF"); } bool fanOn(float humid){ if (humid>50) return true; return false; }

I understand that the DHT22 is more accurate and the better sensor, but for now the DHT11 is what I have to work and would at least like to get it up and running on the ESP8266 in principle. Can anyone suggest what might be preventing it from working? Do I need the 4 wire version for example?

E.P:-37 | Send DHT11 Data to ThingSpeak from Arduino Uno via NodeMCU | Techforfun
E.P:-37 | Send DHT11 Data to ThingSpeak from Arduino Uno via NodeMCU | Techforfun

Thông số kỹ thuật

Điện áp hoạt động : 3 – 5 VDC
Dãi độ ẩm hoạt động : 20% – 90% RH, sai số ±5%RH
Dãi nhiệt độ hoạt động : 0°C ~ 50°C, sai số ±2°C
Khoảng cách truyển tối đa : 20m

Installing the DHT Library for ESP8266

To read from the DHT sensor, we’ll use the DHT library from Adafruit. To use this library you also need to install the Adafruit Unified Sensor library. Follow the next steps to install those libraries.

1. Open your Arduino IDE and go to Sketch > Include Library > Manage Libraries. The Library Manager should open.

2. Search for “DHT” on the Search box and install the DHT library from Adafruit.

3. After installing the DHT library from Adafruit, type “Adafruit Unified Sensor” in the search box. Scroll all the way down to find the library and install it.

After installing the libraries, restart your Arduino IDE.

Arduino IoT Cloud and ESP8266 with DHT11 for Temperature and Humidity Monitoring, Arduino Cloud
Arduino IoT Cloud and ESP8266 with DHT11 for Temperature and Humidity Monitoring, Arduino Cloud

Parts Required

To build this project, you need the following parts:

  • ESP8266 development board (read ESP8266 development boards comparison)
  • DHT22 or DHT11 Temperature and Humidity Sensor
  • 4.7k Ohm Resistor
  • Breadboard
  • Jumper wires

You can use the preceding links or go directly to MakerAdvisor.com/tools to find all the parts for your projects at the best price!

Sơ đồ đấu nối

Arduino Uno Cảm biến nhiệt độ, độ ẩm DHT11
5V VCC
GND GND
D4 DATA

Các linh kiện cần thiết cho dự án:

Tên linh kiện Số lượng Shopee
Arduino Uno R3 Mua ngay
Dây cáp nạp Mua ngay
Cảm biến nhiệt độ, độ ẩm DHT11 Mua ngay
Breadboard (Board Test) Mua ngay
Dây cắm (Đực – Đực) Mua ngay

Bạn sẽ học được gì

  • Có kiến thức cơ bản về Robotics
  • Chế tạo Robot dò đường thông minh
  • Đánh thức nhà khoa học bên trong bạn
  • Tìm hiểu thêm về Robotics, các thuật toán Robot tự động
  • Kiến thức nền tảng để chế tạo các máy móc tự động phục vụ đời sống sinh hoạt, lao động sản xuất
  • Kiến thức để chế tạo sản phẩm, tham gia các cuộc thi khoa học công nghệ trong nước và quốc tế
How to Send Temperature and Humidity data to ThinkSpeank using ESP8266 DHT11 sensor and Arduino
How to Send Temperature and Humidity data to ThinkSpeank using ESP8266 DHT11 sensor and Arduino

Code mẫu

#include “DHT.h” const int DHTPIN = 4; const int DHTTYPE = DHT11; DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); } void loop() { float h = dht.readHumidity(); float t = dht.readTemperature(); Serial.print(“Nhiet do: “); Serial.println(t); Serial.print(“Do am: “); Serial.println(h); Serial.println(); delay(1000); }

Giải thích code

Khai báo chân kết nối cho cảm biến DHT ở đây mình dùng chân D4 trên Arduino Uno.

const int DHTPIN = 4; const int DHTTYPE = DHT11;

Thư viện DHT.h được khai báo sử dụng cho 2 loại cảm biến là DHT11 và DHT22.

Trong bài viết mình giới thiệu cảm biến nhiệt độ, độ ẩm DHT11, nên chúng ta cần phải khai báo là DHTTYPE là DHT11.

float h = dht.readHumidity(); // Đọc giá trị nhiệt độ từ cảm biến float t = dht.readTemperature(); // Đọc giá trị độ ẩm từ cảm biến

Ở trên là hai biến đọc giá trị nhiệt độ và độ ẩm.

Serial.print(“Nhiet do: “); Serial.println(t); Serial.print(“Do am: “); Serial.println(h);

In giá trị nhiệt độ, độ ẩm lên màn hình (Serial Monitor).

  • Để hiểu hơn về hàm Serial.print() và Serial.println() các bạn xem bài viết ở đây nhé:Xem ngay.

Chúng ta tiến hành Upload chương trình và bật Serial Monitor lên để xem kết quả nhé.

ESP8266 and DHT11/DHT22 Schematic Diagram

Before proceeding with the tutorial, wire the DHT11 or DHT22 temperature and humidity sensor to the ESP8266 as shown in the following schematic diagram.

In this example, we’re wiring the DHT data pin to GPIO5 (D1), but you can use any other suitable GPIO. Read our ESP8266 GPIO Reference Guide to learn more about the ESP8266 GPIOs.

If you’re using an ESP-01, GPIO 2 is the most suitable pin to connect to the DHT data pin, as shown in the next diagram.

How to use ESP8266 NodeMCU with DHT11 Temperature and Humidity Sensor
How to use ESP8266 NodeMCU with DHT11 Temperature and Humidity Sensor

Lời kết

Qua bài hôm nay các bạn biết cách làm thế nào để đọc một cảm biến nhiệt độ, độ ẩm DHT11, và hiểu hơn về cách giao tiếp của chúng.

Để nhận được nhiều kiến thức mới các bạn Đăng ký để nhận được thông báo sớm nhất.

Tham gia Cộng đồng Arduino KIT để cùng nhau thảo luận và chia sẽ kiến thức về lập trình Arduino.

Nếu các bạn thấy bài viết bổ ích nhớ Like và Share cho mọi người cùng đọc nhé.

Chúc các bạn thành công.

Trân trọng.

Mở đầu

  • Chắc anh em đã nghe qua về con cảm biến DHT11 rồi chứ nhỉ? Với chi phí khá rẻ, dễ sử dụng, lại còn tích hợp cả đo độ ẩm và nhiệt độ, tội gì mà không thử các bạn nhỉ :3. Rồi, giờ sẽ là review qua về hình dáng và thông số kĩ thuật một chút nhé.

Chuẩn bị

Cảm biến nhiệt độ, độ ẩm DHT11

ESP8266 Asynchronous Web Server

To build the web server we’ll use the ESPAsyncWebServer library that provides an easy way to build an asynchronous web server. Building an asynchronous web server has several advantages. We recommend taking a quick look at the library documentation on its GitHub page.

Installing the ESPAsyncWebServer library

The ESPAsyncWebServer library is not available to install in the Arduino IDE Library Manager. So, you need to install it manually.

Follow the next steps to install the ESPAsyncWebServer library:

  1. Click here to download the ESPAsyncWebServer library. You should have a .zip folder in your Downloads folder
  2. Unzip the .zip folder and you should get ESPAsyncWebServer-master folder
  3. Rename your folder from

    ESPAsyncWebServer-master

    to ESPAsyncWebServer
  4. Move the ESPAsyncWebServer folder to your Arduino IDE installation libraries folder
Installing the ESPAsync TCP Library

The ESPAsyncWebServer library requires the ESPAsyncTCP library to work. Follow the next steps to install that library:

  1. Click here to download the ESPAsyncTCP library. You should have a .zip folder in your Downloads folder
  2. Unzip the .zip folder and you should get ESPAsyncTCP-master folder
  3. Rename your folder from

    ESPAsyncTCP-master

    to ESPAsyncTCP
  4. Move the ESPAsyncTCP folder to your Arduino IDE installation libraries folder
  5. Finally, re-open your Arduino IDE

Code

We’ll program the ESP8266 using Arduino IDE, so you must have the ESP8266 add-on installed in your Arduino IDE. If you haven’t, follow the next tutorial first:

Open your Arduino IDE and copy the following code.


/********* Rui Santos Complete project details at https://randomnerdtutorials.com/esp8266-dht11dht22-temperature-and-humidity-web-server-with-arduino-ide/ *********/ // Import required libraries #include

#include

#include

#include

#include

#include

#include

// Replace with your network credentials const char* ssid = "REPLACE_WITH_YOUR_SSID"; const char* password = "REPLACE_WITH_YOUR_PASSWORD"; #define DHTPIN 5 // Digital pin connected to the DHT sensor // Uncomment the type of sensor in use: //#define DHTTYPE DHT11 // DHT 11 #define DHTTYPE DHT22 // DHT 22 (AM2302) //#define DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht(DHTPIN, DHTTYPE); // current temperature & humidity, updated in loop() float t = 0.0; float h = 0.0; // Create AsyncWebServer object on port 80 AsyncWebServer server(80); // Generally, you should use "unsigned long" for variables that hold time // The value will quickly become too large for an int to store unsigned long previousMillis = 0; // will store last time DHT was updated // Updates DHT readings every 10 seconds const long interval = 10000; const char index_html[] PROGMEM = R"rawliteral(


Blynk ESP8266 DHT11 Temperature Sensor
Blynk ESP8266 DHT11 Temperature Sensor

ESP8266 Simple HTTP Web Server

In this section, we’ll show you how to build a simple HTTP web server that displays the temperature and humidity in a raw HTML page. This web server sends an HTTP response when your browser makes a request on the ESP8266 IP address.

Video Demonstration

First, you can watch the ESP8266 web server project video demonstration below.

Code

We’ll program the ESP8266 using Arduino IDE, so you must have the ESP8266 add-on installed in your Arduino IDE. If you haven’t follow the next tutorial first.

Open your Arduino IDE and copy the following code.


/********* Rui Santos Complete project details at https://randomnerdtutorials.com *********/ // Including the ESP8266 WiFi library #include

#include "DHT.h" // Uncomment one of the lines below for whatever DHT sensor type you're using! #define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT21 // DHT 21 (AM2301) //#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 // Replace with your network details const char* ssid = "YOUR_NETWORK_NAME"; const char* password = "YOUR_NETWORK_PASSWORD"; // Web Server on port 80 WiFiServer server(80); // DHT Sensor const int DHTPin = 5; // Initialize DHT sensor. DHT dht(DHTPin, DHTTYPE); // Temporary variables static char celsiusTemp[7]; static char fahrenheitTemp[7]; static char humidityTemp[7]; // only runs once on boot void setup() { // Initializing serial port for debugging purposes Serial.begin(115200); delay(10); dht.begin(); // Connecting to WiFi network Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); // Starting the web server server.begin(); Serial.println("Web server running. Waiting for the ESP IP..."); delay(10000); // Printing the ESP IP address Serial.println(WiFi.localIP()); } // runs over and over again void loop() { // Listenning for new clients WiFiClient client = server.available(); if (client) { Serial.println("New client"); // bolean to locate when the http request ends boolean blank_line = true; while (client.connected()) { if (client.available()) { char c = client.read(); if (c == '\n' && blank_line) { // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) float h = dht.readHumidity(); // Read temperature as Celsius (the default) float t = dht.readTemperature(); // Read temperature as Fahrenheit (isFahrenheit = true) float f = dht.readTemperature(true); // Check if any reads failed and exit early (to try again). if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("Failed to read from DHT sensor!"); strcpy(celsiusTemp,"Failed"); strcpy(fahrenheitTemp, "Failed"); strcpy(humidityTemp, "Failed"); } else{ // Computes temperature values in Celsius + Fahrenheit and Humidity float hic = dht.computeHeatIndex(t, h, false); dtostrf(hic, 6, 2, celsiusTemp); float hif = dht.computeHeatIndex(f, h); dtostrf(hif, 6, 2, fahrenheitTemp); dtostrf(h, 6, 2, humidityTemp); // You can delete the following Serial.print's, it's just for debugging purposes Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t Temperature: "); Serial.print(t); Serial.print(" *C "); Serial.print(f); Serial.print(" *F\t Heat index: "); Serial.print(hic); Serial.print(" *C "); Serial.print(hif); Serial.print(" *F"); Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t Temperature: "); Serial.print(t); Serial.print(" *C "); Serial.print(f); Serial.print(" *F\t Heat index: "); Serial.print(hic); Serial.print(" *C "); Serial.print(hif); Serial.println(" *F"); } client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: close"); client.println(); // your actual web page that displays temperature and humidity client.println("

"); client.println("

"); client.println("

ESP8266 - Temperature and Humidity

Temperature in Celsius: "); client.println(celsiusTemp); client.println("*C

Temperature in Fahrenheit: "); client.println(fahrenheitTemp); client.println("*F

Humidity: "); client.println(humidityTemp); client.println("%

"); client.println("



"); break; } if (c == '\n') { // when starts reading a new line blank_line = true; } else if (c != '\r') { // when finds a character on the current line blank_line = false; } } } // closing the client connection delay(1); client.stop(); Serial.println("Client disconnected."); } }

Insert your network credentials in the following variables and the code will work straight away.


const char* ssid = "REPLACE_WITH_YOUR_SSID"; const char* password = "REPLACE_WITH_YOUR_PASSWORD";

How the Code Works

We’ve explained in great detail how a very similar web server works in a previous tutorial. Take a look at the folowing tutorial for an in-depth explanation of each line of code: Build an ESP8266 Web Server.

In this section, we’ll just take a look at the relevant parts for this example.

Importing libraries

Import the DHT libraries to read from the DHT sensor and the ESP8266WiFi library to build the web server:


#include

#include

DHT Sensor Type

Uncomment one of the following lines for the sensor type you’re using. If you’re using a DHT22 sensor, you don’t need to modify anything.


//#define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT21 // DHT 21 (AM2301) #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321

Setting your network credentials

Insert your network credentials in the following variables, so that the ESP8266 can connect to your local network.


const char* ssid = "REPLACE_WITH_YOUR_SSID"; const char* password = "REPLACE_WITH_YOUR_PASSWORD";

Initialize DHT Sensor

Define the GPIO that the DHT data pin is connected to. In this case, it’s connected to GPIO5 (D1).


#define DHTPIN 5 // Digital pin connected to the DHT sensor

Instantiate a DHT object with the type and pin defined earlier.


DHT dht(DHTPIN, DHTTYPE);

setup()

In the setup(), initialize the DHT sensor.


dht.begin();

loop()

In the loop(), we check whether there’s an new client making a request:


if (client) { Serial.println("New client"); // bolean to locate when the http request ends boolean blank_line = true; while (client.connected()) { if (client.available()) { char c = client.read();

When a new client makes a request, we read the humidity, temperature in Celsius and Fahrenheit, and save them in the h, t and f variables:


float h = dht.readHumidity(); // Read temperature as Celsius (the default) float t = dht.readTemperature(); // Read temperature as Fahrenheit (isFahrenheit = true) float f = dht.readTemperature(true);

Finally, you send the response to the client with the HTML text to build the page as well as the temperature and humidity:


client.println("

"); client.println("

"); client.println("

ESP8266 - Temperature and Humidity

Temperature in Celsius: "); client.println(celsiusTemp); client.println("*C

Temperature in Fahrenheit: "); client.println(fahrenheitTemp); client.println("*F

Humidity: "); client.println(humidityTemp); client.println("%

"); client.println("



");

The temperature and humidity are sent to the client in these variables: celsiusTemp, fahrenheitTemp and humidityTemp.

Hướng dẫn hoàn chỉnh cho cảm biến độ ẩm và nhiệt độ DHT11 / DHT22 với Arduino

Bài viết này là hướng dẫn cho các cảm biến nhiệt độ và độ ẩm DHT11 và DHT22 phổ biến với Arduino. Chúng tôi sẽ giải thích cách nó hoạt động, hiển thị một số tính năng của nó và chia sẻ một ví dụ về dự án Arduino mà bạn có thể sửa đổi để sử dụng trong các dự án của riêng mình.

Giới thiệu cảm biến DHT11 và DHT22 Cảm biến

DHT11 và DHT22 được sử dụng để đo nhiệt độ và độ ẩm tương đối. Những cảm biến này rất phổ biến trong giới sản xuất và những người yêu thích đồ điện tử.

Các cảm biến này chứa một con chip thực hiện chuyển đổi tương tự sang kỹ thuật số và phát ra tín hiệu kỹ thuật số với nhiệt độ và độ ẩm. Điều này làm cho chúng rất dễ sử dụng với bất kỳ bộ vi điều khiển nào.

DHT11 vs DHT22

DHT11 và DHT22 rất giống nhau, nhưng khác nhau về thông số kỹ thuật. Bảng sau đây so sánh một số thông số kỹ thuật quan trọng nhất của cảm biến nhiệt độ và độ ẩm DHT11 và DHT22. Để có phân tích sâu hơn về các cảm biến này, vui lòng kiểm tra biểu dữ liệu của các cảm biến.

DHT11

DHT22

Phạm vi nhiệt độ

0 đến 50 ºC+/- 2 ºC

-40 đến 80 ºC+/- 0,5ºC

Phạm vi độ ẩm

20 đến 90%+/- 5%

0 đến 100%+/- 2%

Độ phân giải

Độ ẩm: 1%

Độ ẩm: 0,1%

Điện áp hoạt động

3 - 5,5 V DC

3 - 6 V DC Nguồn

cung cấp dòng điện

0,5 - 2,5 mA

1 - 1,5 mA

Thời gian lấy mẫu

1 giây

2 giây

Giá

Nơi mua

Cảm biến DHT22 có độ phân giải tốt hơn và phạm vi đo nhiệt độ và độ ẩm rộng hơn. Tuy nhiên, nó đắt hơn một chút và bạn chỉ có thể lấy mẫu với khoảng thời gian 2 giây.

DHT11 có phạm vi nhỏ hơn và nó kém chính xác hơn. Tuy nhiên, bạn có thể lấy mẫu cảm biến mỗi giây. Nó cũng rẻ hơn một chút!

Bất chấp sự khác biệt của chúng, chúng hoạt động theo cách tương tự và bạn có thể sử dụng cùng một mã để đọc nhiệt độ và độ ẩm. Bạn chỉ cần chọn trong mã loại cảm biến bạn đang sử dụng.

Sơ đồ chân của cảm biến

Cảm biến DHT có bốn chân như trong hình sau. Tuy nhiên, nếu bạn có cảm biến DHT nó chỉ có ba chân và với một điện trở kéo lên bên trong trên chân 2.

Bảng sau đây cho thấy sơ đồ chân DHT22 và DHT11. Khi cảm biến hướng về phía bạn, việc đánh số chân bắt đầu từ 1 từ trái sang phải

Chân DHT

Kết nối với

5V

Kết nối một điện trở kéo lên 10k Ohm

Không kết nối

GND

Trong phần này, chúng tôi sẽ xây dựng một dự án đơn giản với Arduino đọc nhiệt độ và độ ẩm và hiển thị kết quả trên Màn hình nối tiếp.

Các bộ phận cần thiết

Để hoàn thành hướng dẫn này, bạn cần có các thành phần sau:

  • Arduino UNO R3

  • DHT11 cảm biến nhiệt độ và độ ẩm

  • Breadboard

  • 4.7k Ohm điện trở

  • Dây

Sơ đồ đấu dây

Thực hiện theo sơ đồ tiếp theo để nối cảm biến nhiệt độ và độ ẩm DHT11 (hoặc DHT22) với Arduino.

Đây là các kết nối (từ trái sang phải):

Pin DHT Pin

Arduino

5V

Pin 2

D2 hoặc bất kỳ chân kỹ thuật số nào khác

Pin 3

không kết nối

Pin 4

GND

Lưu ý:nếu bạn đang sử dụng mô-đun có cảm biến DHT thì bình thường chỉ đi kèm với ba chân. Các ghim phải được dán nhãn để bạn biết cách đấu dây chúng. Ngoài ra, nhiều mô-đun này đã đi kèm với một điện trở kéo lên bên trong, vì vậy bạn không cần phải thêm một điện trở vào mạch.

Cài đặt Thư viện

Để đọc từ cảm biến DHT, chúng tôi sẽ sử dụng thư viện DHT từ Adafruit. Để sử dụng thư viện này, bạn cũng cần cài đặt thư viện Adafruit Unified Sensor. Làm theo các bước tiếp theo để cài đặt các thư viện đó.

Tìm kiếm “DHT” trên hộp Tìm kiếm và cài đặt thư viện DHT từ Adafruit.

Sau khi cài đặt thư viện DHT từ Adafruit, hãy nhập “Adafruit Unified Sensor” vào hộp tìm kiếm. Cuộn xuống hết cỡ để tìm thư viện và cài đặt nó.

Code Chương Trình:

Chương Trình hoạt động như thế nào?

Bạn bắt đầu bằng cách đưa vào thư viện DHT:

Sau đó, bạn xác định chân cắm mà cảm biến DHT được kết nối. Trong trường hợp này, nó được kết nối với chân số 2.

Sau đó, bạn cần xác định loại cảm biến DHT mà bạn đang sử dụng. Trong ví dụ của chúng tôi, chúng tôi đang sử dụng DHT11.

Nếu bạn đang sử dụng một cảm biến DHT khác, bạn cần nhận xét dòng trước đó và bỏ ghi chú một trong những điều sau:

Sau đó, khởi tạo đối tượng DHT được gọi là dht với mã pin và kiểu bạn đã xác định trước đó:

Trong setup (), khởi chạy Serial Monitor ở tốc độ truyền 9600 cho mục đích gỡ lỗi.

Khởi tạo cảm biến DHT bằng phương thức .begin ().

Trong vòng lặp loop() ở phần đầu, có độ trễ là 2 giây. Độ trễ này là cần thiết để cung cấp đủ thời gian cho cảm biến để đọc các kết quả. Tốc độ lấy mẫu tối đa là hai giây đối với DHT22 và một giây đối với DHT11.

Đọc nhiệt độ và độ ẩm rất đơn giản. Để lấy độ ẩm, bạn chỉ cần sử dụng phương thức readHumidity () trên đối tượng dht. Trong trường hợp này, chúng tôi đang lưu độ ẩm trong biến h. Lưu ý rằng phương thức readHumidity () trả về một giá trị kiểu float.

Tương tự, để đọc nhiệt độ, hãy sử dụng phương thức

readTemperature().

Để có nhiệt độ theo độ F, chỉ cần chuyển true cho phương thức

readTemperature

() như sau:

Thư viện này cũng đi kèm với các phương pháp tính toán chỉ số nhiệt theo độ F và độ C:

Cuối cùng, tất cả các bài đọc được hiển thị trên Serial Monitor.

Khắc phục sự cố - Không đọc được từ cảm biến DHT

Nếu bạn đang cố đọc nhiệt độ và độ ẩm từ cảm biến DHT11 / DHT22 và bạn nhận được thông báo lỗi trong Màn hình serial, hãy làm theo các bước tiếp theo để xem liệu bạn có thể làm cho cảm biến của mình hoạt động hay không.

“Không đọc được từ cảm biến DHT!” hoặc NAN

Nếu cảm biến DHT của bạn trả về thông báo lỗi “Không đọc được từ cảm biến DHT!” hoặc các bài đọc DHT trả về “Nan”:

Hãy thử một trong các mẹo khắc phục sự cố sau:

  • Dây cắm: bạn cần kiểm tra kỹ việc cắm dây hoặc ghim. Sau khi kiểm tra và kiểm tra xem mạch của bạn đã được kết nối đúng cách chưa, nếu nó vẫn không hoạt động, hãy tiếp tục đọc các mẹo khắc phục sự cố tiếp theo.

  • Nguồn: Cảm biến DHT có phạm vi hoạt động từ 3V đến 5.5V (DHT11) hoặc 3V đến 6V (DHT22). Nếu bạn cấp nguồn cho cảm biến từ chân 3.3V, trong một số trường hợp, cấp nguồn cho DHT với 5V sẽ giải quyết được vấn đề.

  • Cổng USB hoặc cáp USB kém: đôi khi cấp nguồn trực tiếp cho Arduino từ cổng USB của PC là không đủ. Cố gắng cắm nó vào một bộ chia USB được cấp nguồn bằng nguồn điện bên ngoài. Nó cũng có thể giúp thay thế cáp USB bằng cáp tốt hơn hoặc ngắn hơn. Có cổng USB cung cấp đủ năng lượng hoặc sử dụng cáp USB tốt thường khắc phục được sự cố này.

  • Nguồn điện: như đã đề cập trong mẹo trước, Arduino của bạn có thể không cung cấp đủ nguồn để đọc đúng cách từ cảm biến DHT. Trong một số trường hợp, bạn có thể cần cấp nguồn cho Arduino bằng nguồn điện cung cấp nhiều dòng điện hơn.

  • Loại cảm biến: kiểm tra kỹ để đảm bảo rằng bạn đã bỏ ghi chú / nhận xét trong mã của mình là cảm biến phù hợp cho dự án của bạn.

  • Tỷ lệ lấy mẫu: Cảm biến DHT nhận kết quả rất chậm (quá trình đọc cảm biến có thể mất đến 2 giây). Trong một số trường hợp, việc tăng thời gian giữa các lần đọc sẽ giải quyết được vấn đề.

  • Cảm biến DHT bị cháy hoặc bị hỏng: thật không may, những cảm biến này đôi khi trông hoàn toàn ổn, nhưng chúng đã bị cháy / hỏng. Vì vậy, mặc dù bạn đã lắp ráp đúng mạch và code, nó vẫn sẽ không đạt được kết quả đọc. Hãy thử sử dụng một cảm biến khác để xem liệu nó có khắc phục được sự cố của bạn hay không.

  • Tốc độ truyền sai hoặc không thể tải mã lên: nếu bạn không thấy bất kỳ thứ gì trong Arduino IDE Serial Monitor của mình, hãy kiểm tra kỹ xem bạn đã chọn đúng tốc độ truyền, cổng COM hoặc bạn đã tải mã lên thành công chưa.

Trong khi xây dựng các dự án của mình, chúng tôi đã gặp phải các vấn đề tương tự với DHT và nó luôn được giải quyết bằng cách làm theo một trong các phương pháp được mô tả trước đó.

Kết Luận

Các cảm biến DHT11 và DHT22 cung cấp một cách dễ dàng và không tốn kém để đo nhiệt độ và độ ẩm với Arduino.

Việc đấu dây rất đơn giản - bạn chỉ cần kết nối chân dữ liệu DHT với chân kỹ thuật số Arduino. Việc viết mã để lấy nhiệt độ và độ ẩm cũng đơn giản nhờ DHT thư viện.

In this project you’ll create a standalone web server with an ESP8266 that displays the temperature and humidity with a DHT11 or DHT22 sensor using the Arduino IDE. The web server you’ll build can be accessed with any device that has a browser on your local network.

Throughout this tutorial we’ll show how to build two different web servers:

  • Web Server #1: Asynchronous web server that updates the temperature and humidity automatically without the need to refresh the web page and with custom CSS to style the web page.
  • Web Server #2: Simple HTTP web server that displays the latest sensor readings when the page is updated in a raw HTML page.

Recommended resources:

  • How to Install the ESP8266 Board in Arduino IDE
  • ESP8266 Web Server
  • ESP8266 Boards Comparison
  • DHT11/DHT22 Humidity and Temperature Sensor with Arduino
  • ESP8266 Pinout: Ultimate GPIOs Guide

Learn more about the ESP8266 with our course: Home Automation using ESP8266.

[Arduino basic #18] Cảm biến độ ẩm, nhiệt độ DHT11
[Arduino basic #18] Cảm biến độ ẩm, nhiệt độ DHT11

Keywords searched by users: dht11 esp8266 arduino uno

Monitor Temp/Humidity And Control Led From Anywhere!! - Hackster.Io
Monitor Temp/Humidity And Control Led From Anywhere!! - Hackster.Io
How To Send Humidity And Temperature Value To Thinkspeak Using Esp8266 Dht11  Sensor Module Arduino - Youtube
How To Send Humidity And Temperature Value To Thinkspeak Using Esp8266 Dht11 Sensor Module Arduino - Youtube
Đọc Nhiệt Độ, Độ Ẩm (Dht11) Sử Dụng Arduino Uno | Arduino Kit
Đọc Nhiệt Độ, Độ Ẩm (Dht11) Sử Dụng Arduino Uno | Arduino Kit
Diyables Dht11 Temperature And Humidity Sensor Module For Arduino, Esp32,  Esp8266, Raspberry Pi, 2 Pieces : Amazon.In: Industrial & Scientific
Diyables Dht11 Temperature And Humidity Sensor Module For Arduino, Esp32, Esp8266, Raspberry Pi, 2 Pieces : Amazon.In: Industrial & Scientific
Giao Tiếp Mô-Đun Wi-Fi Esp8266 Với Arduino: Gửi Dữ Liệu Đến Server  (Thingspeak) | Mecsu.Vn
Giao Tiếp Mô-Đun Wi-Fi Esp8266 Với Arduino: Gửi Dữ Liệu Đến Server (Thingspeak) | Mecsu.Vn
Arduino Esp8266 And Dht11 Wifi Temperature Sensor Controller - Youtube
Arduino Esp8266 And Dht11 Wifi Temperature Sensor Controller - Youtube
Esp8266 Dht11/Dht22 Web Server Arduino Ide | Random Nerd Tutorials
Esp8266 Dht11/Dht22 Web Server Arduino Ide | Random Nerd Tutorials
Esp8266 Nodemcu Lua D1 Mini Dht11 Shield - Nshop
Esp8266 Nodemcu Lua D1 Mini Dht11 Shield - Nshop
Esp8266 Dht11/Dht22 Web Server Arduino Ide | Random Nerd Tutorials
Esp8266 Dht11/Dht22 Web Server Arduino Ide | Random Nerd Tutorials
Weather Station Esp8266 Nodemcu Dht11 & Oled Display | Temperature &  Humidity Arduino Code 🔥🔥 - Youtube
Weather Station Esp8266 Nodemcu Dht11 & Oled Display | Temperature & Humidity Arduino Code 🔥🔥 - Youtube
Dht11 Temperature And Humidity With Lcd Display | Elec-Cafe.Com
Dht11 Temperature And Humidity With Lcd Display | Elec-Cafe.Com
Arduino Dht11 Sensor Interfacing With Arduino Uno | Arduino
Arduino Dht11 Sensor Interfacing With Arduino Uno | Arduino

See more here: kientrucannam.vn

Leave a Reply

Your email address will not be published. Required fields are marked *