Skip to main content

Sensor de Temperatura y Humedad Grove (SHT40)

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

Actualizable a Sensores Industriales

Con el controlador SenseCAP S2110 y el registrador de datos SenseCAP S2100, puedes convertir fácilmente un sensor Grove en un sensor LoRaWAN®. Seeed no solo te ayuda con la etapa de prototipado, sino que también te ofrece la posibilidad de expandir tu proyecto con la serie SenseCAP de sensores industriales.

La carcasa con certificación IP66, la configuración vía Bluetooth, la compatibilidad con redes LoRaWAN® a nivel mundial, la batería interna de 19 Ah y el sólido soporte desde la app hacen del SenseCAP S210x la mejor opción para aplicaciones industriales. La 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 el nuevo 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

Principio de Funcionamiento de los Sensores

La temperatura en el SHT40 se mide utilizando un método de termopar. Un termopar consta de dos tipos de hilos metálicos de diferentes materiales. Un extremo de los dos hilos está soldado para formar el extremo de trabajo, que se coloca en la zona cuya temperatura se desea medir. El otro extremo se llama extremo libre y se conecta al controlador principal para formar un circuito cerrado. Cuando hay una diferencia de temperatura entre el extremo de trabajo y el extremo libre, aparece un potencial termoeléctrico en el circuito. El cambio en este voltaje se envía al microcontrolador (SCM) a través de un circuito de conversión, y se transforma en una señal que puede ser reconocida por la máquina.

La humedad en el SHT40 se mide utilizando una película de poliamina o acetato (un compuesto altamente fraccionado) depositada sobre dos electrodos conductores. Cuando la película absorbe o pierde agua, cambia la constante dieléctrica entre los dos electrodos, lo que a su vez provoca un cambio en la capacidad del condensador. Este cambio de capacitancia puede ser capturado y convertido mediante circuitos de medición externos, y finalmente se muestra como una señal fácilmente identificable en la salida.

For more information on the use of Grove Temp&Humi Sensor its reference here.

Materials Required

Wio TerminalGrove - Wio-E5Grove Temp&Humi Sensor (SHT40)

Preparación Preliminar

Conexión

En esta rutina, necesitamos conectarnos a una pasarela LoRa® cercana con la ayuda del Grove - Wio-E5. Debemos configurar el puerto Grove del lado derecho del Wio Terminal como un puerto serial por software para recibir comandos AT. El sensor Grove Temp&Humi (en el lado izquierdo) debe conectarse según el siguiente diagrama:

Preparación del Software

Paso 1. Instalar el software de Arduino.

Paso 2. Ejecuta la aplicación de Arduino.

Paso 3. Agrega el Wio Terminal al entorno de Arduino IDE.

Abre Arduino IDE, 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

Luego 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 placa Arduino, en este caso, 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 identificarlo fácilmente, desconecta tu Wio Terminal y vuelve a abrir el menú; la entrada que desaparezca será la de tu placa. Luego vuelve a conectarlo y selecciona ese puerto.

tip

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

Si no puedes subir el programa, generalmente es porque Arduino IDE no logró poner el Wio Terminal en modo bootloader (puede ser que el MCU esté detenido o tu programa esté manipulando el USB). La solución es poner manualmente el Wio Terminal en modo bootloader.

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

Visita el repositorio Disk91_LoRaE5 y descarga el repositorio completo en tu disco local.

Paso 6. Agregar la librería al IDE de Arduino

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

Obtener el valor del Sensor Grove Temp&Humi (SHT40)

Paso 1. Descargar la librería del Sensor Grove Temp&Humi

Visita el repositorio arduino-i2c-sht4x y descarga todo el repositorio a tu disco local.

Visita también el repositorio Sensirion Arduino Core Library y descarga todo el repositorio a tu disco local.

Paso 2. Agregar las librerías al IDE de Arduino

Ahora puedes instalar la librería del sensor Grove Temp&Humi al entorno de desarrollo Arduino IDE. Abre el IDE de Arduino, haz clic en Programa -> Incluir Librería -> Añadir Biblioteca .ZIP, y selecciona el archivo arduino-i2c-sht4x que acabas de descargar.

