首页
NodeMcu
NodeMcu_ESP8266开发板--TCP Server
NodeMcu_ESP8266简介
NodeMcu_温湿度传感器(DHT11)的使用
esp8266+DHT11温湿传感器 制作web室内温度计
ESP8266NodeMcu网页控制四个LED灯
NodeMcu用网页上传图片来驱动1.44寸TFT屏幕
esp8266使用1.44寸tft屏Arduino模块示例程序
1.44寸TFT屏ST7735使用方法
NodeMcu_ESP8266编程
NodeMcu环境监控+远程控制
NodeMcu实现网页远程控制+温湿度显示
NodeMcu网页控制+温湿度显示+TFT
NodeMcu、ESP8266、ESP32区别
本文档由 内网文摘 发布,转载请注明出处
-
+
首页
esp8266+DHT11温湿传感器 制作web室内温度计
转发: [esp8266+DHT11温湿传感器 制作web室内温度计](https://cloud.tencent.com/developer/article/1688149 "esp8266+DHT11温湿传感器 制作web室内温度计") ## 设备清单 (esp8266)NodeMCU开发板一块 DHT11温湿度传感器一个 DHT11模块 ![C:\Users\cj\AppData\Local\Temp\企业微信截图_16352436941165.png](/media/202110//1635243971.7594225.png) NodeMcu板子 ![C:\Users\cj\AppData\Local\Temp\企业微信截图_16352437132161.png](/media/202110//1635243971.7627382.png) DHT11是通过测量两个电极之间的电阻来检测水蒸汽的。湿度检测部件表面有电极的保湿基板。 当水蒸气被基板吸收时,离子被基板释放,这个过程将会增加电极之间的导电性。 两个电极之间的电阻变化与相对湿度成比例。 较高的相对湿度会降低电极之间的电阻,而较低的相对湿度会增加电极之间的电阻。 ## NodeMCU连接DHT11 ![C:\Users\cj\AppData\Local\Temp\企业微信截图_16352437328546.png](/media/202110//1635243971.7664316.png) 将DHT11连接到NodeMCU是比较简单的,但连接方式有所不同,具体取决于您使用的是3个引脚的传感器还是4个引脚的传感器。 连接方式如下 DHT11上标有(+或VCC)引脚的连接nodemcu的+ 3V引脚。 DHT11上标有(S或OUT)引脚的连接nodemcu的D4V引脚。 DHT11上标有(-或GND)引脚的连接nodemcu的GND引脚。 **我们首先要安装两个库DHT和Adafruit Unified Sensor** 打开Arduino点击 项目>加载库>管理库 ![C:\Users\cj\AppData\Local\Temp\企业微信截图_16352437745163.png](/media/202110//1635243971.771262.png) ![C:\Users\cj\AppData\Local\Temp\企业微信截图_16352437862625.png](/media/202110//1635243971.7738297.png) ## 安装NodeMcu1.0开发板 打开Arduino点击 文件>首选向 在附加开发板管理网址填这个 [https://arduino.esp8266.com/stable/package\_esp8266com\_index.json](https://arduino.esp8266.com/stable/package_esp8266com_index.json) ![C:\Users\cj\AppData\Local\Temp\企业微信截图_16352438045885.png](/media/202110//1635243971.7770905.png) 然后点击 工具>开发板>开发板管理器 搜索esp8266然后安装 ![C:\Users\cj\AppData\Local\Temp\企业微信截图_16352438199059.png](/media/202110//1635243971.779834.png) ## 上传代码 首先选择NodeMcu1.0 工具>开发板>NodeMcu1.0(ESP-12E Module) 然后 代码如下: ```cpp #include <ESP8266WiFi.h> #include <ESP8266WebServer.h> #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 /*Put your SSID & Password*/ const char* ssid = "end"; // Enter SSID here const char* password = "12345678"; //Enter Password here ESP8266WebServer server(80); // DHT Sensor uint8_t DHTPin = D4; // Initialize DHT sensor. DHT dht(DHTPin, DHTTYPE); float Temperature; float Humidity; void setup() { Serial.begin(115200); delay(100); pinMode(DHTPin, INPUT); dht.begin(); Serial.println("Connecting to "); Serial.println(ssid); //connect to your local wi-fi network WiFi.begin(ssid, password); //check wi-fi is connected to wi-fi network while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected..!"); Serial.print("Got IP: "); Serial.println(WiFi.localIP()); server.on("/", handle_OnConnect); server.onNotFound(handle_NotFound); server.begin(); Serial.println("HTTP server started"); } void loop() { server.handleClient(); } void handle_OnConnect() { Temperature = dht.readTemperature(); // Gets the values of the temperature Humidity = dht.readHumidity(); // Gets the values of the humidity server.send(200, "text/html", SendHTML(Temperature,Humidity)); } void handle_NotFound(){ server.send(404, "text/plain", "Not found"); } String SendHTML(float Temperaturestat,float Humiditystat){ String ptr = "<!DOCTYPE html> <html>\n"; ptr +="<head> <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\">\n"; ptr +="<link href=\"https://fonts.googleapis.com/css?family=Open+Sans:300,400,600\" rel=\"stylesheet\">\n"; ptr +="<meta charset=\"UTF-8\">\n"; ptr +="<title>智能温湿计</title>\n"; ptr +="<style>html { font-family: 'Open Sans', sans-serif; display: block; margin: 0px auto; text-align: center;color: #333333;}\n"; ptr +="body{margin-top: 50px;}\n"; ptr +="h1 {margin: 50px auto 30px;}\n"; ptr +=" .wd {margin: 50px auto 30px;width: auto;color: #f39c12}\n"; ptr +=" .wd1 {margin: 50px auto 30px;width: auto;color: #3498db}\n"; ptr +=".side-by-side{display: inline-block;vertical-align: middle;position: relative;}\n"; ptr +=".humidity-icon{background-color: #3498db;width: 30px;height: 30px;border-radius: 50%;line-height: 36px;}\n"; ptr +=".humidity-text{font-weight: 600;padding-left: 15px;font-size: 19px;width: 160px;text-align: left;}\n"; ptr +=".humidity{font-weight: 300;font-size: 60px;color: #3498db;}\n"; ptr +=".temperature-icon{background-color: #f39c12;width: 30px;height: 30px;border-radius: 50%;line-height: 40px;}\n"; ptr +=".temperature-text{font-weight: 600;padding-left: 15px;font-size: 19px;width: 160px;text-align: left;}\n"; ptr +=".temperature{font-weight: 300;font-size: 60px;color: #f39c12;}\n"; ptr +=".superscript{font-size: 17px;font-weight: 600;position: absolute;right: -20px;top: 15px;}\n"; ptr +=".data{padding: 10px;}\n"; ptr +="</style>\n"; ptr +="</head>\n"; ptr +="<body>\n"; ptr +="<div id=\"webpage\">\n"; ptr +="<h1>室内温室检测系统</h1>\n"; ptr +="<div class=\"data\">\n"; ptr +="<div class=\"side-by-side temperature-icon\">\n"; ptr +="<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n"; ptr +="width=\"9.915px\" height=\"22px\" viewBox=\"0 0 9.915 22\" enable-background=\"new 0 0 9.915 22\" xml:space=\"preserve\">\n"; ptr +="<path fill=\"#FFFFFF\" d=\"M3.498,0.53c0.377-0.331,0.877-0.501,1.374-0.527C5.697-0.04,6.522,0.421,6.924,1.142\n"; ptr +="c0.237,0.399,0.315,0.871,0.311,1.33C7.229,5.856,7.245,9.24,7.227,12.625c1.019,0.539,1.855,1.424,2.301,2.491\n"; ptr +="c0.491,1.163,0.518,2.514,0.062,3.693c-0.414,1.102-1.24,2.038-2.276,2.594c-1.056,0.583-2.331,0.743-3.501,0.463\n"; ptr +="c-1.417-0.323-2.659-1.314-3.3-2.617C0.014,18.26-0.115,17.104,0.1,16.022c0.296-1.443,1.274-2.717,2.58-3.394\n"; ptr +="c0.013-3.44,0-6.881,0.007-10.322C2.674,1.634,2.974,0.955,3.498,0.53z\"/>\n"; ptr +="</svg>\n"; ptr +="</div>\n"; ptr +="<div class=\"side-by-side temperature-text\">室内温度:</div>\n"; ptr +="<div class=\"side-by-side temperature\">"; ptr +=(int)Temperaturestat; ptr +="<span class=\"superscript\">°C</span></div>\n"; ptr +="</div>\n"; ptr +="<div class=\"data\">\n"; ptr +="<div class=\"side-by-side humidity-icon\">\n"; ptr +="<svg version=\"1.1\" id=\"Layer_2\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\"; width=\"12px\" height=\"17.955px\" viewBox=\"0 0 13 17.955\" enable-background=\"new 0 0 13 17.955\" xml:space=\"preserve\">\n"; ptr +="<path fill=\"#FFFFFF\" d=\"M1.819,6.217C3.139,4.064,6.5,0,6.5,0s3.363,4.064,4.681,6.217c1.793,2.926,2.133,5.05,1.571,7.057\n"; ptr +="c-0.438,1.574-2.264,4.681-6.252,4.681c-3.988,0-5.813-3.107-6.252-4.681C-0.313,11.267,0.026,9.143,1.819,6.217\"></path>\n"; ptr +="</svg>\n"; ptr +="</div>\n"; ptr +="<div class=\"side-by-side humidity-text\">室内湿度:</div>\n"; ptr +="<div class=\"side-by-side humidity\">"; ptr +=(int)Humiditystat; ptr +="<span class=\"superscript\">%</span></div>\n"; ptr +="</div>\n"; //定义温度变量,并且赋值,用于逻辑判断。 int wd = Temperaturestat ; if (wd>=30){ ptr +="<div class=\"wd\">今天天气热,注意防暑哦</div>\n"; } if (29>=wd&&wd>20){ ptr +="<div class=\"wd1\">今天天气不错吆,尽情的玩耍吧</div>\n"; } if (wd<10){ ptr +="<div class=\"side-by-side humidity-text\">今天天气比较冷,多穿点衣服,小心着凉</div>\n"; } ptr +="</div>\n"; ptr +="</body>\n"; ptr +="</html>\n"; return ptr; } ``` 打开 工具>串口监视器 设置为115200波特率 按一下espp8266上面的的RST就可查看获取的ip地址 使用浏览器http:// 协议访问这个ip即可显示 ![](/media/202110/2021-10-26_182840.png)
local
2021年10月26日 18:30
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 LocalNetwork
LocalNetwork
是由mrdoc开源
LocalNetwork.cn
修改的在线文档系统,作为个人和小型团队的云笔记、文档和知识库管理工具。
如果此文档给你或你的团队带来了帮助,欢迎支持作者持续投入精力更新和维护!内网文摘 & LocalNetwork
>>>主页
logo
logo
下载Markdown文件
分享
链接
类型
密码
更新密码