?? 星標(biāo)「嵌入式大雜燴」,一起進(jìn)步!??
MAKER:?opengreenenergy/譯:公眾號(hào):趣無(wú)盡
繼「DIY 一臺(tái)小方屏來(lái)顯示樹(shù)莓派信息」和「基于 ESP32 制造系統(tǒng)監(jiān)控屏」之后,本期我們?cè)俳榻B一款桌面顯示屏擺件項(xiàng)目。
使用 ESP8266 和 2.8 英寸觸摸屏來(lái)制作顯示器,通過(guò)無(wú)線網(wǎng)絡(luò)從網(wǎng)站 openweathermap.org 上獲取本地的天氣信息,最后呈現(xiàn)在顯示器上。

顯示內(nèi)容包括:
1、時(shí)間與日期。
2、詳細(xì)的天氣信息,如溫度、壓力、濕度和降雨量等。
3、未來(lái) 7 天天氣預(yù)測(cè)。


Wemos D1 Mini Pro X 1
2.8″ 觸屏顯示屏 X 1
30 AWG 電線 X 若干
USB 數(shù)據(jù)線 X 1
1.75mm 白色 PLA 3D 打印耗材 X 若干
3D 打印機(jī) X 1
烙鐵 X 1
電線鉗 X 1
剝線鉗 X 1
由于顯示屏的外殼比較小巧、空間緊湊,Wemos 板和連接線都需要放置在里面,所以要提前處理好所有的線且要長(zhǎng)度合適。最后,我選擇 30 AWG 的單股線。

如圖所示,使用鉗子切割成 14 根等長(zhǎng)的電線,然后使用剝線鉗剝?nèi)ル娋€的絕緣層。

如圖所示,TFT 顯示器有預(yù)留的可焊接的直頭排針,可將其安裝到面包板或任何其他開(kāi)發(fā)板上。

有兩種焊接的方式可供參考:
1、將排針從 PCB 上拆下,然后將電線直接焊接上去。
2、直接焊接到排針上。
我更喜歡第二種焊接方式,它會(huì)更容易且不需要技巧。在焊接之前,在所有引腳上涂抹少量的助焊劑,然后在烙鐵的前端使用少量焊料對(duì)排針進(jìn)行鍍錫。
鍍錫是非常必需的,因?yàn)樗梢允购附舆^(guò)程更容易并且導(dǎo)線和引腳之間更牢固。

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

我參考了 Thingiverse 中一個(gè)模型,然后在 Autodesk Fusion 360 中修改外殼。所有部件的尺寸均由游標(biāo)卡尺測(cè)量,與設(shè)計(jì)過(guò)程中的尺寸保持一致。


外殼包括以下幾個(gè)部分:外殼、后蓋以及底蓋。
3D 打印的設(shè)置為:
打印速度:60mm/秒
層高厚度:0.2mm
填充密度:20%
擠出機(jī)溫度:210℃
床溫:60℃

3D 打印文件可在本項(xiàng)目文件庫(kù)中下載:
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

下載原理圖,然后打印出來(lái)以便焊接時(shí)查看,這樣會(huì)比較節(jié)約時(shí)間。焊接時(shí)要注意引腳焊接正確,錯(cuò)誤的焊接會(huì)損壞顯示模塊或 Wemos 板。焊接時(shí)要十分的小心。


原理圖可在本項(xiàng)目文件庫(kù)中下載:
https://make.quwj.com/project/408
ESP8266 模塊中不包含 Arduino IDE,需要先安裝。
操作如下:

1、啟動(dòng) Arduino IDE 并打開(kāi) Preferences 窗口。

2、在 Arduino IDE 的 File > Preferences > Additional Boards Manager URLs 字段中輸入:
https://arduino.esp8266.com/stable/package_esp8266com_index.json

3、使用 OK 按鈕關(guān)閉窗口。從 Tools > Board menu 中打開(kāi)開(kāi)發(fā)板管理器,然后選擇正確的 ESP8266 開(kāi)發(fā)板。
4、選擇 LOLIN(WEMOS) D1 R2 & mini。將 CPU 頻率設(shè)置為 80MHz,F(xiàn)lash Size 設(shè)置為 “4MB (FS:3MB OTA:~512KB)”以及 COM 端口。
Arduino 代碼:
https://github.com/ThingPulse/esp8266-weather-station-color
庫(kù):
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
如果如果你已經(jīng)安裝了原始的 XPT2046_Touchscreen,需要先卸載。
下載庫(kù)后解壓縮并在 Arduino Library Manager 中安裝,路徑為:
Sketch > Include Library > Manage Libraries…

天氣數(shù)據(jù)來(lái)自 https://openweathermap.org/price 網(wǎng)站,所以必須獲得 OpenWeatherMap API 密鑰。

1、選擇第一列免費(fèi)那一欄,限制為每分鐘 60cpm。

2、點(diǎn)擊獲取“API 密鑰”,然后填寫(xiě)憑據(jù)后創(chuàng)建一個(gè)新帳戶(hù)。
3、記下 API 密鑰,下一步代碼時(shí)使用。
設(shè)置 Arduino IDE 并安裝所有庫(kù)后,將代碼上傳到 ESP8266 板(Wemos D1 Mini Pro 或其他板)。

1、解壓縮在前面步驟中下載的代碼,然后保存,去掉文件夾名稱(chēng)中的 master,命名為 “esp8266-weather-station-color”。

2、打開(kāi)文件夾并點(diǎn)擊 “esp8266-weather-station-color.ino ”。

3、在其中一個(gè)選項(xiàng)卡中,用 IDE 打開(kāi) settings.h。瀏覽文件并調(diào)整兩個(gè)配置參數(shù)。它們都直接記錄在文件中。最后設(shè)置 OpenWeatherMap API 密鑰。

如圖所示,安裝好顯示器和電路板后,將兩個(gè)蓋子固定好。外殼設(shè)計(jì)的非常緊密,因此不需要任何膠水或螺絲來(lái)固定蓋子。


較小的蓋子用于底座部分,較大的蓋子用于顯示器的背面。將蓋子與外殼中的插槽對(duì)齊,然后將其按壓進(jìn)去即可。

如果你已經(jīng)成功將代碼上傳到 ESP8266,可以立即通過(guò)搜索 WiFi 網(wǎng)絡(luò)看到設(shè)備。將設(shè)備連接到 WiFi 路由器后,它將從網(wǎng)絡(luò)獲取時(shí)間和天氣數(shù)據(jù)。

現(xiàn)在你可以在 TFT 顯示屏上看到所有天氣信息以及其他數(shù)據(jù),還可通過(guò)觸控筆或手指切換來(lái)查看不同頁(yè)面(在之前可能需要校準(zhǔn)觸摸屏顯示功能)。
我對(duì)這個(gè)小擺件的最終效果非常滿(mǎn)意,在任何場(chǎng)合將它送給朋友都是很不錯(cuò)的!
via instructables.com/ESP8266-Weather-Widget-V20

分享一道有趣的C語(yǔ)言算法題

malloc碎片優(yōu)化管理機(jī)制(附代碼)

一些嵌入式開(kāi)發(fā)常見(jiàn)問(wèn)題解決方法