回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

ESP32 C6试用记2 简单

头像 风隐 2024.04.22 27 0

        经过几天的折腾,实在不容易。这几天我们地区在举办创客人工智能大赛,两周多时间给学生训练,比赛结果比较满意。今天能接着折腾ESP32 C6了,发现一个问题硬件必须外接电源。本身是太阳能充电、低功耗、支持液晶的,非要靠电脑USB提供的电压确实不妥。打算等省级比赛彻底结束了,在回过头来好好研究ESP32 C6。

时间紧物联网来不及写了,昨天写了WIFI点灯的实验。按照这个思路,继续写DHT11测温湿度的案例。DHT11要下载库文件,最下方我提供库文件。

一、库文件的安装方法如下:

1.点击Arduino IDE项目菜单,选择导入库,点击添加.ZIP库...,找到下载好的文件导入。

image.png

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

image.png

二、编写代码

代码
#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.");
}

三、运行效果

image.png
bef80779376781e92d4d471f8a37744.jpg

 

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

评论

user-avatar