Skip to main content

Sensor IMU en Wio Terminal

En esta sección, detallaremos cómo funcionan los sensores, cómo obtener datos del sensor usando el Wio Terminal y cómo enviar los datos utilizando el Wio Terminal y el Grove - Wio-E5.

Ampliable a Sensores Industriales

Con el controlador SenseCAP S2110 y el registrador de datos SenseCAP S2100, puedes convertir fácilmente los módulos Grove en sensores LoRaWAN®. Seeed no solo te ayuda con la creación de prototipos, sino que también te ofrece la posibilidad de expandir tu proyecto con la serie de robustos sensores industriales SenseCAP.

La carcasa con protección IP66, la configuración por Bluetooth, la compatibilidad con la red global LoRaWAN®, la batería incorporada de 19 Ah y el potente soporte desde la app hacen de los SenseCAP S210x la mejor opción para aplicaciones industriales. Esta serie incluye sensores para humedad del suelo, temperatura y humedad del aire, intensidad lumínica, CO₂, conductividad eléctrica (EC) y una estación meteorológica 8 en 1. Prueba los últimos SenseCAP S210x para tu próximo proyecto industrial exitoso.

SenseCAP Industrial Sensor
S2100
Data Logger
S2101
Air Temp & Humidity
S2102
Light
S2103
Air Temp & Humidity & CO2
S2104
Soil Moisture & Temp
S2105
Soil Moisture & Temp & EC
S2110
LoRaWAN® Controller
S2120
8-in-1 Weather Station

Working Principle of Sensors

In this section we need to learn to use the IMU sensor built into the Wio Terminal.

The LIS3DHTR acceleration sensor is a piezoelectric sensor, which converts the acceleration of the object to be measured into the change of the voltage of the sensing unit, and then converts the value of the change of the sensing unit into a voltage value through a conversion circuit, followed by the corresponding amplification of the signal and the filtering process to process the analog quantity into a suitable and stable output signal, at which time the output signal is a voltage value, and finally converted into a digital signal through an ADC converter.

For more information on the use of IMU sensors its reference here.

Materials Required

Wio TerminalGrove - Wio-E5

Preparación Preliminar

Conexión

En esta rutina, necesitamos conectarnos a una puerta de enlace LoRa® cercana con la ayuda del Grove LoRa® E5. Debemos configurar el puerto Grove en el lado derecho del Wio Terminal como un puerto serial por software para recibir comandos AT.

note

¿Por qué no usar el puerto Grove del lado izquierdo?

La interfaz Grove del lado izquierdo es compatible con IIC, y usamos la interfaz IIC para la mayoría de los sensores, por lo que conservarla es una mejor solución.

Preparación del Software

Paso 1. Instala el software de Arduino.

Paso 2. Lanza la aplicación de Arduino.

Paso 3. Añade el Wio Terminal al IDE de Arduino.

Abre el IDE de Arduino, haz clic en Archivo > Preferencias y copia la siguiente URL en Gestor de URLs Adicionales de Tarjetas:

https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json

Haz clic en Herramientas > Placa > Gestor de tarjetas y busca Wio Terminal en el gestor de tarjetas.

Paso 4. Selecciona tu placa y puerto

Debes seleccionar la entrada en el menú Herramientas > Placa que corresponda a tu Arduino. Selecciona Wio Terminal.

Selecciona el dispositivo serial de la placa Wio Terminal desde el menú Herramientas -> Puerto. Es probable que sea COM3 o superior (COM1 y COM2 suelen estar reservados para puertos seriales de hardware). Para averiguarlo, puedes desconectar tu Wio Terminal y volver a abrir el menú; la entrada que desaparezca será tu placa. Vuelve a conectarla y selecciona ese puerto.

tip

Para usuarios de Mac, será algo como /dev/cu.usbmodem141401.

Si no puedes cargar el sketch, lo más probable es que el IDE de Arduino no haya podido poner el Wio Terminal en modo bootloader (porque el MCU se detuvo o tu programa está manejando el USB). Una solución es poner el Wio Terminal en modo bootloader manualmente.

Paso 5. Descarga la librería Grove - Wio-E5

Visita el repositorio Disk91_LoRaE5 y descarga todo el repositorio en tu computadora local.

Paso 6. Añadir librerías al IDE de Arduino

Ahora, la librería del Acelerómetro Digital de 3 Ejes puede instalarse en el IDE de Arduino. Abre el IDE de Arduino y haz clic en Programa -> Incluir Librería -> Añadir Biblioteca .ZIP, y selecciona el archivo Disk91_LoRaE5 que acabas de descargar.

Obtener el valor del sensor IMU integrado del Wio Terminal

Paso 1. Descargar la librería del sensor IMU

Visita el repositorio Seeed_Arduino_LIS3DHTR y descarga todo el repositorio a tu computadora local.

Paso 2. Añadir la librería al IDE de Arduino

Ahora, la librería del Acelerómetro Digital de 3 Ejes puede instalarse en el IDE de Arduino. Abre el IDE de Arduino y haz clic en Programa -> Incluir Librería -> Añadir Biblioteca .ZIP, y selecciona el archivo Seeed_Arduino_LIS3DHTR que acabas de descargar.

