0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

树莓派+墨水屏DIY METAR显示器

jf_zGNBEhbi 来源:趣无尽 作者:趣无尽 2022-11-04 10:45 次阅读

这款复古的 METAR(航空例行天气报告)三色墨水屏显示器,不仅怀旧感十足,还可以同时显示十多种信息。尽管这类小装备是飞行员们才需要用到的,但这也并不妨碍飞行爱好者们 DIY 一件摆放在自己的书桌上。

2f90c858-5be8-11ed-a3b6-dac502259ad0.jpg

项目特性

1、墨水屏有三种显示方式:间歇性的循环更新显示、随机显示和自动间隔显示。以天气变化为例,把天气变化设置为 VFR,每小时更新一次即可。因为天气变化,特别恶劣天气的变化,它会非常地快,更新的太频繁就没有意义。

2、脚本用从命令行运行,用不用 cmd line 参数都可以。同时,还可以通过网页界面来管理显示。

网络界面可以清除显示,重新启动或者关闭主机,还可以随时调整布局和更新间隔。我建议用这种方式来管理显示屏。

3、采用 Python 3 编程。由 Waveshare 提供的库来驱动显示器,如 PIL、Numpy 和 Flask。

4、墨水屏显示会有些慢,特别这个三色屏幕。(这也算特性?)

组件清单

2faf1c86-5be8-11ed-a3b6-dac502259ad0.jpg

2fc0c8aa-5be8-11ed-a3b6-dac502259ad0.jpg

2fcc272c-5be8-11ed-a3b6-dac502259ad0.jpg

树莓派 Zero W x 1(其他树莓派主板亦可)
MicroSD 卡 x 1
Waveshare 7×5 三色电子墨水屏 x 1
外框 x 1

METAR 简介

2fd6cb14-5be8-11ed-a3b6-dac502259ad0.jpg

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 为绿色。由于这款显示屏可以显示的颜色有限,如图所示,我用以下颜色来表示。

2ff04832-5be8-11ed-a3b6-dac502259ad0.jpg

2ff04832-5be8-11ed-a3b6-dac502259ad0.jpg

300883d4-5be8-11ed-a3b6-dac502259ad0.jpg

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 的启动和更新时间稍慢,但方便安装在外框内。

有两种方法可以将显示屏连接到主板。

3017af80-5be8-11ed-a3b6-dac502259ad0.jpg

1、如图所示,将 HAT 直接连接到树莓派的引脚上。

303dc5d0-5be8-11ed-a3b6-dac502259ad0.jpg

2、如图所示,使用连接器将 HAT 连接到树莓派的引脚上。这种方式不占主板引脚,可为其他功能留用,安装时请确保连接牢固。

HAT 上有两个可拨动开关,都位于右边并且方向朝上。“Display Config” 开关在“B”位置,“Interface Config” 开关在 “0” 位置。

可选添加一个开机开关。将主板通电,可以通过引脚 5 连接到 6 来重新启动它(GPIO 3 接地),引脚接口可参考https://pinout.xyz/。

如果你直接将 HAT 连接到引脚,则需要将一根电线焊接到主板下方的引脚 5 和 6 上。连接时请注意不要使另一个引脚上的电线短路。开机开关使用起来很方便,我将开关安装在外壳的后盖处。

如果这个开关对你来说太麻烦,你可以如上图一样在 USB 插头上添加一个开关。

将显示器安装在外框中,并使主板保持正常运转。

安装软件

304ba010-5be8-11ed-a3b6-dac502259ad0.jpg

30590aa2-5be8-11ed-a3b6-dac502259ad0.jpg

有两种安装软件的方式。

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

30590aa2-5be8-11ed-a3b6-dac502259ad0.jpg

在手机上打开 Berrylan 应用程序,然后选择 “BT WLAN 设置” 或 “BT WLAN” 或 “raspberrypi”。最常见的是 “BT WLAN”。

如果有多个选择,请选择第一个并完成以下步骤。如果连接不到树莓派,请重启再试。

选择使用 WiFi SSID
输入 WiFi 密码,记下 Berrylan 显示的 IP 地址,你稍后会使用到。

使用 SSH 客户端登录

打开 SSH 客户端并输入 “pi@IP address” 然后登录,例如 “pi@192.163.86.71” 。

使用用户名 “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 接口

3075081a-5be8-11ed-a3b6-dac502259ad0.jpg

与显示器连接,请执行以下命令。请在 “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 线控制

30897f70-5be8-11ed-a3b6-dac502259ad0.jpg

该脚本最多写入四行 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 卡损坏,需要重新安装镜像,这时就可以启用备份的资料

待命

30b08e44-5be8-11ed-a3b6-dac502259ad0.jpg

当树莓派尝试从 weather.org 更新数据时,会时常发生错误。当网站未返回机场数据,或输入的机场后当前未提供 METAR 数据,或机场 ID 未被识别时,将显示错误。

一分钟后它会再次尝试获取数据。在大多数情况下,它将成功接收数据,然后正确显示。

如果多次尝试后显示屏没有更新,请检查 WiFi 网络是否正常。

