树莓派 zero w 添加微雪墨水屏 显示天气

初始化树莓派 zero

树莓派历史版本(http://downloads.raspberrypi.org/raspbian/images/ 或者 http://downloads.raspberrypi.org/raspbian_lite/images/)网站下载树莓派系统,我这里下载的是 raspbian-2019-04-09 对应 Debian 9 的系统,再往后的版本都是以 Debian 10 作为基础的系统了。
这里建议下载该版本,因为这个版本的 python 是 3.5 的版本,微雪的电子屏驱动 demo 要求 python 3.6 以下(应该是这样,我对这方面不是很了解)所以这个版本好弄一点。
下载后通过 Raspberry Pi Image 这个程序烧录到 SD 卡里面即可。Raspberry Pi Image 官网下载就好。

联网

树莓派 zero w 没有有线网接口,但是有 wifi 和蓝牙,所以让其开机自动连接 wifi,然后通过 ssh 连接即可。

1.在树莓派 zero w 的 /boot 目录下新建 ssh 文件。名字就是 ssh,不需要填写任何内容
2.新建 wpa_supplicant.conf 文件,写入以下内容:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=CN
network={
  ssid="wifi名称"
  psk="wifi密码"
}

network={
  ssid="第二个wifi名称"
  psk="第二个wifi密码"
}

初始化配置

0.ssh登录
树莓派启动后,我们通过连接的路由器找到树莓派的 IP 地址,然后 ssh 连接上去。(或者安装 bonjure 后,raspberrypi.local 即为树莓派的 ip 地址)
初始账号是:pi raspberry

1.更换国内源

修改 /etc/apt/sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi

修改 /etc/apt/sources.list.d/raspi.list
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui


sudo apt-get update && upgrade

运行微雪 demo

我这里使用的是微雪2.13英寸的墨水屏,分辨率是 122x250 支持局部刷新,官方教程地址:https://www.waveshare.net/wiki/2.13inch_e-Paper_HAT

1.开启SPI接口

sudo raspi-config
选择Interfacing Options -> SPI -> Yes 开启SPI接口

sudo reboot

2.安装库
安装BCM2835

wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.68.tar.gz
tar zxvf bcm2835-1.68.tar.gz 
cd bcm2835-1.68/
sudo ./configure && sudo make && sudo make check && sudo make install

安装wiringPi

sudo apt-get install wiringpi
gpio -v  ## 显示 2.50

2019年5月之后的系统,需要 2.52 的 gpio,使用 apt-get 无法获取,需要手动升级。

wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb

安装Python函数库

sudo apt-get update
sudo apt-get install python3-pip
sudo apt-get install python3-pil
sudo apt-get install python3-numpy
sudo pip3 install RPi.GPIO
sudo pip3 install spidev

这里我花费了很久才解决 python 库的安装,踩了如下坑:
1.python3-numpy 只支持 python3.6 以下版本,我第一次安装了树莓派最新的 os,python 是 3.7 的,无法安装这个库,使用 pip 安装后 demo 程序报各种缺少依赖,无奈放弃。安装了 raspbian-2019-04-09 版本的 os,python 是 3.5 的。
2.使用了 raspbian-2019-04-09 的 os 后 python3-pip 无法安装,缺少依赖,于是手动到官网下载了 pip3。
3.spidev 安装失败,缺少依赖。先安装 python3-dev(sudo apt-get install python3-dev) 后安装成功。
由于我是一个 Java 开发者,对 python 不是很熟悉,上面的几个坑懂 python 的应该不会遇到。

下载官方 demo

sudo git clone https://github.com/waveshare/e-Paper
cd e-Paper/RaspberryPi_JetsonNano/

运行测试程序

cd ~/e-Paper/RaspberryPi_JetsonNano/python/examples
python3 epd_2in13_V2_test.py

我购买的是微雪2.13inch e-Paper HAT V2 的版本,所以运行这个测试案例即可。

开发程序

稍微在官网的 demo 上修改下就可以开发自己想要的程序了,说白了就是画图嘛,源码放在 github 上了。

定时刷新

定时让屏幕刷新,我使用的是系统的 cron。

service cron start
vim /etc/rsyslog.conf ## 取消 cron.* 的注释,开启 cron 日志
crontab -e
0 * * * *  cd ~/e-Paper/RaspberryPi_JetsonNano/python/examples && python3 weather.py >> /home/pi/cron.log 2>&1

我得程序名称为 weather.py 每小时执行一次,并把执行日志记录在 /home/pi/cron.log 文件中。

参考资料:
https://zhuanlan.zhihu.com/p/58719487
https://www.linuxprobe.com/linux-crontab.html
https://blog.csdn.net/slz0813/article/details/82961906
https://www.cnblogs.com/determined/p/11984203.html
https://www.cnblogs.com/uestc-mm/p/11450570.html

posted @ 2021-01-04 09:49  LiuChengloong  阅读(1437)  评论(0编辑  收藏  举报