Pantalla OLED al cap de l'IoT-Vertebrae
La revisió el 12:09, 10 maig 2024 per Jordi Binefa (discussió | contribucions)
A partir de la versió 1.1 del cap de l'IoT-Vertebrae s'ha afegit un connector per a posar una pantalla OLED emprant el bis I2C
Contingut
Preparació del programari necessari
- Actualització de paquets
sudo apt install python3-dev python3-pip python3-numpy libfreetype6-dev libjpeg-dev build-essential sudo apt install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev libportmidi-dev sudo apt install python3-smbus i2c-tools python3-pil python3-setuptools python3-rpi.gpio python3-venv sudo apt install libxml2-dev libxmlsec1-dev sudo apt install -y python3-pil libjpeg-dev zlib1g-dev python3-av sudo apt install -y libfreetype6-dev liblcms2-dev libopenjp2-7 libtiff5 -y sudo apt install -y libfreetype6-dev liblcms2-dev libopenjp2-7 libtiff6 -y
- Creació d'un entorn virtual de Python independent del principal:
cd .. mkdir oled-screen cd oled-screen/ python3 -m venv venv source venv/bin/activate pip3 install --upgrade pip python -m pip install --upgrade pip pip install PEP668 pip install --upgrade pip setuptools wheel sudo -H pip install psutil python -m pip install psutil
- Descàrrega dels exemples de rm-hull a GitHub:
git clone https://github.com/rm-hull/luma.examples.git cd luma.examples/ sudo -H pip install -e . python -m pip install --upgrade luma.oled
- Prova d'alguns exemples
cd examples/ python 3d_box.py python crawl.py python sys_info_extended.py
Pantalla OLED com a servei
Arxiu oled_head.service
Feu un arxiu anomenat oled_head.service amb aquest contingut
[Unit] Description=Oled IoT-Vertebrae Head Service Wants=network-online.target After=network-online.target [Service] Type=simple # Restart=always ExecStart=/home/pi/codis/oled-screen/venv/bin/python /home/pi/codis/luma.examples/examples/sys_info_extended.py [Install] WantedBy=multi-user.target
La ruta de l'intèrpret d'entorn /home/pi/codis/oled-screen/venv/bin/python ha de coincidir amb la vostra.
La ruta de /home/pi/codis/luma.examples/examples/sys_info_extended.py ha de coincidir amb la vostra.
Activació del servei
- Copieu l'arxiu oled_head.service a /etc/systemd/system/
sudo cp oled_head.service /etc/systemd/system/
La ruta absoluta serà: /etc/systemd/system/oled_head.service
- Recarregueu els serveis:
sudo systemctl daemon-reload
- Feu que el servei s'executi quan la Raspberry Pi es posi en marxa. Degut a l'opció Wants d'aquest arxiu, es farà l'execució (de l'opció ExecStart) un cop s'hagi aconseguit una IP:
sudo systemctl enable oled_head.service
- Per a posar en marxa el servei, sense haver de reiniciar la Raspberry:
sudo systemctl start oled_head.service
- Per a aturar el servei:
sudo systemctl stop oled_head.service
- Per a que el servei no s'engegui al reiniciar la Raspberry (per si voleu desfer l'activació quan arrenca la Raspberry Pi):
sudo systemctl disable oled_head.service