本帖最后由 bing` 于 2021-4-10 22:43 编辑
ESP8266-01S + DHT11 通过WiFi名称显示传感器信息
关键词:arduino 8266 dht11 温湿度 传感器数据 WiFi名称 数据展示
将esp-01s从DHT11获取的温湿度数据,通过esp-01s模块自带的ap(无线热点)功能展示出来,达到温湿度数据广播功能,给传感器数据展示提供了一条新的途径。
代码如下:
- #include "DHT.h"
- #include <ESP8266WiFi.h>
- #define DHTPIN 2 //定义DHT11模块连接管脚
- #define DHTTYPE DHT11 //使用 DHT 11模块
- //#define DHTTYPE DHT22 //使用DHT 22 (AM2302), AM2321模块
- //#define DHTTYPE DHT21 //使用 DHT 21 (AM2301)模块
- String stringOne, stringTwo, stringThree, stringfour, stringfive, string0, string1;
- int i = 0;
- DHT dht(DHTPIN, DHTTYPE); //定义dht
- void setup() { //主程序
- Serial.begin(9600); //设置串口
- Serial.println(F("DHT开始测试!")); //串口打印DHT开始测试!
- dht.begin(); //DHT开始工作
- //字符串用于后面拼接
- stringOne = String("温度:");
- stringTwo = String("℃");
- stringfour = String(" 湿度:");
- stringfive = String("%");
- stringThree = String();
- string0 = String("CS35Plus 欢迎你"); //打算车上放,所以
- string1 = String("传感器出错");}
- void loop() {
- delay(2000); //等待2秒,读取温度或湿度大约需要250毫秒!避免发生错误
- float h = dht.readHumidity(); //将湿度度赋予h
- float t = dht.readTemperature(); //读取摄氏度赋予t
- if (isnan(h) || isnan(t)) { //读取失败显示
- Serial.println(F("读取失败,找不到传感器!"));
- WiFi.softAP(string1);
- return;
- }
- float hic = dht.computeHeatIndex(t, h, false); //用摄氏度计算酷热指数,摄氏度设参数为false
- Serial.print(F("湿度: ")); //串口打印
- Serial.print(h); //串口打印湿度值
- Serial.print(F("%,温度: ")); //串口打印
- Serial.print(t); //串口打印温度值
- Serial.print(F("°C ")); //串口打印
- Serial.print(F(", 体感温度: ")); //串口打印
- Serial.print(hic); //串口打印体感温度
- Serial.println(F("°C ")); //串口打印
- stringThree = stringOne + t + stringTwo + stringfour + h + stringfive;
- if (i < 10){i=i+1;}else{i=i-10;}; //引入i,在串口调试的时候每次发送不同数字,便于区别
- Serial.println("测试段落开始 ");
- Serial.println(stringThree);
- Serial.println(i);
- Serial.println("测试段落结束 ");
- WiFi.softAP(stringThree);
- delay(30000); //等待2秒,WiFi名称稳定些
- WiFi.softAP(string0); //开启后,添加CS35Plus欢迎你,打算车上放,所以
- delay(20000);
- }
复制代码
打算车上放,所以
实物连接图如下:
权当引玉之砖,不妥之处欢迎论坛大佬指正。
|