MAKER:
opengreenenergy/譯
:趣無盡
使用 ESP8266 和 2。8 英寸觸控式螢幕來製作顯示器,透過無線網路從網站 openweathermap。org 上獲取本地的天氣資訊,最後呈現在顯示器上。
顯示內容包括:
1、時間與日期。
2、詳細的天氣資訊,如溫度、壓力、溼度和降雨量等。
3、未來 7 天天氣預測。
元件清單
Wemos D1 Mini Pro X 1
2。8″ 觸屏顯示屏 X 1
30 AWG 電線 X 若干
USB 資料線 X 1
1。75mm 白色 PLA 3D 列印耗材 X 若干
3D 印表機 X 1
烙鐵 X 1
電線鉗 X 1
剝線鉗 X 1
準備線材並焊接
由於顯示屏的外殼比較小巧、空間緊湊,Wemos 板和連線線都需要放置在裡面,所以要提前處理好所有的線且要長度合適。最後,我選擇 30 AWG 的單股線。
如圖所示,使用鉗子切割成 14 根等長的電線,然後使用剝線鉗剝去電線的絕緣層。
如圖所示,TFT 顯示器有預留的可焊接的直頭排針,可將其安裝到麵包板或任何其他開發板上。
有兩種焊接的方式可供參考:
1、將排針從 PCB 上拆下,然後將電線直接焊接上去。
2、直接焊接到排針上。
我更喜歡第二種焊接方式,它會更容易且不需要技巧。在焊接之前,在所有引腳上塗抹少量的助焊劑,然後在烙鐵的前端使用少量焊料對排針進行鍍錫。
鍍錫是非常必需的,因為它可以使焊接過程更容易並且導線和引腳之間更牢固。
如圖所示,將電線焊接到所有引腳。
3D 列印
我參考了 Thingiverse 中一個模型,然後在 Autodesk Fusion 360 中修改外殼。所有部件的尺寸均由遊標卡尺測量,與設計過程中的尺寸保持一致。
外殼包括以下幾個部分:外殼、後蓋以及底蓋。
3D 列印的設定為:
列印速度:60mm/秒
層高厚度:0。2mm
填充密度:20%
擠出機溫度:210℃
床溫:60℃
3D 列印檔案可在本專案檔案庫中下載:
https://make。quwj。com/project/408
安裝顯示屏
顯示器有兩種安裝方式:
1、將顯示屏放置到外殼中後再與 Wemos 板接線。
2、將顯示器與 Wemos 板線接好後再安裝到外殼中。
我選擇第二種方式安裝顯示器。
如圖所示,按照原理圖將 TFT 顯示模組 (ILI9341) 的引腳與 Wemos 引腳相連。
引腳接線方式如下:
TFT 顯示->Wemos (ESP8266)
VIN -> 3。3V
GND -> GND
CS -> D1
RESET -> RST
DC -> D2
SDI -> D7
SCK -> D5
LED -> D8
SDO -> D6
T_CLK -> D5
T_CS -> D3
T_DIN -> D7
T_DO -> D6
T_IRQ -> D4
下載原理圖,然後打印出來以便焊接時檢視,這樣會比較節約時間。焊接時要注意引腳焊接正確,錯誤的焊接會損壞顯示模組或 Wemos 板。焊接時要十分的小心。
原理圖可在本專案檔案庫中下載:
https://make。quwj。com/project/408
準備 ESP8266 開發環境
ESP8266 模組中不包含 Arduino IDE,需要先安裝。
操作如下:
1、啟動 Arduino IDE 並開啟 Preferences 視窗。
2、在 Arduino IDE 的 File > Preferences > Additional Boards Manager URLs 欄位中輸入:
https://arduino。esp8266。com/stable/package_esp8266com_index。json
3、使用 OK 按鈕關閉視窗。從 Tools > Board menu 中開啟開發板管理器,然後選擇正確的 ESP8266 開發板。
4、選擇 LOLIN(WEMOS) D1 R2 & mini。將 CPU 頻率設定為 80MHz,Flash Size 設定為 “4MB (FS:3MB OTA:~512KB)”以及 COM 埠。
下載程式碼和庫
Arduino 程式碼:
https://github。com/ThingPulse/esp8266-weather-station-color
庫:
1、Mini Grafx by Daniel Eichhorn
https://github。com/ThingPulse/minigrafx
2、ESP8266 WeatherStation by Daniel Eichhorn
https://github。com/ThingPulse/esp8266-weather-station
3、Json Streaming Parser by Daniel Eichhorn
https://github。com/squix78/json-streaming-parser
4、ThingPulse XPT2046 Touch by ThingPulse
https://github。com/ThingPulse/XPT2046_Touchscreen#xpt2046-touchscreen-arduino-library
如果如果你已經安裝了原始的 XPT2046_Touchscreen,需要先解除安裝。
下載庫後解壓縮並在 Arduino Library Manager 中安裝,路徑為:
Sketch > Include Library > Manage Libraries…
獲取 OpenWeatherMap API Key
天氣資料來自 https://openweathermap。org/price 網站,所以必須獲得 OpenWeatherMap API 金鑰。
1、選擇第一列免費那一欄,限制為每分鐘 60cpm。
2、點選獲取“API 金鑰”,然後填寫憑據後建立一個新帳戶。
3、記下 API 金鑰,下一步程式碼時使用。
上傳軟體
設定 Arduino IDE 並安裝所有庫後,將程式碼上傳到 ESP8266 板(Wemos D1 Mini Pro 或其他板)。
1、解壓縮在前面步驟中下載的程式碼,然後儲存,去掉資料夾名稱中的 master,命名為 “esp8266-weather-station-color”。
2、開啟資料夾並點選 “esp8266-weather-station-color。ino ”。
3、在其中一個選項卡中,用 IDE 開啟 settings。h。瀏覽檔案並調整兩個配置引數。它們都直接記錄在檔案中。最後設定 OpenWeatherMap API 金鑰。
安裝外殼
如圖所示,安裝好顯示器和電路板後,將兩個蓋子固定好。外殼設計的非常緊密,因此不需要任何膠水或螺絲來固定蓋子。
較小的蓋子用於底座部分,較大的蓋子用於顯示器的背面。將蓋子與外殼中的插槽對齊,然後將其按壓進去即可。
測試
如果你已經成功將程式碼上傳到 ESP8266,可以立即透過搜尋 WiFi 網路看到裝置。將裝置連線到 WiFi 路由器後,它將從網路獲取時間和天氣資料。
現在你可以在 TFT 顯示屏上看到所有天氣資訊以及其他資料,還可透過觸控筆或手指切換來檢視不同頁面(在之前可能需要校準觸控式螢幕顯示功能)。
我對這個小擺件的最終效果非常滿意,在任何場合將它送給朋友都是很不錯的!
專案所用的程式碼在本專案檔案庫中可以下載:
https://make.quwj.com/project/408
via instructables。com/ESP8266-Weather-Widget-V20