ESP8266+OLED屏實作天氣預報+溫度顯示+NTP時間同步6屏帶中文顯示V9.0
- V8.8版本更新說明:
- 9.0版本編譯資訊以及修復的bug:
ESP8266氣象時鐘
V8.8版本更新說明:
- 1.調整了氣象文字,將
WeatherStationFonts.h修改成了Readme.h,原來的字體放到了ESP8266_and_ESP32_OLED_driver_for_SSD1306_displays檔案夾下的OLEDDisplayFonts.h中, - 2.原來判斷3天預報天氣獲取失敗,會出現重啟反復獲取的死回圈,所以將原來的判斷if(條件&&條件||條件)改為原來的if(條件&&條件),去除后面的短路或邏輯判斷,
專案編譯截圖:
功能:字體說明
具體字體存放在ESP8266_and_ESP32_OLED_driver_for_SSD1306_displays庫檔案夾下的OLEDDisplayFonts.h里面
入想自己修改字體可以通過:http://oleddisplay.squix.ch/#/home
在線生成自己喜愛的字體添加到OLEDDisplayFonts.h中即可在程式中呼叫,
注意存放時需要修改資料型別,原const char --> const uint8_t
氣象圖示字體3種:(0.96螢屏選擇21比較合適,1.3寸螢屏可以選擇更大的字體36或者40)
Meteocons_Plain_21
Meteocons_Plain_36
Meteocons_Plain_40
字符顯示字體5種:
ArialMT_Plain_10
ArialMT_Plain_12
ArialMT_Plain_14
ArialMT_Plain_16
ArialMT_Plain_24
9.0版本編譯資訊以及修復的bug:
Executable segment sizes:
IROM : 483756 - code in flash (default or ICACHE_FLASH_ATTR)
IRAM : 27956 / 32768 - code in IRAM (ICACHE_RAM_ATTR, ISRs...)
DATA : 1396 ) - initialized variables (global, static) in RAM/HEAP
RODATA : 6904 ) / 81920 - constants (global, static) in RAM/HEAP
BSS : 30648 ) - zeroed variables (global, static) in RAM/HEAP
使用 1.0 版本的庫 ESP8266WiFi 在檔案夾: C:\Users\Administrator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi
使用 1.2 版本的庫 ESP8266HTTPClient 在檔案夾: C:\Users\Administrator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266HTTPClient
使用 1.0.0 版本的庫 DS18B20 在檔案夾: C:\Users\Administrator\Documents\Arduino\libraries\DS18B20
使用 2.3.5 版本的庫 OneWire 在檔案夾: C:\Users\Administrator\Documents\Arduino\libraries\OneWire
使用 1.1.1 版本的庫 DNSServer 在檔案夾: C:\Users\Administrator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\DNSServer
使用 1.0 版本的庫 ESP8266WebServer 在檔案夾: C:\Users\Administrator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer
使用 0.15.0-beta 版本的庫 CustomWiFiManager 在檔案夾: C:\Program Files (x86)\Arduino\libraries\CustomWiFiManager
使用 1.0 版本的庫 EEPROM 在檔案夾: C:\Users\Administrator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\EEPROM
使用 3.2.0 版本的庫 NTPClient 在檔案夾: C:\Users\Administrator\Documents\Arduino\libraries\NTPClient
使用 4.2.0 版本的庫 ESP8266_and_ESP32_OLED_driver_for_SSD1306_displays 在檔案夾: C:\Users\Administrator\Documents\Arduino\libraries\ESP8266_and_ESP32_OLED_driver_for_SSD1306_displays
使用 1.0 版本的庫 Wire 在檔案夾: C:\Users\Administrator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\Wire
使用 6.17.3 版本的庫 ArduinoJson 在檔案夾: C:\Users\Administrator\Documents\Arduino\libraries\ArduinoJson
"C:\\Users\\Administrator\\AppData\\Local\\Arduino15\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\2.5.0-4-b40a506/bin/xtensa-lx106-elf-size" -A "d:\\arduino\\MyHexDir/Esp8266_Clock_Weather.ino.elf"
專案使用了 520012 位元組,占用了 (49%) 程式存盤空間,最大為 1044464 位元組,
全域變數使用了38948位元組,(47%)的動態記憶體,余留42972位元組區域變數,最大為81920位元組,
之前:全域變數使用了40308位元組,(49%)的動態記憶體,余留41612位元組區域變數,最大為81920位元組,
V9.0:
1.增加了json反序列化檢查,徹底解決因為較長的資料沒有反序列檢查作業而查找資料失敗,導致獲取不到回傳值,注釋掉了農歷里面沒有使用的變數
2.新增了一個NTPClient庫,用于農歷過了24點準時更新的,也可以用來呼叫時間函式:
unsigned int Nowhours = timeClient.getHours();//小時
unsigned int minu = timeClient.getMinutes();//分鐘
unsigned int sece = timeClient.getSeconds();//秒
unsigned int Week = timeClient.getDay();//星期
String Today = timeClient.getFormattedTime()//時:分:秒
3.注釋掉U8g2庫,只用SH1106Wire.h庫,盡量減少程式大小,由原來的49%到現在的47%
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/264113.html
標籤:其他

