经过几天的折腾,实在不容易。这几天我们地区在举办创客人工智能大赛,两周多时间给学生训练,比赛结果比较满意。今天能接着折腾ESP32 C6了,发现一个问题硬件必须外接电源。本身是太阳能充电、低功耗、支持液晶的,非要靠电脑USB提供的电压确实不妥。打算等省级比赛彻底结束了,在回过头来好好研究ESP32 C6。
时间紧物联网来不及写了,昨天写了WIFI点灯的实验。按照这个思路,继续写DHT11测温湿度的案例。DHT11要下载库文件,最下方我提供库文件。
一、库文件的安装方法如下:
1.点击Arduino IDE项目菜单,选择导入库,点击添加.ZIP库...,找到下载好的文件导入。

2.添加库文件后,点击项目、导入库,在出现的菜单最下方出现DHT11表明添加成功。

二、编写代码
代码
#include <WiFi.h>
#include <WiFiClient.h>
#include <WiFiAP.h>
#include <dht11.h>
dht11 DHT;
#define DHT11_PIN 4
const char *ssid = "xin";//WIFI名称
const char *password = "12345678";//密码
WiFiServer server(80);//网页服务端口默认为80
// 显示上次传感器状态反馈状态
void setup() {
Serial.begin(115200);
Serial.println();
Serial.println("Configuring access point...");
//如果想要无密码开放网络请删除password
WiFi.softAP(ssid, password);
IPAddress myIP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(myIP);
server.begin();
Serial.println("Server started");
}
void loop() {
WiFiClient client = server.available(); // 检测等待连接
if (client) { // 检测是否连接
Serial.println("New Client.");
String currentLine = ""; // 创建String变量来保存数据
while (client.connected()) { // 保持连接时一直循环
if (client.available()) { // 检测连接是否有数据
char c = client.read(); // 读取接收的数据
//Serial.write(c); // 打印在串行监视器
if (c == '\n') { // 如果读取的是换行符
//结尾用换行符提醒结束
if (currentLine.length() == 0) {
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println();
//将字符与here连接
client.print("Click <a href=\"/ON\">here</a> to turn ON the LED.<br>");
client.print("Click <a href=\"/OFF\">here</a> to turn OFF the LED.<br>");
// HTTP响应为空行
client.println();
// 跳出循环
break;
} else { // 如果有一个换行符就清除变量缓存的数据
currentLine = "";
}
} else if (c != '\r') { // 如果获得回车以外的字符
currentLine += c; // 获得的字符添加到变量末尾
}
// 检查是否获得/ON或者/OFF
if (currentLine.endsWith("/ON")) {
client.print("temp (C): "); client.println(DHT.temperature,1);
client.print("humi (%RH): "); client.println(DHT.humidity,1);
}
}
}
}
// 关闭连接
client.stop();
Serial.println("Client Disconnected.");
}
三、运行效果


温湿度值为零的原因是还没有接上DHT11,接上后我试了程序能够上传成功,但是搜不到WIFI(程序和接线是没有问题的)。原因很明显,我手头没有电源,没有天阳能板。ESP32 C6给DHT11供电不足,ESP32 C6引脚提供的是3.3V电压,接传感器自身低功耗当然带不住。等省赛结束,买天阳能板和液晶好好玩玩这个主板。
评论