Índex
A veces, cuando utilizamos nuestra placa openmote B, tenemos la necesidad de conectar sensores externos a nuestro dispositivo.
En esta entrada del blog, aprenderemos lo siguiente:
Primero, cómo conectar un sensor Dallas a nuestra placa openmote.
En segundo lugar, cómo descargar los archivos necesarios para programar nuestro dispositivo openmote B.
Y en tercer lugar, cómo visualizar las temperaturas que el sensor Dallas envía a la placa openmote B.
Requisitos
1. Cómo conectar un sensor DALLAS a la placa Openmote B
Para obtener la temperatura de nuestro sensor Dallas, primero tenemos que conectarlo como se muestra en la siguiente imagen.
2. Cómo descargar los archivos de Openmote B
a. Ahora, haz clic en el último openmote-fw.tar.bz2 de here >>
b. Una vez descargado, descomprima el paquete.
tar -xvf openmote-fw.tar.bz2
c. Entra en el directorio y lista los archivos para ver el contenido:
cd openmote-fw/
ls
d. Si se listan los archivos de prueba, se verán todas las pruebas que se pueden programar a tu Openmote B:
3. Cómo obtener la temperatura del sensor Dallas con la placa Openmote B
Para obtener la temperatura de nuestro sensor, primero necesitaremos instalar docker-compose. Por favor, instálalo desde here >>
Luego, dentro de la carpeta test, está la carpeta llamada test-ds18b20, que será el proyecto que vamos a ejecutar.
Así, desde la carpeta openmote-fw/, ejecutaremos el siguiente comando:
docker-compose run --rm openmote test-ds18b20
Por último, instala la pantalla si no la tienes:
sudo apt update
sudo apt install screen
Y comprueba la temperatura que te da tu sensor Dallas ejecutando el siguiente comando:
screen /dev/ttyUSB1 115200
Salir de la pantalla pulsando Ctrl+a + \
Q&A
1. ¿Cómo puedo inspeccionar el código que se está ejecutando?
Puedes verlo en la siguiente ruta: openmote-fw/test/test-ds18b20/src/main.cpp
2. ¿Qué pasa si obtengo el siguiente error "ERROR: Timeout waiting for ACK/NACK after 'Synch (0x55 0x55)'" la primera vez que intento subirlo?
Vuelve a subirlo. Eso ocurre a veces cuando lo haces por primera vez. Debería funcionar la próxima vez.
3. ¿Cuál es la salida esperada en el terminal?
Algo así:
Creating openmote-fw_openmote_run ... done
Running SCons with 8 threads.
Building project=test-ds18b20 for board=openmote-b using platform=cc2538 and toolchain=arm-none-eabi.
Parsing folder=board.
Parsing folder=drivers.
Parsing folder=freertos.
Parsing folder=sys.
Parsing folder=platform.
Parsing folder=test.
arm-none-eabi-size build/openmote-b/test/test-ds18b20/test-ds18b20.elf
OpenMoteCC2538_bootload(["build/openmote-b/test/test-ds18b20/test-ds18b20.phonyupload"], ["build/openmote-b/test/test-ds18b20/test-ds18b20.hex"])
Starting bootloading on /dev/ttyUSB1
text data bss dec hex filename
29196 468 8192 37856 93e0 build/openmote-b/test/test-ds18b20/test-ds18b20.elf
Opening port /dev/ttyUSB1, baud 400000
Reading data from build/openmote-b/test/test-ds18b20/test-ds18b20.hex
Firmware file: Intel Hex
Connecting to target...
CC2538 PG2.0: 512KB Flash, 32KB SRAM, CCFG at 0x0027FFD4
Primary IEEE Address: 00:12:4B:00:19:35:68:7E
Performing mass erase
Erasing 524288 bytes starting at address 0x00200000
Erase done
Writing 524256 bytes starting at address 0x00200000
Write 232 bytes at 0x0027FEF88
Write done
Done bootloading on /dev/ttyUSB1
4. ¿Por qué conectamos el cable de datos amarillo del sensor de temperatura de Dallas al pin PB0 del openmote B?
Porque lo asignamos en el código por defecto. Como puedes ver en la imagen de abajo, el puerto y el pin de un cable están asignados a la base GPIO B y al pin GPIO 0, respectivamente. Si cambiamos el número 0 por el número 1, podrías programarlo igualmente, y podrías trabajar con el puerto PB1, y así.
Cómo conectar un sensor Dallas a la placa OpenMote B