這款復古的 METAR(航空例行天氣報告)三色墨水屏顯示器,不僅懷舊感十足,還可以同時顯示十多種信息。盡管這類小裝備是飛行員們才需要用到的,但這也并不妨礙飛行愛好者們 DIY 一件擺放在自己的書桌上。
項目特性
1、墨水屏有三種顯示方式:間歇性的循環更新顯示、隨機顯示和自動間隔顯示。以天氣變化為例,把天氣變化設置為 VFR,每小時更新一次即可。因為天氣變化,特別惡劣天氣的變化,它會非常地快,更新的太頻繁就沒有意義。
2、腳本用從命令行運行,用不用 cmd line 參數都可以。同時,還可以通過網頁界面來管理顯示。
在網絡界面可以清除顯示,重新啟動或者關閉主機,還可以隨時調整布局和更新間隔。我建議用這種方式來管理顯示屏。
3、采用 Python 3 編程。由 Waveshare 提供的庫來驅動顯示器,如 PIL、Numpy 和 Flask。
4、墨水屏顯示會有些慢,特別這個三色屏幕。(這也算特性?)
組件清單
樹莓派 Zero W x 1(其他樹莓派主板亦可)
MicroSD 卡 x 1
Waveshare 7×5 三色電子墨水屏 x 1
外框 x 1
METAR 簡介
METARhttps://en.wikipedia.org/wiki/METAR,它可以為機場環境提供動態的報告,也可以為飛行員提供有關機場天氣和其他狀況信息的平臺。它為進出機場的飛行員傳遞重要信息,以便飛行員做出正確的選擇。
對于飛行員來說,機場的飛行類別是非常的重要。選擇有:VFR、MVFR、IFR 和 LIFR。這些類別由云層或能見度決定的。
VFR:目視飛行規則,云層高度超過 3,000 英尺,或能見度超過 5 英里。
MVFR:邊際目視飛行規則,云層高度 1,000 至 3,000 英尺 AGL,或 3 到 5 英里的能見度。
IFR:儀表飛行規則,云層高度 500 至低于 1,000 英尺 AGL,或 1 英里至低于 3 英里的能見度。
LIFR:低儀表飛行規則,云層高度 500 英尺 AGL,或小于 1 英里的能見度。
AGL表示地面以上。
通常,這些類別都會有特定的顏色,如 VFR 為綠色。由于這款顯示屏可以顯示的顏色有限,如圖所示,我用以下顏色來表示。
VFR:白底黑色字體。
MVFR:黑底白色字體。
IFR:白底紅色字體。
LIFR:紅底白色字體。
METAR 實際上是一串需要解碼的神秘字符和數字。下面我們將原始的 METAR 文本進行解碼。
METAR 文本格式為:KFPK(Charotte/Beach Fld,MI,US)
例如:KFPK 271935Z AUTO 32012G17KT 10SM BKN044 M02/M13 A3005 RMK AO2 T10211133,解碼后信息如下。
M02-溫度:-2.1°C (28°F)
M13-露點:-13.3°C (8°F) [RH=42%]
A3005-壓力(高度計):30.05 英寸 Hg(1017.7 mb)
32012G17KT-風速:從 NW(320 度)14 MPH(12 節)陣風至 20 MPH(17 節)
10SM-能見度:10 或更多英里(16+ 公里)
BKN044-云層高度:4400 英尺 AGL 的斷層云
AO2-QC 標志:無需人類增強的自動觀察
RMK-備注:備注附加信息
更多關于 METAR 的解讀鏈接,你可以參考https://www.thinkaviation.net/understanding-metars-part-1/。
墨水屏文件可在本項目文件庫中下載:
https://make.quwj.com/project/429
安裝硬件
將 7×5 三色電子墨水屏 HAT 與樹莓派 Zero W 相連。樹莓派 Zero W 的啟動和更新時間稍慢,但方便安裝在外框內。
有兩種方法可以將顯示屏連接到主板。
1、如圖所示,將 HAT 直接連接到樹莓派的引腳上。
2、如圖所示,使用連接器將 HAT 連接到樹莓派的引腳上。這種方式不占主板引腳,可為其他功能留用,安裝時請確保連接牢固。
HAT 上有兩個可撥動開關,都位于右邊并且方向朝上。“Display Config” 開關在“B”位置,“Interface Config” 開關在 “0” 位置。
可選添加一個開機開關。將主板通電,可以通過引腳 5 連接到 6 來重新啟動它(GPIO 3 接地),引腳接口可參考https://pinout.xyz/。
如果你直接將 HAT 連接到引腳,則需要將一根電線焊接到主板下方的引腳 5 和 6 上。連接時請注意不要使另一個引腳上的電線短路。開機開關使用起來很方便,我將開關安裝在外殼的后蓋處。
如果這個開關對你來說太麻煩,你可以如上圖一樣在 USB 插頭上添加一個開關。
將顯示器安裝在外框中,并使主板保持正常運轉。
安裝軟件
有兩種安裝軟件的方式。
1、第一種方式
在 Dropbox https://www.dropbox.com/s/u8zt8nw22mxvta8/7in5e-inkMetar.zip?dl=0上下載軟件,并將其復制到 SD 卡,無需安裝。請將最新版本存儲在 Github 上,可以在這里復制所需安裝的軟件。
軟件不能一直確保正常使用,但可以下載后解壓縮保存文件,請按照鏈接中的方法 https://www.how2shout.com/how-to/balenaetcher-how-to-create-a-bootable-usb-flash-drive-using-etcher.html ,將軟件復制到 SF 卡中。
Berrylan https://berrylan.org/請將 Berrylan 應用程序下載到手機,以便你設置 WiFi 網絡。訪問 Apple Store 或 Android Play 商店。
應用程序的主機名和密碼都已修改為 “epaper”。
溫馨提示:如果在安裝鏡像后你想從 github.com 更新到最新版本,請輸入以下內容:
cd metar
sudo git reset --hard
sudo git pull
2、第二種方式
請在這個鏈接中下載軟件 https://github.com/markyharris/metar, README.md 文件中有詳細的安裝說明,請按照以下說明正確設置鏡像。
下載所需的應用程序
Balena Etcher https://www.balena.io/etcher/。
Berrylan Unix Bullseye 鏡像 https://berrylan.org/。
從 Apple App Store 或 Android Play Store 下載 Berrylan App 到你的手機。
注意:Berrylan 鏡像要求不嚴。它提供了一種簡單的方法來設置 WiFi 并可在無桌面樹莓派的系統上啟用 SSH。
當然也可以使用臨時的鍵盤和顯示器連接到樹莓派并將其啟動。
但是,通過 Berrylan 手機應用程序更改 WiFi 是最方便。如果不需要 Berrylan,請訪問https://www.raspberrypi.com/software/operating-systems/下載最新鏡像。
如果 Berrylan 不能使用,https://desertbot.io/blog/headless-raspberry-pi-4-ssh-wifi-setup ,請參考無桌面系統設置 WiFi 的步驟。
將鏡像寫入 SD 卡
使用 Balena Etcher,將鏡像寫入 Micro SD 卡。訪問此處https://www.how2shout.com/how-to/balenaetcher-how-to-create-a-bootable-usb-flash-drive-using-etcher.html 了解和使用 Belena Etcher 的信息。
將 SD 卡放入樹莓派并啟動。等待 1-2 分鐘,觀察 SD 卡啟動樹莓派后 LED 的反饋。當它啟動后會停止閃爍(大部分情況下)。
使用 BERRYLAN 設置 WIFI
在手機上打開 Berrylan 應用程序,然后選擇 “BT WLAN 設置” 或 “BT WLAN” 或 “raspberrypi”。最常見的是 “BT WLAN”。
如果有多個選擇,請選擇第一個并完成以下步驟。如果連接不到樹莓派,請重啟再試。
選擇使用 WiFi SSID
輸入 WiFi 密碼,記下 Berrylan 顯示的 IP 地址,你稍后會使用到。
使用 SSH 客戶端登錄
打開 SSH 客戶端并輸入 “pi@IP address” 然后登錄,例如 “[email protected]” 。
使用用戶名 “pi” 和密碼 “raspberry” 登錄。如果使用的是普通映像,則必須先啟用 SSH,然后客戶端才能工作。
Berrylan 自動啟用 SSH。如果不行,請將顯示器和鍵盤連接到樹莓派并使用 “raspi-config” 來執行。
有關 “raspi-config” 的信息,可點擊查閱 ,https://www.raspberrypi.com/documentation/computers/configuration.html
以下列舉一些 SSH 客戶端:
KiTTY
PuTTY and other PuTTY versions
MobaXterm
WinSCP
SmarTTY
Bitvise SSH Client
Terminal (for Mac)
Chrome SSH extension
設置 SPI 接口
與顯示器連接,請執行以下命令。請在 “pi@raspberrypi:~ $” 行輸入以下內容
sudo raspi-config
3 - Interface Options
I4 SPI Enable this? Yes
注意:你可以根據需要更改主機名和密碼(可選)。
點擊 “Yes”,退出“raspi-config”,然后重啟樹莓派。
在樹莓派上設置 GitHub
樹莓派啟動后,通過 SSH 客戶端登錄后,輸入:
sudo apt update
sudo apt-get install git
git --version
如果你收到一個 git 版本號碼,就可以開始了。
從 GITHUB 復制文件:進入后輸入
sudo git clone https://github.com/markyharris/metar.git
cd metar
ls -la
這時會列出從 github 復制到目錄 “metar” 的文件,驗證是否正常工作。
依賴項
該軟件大多數依賴項都已隨圖像一起安裝。但少許還需要手動安裝。如 PIL、Numpy 和 Flask。
安裝軟件所需的必要依賴項
sudo apt-get install python3-setuptools
sudo apt install python3-pil
sudo apt-get install python3-numpy
sudo pip3 install Flask
字體
代碼是使用 “NotoMono-Regular.ttf” 和 “LiberationMono-Bold.ttf” 編寫,這需要將它們安裝到“/usr/share/fonts/truetype/” 的目錄中。請在 cmd 行輸入以下內容:
cd /usr/share/fonts/truetype/
sudo mkdir noto
sudo mkdir liberation2
cd noto
sudo wget https://github.com/markyharris/metar/raw/f1858d85ad3b79864fb6e082cd083346828661ef/fonts/noto/NotoMono-Regular.ttf
cd ..
cd liberation2
sudo wget https://github.com/markyharris/metar/raw/f1858d85ad3b79864fb6e082cd083346828661ef/fonts/liberation2/LiberationMono-Bold.ttf
測試運行 METAR 顯示
現在是關鍵時刻,從 cmd 行手動運行主腳本。
輸入
cd ~
cd metar
sudo python3 metar_main.py
一切正常,cmd 行將顯示調試數據,包括原始元字符串。請觀察顯示屏,看它是否在更新時開始閃爍,完全刷新可能需要幾秒鐘,所以請耐心等待。
如果出現 “metar_settings.py” 中的默認機場,那么你就成功了。
現在根據需要編輯 “metar_settings.py” 文件。如果在 cmd 行上沒有傳遞其他參數,這些值是腳本回退的默認值。
下面顯示了 “metar_settings.py” 文件的一部分。可以進行機場更改,例如首選機場 ID。
# Default User Settings
airport = "KFLG" # enter default airport identifier to display. Be sure to use quotes
interval = 1800 # enter default time in seconds between METAR updates - 3600 = 1 hour, no quotes
use_disp_format = 7 # Choose which display layout to use. -1 = Random layout, -2 = Cycle layouts
use_remarks = 1 # 0 = display airport information, 1 = display metar remarks info
random_airports = ["KEYW","KDFW","KSEA","KORD", "KLAS","KCMR","KABQ","KDEN",
"KPHX","KNBC","KBKV","KTTS"]
注意:“random_airports” 列表可顯示多個機場,它包含 12 個機場。
如果列表中的機場超過 12 個,腳本將從列表中隨機選擇 12 個,默認的機場將在顯示屏中顯示為本國機場。
測試 CMD 線控制
該腳本最多寫入四行 cmd 行參數
第一個參數-機場標識符-必須為 4 個字符的 ICAO 格式。
第二個參數-布局編號-將接受 -2、-1 和 0-7。
第三個參數-以秒為單位的更新間隔-60=1 分鐘,3600=1 小時。
第四個參數-使用備注-1=顯示元備注關鍵信息,0=顯示機場信息。
它們將按順序排列,但并非全部顯示的。例如,當只能輸入機場 ID時,默認設置將顯示最后三個參數。
例如輸入
sudo python3 metar_main.py kflg 7 60 0
從這例子中可以看到,顯示屏將使用第七種布局顯示弗拉格斯塔夫機場 60 秒內的信息,然后更新機場信息。
檢測工作是否正常,可以使用“webapp.py”和“metar.html”下面的腳本就可以了。
測試 WEBAPP.PY
在“metar”目錄中輸入
sudo python3 webapp.py
它將運行一個 Flask 模塊,該模塊將使用上次保存的配置運行“metar_main.py”。Flask 設置了一個網絡服務器。
因此我們還可以運行 html 文件來控制來自同一 WiFi 網絡上的任何計算機、平板電腦或手機的顯示。
你的顯示器應該可以顯示信息。
請注意,當 webapp.py 啟動時,信息將顯示到 SSH 客戶端中。你需要它提供的 URL。例如(你的可能不一樣), 在 [http://192.168.86.71:5000/](http://192.168.86.71:5000/) 上運行(按 CTRL+C 退出)。
測試 METAR.HTML
使用上一步中的 URL,打開網絡瀏覽器并輸入URL。如果一切順利,會看到一個允許控制顯示的網頁。
注意:運行的 html 文件,必須使用最初設置 WiFi 時提供的 URL,并連接到同一 WiFi 網絡的計算機、平板電腦或手機。
URL 的 IP 地址后附加 ‘:5000’,即:http://192.168.86.71:5000/(你的可能不一樣)。
為啟動設置 RC.LOCAL(可選)
如果你希望顯示器在關機或意外斷電后自動重新啟動,可以參考這個步驟。必須運行 webapp.py 才能使網絡界面正常工作。它在自動啟動時很有幫助。
進入
cd ~
cd /etc
sudo nano rc.local
在“Exit”前添加。
sudo python3 /home/pi/metar/webapp.py &
保存編輯好的文件并重啟
ctrl-x
y
sudo reboot now
注意:如果你不需要“webapp.py”自動啟動,你只需再次打開“rc.local”并注釋掉添加的行,然后重新保存并重新啟動。
這將要求你在 cmd 行中手動運行“webapp.py”以使網絡界面正常運行。
設置 POWEROFF.SERVICE 關機(可選)
當設備關閉時,它可以讓墨水屏顯示空白。停電也不會黑屏,但是如果你在“rc.local”做以下設置,當電源恢復時,它將重置顯示。
將“poweroff.service”復制到“/lib/systemd/system”
cd ~
cd /lib/systemd/system
sudo wget https://raw.githubusercontent.com/markyharris/metar/main/poweroff.service
通過輸入啟用服務
sudo systemctl enable poweroff.service
將python腳本“metar_poweroff.py”復制到“/opt/metar_poweroff”
cd ~
cd /opt
sudo mkdir metar_poweroff
cd metar_poweroff
sudo wget https://raw.githubusercontent.com/markyharris/metar/main/metar_poweroff.py
其他項
到目前為止,軟件的安裝已完成,建議你將 SD 卡備份鏡像。
步驟如下:
1、點擊鏈接下載 Win32DiskImager https://sourceforge.net/projects/win32diskimager/。
2、將 SD 卡插入計算機的讀卡器。
3、單擊文件夾圖標并找到一個目錄來存儲鏡像,命名為 metar_display.img。
4、單擊“只讀分配的分區”。
5、單擊“讀取”然后等待完成。
6、完成后安全彈出 SD 卡并將其重新安裝到樹莓派。
故障排除
在完成這個顯示屏時,我遇到許多故障問題,在這里給大家分享出來,以便幫助可能遇到同樣問題的人。
無顯示的情況
首先點擊了解 HAT 的功能 https://www.waveshare.com/wiki/7.5inch_e-Paper_HAT_(B),然后運行提供的測試腳本。
請單擊頂部的“資源”選項卡,然后單擊“演示代碼”的 github 鏈接。https://github.com/waveshare/e-Paper/tree/master/RaspberryPi_JetsonNano/python/examples。
選擇正確的測試版本,我使用的是 “epd_7in5b_V2_test.py” https://github.com/waveshare/e-Paper/blob/master/RaspberryPi_JetsonNano/python/examples/epd_7in5b_V2_test.py。
當樹莓派的電源中斷時,可能會發生這種情況,請仔細檢查樹莓派板上的 LED 并確保其亮起。
也有可能是 SD 卡損壞,需要重新安裝鏡像,這時就可以啟用備份的資料。
待命
當樹莓派嘗試從 weather.org 更新數據時,會時常發生錯誤。當網站未返回機場數據,或輸入的機場后當前未提供 METAR 數據,或機場 ID 未被識別時,將顯示錯誤。
一分鐘后它會再次嘗試獲取數據。在大多數情況下,它將成功接收數據,然后正確顯示。
如果多次嘗試后顯示屏沒有更新,請檢查 WiFi 網絡是否正常。
錯誤發生
大多數其他的錯誤,在發出“發生錯誤”的消息提示時會與錯誤描述一起顯示。這些將比無法從互聯網訪問數據更為嚴重。請參考以下內容,以便在相應的情況下對其進行調試。
網絡界面未加載
1、確保在網絡瀏覽器中輸入了正確的 URL。例如,http://192.168.84.79:5000/ 。
請注意將“:5000”附加到樹莓派的 IP 地址。如果沒有,將看不到網絡界面。
此外,請確保你使用的計算機與樹莓派連接在同一網絡。請及早檢查。
網絡界面依賴于樹莓派上運行的 “webapp.py”。這也是為什么建議將 rc.local 設置為在啟動時運行 “webapp.py”。如果未設置,則必須在加載網絡界面之前從 cmd 行手動運行 “webapp.py”。
更新時間長
1、本身墨水屏更新稍長,請耐心等待。
2、Layout5-多個機場顯示需要輪詢 weather.gov 13 次以獲取 13 個機場的數據,與其他顯示布局相比會發生延遲。
3、如果機場 ID 出現拼寫錯誤,可能會導致顯示屏閃爍且不顯示任何數據。通常會顯示錯誤提醒,如果沒有,只需重新輸入機場 ID,并確保其為有效的 4 字符 ICAO ID。
陰影部分
使用墨水屏出現這種情況很普遍,通常更新顯示幾次將消除這個問題。網絡界面中“Clear E-Paper Display”的功能,可以幫助刪除這些陰影。讓陰影最小化的方法是使用“循環”或“隨機”顯示功能,它可以在每次更新間隔時更改布局。
項目所用的代碼在本項目文件庫中可以下載:
https://make.quwj.com/project/429
via instructables.com/7x5-E-Paper-METAR-Display/
審核編輯 :李倩
-
顯示器
+關注
關注
22文章
5071瀏覽量
141758 -
樹莓派
+關注
關注
121文章
1997瀏覽量
107395
原文標題:樹莓派+墨水屏 DIY METAR 顯示器
文章出處:【微信號:趣無盡,微信公眾號:趣無盡】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
樹莓派“吉尼斯世界記錄”:將樹莓派的性能發揮到極致的項目!

樹莓派5 與 樹莓派4:深度對比與獨特優勢!

超酷的樹莓派智能鏡項目,快來了解!

透明幻境:用玻璃穹頂打造的樹莓派透明顯示器!

評論