Estaba tentado de intercambiar la carcasa de mi Raspberry Pi 4 a la Pi 5, pero mírala…

- 16×2 pantalla LCD de un Arduino Starter Kit
- Programa en C++ con la librería WiringPi
- Carcasa casera
Estaba realmente orgulloso de ella en su momento y fue un buen aprendizaje allá por 2020, pero seguro que lo podía hacer mejor. Seguro que me podía currar un pedazo panel de estado!!
Componentes
- Raspberry Pi (probablemente sirva en cualquiera de ellas)

- Pantalla OLED (RGB de 1.5 pulgadas es ideal)

- PCB placa de prototipos

- Cables

- Material de soldadura

- Carcasa (impresa en 3D o elaborada a mano)


Configuración de software
Configuraré la Raspberry para interactuar con la pantalla usando python, mediante la librería de Adafruit Circuitpython para el controlador SSD1351 de la pantalla:
https://learn.adafruit.com/adafruit-1-5-color-oled-breakout-board/python-wiring-and-setup#setup-3042417
Es tan simple como instalar Circuitpython con el siguiente comando:
sudo pip3 install --upgrade click setuptools adafruit-python-shell build adafruit-circuitpython-rgb-display
Si tienes problemas con tu versión de python para encontrar Circuitpython, incluye --break-system-packages al final. (No romperá nada hoy, pero no te acostumbres a ello...)
sudo pip3 install --upgrade click setuptools adafruit-python-shell build adafruit-circuitpython-rgb-display --break-system-packages
Cableado
Ahora conectaremos la pantalla según las indicaciones del fabricante. La mía es esta de BuyDisplay:
https://www.buydisplay.com/full-color-1-5-inch-arduino-raspberry-pi-oled-display-module-128x128
OLED Display | Raspberry Pi (pin #) |
---|---|
GND | GND (20) |
VCC | 3V3 (17) |
SCL | SPI0 SCLK (23) |
SDA | SPI0 MOSI (19) |
RES | GPIO25 (22) |
DC | GPIO 24 (18) |
CS | SPI0 CE0 (24) |
Usa un sitio como pinout.xyz para encontrar una configuración adecuada para tu cableado.

Estás listo para hacer algunos tests antes de mover tu diseño a la PCB.
Configuración de script
Puedes probar el script demo de Adafruit. Solo asegúrate de escoger la pantalla adecuada y actualiza los cambios en la asignación de pines (usa los números/nombres IO en lugar de los números físicos del pin):
# Configuration for CS and DC pins (adjust to your wiring):
cs_pin = digitalio.DigitalInOut(board.CE0)
dc_pin = digitalio.DigitalInOut(board.D24)
reset_pin = digitalio.DigitalInOut(board.D25)
# Setup SPI bus using hardware SPI:
spi = board.SPI()
disp = ssd1351.SSD1351(spi, rotation=270, # 1.5" SSD1351
cs=cs_pin,
dc=dc_pin,
rst=reset_pin,
baudrate=BAUDRATE
)

Ensamblaje
Aquí están los archivos STL en 3D para este diseño de carcasa:
- Inferior:
rPi5_caseOLED_btm-v1.stl - Superior:
rPi5_caseOLED_top-v2.stl - Marco de pantalla:
rPi5_caseOLED_frame-v1.stl - Soporte de pantalla:
rPi5_caseOLED_support-v1.stl
Ahora pongámoslo todo junto:
- Atornilla el marco a la pantalla
- Suelda los 7 pines de la pantalla a los 7 cables a través de la PCB
- Cablea todas las conexiones a la Raspberry Pi
- Atornilla las partes superiores e inferiores de la carcasa entre sí
- Coloca la pantalla sobre el soporte




Resultado final
He compartido el script que se ve en las imágenes a través de github:
https://github.com/TheRoam/RaspberryPi-SSD1351-OLED
Actualmente muestra:
- Fecha y hora
- Estadísticas del sistema (SO, uso del disco y temperatura de CPU)
- Tiempo local de la World Meteorological Organization (actualizado cada hora)
Y así es como acaba quedando. Mucho mejor verdad?


Como siempre, disfruta cacharreando, y hazme llegar tus comentarios o dudas a través de Twitter!