Com connectar-hi pantalles OLED SSD1306 (128x64)
Preparació prèvia a la instal·lació
Activeu l'I2C i la comunicació SSH fent servir raspi-config:
pi@raspberrypi:~ $ sudo raspi-config
Opció Interfacing Options:
5 Interfacing Options Configure connections to peripherals P2 SSH Enable/Disable remote command line access to your Pi using SSH P5 I2C Enable/Disable automatic loading of I2C kernel module
Instal·leu els paquets python-smbus i i2c-tools:
pi@raspberrypi:~ $ sudo apt-get install -y python-smbus i2c-tools
Reinicieu la Raspberry Pi. Un cop reiniciada, feu servir l'eina i2cdetect per a detectar els dispositius connectats al bus I2C (1) de la Raspberry Pi:
pi@raspberrypi:~ $ sudo i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
Instal·leu els paquets python3, python3-pip i python-libtiff:
pi@raspberrypi:~ $ sudo apt install python3 python3-pip python-libtiff
Instal·leu les dependències libopenjp2-7-dev i libtiff5
pi@raspberrypi:~ $ sudo apt install libopenjp2-7-dev libtiff5
Instal·leu les biblioteques de Python3 pillow i RPi.GPIO
pi@raspberrypi:~ $ pip3 install pillow pi@raspberrypi:~ $ pip3 install RPi.GPIO
Per a que ho pugui executar l'usuari primari (root):
pi@raspberrypi:~ $ sudo pip3 install pillow pi@raspberrypi:~ $ sudo pip3 install RPi.GPIO
Instal·leu el paquet git:
pi@raspberrypi:~ $ sudo apt install git
Per a que corri amb sudo cal:
$ sudo pip3 install pillow $ sudo pip3 install RPi.GPIO
És convenient fer la instal·lació del paquet screen:
pi@raspberrypi:~ $ sudo apt install screen
Instal·lació
Feu dos directoris:
$ cd ~ $ mkdir code $ mkdir logs
Cloneu i instal·leu la biblioteca de Python d'Adafruit per a la pantalla OLED SSD1306:
$ cd code $ git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git $ cd Adafruit_Python_SSD1306 $ sudo python3 setup.py install
Editeu l'exemple per a seleccionar la pantalla 128x64 en comptes de la 128x32:
$ nano /home/pi/code/Adafruit_Python_SSD1306/examples/stats.py
# 128x32 display with hardware I2C: # disp = Adafruit_SSD1306.SSD1306_128_32(rst=RST) # 128x64 display with hardware I2C: disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)
Proveu el funcionament:
$ python3 /home/pi/code/Adafruit_Python_SSD1306/examples/stats.py
Execució des de l'arrencada
Cal que feu un arxiu de guió (script) que faci de llançadora del programa que volem executar quan s'iniciï la Raspberry Pi
$ cd ~ $ cd code $ mkdir bbt $ nano launcher.sh
Una proposta de codi de l'arxiu de guió per la llançadora:
#!/bin/sh # launcher.sh cd / python3 /home/pi/code/Adafruit_Python_SSD1306/examples/stats.py & cd /
El símbol et (&) assegura l'execució en segon pla. Altrament l'arrencada es quedaria clavada fins que no finalitzés l'execució del programa.
Doneu permisos d'execució al guió que fa de llançadora:
$ chmod +x launcher.sh
Editeu amb el nano el crontab de l'usuari primari (root):
$ sudo EDITOR=nano crontab -e
I afegiu la llançadora a l'inici:
@reboot sh /home/pi/code/bbt/launcher.sh >/home/pi/logs/cronlog 2>&1
Quan reinicieu la Raspberry, i després de tot el procés d'arrencada, us sortirà la informació per la pantalla OLED
Explicació parcialment basada en aquesta pàgina: Using an I2C OLED Display Module with the Raspberry Pi
Alternativa d'explicació: SSD1306 OLED Displays with Raspberry Pi and BeagleBone Black