Paso 3. Obtener los datos de 3 ejes del sensor IMU

Este repositorio demuestra cómo usar el sensor IMU integrado como un componente dentro del Wio Terminal. Usando las funciones de la librería getAccelerationX(), getAccelerationY() y getAccelerationZ(), puedes obtener directamente los valores de desplazamiento del sensor IMU en los ejes X, Y y Z. Estos tres valores pueden ser números flotantes positivos o negativos.

#include"LIS3DHTR.h"
LIS3DHTR<TwoWire> lis;

void setup() {
Serial.begin(115200);
lis.begin(Wire1);

if (!lis) {
Serial.println("ERROR");
while(1);
}
lis.setOutputDataRate(LIS3DHTR_DATARATE_25HZ); //Data output rate
lis.setFullScaleRange(LIS3DHTR_RANGE_2G); //Scale range set to 2g
}

void loop() {
float x_values, y_values, z_values;
x_values = lis.getAccelerationX();
y_values = lis.getAccelerationY();
z_values = lis.getAccelerationZ();

Serial.print("X: "); Serial.print(x_values);
Serial.print(" Y: "); Serial.print(y_values);
Serial.print(" Z: "); Serial.print(z_values);
Serial.println();
delay(50);
}

Abre el monitor serial del IDE de Arduino, selecciona una velocidad de baudios de 115200 y observa el resultado.

Enviar datos mediante Grove - Wio-E5

Combinamos el código anterior del Grove - Wio-E5 para conectarnos a la red LoRa®. Utilizando comandos AT es posible enviar el valor del sensor IMU a través de la red LoRa®.

Como ya vimos en el código de la sección anterior para obtener los valores del sensor IMU, estos valores corresponden a tres números flotantes separados que pueden tener valores tanto positivos como negativos, y con precisión de hasta dos decimales.

Debido a las limitaciones al enviar datos, primero debemos resolver el problema de convertir los números flotantes en enteros del lado del transmisor, para garantizar que los datos enviados sean enteros. Por lo tanto, multiplicamos los datos de los tres ejes por 100.

De este modo, determinamos el contenido, tamaño y formato de los datos a enviar mediante comandos AT. Podemos establecer un arreglo lo suficientemente grande, almacenar en él las cadenas que deseamos enviar y, finalmente, utilizar la función send_sync() para transmitir el arreglo.

El pseudocódigo para esta idea es aproximadamente el siguiente.

  ......
float x_values, y_values, z_values;
x_values = lis.getAccelerationX();
y_values = lis.getAccelerationY();
z_values = lis.getAccelerationZ();

int x = x_values*100;
int y = y_values*100;
int z = z_values*100;

static uint8_t data[6] = { 0x00 }; //Use the data[] to store the values of the sensors

data_decord(x, y, z, data);

if ( lorae5.send_sync( //Sending the sensor values out
8, // LoRaWan Port
data, // data array
sizeof(data), // size of the data
false, // we are not expecting a ack
7, // Spread Factor
14 // Tx Power in dBm
)
)
......

Lo siguiente que necesitamos hacer es usar la función begin() para inicializar el Grove - Wio-E5 y la función setup() para configurar la información del triplete del Grove - Wio-E5. Cuando enviamos un mensaje de datos usando la función send_sync(), intentaremos unirnos a la red LoRaWAN® al mismo tiempo, y una vez que se logre la conexión, los datos serán enviados y se devolverá información como la intensidad de señal y la dirección.

Puedes encontrar el ejemplo de código completo aquí.

tip

No recomendamos que subas el código ahora para ver los resultados, ya que en este punto aún no has configurado Helium o TTN, y obtendrás un resultado de "Join failed". Recomendamos que subas este código después de haber completado el capítulo Conexión a Helium o Conexión a TTN para completar el proceso de envío de datos.

Una vez que hayas experimentado y comprendido cómo funciona el sensor IMU y el formato de los datos, continúa con el siguiente paso del tutorial para unirte a LoRaWAN®.

Sección Helium

pir

Introducción a Helium

En este capítulo, presentaremos los controles de la consola de Helium para obtener una primera impresión sobre su funcionamiento.

Ir al capítulo >

pir

Conexión a Helium

Esta sección describe cómo configurar Helium para que los datos del sensor puedan subirse y visualizarse correctamente en la consola.

Ir al capítulo >
Sección TTN

pir

Introducción a TTN

En este capítulo, presentaremos los controles de la consola de TTN para familiarizarte con su entorno.

Ir al capítulo >

pir

Conexión a TTN

Esta sección describe cómo configurar TTN para que los datos del sensor puedan subirse y visualizarse correctamente en la consola.

Ir al capítulo >

Soporte Técnico y Discusión de Producto

¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para atender distintas preferencias y necesidades.

Statement

  • The LoRa® Mark is a trademark of Semtech Corporation or its subsidiaries.
  • LoRaWAN® is a mark used under license from the LoRa Alliance®.
Loading Comments...