Estación Meteorológica Sigfox con Arduino MKR FOX 1200: Solución IoT de Bajo Consumo
Componentes y Suministros
| Componente | Cantidad |
|---|---|
| Arduino MKR Fox 1200 | 1 |
| Sensor de Temperatura y Humedad DHT11 (3 pines) | 1 |
Aplicaciones y Servicios Online
- Red Sigfox (cuenta de desarrollador)
- ThingSpeak API
- Arduino IDE
- Arduino Web Editor
- Arduino IoT Cloud
Descripción del Proyecto
Introducción: Estación Meteorológica Sigfox con Arduino MKR Fox 1200
Sigfox es una empresa francesa fundada en 2009 que construye redes inalámbricas para conectar objetos de bajo consumo como contadores eléctricos, relojes inteligentes y lavadoras, que necesitan estar siempre activos y enviando pequeñas cantidades de datos.
Sigfox emplea una tecnología propietaria que permite la comunicación usando la banda de radio ISM (Industrial, Científica y Médica), que usa 868 MHz en Europa y 902 MHz en EE. UU. Utiliza una señal de amplio alcance que atraviesa libremente objetos sólidos, llamada "ultra narrowband" (banda ultra estrecha) y requiere poca energía, denominándose "Red de Área Amplia de Bajo Consumo" (LPWAN). La red se basa en una topología de estrella de un solo salto y requiere un operador móvil para transportar el tráfico generado. La señal también puede cubrir fácilmente grandes áreas y alcanzar objetos subterráneos.
En este tutorial, construiremos una estación meteorológica simple y muy eficiente basada en Sigfox.
Paso 1: Primeros Pasos con Arduino MKR Fox 1200
El primer paso es la página oficial de Arduino MKR Fox 1200: https://www.arduino.cc/en/Guide.MKRFox1200
Después, debe registrar su placa Sigfox. Siga estos pasos:
- Configuración Inicial de SigFox: https://www.arduino.cc/en/Tutorial/SigFoxFirstConf...
- Activación en backend: https://backend.sigfox.com/activate
Este procedimiento registra su placa y la conecta a la red de internet. Si no sigue este paso, no podrá conectar su placa al dashboard de ThingSpeak.
Paso 2: Crear Cuenta en ThingSpeak
Abra una nueva cuenta en ThingSpeak: https://thingspeak.com/users/sign_up
Cree un nuevo canal. Su canal puede recibir datos del backend de Sigfox. Para ello, seleccione la API key de su canal y agréguela a la URL en el sistema Sigfox Backend. Vaya a la página de API keys y escriba sus claves en la página de Sigfox Backend.
Paso 3: Hardware y Circuito
En este proyecto puede usar el sensor DHT-11 simple o el shield DHT-11. Puede comprar este sensor en Amazon. También puede usar el sensor DHT-22, que usa la misma librería que el DHT-11 pero es más eficiente.
Si usa el sensor simple, debe conectar una resistencia de 10 kΩ entre VCC y pin de datos. Si usa el shield DHT-11, puede conectar el sensor directamente a la placa Arduino. El circuito es muy simple: conecte 5V y GND al DHT-11 y el pin de datos al pin número 1 del Arduino MKR Fox 1200.
Pruebe la librería DHT. Use el código de ejemplo DHT. Abra el monitor serie y lea los resultados. Si todo funciona y puede leer los valores "Temp" y "Humi", todo está OK y puede pasar al siguiente paso.
Paso 4: Añadir Comando al Portal de Desarrollador Sigfox
Cree un nuevo comando Callback en el portal backend de Sigfox: https://backend.sigfox.com
- Haga clic en "Device type" y luego en "Callbacks".
- Seleccione Tipo DATA y Uplink.
- Seleccione Canal URL.
- Añada esta línea a "Custom payload config":
status::uint:8 temp::int:16:little-endian t::int:16:little-endian h::int:16:little-endian
- Seleccione "Use HTTP method" GET.
- Añada esta línea a su Callback. Modifique
#############con su API key de ThingSpeak:
https://api.thingspeak.com/update?api_key=###############&field1={customData#temp}&field2={customData#t}&field3={customData#h}&field4={snr}
Paso 5: Todo el Código y Software
Primero, instale la librería Sigfox en su Arduino IDE. Consulte la guía oficial para añadir librerías: https://www.arduino.cc/en/Guide/Libraries
Instale las librerías: Arduino Low Power, Sigfox y DHT.
#include <ArduinoLowPower.h>
#include <Sigfox.h>
#include <DHT.h>
En los datos del callback en la página backend, están los nombres de las variables de su código Arduino. Vea dentro del código:
t = dht.readTemperature();
msg.t = convertoFloatToInt16(t, 60, -60);
h = dht.readHumidity();
msg.h = convertoFloatToUInt16(h, 110);
[...]
msg.moduleTemperature = convertoFloatToInt16(temperature, 60, -60);
[...]
SigFox.write((uint8_t*)&msg, 12);
El código captura los datos de Temperatura y Humedad del sensor DHT-11, convierte los datos a "int" y los envía a la plataforma ThingSpeak usando el comando SigFox.write.
Enlace al código Arduino: https://github.com/masteruan/SigFoxThingSpeak
Suba el código y pruebe el proyecto. Puede instalar este dispositivo usando una batería. Yo uso este dispositivo en un barco que no tiene conexión WiFi, porque la transmisión de datos viaja por la red Sigfox.
Código
Repositorio GitHub: Arduino MKR Fox 1000 y código DHT-11
Proceso de manufactura
- Estación Meteorológica Avanzada v2.0: Monitorización en Tiempo Real de Temperatura, Presión, Humedad y Altitud
- Central DCC Digital para Ferrocarril Modelo con Arduino y App Android Gratuita
- Estación de Mezcla de Cócteles "6-Shooter" con Arduino: Construye tu Propio Barman Automático
- Construye un Spybot controlado por Bluetooth con Arduino
- Estación Meteorológica Portátil Arduino por $10 – Nano, DHT22, BMP180 y LCD
- eDOT: Reloj Preciso y Estación Meteorológica Arduino con Control IR Integrado
- Monitorización Meteorológica en Tiempo Real con Arduino y ThingSpeak IoT
- Monitorización IoT de Presión en Tiempo Real con MKR GSM, Arduino Cloud y Google Sheets
- Estación Meteorológica Sigfox con Arduino MKR FOX 1200: Solución IoT de Bajo Consumo
- Construye una Estación Meteorológica Arduino Fiable con Sensores DHT
- Controla el Juego del Dinosaurio de Chrome con Arduino: Proyecto Hardware Real