云天 发表于 2024-3-24 17:22:52

Esp32 C6 Wifi小夜灯

本帖最后由 云天 于 2024-3-24 17:30 编辑

【项目背景】
用新年某宝红包又又又免费薅了一个小夜灯,内部结构简单的普通LED灯。最近又申请试用ESP32 C6,想将两者结合,制作出一个智能小夜灯。
【项目亮点】
之前的LED灯改造,都用到了电磁继电器,这次小夜灯内空间较小,无法放入电磁继电器,手头也没有“MOSFET直流开关”(这个我一直想测试一下)。就试着用两个引脚高低电平来控制,小夜灯上的微动开关。
【项目设计】
使用ESP32 C6的4、7引脚连接微动开关,在连线上串一个222欧姆的电阻,用来限流。3.7V锂电池接ESP32 C6板BAT引脚(Beetle ESP32-C6集成锂电池充电管理功能)
【制作过程】
1.拆解小夜灯


2.焊接




3.组装





【编写程序】
1.ESP32 C6板程序
使用Arduino IDE,安装开发板,借鉴了网友的方法:开发板地址1:https://espressif.github.io/ardu ... sp32_dev_index.json,开发板地址2:https://djzrs.github.io/picx-ima ... sp32_dev_index.json,把这两个添加到开发板网址里面,然后在板子管理里面,安装esp32 3.0版本的库即可。
程序源代码:

/*
步骤:
1.连接到WIFI”FireBeetle ESP32“,已设置WIFI密码:12345678
2.访问网址 http://192.168.4.1/ON 来打开灯 访问 http://192.168.4.1/OFF 来关闭灯
3.在访问后通过点击上下 here 来便捷控制灯的亮灭
*/

#include <WiFi.h>
#include <WiFiClient.h>
#include <WiFiAP.h>

#define myLED 4 //设置引脚15为LED引脚
// 设置WIFI名称以及密码
const char *ssid = "yuntian";//WIFI名称
const char *password = "12345678";//密码

WiFiServer server(80);//网页服务端口默认为80


void setup() {
pinMode(4, OUTPUT);
pinMode(7, OUTPUT);
   digitalWrite(7, HIGH);
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")) {
         
          digitalWrite(7, LOW);
          delay(200);
          digitalWrite(7, HIGH);
   
      }
      if (currentLine.endsWith("/off")) {
          digitalWrite(7, HIGH);
          delay(200);            
      }
      }
    }
    // 关闭连接
    client.stop();
    Serial.println("Client Disconnected.");
}
}
2.手机APP程序使用Appinventor2 汉化版
界面设计

程序设计


【制作过程测试】






【演示视频】
https://www.bilibili.com/video/BV1qx4y1U7rv/?share_source=copy_web

有明堂 发表于 2024-3-24 17:31:36

本帖最后由 有明堂 于 2024-3-25 07:29 编辑

太666了!!! 直接出产品了{:6_209:}我的还再更新库中
用第二个地址,早上更新,终于找到了C6{:6_215:}

CVJjy97I8Zlr 发表于 2024-3-26 16:32:15

刚收到免费试用的货,照着试了一下,效果杠杠的,感谢楼主分享
页: [1]
查看完整版本: Esp32 C6 Wifi小夜灯