0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于ESP32的网络天气时钟 微服务器

jf_51322043 来源:jf_51322043 作者:jf_51322043 2024-10-08 11:49 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

2024年国庆期间,假期无聊写的程序

wKgaomb_-GuAHKNXAAeykpPte1E708.png主界面 wKgaomb_-MaAFN5fAAS-QB8lFZI967.png

主程序

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

手机界面

wKgZomb_-WOAKewtAAd-hnlLI80841.png

实物图(实物--4led是采用中断实现)-- 手机相机拍摄会有频闪

wKgaomb_-aKAFBX_ACLaxG-_Zkk566.png

项目地址:

https://www.alipan.com/t/mcfNjbGrBJJX9AIxfa7I

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ESP32
    +关注

    关注

    24

    文章

    1083

    浏览量

    20850
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    考场背后的守护神、卫星时钟服务器、NTP校时服务器

    服务器
    西安同步电子科技有限公司
    发布于 :2025年11月12日 17:16:09

    ESP32-运行网页服务器(Web Server)-实用篇

    在前一篇文章《ESP32-运行网页服务器(WebServer)-入门篇》,我们介绍了ESP32运行网页服务器(WebServer)的原理,然后我们基于
    的头像 发表于 07-28 18:05 2801次阅读
    <b class='flag-5'>ESP32</b>-运行网页<b class='flag-5'>服务器</b>(Web Server)-实用篇

    ntp时钟同步服务器是什么?ntp时钟同步服务器介绍

    时间、时钟、时辰是我们非常熟悉的,但是你们知道如今的时间、时钟都是哪里产生的吗?尤其当今网络设备的普及使用,上面几乎都有时间标识,其实他们都是通过一些设备传递的,比如ntp时钟同步
    的头像 发表于 05-13 15:19 641次阅读
    ntp<b class='flag-5'>时钟</b>同步<b class='flag-5'>服务器</b>是什么?ntp<b class='flag-5'>时钟</b>同步<b class='flag-5'>服务器</b>介绍

    卫星授时服务器 国内ntp网络授时服务器的发展方向 北斗对时服务器

    完整性到网络安全的各种环节来说,这项操作都至关重要。 关键词:ntp授时设备,卫星对时服务器,ntp网络时钟服务器,ntp
    的头像 发表于 05-07 15:59 408次阅读
    卫星授时<b class='flag-5'>服务器</b> 国内ntp<b class='flag-5'>网络</b>授时<b class='flag-5'>服务器</b>的发展方向 北斗对时<b class='flag-5'>服务器</b>

    安徽京准GPS北斗时钟服务器的应用及分析

    安徽京准GPS北斗时钟服务器的应用及分析
    的头像 发表于 03-26 15:18 677次阅读
    安徽京准GPS北斗<b class='flag-5'>时钟</b><b class='flag-5'>服务器</b>的应用及分析

    京准电钟守护时钟防线:北斗网络授时服务器构建安全堡垒

    京准电钟守护时钟防线:北斗网络授时服务器构建安全堡垒
    的头像 发表于 03-24 14:47 584次阅读
    京准电钟守护<b class='flag-5'>时钟</b>防线:北斗<b class='flag-5'>网络</b>授时<b class='flag-5'>服务器</b>构建安全堡垒

    NTP校时服务器 时钟同步服务器

    服务器
    jf_75250307
    发布于 :2025年03月19日 20:56:34

    ESP32运行网页服务器 (Web-Server)-入门篇

    什么是ESP32WebServer?ESP32WebServer是在ESP32微控制上运行的一个嵌入式网页服务器。它能够处理HTTP请求并
    的头像 发表于 03-09 14:24 6463次阅读
    <b class='flag-5'>ESP32</b>运行网页<b class='flag-5'>服务器</b> (Web-Server)-入门篇

    微服务器架构几种典型的基础框架,你了解吗?

    SpringCloud、Dubbo、Dropwizard、Akka等是常见微服务框架。SpringCloud基于SpringBoot,生态丰富;Dropwizard轻量且继承SpringBoot优点
    的头像 发表于 03-04 11:05 786次阅读

    解密北斗时钟服务器的现代使命

    在ICU病房的生命监护仪上,在高铁调度中心的运行图上,在智能制造车间的机械臂之间,北斗时钟服务器正以人类难以察觉的方式编织着精密的时间网络。这些看似普通的数字显示背后,连接着维系现代
    发表于 02-25 14:54

    服务器需要网络吗?怎么设置

    需要。云服务器的运行依赖于网络连接,以确保用户能够通过互联网远程访问和管理服务器资源。网络设置是云服务器配置过程中的重要环节,它涉及到IP地
    的头像 发表于 02-21 10:25 804次阅读

    双北斗NTP网络授时服务器介绍

    双北斗NTP网络授时服务器介绍 关键词:双北斗服务器   NTP网络授时设备   北斗授时服务器 SYN2151型双北斗NTP
    的头像 发表于 02-05 18:07 882次阅读

    esp32如何接入豆包

    要在 ESP32 上接入豆包工具,本质上是让 ESP32 设备与豆包的 API 进行通信,以获取相关服务
    的头像 发表于 02-05 13:40 2837次阅读
    <b class='flag-5'>esp32</b>如何接入豆包

    新加坡云服务器网络中断的常见原因有哪些

    新加坡云服务器网络中断的常见原因包括以下几方面: 硬件故障,网络设备故障:数据中心内部的路由、交换机等网络设备出现故障,会导致云
    的头像 发表于 01-13 17:03 1174次阅读

    NTP服务器故障排除技巧 NTP服务器网络安全

    网络时间协议(NTP)服务器对于确保网络中的设备时间同步至关重要。无论是在企业网络还是数据中心,时间同步都是网络安全和数据一致性的基础。然而
    的头像 发表于 12-18 15:13 3582次阅读