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());
}

[1072/1082] Building CXX object esp-idf/OLED/CMakeFiles/__idf_OLED.dir/OLED.C.obj FAILED: esp-idf/OLED/CMakeFiles/__idf_OLED.dir/OLED.C.obj C:\esp32\Espressif\tools\tools\xtensa-esp-elf\esp-14.2.0_20241119\xtensa-esp-elf\bin\xtensa-esp32s3-elf-g++.exe -DESP_PLATFORM -DIDF_VER=\"v5.5.1-dirty\" -DSOC_MMU_PAGE_SIZE=CONFIG_MMU_PAGE_SIZE -DSOC_XTAL_FREQ_MHZ=CONFIG_XTAL_FREQ -D_GLIBCXX_HAVE_POSIX_SEMAPHORE -D_GLIBCXX_USE_POSIX_SEMAPHORE -D_GNU_SOURCE -D_POSIX_READER_WRITER_LOCKS -ID:/ESP32/1/build/config -ID:/ESP32/1/components/OLED -IC:/esp32/v5.5.1/esp-idf/components/newlib/platform_include -IC:/esp32/v5.5.1/esp-idf/components/freertos/config/include -IC:/esp32/v5.5.1/esp-idf/components/freertos/config/include/freertos -IC:/esp32/v5.5.1/esp-idf/components/freertos/config/xtensa/include -IC:/esp32/v5.5.1/esp-idf/components/freertos/FreeRTOS-Kernel/include -IC:/esp32/v5.5.1/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/include -IC:/esp32/v5.5.1/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos -IC:/esp32/v5.5.1/esp-idf/components/freertos/esp_additions/include -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/include -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/include/soc -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/include/soc/esp32s3 -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/dma/include -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/ldo/include -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/debug_probe/include -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/mspi_timing_tuning/include -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/mspi_timing_tuning/tuning_scheme_impl/include -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/power_supply/include -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/port/esp32s3/. -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/port/esp32s3/include -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/mspi_timing_tuning/port/esp32s3/. -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/mspi_timing_tuning/port/esp32s3/include -IC:/esp32/v5.5.1/esp-idf/components/heap/include -IC:/esp32/v5.5.1/esp-idf/components/heap/tlsf -IC:/esp32/v5.5.1/esp-idf/components/log/include -IC:/esp32/v5.5.1/esp-idf/components/soc/include -IC:/esp32/v5.5.1/esp-idf/components/soc/esp32s3 -IC:/esp32/v5.5.1/esp-idf/components/soc/esp32s3/include -IC:/esp32/v5.5.1/esp-idf/components/soc/esp32s3/register -IC:/esp32/v5.5.1/esp-idf/components/hal/platform_port/include -IC:/esp32/v5.5.1/esp-idf/components/hal/esp32s3/include -IC:/esp32/v5.5.1/esp-idf/components/hal/include -IC:/esp32/v5.5.1/esp-idf/components/esp_rom/include -IC:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/include -IC:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/include/esp32s3 -IC:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3 -IC:/esp32/v5.5.1/esp-idf/components/esp_common/include -IC:/esp32/v5.5.1/esp-idf/components/esp_system/include -IC:/esp32/v5.5.1/esp-idf/components/esp_system/port/soc -IC:/esp32/v5.5.1/esp-idf/components/esp_system/port/include/private -IC:/esp32/v5.5.1/esp-idf/components/xtensa/esp32s3/include -IC:/esp32/v5.5.1/esp-idf/components/xtensa/include -IC:/esp32/v5.5.1/esp-idf/components/xtensa/deprecated_include -IC:/esp32/v5.5.1/esp-idf/components/lwip/include -IC:/esp32/v5.5.1/esp-idf/components/lwip/include/apps -IC:/esp32/v5.5.1/esp-idf/components/lwip/include/apps/sntp -IC:/esp32/v5.5.1/esp-idf/components/lwip/lwip/src/include -IC:/esp32/v5.5.1/esp-idf/components/lwip/port/include -IC:/esp32/v5.5.1/esp-idf/components/lwip/port/freertos/include -IC:/esp32/v5.5.1/esp-idf/components/lwip/port/esp32xx/include -IC:/esp32/v5.5.1/esp-idf/components/lwip/port/esp32xx/include/arch -IC:/esp32/v5.5.1/esp-idf/components/lwip/port/esp32xx/include/sys -IC:/esp32/v5.5.1/esp-idf/components/driver/deprecated -IC:/esp32/v5.5.1/esp-idf/components/driver/i2c/include -IC:/esp32/v5.5.1/esp-idf/components/driver/touch_sensor/include -IC:/esp32/v5.5.1/esp-idf/components/driver/twai/include -IC:/esp32/v5.5.1/esp-idf/components/driver/touch_sensor/esp32s3/include -IC:/esp32/v5.5.1/esp-idf/components/esp_pm/include -IC:/esp32/v5.5.1/esp-idf/components/esp_ringbuf/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_gpio/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_pcnt/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_gptimer/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_spi/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_mcpwm/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_ana_cmpr/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_i2s/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_sdmmc/include -IC:/esp32/v5.5.1/esp-idf/components/sdmmc/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_sdspi/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_sdio/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_dac/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_rmt/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_tsens/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_sdm/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_i2c/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_uart/include -IC:/esp32/v5.5.1/esp-idf/components/vfs/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_ledc/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_parlio/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_usb_serial_jtag/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_twai/include -mlongcalls -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -fdiagnostics-color=always -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=deprecated-declarations -Wextra -Wno-error=extra -Wno-unused-parameter -Wno-sign-compare -Wno-enum-conversion -gdwarf-4 -ggdb -O0 -fmacro-prefix-map=D:/ESP32/1=. -fmacro-prefix-map=C:/esp32/v5.5.1/esp-idf=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -std=gnu++2b -fno-exceptions -fno-rtti -fuse-cxa-atexit -MD -MT esp-idf/OLED/CMakeFiles/__idf_OLED.dir/OLED.C.obj -MF esp-idf\OLED\CMakeFiles\__idf_OLED.dir\OLED.C.obj.d -o esp-idf/OLED/CMakeFiles/__idf_OLED.dir/OLED.C.obj -c D:/ESP32/1/components/OLED/OLED.C D:/ESP32/1/components/OLED/OLED.C: In function &#39;void I2C_Init()&#39;: D:/ESP32/1/components/OLED/OLED.C:103:5: warning: missing initializer for member &#39;i2c_master_bus_config_t::sda_io_num&#39; [-Wmissing-field-initializers] 103 | }; | ^ D:/ESP32/1/components/OLED/OLED.C:103:5: warning: missing initializer for member &#39;i2c_master_bus_config_t::scl_io_num&#39; [-Wmissing-field-initializers] D:/ESP32/1/components/OLED/OLED.C:103:5: warning: missing initializer for member &#39;i2c_master_bus_config_t::glitch_ignore_cnt&#39; [-Wmissing-field-initializers] D:/ESP32/1/components/OLED/OLED.C:103:5: warning: missing initializer for member &#39;i2c_master_bus_config_t::intr_priority&#39; [-Wmissing-field-initializers] D:/ESP32/1/components/OLED/OLED.C:103:5: warning: missing initializer for member &#39;i2c_master_bus_config_t::trans_queue_depth&#39; [-Wmissing-field-initializers] D:/ESP32/1/components/OLED/OLED.C:103:5: warning: missing initializer for member &#39;i2c_master_bus_config_t::flags&#39; [-Wmissing-field-initializers] D:/ESP32/1/components/OLED/OLED.C:103:5: error: designator order for field &#39;i2c_master_bus_config_t::scl_io_num&#39; does not match declaration order in &#39;i2c_master_bus_config_t&#39; D:/ESP32/1/components/OLED/OLED.C:115:5: warning: missing initializer for member &#39;i2c_device_config_t::scl_wait_us&#39; [-Wmissing-field-initializers] 115 | }; | ^ [1073/1082] Performing configure step for &#39;bootloader&#39; -- Found Git: C:/esp32/Espressif/tools/tools/idf-git/2.39.2/cmd/git.exe (found version "2.39.2.windows.1") -- Minimal build - OFF -- The C compiler identification is GNU 14.2.0 -- The CXX compiler identification is GNU 14.2.0 -- The ASM compiler identification is GNU -- Found assembler: C:/esp32/Espressif/tools/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/xtensa-esp32s3-elf-gcc.exe -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: C:/esp32/Espressif/tools/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/xtensa-esp32s3-elf-gcc.exe - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: C:/esp32/Espressif/tools/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/xtensa-esp32s3-elf-g++.exe - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Building ESP-IDF components for target esp32s3 -- Project sdkconfig file D:/ESP32/1/sdkconfig -- Compiler supported targets: xtensa-esp-elf -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/soc/esp32s3/ld/esp32s3.peripherals.ld -- Bootloader project name: "bootloader" version: 1 -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.ld -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.api.ld -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.bt_funcs.ld -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.libgcc.ld -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.wdt.ld -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.version.ld -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.libc.ld -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.newlib.ld -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/bootloader/subproject/main/ld/esp32s3/bootloader.ld -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/bootloader/subproject/main/ld/esp32s3/bootloader.rom.ld -- Components: bootloader bootloader_support efuse esp_app_format esp_bootloader_format esp_common esp_hw_support esp_rom esp_security esp_system esptool_py freertos hal log main micro-ecc newlib partition_table soc spi_flash xtensa -- Component paths: C:/esp32/v5.5.1/esp-idf/components/bootloader C:/esp32/v5.5.1/esp-idf/components/bootloader_support C:/esp32/v5.5.1/esp-idf/components/efuse C:/esp32/v5.5.1/esp-idf/components/esp_app_format C:/esp32/v5.5.1/esp-idf/components/esp_bootloader_format C:/esp32/v5.5.1/esp-idf/components/esp_common C:/esp32/v5.5.1/esp-idf/components/esp_hw_support C:/esp32/v5.5.1/esp-idf/components/esp_rom C:/esp32/v5.5.1/esp-idf/components/esp_security C:/esp32/v5.5.1/esp-idf/components/esp_system C:/esp32/v5.5.1/esp-idf/components/esptool_py C:/esp32/v5.5.1/esp-idf/components/freertos C:/esp32/v5.5.1/esp-idf/components/hal C:/esp32/v5.5.1/esp-idf/components/log C:/esp32/v5.5.1/esp-idf/components/bootloader/subproject/main C:/esp32/v5.5.1/esp-idf/components/bootloader/subproject/components/micro-ecc C:/esp32/v5.5.1/esp-idf/components/newlib C:/esp32/v5.5.1/esp-idf/components/partition_table C:/esp32/v5.5.1/esp-idf/components/soc C:/esp32/v5.5.1/esp-idf/components/spi_flash C:/esp32/v5.5.1/esp-idf/components/xtensa -- Configuring done (19.3s) -- Generating done (0.3s) -- Build files have been written to: D:/ESP32/1/build/bootloader ninja: build stopped: subcommand failed.
最新发布
11-26
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值