2024年国庆期间,假期无聊写的程序
主界面
主程序
#include < Arduino.h > #include "Backend_service.h" #include "SMG_4.h" void setup() { Serial.begin(115200); SMG_4_Init(); // 初始化数码管显示 connectToWiFi(); // 连接Wi-Fi initOLED(); // 初始化 OLED // 初始化 NTP 客户端 timeClient.begin(); // 等待时间同步 while(!timeClient.update()) { Serial.println("Waiting for NTP time sync..."); delay(1000); // 每秒钟检查一次 } // 处理网页请求 server.on("/", handleRoot); // 处理根路径 server.on("/setCity", handleSetCity); // 处理设置城市请求 server.on("/time", handleTime); // 处理时间请求 server.on("/weather", handleWeather); // 处理天气请求 server.begin(); // 启动服务器 } void loop() { static unsigned long lastWeatherUpdate = 0; // 上一次天气刷新的时间 static unsigned long lastTimeUpdate = 0; // 上一次时间刷新的时间 unsigned long currentMillis = millis(); // 确保 NTP 客户端保持更新 timeClient.update(); // 获取当前时间的小时和分钟 hours = timeClient.getHours(); minutes = timeClient.getMinutes(); // 每20s更新 OLED 上的时间 if (currentMillis - lastTimeUpdate >= 10000) { // 20s更新一次 lastTimeUpdate = currentMillis; String timeString = String(hours) + ":" + (minutes < 10 ? "0" + String(minutes) : String(minutes)); // 格式化时间 (HH:MM) // 更新 OLED 显示时间和天气信息 updateOLED(timeString, weatherEnglish, temp + "°C", WiFi.localIP().toString(),city); } // 每 20 分钟刷新一次天气信息 if (currentMillis - lastWeatherUpdate >= 1200000) { // 1200000 毫秒 = 20 分钟 lastWeatherUpdate = currentMillis; // 调用获取天气数据的函数 handleWeather(); } // 显示当前时间的小时和分钟到数码管 displayTime(hours, minutes); // 处理网页请求 server.handleClient(); }
手机界面
实物图(实物--4led是采用中断实现)-- 手机相机拍摄会有频闪
项目地址:
https://www.alipan.com/t/mcfNjbGrBJJX9AIxfa7I
审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
ESP32
+关注
关注
17文章
953浏览量
17031
发布评论请先 登录
相关推荐
esp32用什么软件编程
ESP32是一款由乐鑫(Espressif)推出的低功耗、高性能的Wi-Fi和蓝牙双模微控制器,广泛应用于物联网、智能家居、智能穿戴等领域。要对ESP32进行编程,需要选择合适的编程软件和开发环境
ESP8266进入轻度睡眠模式后,有没有办法保持与服务器的连接?
LightSleep的。我已经测试过了,我认为,客户端保持与 AP 的连接,但在进入轻度睡眠模式后,他与服务器断开连接。有没有办法保持与服务器的连接?
发表于 07-16 07:52
为什么在一些路由器中使用ESP32的Active mode无法接收服务器的TCP数据呢?
我们设置 AT+CIPRECVMODE=1(Passive mode),我们能够从服务器接收 TCP 数据。
请解释为什么在一些路由器(如“Arris”)中使用 ESP32 中的 Active mode无法接收
发表于 06-27 07:34
服务器端主动断开连接,esp32C3用TCP的send函数仍能发送成功返回字节数,为什么?
服务器端主动断开连接esp32C3用TCP的send函数仍能发送成功返回字节数,但服务器端已经无法收到数据。为何还能发送成功?这里如何判断服务器已断开从而进行断线重连?
发表于 06-13 07:16
如何利用ESP32C3做UDP的服务器?
请教一下,我利用了ESP32C3 建立了Soft AP ,我想利用ESP32C3做UDP的服务器。热点的建立,参考例程都没有问题。关键是如何形成UDP的服务器。教程有教如何制作成TCP
发表于 06-12 08:18
ESP32使用HTTPS协议无法与服务器建立连接怎么解决?
地址正常(使用其他工具验证能连接且能收到服务器返回的数据)
4、源码附在最后。
问题如下:1、参考此例程默认配置参数 .is_async = false,初始化时直接
发表于 06-12 07:01
请问ESP32-C3-WROOM-02模块基于小型MCU能否访问Linux服务器来获取数据?
我想请问一下,ESP的WiFi模块中包含小型MCU,能不能基于此访问服务器获取相应数据,然后ESP32-C3-WROOM-02模块的无线数据收发,包括数据包拆解是如何进行的,有这方面的资料嘛,谢谢~
发表于 06-07 07:49
【算能RADXA微服务器试用体验】Radxa Fogwise 1684X Mini 规格
通过网络可以了解到,算能RADXA微服务器的具体规格:
处理器:BM1684X
算力:高达32Tops INT8峰值算力
内存:16GB LPDDR4X 内存
存储:64GB eMMC
编程框架
发表于 02-28 11:21
评论