
繼「DIY 一臺小方屏來顯示樹莓派信息」和「基于 ESP32 制造系統監控屏」之后,本期我們再介紹一款桌面顯示屏擺件項目。
使用 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、直接焊接到排針上。
我更喜歡第二種焊接方式,它會更容易且不需要技巧。在焊接之前,在所有引腳上涂抹少量的助焊劑,然后在烙鐵的前端使用少量焊料對排針進行鍍錫。
鍍錫是非常必需的,因為它可以使焊接過程更容易并且導線和引腳之間更牢固。

如圖所示,將電線焊接到所有引腳。

我參考了 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 模塊中不包含 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…

天氣數據來自 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 顯示屏上看到所有天氣信息以及其他數據,還可通過觸控筆或手指切換來查看不同頁面(在之前可能需要校準觸摸屏顯示功能)。
我對這個小擺件的最終效果非常滿意,在任何場合將它送給朋友都是很不錯的!
via instructables.com/ESP8266-Weather-Widget-V2

1.深度:規范的嵌入式項目要在設計時考慮缺陷
2.嵌入式C編程經驗 | 全局變量猛于虎
3.吐槽物聯網開發難搞,一群工程師搞了個Toit 語言并宣布開源
4.一文看懂國產芯片 VS 國外芯片!
5.試試在只有150MHz的MCU上跑通全套時裝識別系統~
6.如何在嵌入式中使用設計模式的思想?

免責聲明:本文系網絡轉載,版權歸原作者所有。如涉及作品版權問題,請與我們聯系,我們將根據您提供的版權證明材料確認版權并支付稿酬或者刪除內容。