esp32-c3WiFi时钟:1_初始化

前言:

放暑假了,终于有时间搞搞小作品了,正好前几天我的闹钟坏了,手上又有一块吃灰的esp32c3mini,搞个时钟吧!

不怎么温馨的小提示:arduino ide

思路:

这篇先讲初始化

先进行常规初始化(串口,IO)

再是EEPROM(存储WiFi信息)

然后是WiFi AP与STA(为什么要用AP模式,因为要用网页联网,我自己写的逻辑)

接着是OTA,方便后续烧录

最后是网络server服务器,前面说了,网页联网

实现:

常规:

自己看吧,有手就行

所需库:无

void begin()
{
  Serial.begin(115200);
  pinMode(led,OUTPUT);
  pinMode(led,HIGH);
}

EEPROM:

借鉴示例程序:eeprom_write

所需库:EEPROM.h

void eeprombegin()
{
  addr=1;
  waddr=1;
  if (!EEPROM.begin(ESIZE))
  {
    Serial.println("eeprom初始化失败!");
    Serial.println("正在重启...");
    delay(1000);
    ESP.restart();
  }
}

里面有一个addr和waddr,int类型,后面有用,先卖个关子

OTA:

为什么先跳过了WiFi,这可是一个大boss,折磨了我好几天

所需库:ArduinoOTA.h(需要自己下载)

示例:BasicOTA

void otabegin()
{
  ArduinoOTA.setPort(3232); //开发板类型(esp8266填8266)
  ArduinoOTA.setHostname("ESP32-C3"); //这是你的开发板的名称(随便填)
  ArduinoOTA.setPassword("1234"); //上传密码
  ArduinoOTA.begin();
}

服务器:

这里我自己写了个网页,使用URL参数传递WiFi的名称,使用一个函数进行判断,这个函数以后再写

void Serverbegin()
{
  server.on("/",handleRoot);
  server.on("/WiFi",setWiFi);
  server.onNotFound([](){server.send(200,"text/html;charset=utf-8","<h1 />404:Not fount<br /><h1 />404:没有找到页面!");});
  server.begin();
}

handleRoot函数:

void handleRoot()
{
  String HTML="<!DOCTPYE html>\
  <html>\
  <head><meta charset='utf-8'></head>\
  <body>\
  <h2 />你好,我的朋友!\
  <br /><!--换行符,注释-->\
  <h1 />欢迎使用 ESP32-C3 WiFi时钟\
  <br />\
  <h2 />网络配置:192.168.4.1/WiFi?ssid=你的WiFi名称&password=你的WiFi密码\
  </body>\
  </html>";
  server.send(200,"text/html",HTML);
}

setWiFi函数:

void setWiFi()
{
  String ssid=server.arg("ssid");
  String password=server.arg("password");
  if(WiFibegin(ssid,password,true))
  server.send(200,"text/html;charset=utf-8","<h1 />WiFi连接成功!");
  else
  server.send(200,"text/html;charset=utf-8","<h1 />WiFi连接失败!");
}

WiFi:

void WiFibegin()
{
    WiFi.mode(WIFI_AP_STA);
    WiFi.softAP(myssid,mypassword);
    WiFi.softAPConfig(apIP,apIP,IPAddress(255,255,255,0));
    Serial.println();
    Serial.println(WiFi.softAPIP());
}

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值