错误发生

30c442b8-5be8-11ed-a3b6-dac502259ad0.jpg

大多数其他的错误,在发出“发生错误”的消息提示时会与错误描述一起显示。这些将比无法从互联网访问数据更为严重。请参考以下内容,以便在相应的情况下对其进行调试。

网络界面未加载
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/


审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 显示器
    +关注

    关注

    21

    文章

    4970

    浏览量

    139926
  • 树莓派
    +关注

    关注

    116

    文章

    1706

    浏览量

    105608

原文标题:树莓派+墨水屏 DIY METAR 显示器

文章出处:【微信号:趣无尽,微信公众号:趣无尽】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    键盘就是电脑,树莓500来了!

    树莓基金会在昨天发布了树莓500(Raspberry Pi 500)键盘主机以及树莓官方
    发表于 12-13 13:52

    树莓传感器使用方法 树莓 Raspberry Pi 4优缺点

    树莓传感器使用方法 树莓(Raspberry Pi)是一款由英国树莓基金会开发的小型单板计
    的头像 发表于 12-06 10:35 344次阅读

    ARM开发板与树莓的比较

    处理 ARM开发板通常采用不同的ARM处理,如Cortex-A系列、Cortex-M系列等,而树莓则主要使用博通的ARM处理
    的头像 发表于 11-05 11:11 405次阅读

    什么是树莓树莓是什么架构的

    什么是树莓 树莓(Raspberry Pi,简写为RPi,别名为RasPi/RPI)是由英国“Raspberry Pi 慈善基金会”开发的一款为学习计算机编程教育而设计的微型电脑。
    的头像 发表于 10-22 17:33 783次阅读

    树莓和单片机的优缺点是什么

    )接口,树莓可以连接各种传感、执行和其他外围设备。 易于编程 :树莓支持多种编程语言,如
    的头像 发表于 08-30 18:21 1618次阅读

    树莓搜不到wifi是人为修改的吗

    树莓(Raspberry Pi)是一款由英国树莓基金会开发的信用卡大小的单板计算机,广泛应用于教育、DIY项目和物联网等领域。然而,有些
    的头像 发表于 08-30 17:36 1149次阅读

    树莓4B的WiFi配置过程

    和需求。 一、准备工作 在开始配置WiFi之前,请确保你已经拥有了以下物品: 树莓4B 适用的电源适配器 装有Raspbian或其他兼容操作系统的SD卡 无线网络名称(SSID)和密码 (可选)键盘、鼠标和显示器,用于通过GU
    的头像 发表于 08-30 17:10 1803次阅读

    树莓装ubuntu和raspbian哪个更好

    版本,包括桌面版、服务版和物联网版等,适用于各种场景。 Raspbian是专为树莓开发的Linux发行版,由树莓
    的头像 发表于 08-30 15:41 1276次阅读

    开源DIY!基于树莓+墨水 DIY METAR 显示器

    MAKER:markyharris 这款复古的 METAR(航空例行天气报告)三色墨水显示器,不仅怀旧感十足,还可以同时显示十多种信
    发表于 08-26 11:04

    树莓5,Raspberry Pi 5 评测

    的B+改进设计,但仔细看!“极为先进”的3.5毫米的音视频插孔已经消失了,所以本代树莓没有模拟视频/音频接口。话虽如此,自树莓 3以来我们就没有使用过那个插孔了
    发表于 06-19 14:51

    精选推荐!看大佬用树莓4做个迷你版PS5

    为了搭配这个迷你游戏主机,作者还制作了一个小型显示器,使用了5英寸的树莓显示屏。这只是一个有趣的小项目,但你也可以将它连接到任何你喜欢的显示
    发表于 05-13 10:24

    【米尔-瑞米兼容树莓扩展模块-试用体验】用视频来了解这块生态板_米尔-瑞米兼容树莓扩展模块

    今天为大家展示一下初始开发板_米尔-瑞米兼容树莓扩展模块, 米尔-瑞米兼容树莓扩展模块介
    发表于 04-29 11:51

    【米尔-瑞米兼容树莓扩展模块-试用体验】初始开发板_米尔-瑞米兼容树莓扩展模块

    支持摄像头接口(MIPI-CSI/Parallel-IF)、显示器接口(MIPI-DSI/Parallel-IF)、USB2.0、UART、CAN接口、千兆以太网接口等,特别适用于入门级工业人机界面
    发表于 04-29 11:42

    【开源作品】基于树莓4B、ESP32制作的桌面机器人、气象站、立方光!

    BME280 传感: 第 1 步:Inkplate6 彩色电子纸显示屏 这是一个6英寸的彩色电子纸显示板。我已经做了十多年了,我对电子墨水技术及其用途很着迷。如果您不熟悉它,电子
    发表于 03-05 16:52

    树莓主板如何连接电脑

    树莓派到电脑之前,我们需要准备一些材料。以下是所需材料的列表: 一台树莓主板:确保你有一台可用的树莓主板。
    的头像 发表于 01-07 15:40 1939次阅读