好不容易再次拿到了一块Nokia 5110
,在此在缅怀一下硬件巨人诺基亚
。
NOKIA 5110是一款基于图形显示的LCD屏,并且有很多的应用。使用的PCD8544控制器,NOKIA 3110用的也是这款控制器,PCD8554是一款低功耗的CMOS LCD控制器,用于驱动48行84列的图形显示,并且采用串行总线接口与微控制器相连,大大减少了外围控制线的数量,在使用时十分的方便,而且相对于LCD1602、LCD12864都有着自己的独特优势。
NOKIA5110 的LCD 控制芯片是PCD8544
Github 上有这样一个用于Nokia 5110的驱动。https://github.com/rm-hull/pcd8544
硬件连接图如示下所:
编译需要的
$ sudo apt-get install zlibc libpng3 libfreetype6 libfreetype6-dev python-pip
$ sudo pip install pillow
之前没注意到这里报错了,补上
Traceback (most recent call last):
File "showip.py", line 1, in
import pcd8544.lcd as lcd
File "/usr/local/lib/python2.7/dist-packages/pcd8544/lcd.py", line 4, in
import wiringPy
ImportError: No module named wiringPy
1.安装依赖
sudo apt-get install python-dev libi2c-dev
2.Clone
git clone https://github.com/rm-hull/wiringPi
3.Build
$ cd ~/wiringPi
$ ./build clean
$ ./build
$ git clone https://github.com/rm-hull/pcd8544
$ cd pcd8544
$ python setup.py clean build
$ sudo python setup.py install
官方提供了一些库,在samples
目录下
$ cd examples
$ sudo ./alphabet-text.py
而这里要做的是用来显示IP
代码如下所示:
import pcd8544.lcd as lcd
import time, os, sys
import subprocess
if not os.geteuid() == 0:
sys.exit('Script must be run as root')
ON, OFF = [1, 0]
arg='ip route list'
p=subprocess.Popen(arg,shell=True,stdout=subprocess.PIPE)
data = p.communicate()
split_data = data[0].split()
ipaddr = split_data[split_data.index('src')+1]
while(True):
lcd.init()
lcd.cls()
lcd.backlight(ON)
lcd.define_custom_char([0x30,0x2c,0x66,0x6c,0x30])
lcd.text(ipaddr)
time.sleep(100)
似乎在这里time.sleep()
是必须的。
最后效果如下所示:
添加到定时执行crontab
$crontab -e
添加一行
@reboot /home/pi/ip.sh
添加ip.sh
脚本
sudo python ipshow.py
围观我的Github Idea墙, 也许,你会遇到心仪的项目