初始化樹莓派 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