2024年國慶期間,假期無聊寫的程序
主界面
主程序
#include #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
+關注
關注
20文章
994瀏覽量
18502
發布評論請先 登錄
相關推薦
ESP32運行網頁服務器 (Web-Server)-入門篇
什么是ESP32WebServer?ESP32WebServer是在ESP32微控制器上運行的一個嵌入式網頁服務器。它能夠處理HTTP請求并

解密北斗時鐘服務器的現代使命
在ICU病房的生命監護儀上,在高鐵調度中心的運行圖上,在智能制造車間的機械臂之間,北斗時鐘服務器正以人類難以察覺的方式編織著精密的時間網絡。這些看似普通的數字顯示器背后,連接著維系現代
發表于 02-25 14:54
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-C3-WROOM-02模塊基于小型MCU能否訪問Linux服務器來獲取數據?
我想請問一下,ESP的WiFi模塊中包含小型MCU,能不能基于此訪問服務器獲取相應數據,然后ESP32-C3-WROOM-02模塊的無線數據收發,包括數據包拆解是如何進行的,有這方面的資料嘛,謝謝~
發表于 06-07 07:49
評論