Pantalla OLED al cap de l'IoT-Vertebrae

De binefa.com
La revisió el 11:23, 26 ago 2024 per Jordi Binefa (discussió | contribucions)
(dif) ← Versió més antiga | Versió actual (dif) | Versió més nova → (dif)
Salta a la navegació Salta a la cerca

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 bus I2C

Conjunt IoT-Vertebrae amb el cap v1.1

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:
mkdir codis
cd codis
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

Font

Using an I2C OLED Display Module with the Raspberry Pi