本文是樹莓派愛好者投稿文章,授權樹莓派愛好者基地發(fā)放沛婴,請勿轉載观堂!否則承擔相應法律責任!
本文作者 簡書號: 一技破萬法 如果對作者有興趣或者對本文有什么異議或者疑問可以與作者聯(lián)系溝通钉蒲。
本文的打賞收入將全部轉給作者切端,同時歡迎各位樹莓派的愛好者在樹莓派愛好者基地投稿彻坛,給大家分享你的好經(jīng)驗和教程G晏洹!昌屉!稿件可以發(fā)送給下面的郵箱钙蒙!讓我們一起共建樹莓派生態(tài)圈!
樹莓派在許多使用場景下并不需要接一臺專用顯示器间驮,如需要查看樹莓派上的一些信息可以通過手機躬厌、電腦登錄到樹莓派上操作,但總歸不夠便利。下面介紹一款oled小屏(SSD1306芯片驅動)可以直插在樹莓派GPIO口上扛施。
淘寶搜索四針oled就可以買到這種小屏幕鸿捧,注意要SSD1306芯片驅動的!8碓匙奴!
1.啟動樹莓派的I2C功能
sudo apt-get install -y python-smbus
sudo apt-get install -y i2c-tools
sudo raspi-config
按照下面的步驟設置開啟i2c功能
重啟樹莓派
sudo reboot
2.安裝Adafruit-SSD1306庫
Adafruit-SSD1306庫是基于Python的OLED庫,可以用于128*64妄荔,128*32像素SSD1306芯片控制的屏幕
sudo python -m pip install --upgrade pip setuptools wheel
如果這一步出錯泼菌,八成是pip的問題,這時候我們可以嘗試卸載重新安裝pip來解決@沧狻;┎!
sudo apt-get remove python-pip python3-pip
sudo apt-get install python-pip python3-pip
然后重新運行上面的代碼篷角,一般就完成了焊刹!
安裝PIL庫,有一些圖片處理的程序會用到這個。
sudo apt-get install python-pil python3-pil
使用pip安裝Adafruit-SSD1306庫
sudo pip install Adafruit-SSD1306
再下載一份包含代碼示例的庫后面用
cd ~
git clone https://github.com/adafruit/Adafruit-Python_SSD1306.git
如果上面pip安裝Adafruit-SSD1306庫遇到網(wǎng)絡問題恳蹲,那么也可以在下載這份代碼之后運行下面的命令安裝
cd Adafruit_Python_SSD1306
sudo python setup.py install
進到示例目錄伴澄,可以看到有一些已經(jīng)準備好了的代碼,后面將屏幕接好之后可以直接運行看效果阱缓。
cd ~/Adafruit_Python_SSD1306/example/
如下圖所示:
3.連接屏幕
對于屏幕的接線非凌,一定不要接錯,樹莓派引腳(所有樹莓派40針引腳都是這樣排列荆针,不需要因為不同版本而改動)如下圖所示:
根據(jù)屏幕 PCB 上引腳的功能標注接到樹莓派上對應的 GPIO 上即可敞嗡。
屏幕 GND 接樹莓派 GND
屏幕 VCC 接樹莓派 3V3
屏幕 SDA 接樹莓派 SDA
屏幕 SCL 接樹莓派 SCL
注意一定不要接反 VCC 和 GND,否則會燒壞屏幕!!!
接上之后通過命令檢測是否識別到i2c設備
sudo i2cdetect -y 1
上圖顯示已連接設備的i2c地址航背,不同的屏幕地址可能不一樣喉悴,通過這個步驟可以確認屏幕是否能用。
注意:如果上述命令不行的話可以使用如下命令
sudo i2cdetect -y 0
4.編程和運行
我們可以先使用示例代碼來進行快速上手玖媚,其中有一個文件名為stats.py的程序箕肃,用來顯示樹莓派的ip,cpuload,內存和磁盤的使用情況。我們先試一下這個程序今魔。
cd ~
sudo cp ~/Adafruit_Python_SSD1306/examples/stats.py ~/
sudo nano stats.py
現(xiàn)在我們需要實際所需的參數(shù)來進行修改勺像,例如SSD1306_128_32代表128*32的分辨率屏幕的初始化方法(一般都是128*64),错森。i2c_address用于配置屏幕的地址吟宦,默認為0x3c。
運行示例代碼涩维,可看到運行效果殃姓。
sudo python stats.py
在代碼中可以讀取其他的信息,假如加上讀取CPU溫度蜗侈,代碼如下:
sudo nano stats.py
然后在while循環(huán)里添加一句
draw.text((x, top+35), "Temp: "+str(get_cpu_temp(), font=font, fill=255)
在oled屏幕中顯示系統(tǒng)時間篷牌,可以定義一個函數(shù),讀取系統(tǒng)的時間踏幻。
def get_Date():
second=t.second+t.microsecond*0.000001
minute=t.minute+second/60.0
hour=t.hour+minute/60.0
y=t.year
m=t.month
d=t.day
return "%d%d%d %d%d%d"%(y,m,d,hour,minute,second)
然后在添加到oled屏幕中娃磺,代碼如下:
draw.text((x,top+45), str(get_Date(t)),font=font,fill=255)
最后生成的結果如下圖所示:
5.設置開機運行
為了讓stats.py能夠開機自動運行,我們可以做下面的配置,這樣我們就可以不用通過工具或路由器去查找樹莓派的IP地址等信息=斜丁M滴浴!
修改/etc/rc.local文件
sudo nano /etc/rc.local
在exit 0前面增加一行:
sudo python /home/pi/stats.py &
6.提高顯示速率(不推薦)
為了更好地顯示性能吆倦,例如顯示動畫時對幀率有要求听诸,可以通過修改下面的參數(shù)將i2c頻率從默認的100khz提升到1mhz.
sudo nano /boot/config.txt
在文末添加一行:
dtparam=i2c_baudrate=1000000
最后再一次感謝這位愛好者的投稿!2显蟆晌梨!感謝你對樹莓派生態(tài)圈以及樹莓派愛好者基地生態(tài)圈的貢獻和支持!P肫蕖仔蝌!