Configurar Raspberry Pi para leer sensores
Instalación y del SO
Todo lo que se va a comentar aquí lo tienes en inglés en raspberrypi.org. Lo primero que necesitamos es descargar e instalar Raspberry Pi Imager. Al abrir nos encontramos con un selector de sistemas operativos y la ruta del microSD. Le damos a "choose OS".

Ahora escogemos el sistema operativo. Para ahorrar espacio yo voy a escoger la instalación básica llamada "Raspberry Pi OS (32-bit)", es la predeterminada que nos ofrece el instalador. En esta distribución disponemos de interfaz básica. En el caso de que se quiera otra distribución en la segunda opción del selector de sistemas operativos "Raspberry Pi OS (other)" se puede encontrar el SO lite que es sin interfaz gráfica la cual ocupa menos de la mitad y el SO full que contiene todos los programas básicos para programar.

Teniendo conectado la microSD elegimos la segunda opción "Choose SD card" y le damos a la microSD. Después le das a "Write".

Una vez termina la instalación cerramos el programa y extraemos la microSD para ponerla en la Raspberry Pi. Lo conectamos a la corriente y le ponemos un monitor por HDMI, un teclado, ratón y un cable de internet.
Al conectarlo a la corriente empezará a ejecutarse sólo. Tardará en arrancar. Lo configuramos todo a nuestro gusto y ya podemos empezar a usar la Raspberry Pi.
Habilitar I2C y SPI
Una vez podemos movernos libremente por el SO lo que vamos a hacer es habilitar las comunicaciones I2C y SPI.
- I2C:es un puerto y protocolo de comunicación serial, define la trama de datos y las conexiones físicas para transferir bits entre 2 dispositivos digitales. El puerto incluye dos cables de comunicación, SDA y SCL. Además, el protocolo permite conectar hasta 127 dispositivos esclavos con esas dos líneas.
- SPI: (Serial Peripheral Interface) es un estándar de comunicaciones, usado principalmente para la transferencia de información entre circuitos integrados en equipos electrónicos.
Para poder usar instrucciones I2C ejecutamos el comando sudo apt-get install -y i2c-tools
. Después usamos sudo raspi-config
lo cual nos abrirá un menú gráfico con las opciones de configuración de la raspberry pi vamos a "opciones de interfaz>I2C".


Nos preguntará si queremos habilitarlo y le diremos que sí. Reiniciamos la raspberry y comprobamos si funciona. sudo i2cdetect -y 1
lo cual verifica la instalación de I2c. Puede que salgan ciertos números por la tabla, eso quiere decir que está comunicándose con algún sensor si lo tienes conectado. Lo importante es que aparezca la tabla.
pi@raspberrypi ~ $ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Ahora verificamos la instalación de SPI. Para ello ejecutamos en el terminal el comando ls -l /dev/spidev*
. Si lo hemos hecho bien nos aparecerá lo siguiente:
pi@raspberrypi ~ $ ls -l /dev/spidev*
crw-rw---- 1 root spi 153, 0 may 6 09:17 /dev/spidev0.0
crw-rw---- 1 root spi 153, 1 may 6 09:17 /dev/spidev0.1
Con esto tenemos la configuración básica de la raspberry Pi.
Instalación y configuración de Python
Vamos a empezar con la instalación y configuración de Python para poder trabajar con todos los sensores que vamos a usar.
Para instalar python simplemente tenemos que ejecutar sudo apt-get install python3
en el terminal.
Ahora vamos a instalar las librerías necesarias para nuestro proyecto. Pongo los comandos y para qué sirve cada uno:
sudo pip3 install smbus
: Nos permite la comunicación mediante I2C.sudo pip3 install Adafruit-Blinka
: Con este podremos usar fácilmente los sensores de adafruit o el mismo modelo de otras marcas. Este paquete también instalaadafruit-pureio
,spidev
yAdafruit-GPIO
que son las librerías que necesita para funcionar.sudo pip3 install gpiozero
: Es una interfaz simple para dispositivos GPIO con Raspberry Pi.sudo pip3 install apscheduler
: Nos ofrece un scheduler más avanzado que el proporcionado de forma nativa por Python.sudo pip3 install Adafruit_CircuitPython_ADS1x15
: Con esto podremos comunicarnos perfectamente con el ADC que vamos a usar y poder leer así las señales de los sensores analógicos.sudo pip3 install Adafruit-BMP
: Lo necesitaremos para no escribir tanto cuando configuremos el sensor BMP180.
Con esto tenemos todo lo necesario para poder empezar a trabajar con los sensores.