在網上看到一篇帖子,通過ESP8266(WIFI模塊)獲取天氣數據,自己心血來潮,動手做了一個出來,來這裡給大家展示一下。
1所需硬件
Arduino UNO 數量 1;
轉接板數量 1;
Esp8266模塊數量 1;
按鈕模塊數量 1;
0.96OLED屏數量 1;
水晶頭電纜數量 2;
2 模塊間連線
先把OLED屏插在轉接板上:
再把轉接板插在UNO上:
把8266模塊插在JR3上,按鈕模塊插在JR1上:
下面是上電運行的效果:
默認顯示城市、天氣和溫度:
通過按鈕切換到生活指數(穿衣指數、紫外線強度和運動指數)界面:
3 Esp8266單獨編程
使用支持8266的ARDUINO IDE環境編程,編程環境安裝不再贅述了,和USB轉串口接線時注意,RX和TX要交叉連接;
下載的時候先按一下S2復位,然後要保持io0為低電平,按下S1即可,嫌麻煩可以用跳線帽或者鑷子短接JD1的兩根插針就行了:
記得要先去心知天氣(https://www.seniverse.com/)網站註冊一個賬號,用網站提供的APIKEY就可以獲取天氣情況了。
免費用戶可以獲取3種天氣情況和6種生活指數,自己玩夠用了。
4 Arduino UNO編程
8266獲取到天氣相關數據後,通過串口把數據發送給UNO,UNO將天氣情況顯示在OLED屏上,由於屏尺寸比較小,所以做了兩個界面來分別顯示天氣情況和生活指數數據,通過按鈕來切換界面;
OLED的驅動使用了u8glib,漢字是通過取模軟件生成的,實現起來有點麻煩;
將上面生成的數組加進程序裡就可以顯示對應中文了。
有興趣的朋友可以私信我獲取該項目源碼。希望我的分享給大家帶來幫助。歡迎朋友們多評論、多交流!
閱讀更多 蟻哥愛科技 的文章