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
+關注
關注
17文章
957瀏覽量
17082
發布評論請先 登錄
相關推薦
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
評論