Paso 3. Obtener los datos de temperatura y humedad desde el SHT40

Este repositorio nos muestra cómo obtener los datos de temperatura y humedad. En el código, se utiliza la función measureHighPrecision() para obtener la información de temperatura y humedad, la cual es positiva y en formato de número flotante (float).

#include <Arduino.h>
#include <SensirionI2CSht4x.h>
#include <Wire.h>

SensirionI2CSht4x sht4x;

void setup() {

Serial.begin(115200);
while (!Serial) {
delay(100);
}

Wire.begin();

uint16_t error;
char errorMessage[256];

sht4x.begin(Wire);

uint32_t serialNumber;
error = sht4x.serialNumber(serialNumber);
if (error) {
Serial.print("Error trying to execute serialNumber(): ");
errorToString(error, errorMessage, 256);
Serial.println(errorMessage);
} else {
Serial.print("Serial Number: ");
Serial.println(serialNumber);
}
}

void loop() {
uint16_t error;
char errorMessage[256];

delay(1000);

float temperature;
float humidity;
error = sht4x.measureHighPrecision(temperature, humidity);
if (error) {
Serial.print("Error trying to execute measureHighPrecision(): ");
errorToString(error, errorMessage, 256);
Serial.println(errorMessage);
} else {
Serial.print("Temperature:");
Serial.print(temperature);
Serial.print("\t");
Serial.print("Humidity:");
Serial.println(humidity);
}
}

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

Enviar datos a través de Grove - Wio-E5

Vamos a combinar el código anterior del Grove - Wio-E5 para conectarlo a la red LoRa®. Utilizando comandos AT es posible enviar el valor del sensor Grove Temp&Humi a la red LoRa®.

En el código de la sección anterior, sabemos que los valores de temperatura y humedad generalmente consisten en dos cifras enteras y dos decimales, y son valores positivos en formato flotante (float).

Debido a las limitaciones al enviar datos, necesitamos resolver el problema de convertir los números flotantes a enteros en el lado del envío, para asegurarnos de que los datos enviados sean enteros. Por ello, multiplicamos todos los valores de temperatura y humedad por 100.

De esta forma, determinamos el contenido, tamaño y formato de los datos a enviar mediante comandos AT. Podemos declarar un arreglo lo suficientemente grande, almacenar en él las cadenas que queremos enviar, y finalmente usar la función send_sync() para enviar ese arreglo.

El pseudocódigo para esta idea sería aproximadamente el siguiente:

  ......
error = sht4x.measureHighPrecision(temperature, humidity);

int_temp = temperature*100;
int_humi = humidity*100;

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

data_decord(int_temp, int_humi, 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
)
)
......

El resto de lo que necesitamos hacer es usar la función begin() para inicializar el Grove - Wio-E5 y la función setup() para configurar la tripleta de autenticación del Grove - Wio-E5 (DevEUI, AppEUI y AppKey). Cuando enviamos un mensaje de datos utilizando la función send_sync(), intentaremos unirnos a la red LoRaWAN® al mismo tiempo, y una vez que tenga éxito, los datos serán enviados y se mostrará información como la intensidad de señal y la dirección del nodo.

Puedes encontrar el ejemplo completo de código en el siguiente enlace:
github.com/limengdu/Seeed-Studio-LoRaWAN-Dev-Kit/tree/main/sensor/SHT40-send-data

tip

No se recomienda subir el código en este momento para verificar los resultados, ya que aún no has configurado Helium o TTN, lo que resultará en un error de conexión tipo "Join failed".
Te sugerimos subir este código después de haber completado los capítulos de configuración de Helium o TTN para completar el proceso de envío de datos correctamente.

Una vez que hayas experimentado y comprendido cómo funciona el sensor de temperatura y humedad Grove Temp&Humi (SHT40), así como su formato de datos, continúa con el siguiente paso del tutorial: unirse 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...