Esp32 C6 Wifi小夜灯

2024-03-244127
精华项目
AI 快速预览详细 收起
本项目介绍了如何使用ESP32 C6和普通LED灯制作智能小夜灯。通过4、7引脚控制微动开关,无需电磁继电器。提供了详细的焊接和编程步骤,适合零基础新手。最终效果是可以通过WiFi控制小夜灯的开关,适用于STEM教育场景。


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


2.焊接
Esp32 C6 Wifi小夜灯图9

Esp32 C6 Wifi小夜灯图10

Esp32 C6 Wifi小夜灯图11

Esp32 C6 Wifi小夜灯图12

3.组装

Esp32 C6 Wifi小夜灯图13




【编写程序】
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. /*
  2. 步骤:
  3. 1.连接到WIFI”FireBeetle ESP32“,已设置WIFI密码:12345678
  4. 2.访问网址 http://192.168.4.1/ON 来打开灯 访问 http://192.168.4.1/OFF 来关闭灯
  5. 3.在访问后通过点击上下 here 来便捷控制灯的亮灭
  6. */
  7. #include <WiFi.h>
  8. #include <WiFiClient.h>
  9. #include <WiFiAP.h>
  10. #define myLED 4 //设置引脚15为LED引脚
  11. // 设置WIFI名称以及密码
  12. const char *ssid = "yuntian";//WIFI名称
  13. const char *password = "12345678";//密码
  14. WiFiServer server(80);//网页服务端口默认为80
  15. void setup() {
  16.   pinMode(4, OUTPUT);
  17.   pinMode(7, OUTPUT);
  18.    digitalWrite(7, HIGH);
  19.   Serial.begin(115200);
  20.   Serial.println();
  21.   Serial.println("Configuring access point...");
  22.   //如果想要无密码开放网络请删除password
  23.   WiFi.softAP(ssid, password);
  24.   IPAddress myIP = WiFi.softAPIP();
  25.   Serial.print("AP IP address: ");
  26.   Serial.println(myIP);
  27.   server.begin();
  28.   Serial.println("Server started");
  29. }
  30. void loop() {
  31.   WiFiClient client = server.available();   // 检测等待连接
  32.   if (client) {                             // 检测是否连接
  33.     Serial.println("New Client.");
  34.     String currentLine = "";                // 创建String变量来保存数据
  35.     while (client.connected()) {            // 保持连接时一直循环
  36.       if (client.available()) {             // 检测连接是否有数据
  37.         char c = client.read();             // 读取接收的数据
  38.         //Serial.write(c);                    // 打印在串行监视器
  39.         if (c == '\n') {                    // 如果读取的是换行符
  40.           //结尾用换行符提醒结束
  41.           if (currentLine.length() == 0) {
  42.             client.println("HTTP/1.1 200 OK");
  43.             client.println("Content-type:text/html");
  44.             client.println();
  45.              //将字符与here连接
  46.             client.print("Click <a href="/on">here</a> to turn ON the LED.<br>");
  47.             client.print("Click <a href="/off">here</a> to turn OFF the LED.<br>");
  48.             // HTTP响应为空行
  49.             client.println();
  50.             // 跳出循环
  51.             break;
  52.           } else {    // 如果有一个换行符就清除变量缓存的数据
  53.             currentLine = "";
  54.           }
  55.         } else if (c != '\r') {  // 如果获得回车以外的字符
  56.           currentLine += c;      // 获得的字符添加到变量末尾
  57.         }
  58.         // 检查是否获得/ON或者/OFF
  59.         if (currentLine.endsWith("/on")) {
  60.          
  61.           digitalWrite(7, LOW);
  62.           delay(200);
  63.           digitalWrite(7, HIGH);
  64.    
  65.         }
  66.         if (currentLine.endsWith("/off")) {
  67.           digitalWrite(7, HIGH);
  68.           delay(200);              
  69.         }
  70.       }
  71.     }
  72.     // 关闭连接
  73.     client.stop();
  74.     Serial.println("Client Disconnected.");
  75.   }
  76. }
复制代码
2.手机APP程序使用Appinventor2 汉化版
界面设计
Esp32 C6 Wifi小夜灯图1

程序设计
Esp32 C6 Wifi小夜灯图2

Esp32 C6 Wifi小夜灯图3

【制作过程测试】

Esp32 C6 Wifi小夜灯图4

Esp32 C6 Wifi小夜灯图5

Esp32 C6 Wifi小夜灯图6


Esp32 C6 Wifi小夜灯图7

【演示视频】


创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(2)
CVJjy97I8Zlr
CVJjy97I8Zlr
刚收到免费试用的货,照着试了一下,效果杠杠的,感谢楼主分享
有明堂
有明堂
太666了!!! 直接出产品了我的还再更新库中
用第二个地址,早上更新,终于找到了C6
- 没有更多了 -