Captura y Visualiza Datos Ambientales con Arduino MKR WiFi 1010 en IoT Cloud
Componentes y suministros
| Arduino MKR WiFi 1010 | 1 |
| Arduino MKR ENV Shield | 1 |
Aplicaciones y servicios online
- Arduino IoT Cloud
Sobre este proyecto
La historia
Con este proyecto aprenderás a leer los datos de los diversos sensores disponibles en el ENV Shield y a visualizarlos en los widgets de Arduino Cloud.
Qué necesitas
- Arduino MKR WiFi 1010: el núcleo del proyecto. Maneja computación y comunicaciones gracias a su microcontrolador SAMD21 y al módulo NINA-W10 (WiFi y BLE).
- Pack de baterías: conectado al MKR WiFi 1010 para alimentar el dispositivo cuando no hay otra fuente.
- MKR ENV Shield: shield para placas MKR con sensores ambientales: temperatura, humedad, presión, luz y UV.
- Credenciales WiFi: SSID y contraseña para conectar a la red.
La configuración hardware es simple: solo requiere el MKR WiFi 1010, el ENV Shield y el pack de baterías.
Estructura del código
Dos partes principales:
- La plantilla generada por Arduino IoT Cloud APIs para mostrar datos recibidos de la placa MKR WiFi.
- La librería Arduino_MKRENV para leer los valores de todos los sensores del ENV Shield.
- Nuestro Thing en Arduino IoT Cloud tendrá seis propiedades que representan todas las mediciones adquiridas y enviadas por conexión segura.
- El sketch de Arduino se genera automáticamente por IoT Cloud y gestiona la conexión a Internet y la transferencia de datos; luego añadimos la librería Arduino_MKRENV para gestionar los sensores.
Sketch
Primera sección: librerías requeridas.
thingProperties.h: incluye funcionalidades de conexión WiFi y gestión de nube; solo se necesitan credenciales WiFi (SSID y PASSWORD).- Arduino IoT Cloud autentica el dispositivo usando una clave almacenada en el crypto-chip durante la configuración del dispositivo (Devices → ADD DEVICE), garantizando transmisión segura.
- Arduino_MKRENV: incluye todo lo necesario para leer cada sensor del ENV Shield.
#include "thingProperties.h"
#include <Arduino_MKRENV.h>
Sección setup: inicializa objetos, incluyendo Arduino IoT Cloud y sus propiedades. ArduinoCloud.begin() prepara la placa para conectar e intercambiar datos con el Dashboard:
void setup() {
Serial.begin(9600);
delay(1500);
initProperties(); // Definido en thingProperties.h
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
if (!ENV.begin()) {
Serial.println("Failed to initialize MKR ENV shield!");
while(1);
}
}
Bucle principal: consultamos cada sensor del ENV Shield. Tras cada lectura, actualizamos las variables de propiedades y sincronizamos con la nube mediante ArduinoCloud.update():
void loop() {
ArduinoCloud.update();
humidity = int(ENV.readHumidity());
lux = int(ENV.readIlluminance());
pressure = int(ENV.readPressure());
temperature = int(ENV.readTemperature());
uva = int(ENV.readUVA());
uvb = int(ENV.readUVB());
uvi = int(ENV.readUVIndex());
delay(1000);
}
Cómo configurar y usar
- Conecte todas las piezas, conecte el MKR WiFi 1010 al PC e inicie sesión en Arduino Cloud.
- Siga el procedimiento Arduino Cloud Getting Started y cree las propiedades según la tabla (nombres case-sensitive).
- Cada widget requiere rellenar un formulario.
- Al terminar, haga clic en edit code. Será redirigido al Arduino Create Web Editor; reemplace el sketch principal con el código completo (ver sección Código).
- Suba el sketch. Una vez establecida la conexión, el MKR WiFi sincronizará los valores del ENV Shield con sus propiedades en la nube, visibles en el dashboard del Thing.
¡Esperamos que disfruten creando su sensor casero/jardín con Arduino IoT Cloud, MKR WiFi 1010 y el elegante MKR ENV Shield!
Equipo Arduino
Código completo
/* Sketch generated by the Arduino IoT Cloud Thing "env_shield"
https://create.arduino.cc/cloud/things/829941ed-efdd-4572-91c0-e93a732192ec
Arduino IoT Cloud Properties description
The following variables are automatically generated and updated when changes are made to the Thing properties
int humidity; int lux; int pressure; int temperature; int uva; int uvb; int uvi;
Properties marked as READ/WRITE will have functions called when changed from Dashboard. */
#include "thingProperties.h"
#include <Arduino_MKRENV.h>
void setup() {
Serial.begin(9600);
delay(1500);
initProperties();
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(4);
ArduinoCloud.printDebugInfo();
if (!ENV.begin()) {
Serial.println("Failed to initialize MKR ENV shield!");
while(1);
}
}
void loop() {
ArduinoCloud.update();
humidity = int(ENV.readHumidity());
lux = int(ENV.readIlluminance());
pressure = int(ENV.readPressure());
temperature = int(ENV.readTemperature());
uva = int(ENV.readUVA());
uvb = int(ENV.readUVB());
uvi = int(ENV.readUVIndex());
delay(1000);
}
void onHumidityChange() { }
void onLuxChange() { }
void onPressureChange() { }
void onTemperatureChange() { }
void onUvaChange() { }
void onUvbChange() { }
void onUviChange() { }
Proceso de manufactura
- Aprovechando el poder de la nube para IoT: Desbloqueando conectividad fluida e insights de datos
- Optimizando infraestructura cloud para máximo rendimiento y eficiencia
- Aprovecha datos IoT en vivo en MATLAB con la integración de RTI Connext DDS
- Concepto erróneo sobre la nube #3: La nube no es una opción empresarial irresponsable
- IXrouter: Conectividad edge-to-cloud sin fisuras para Industrial IoT
- Cómo IoT y cloud computing moldean el futuro de los datos empresariales
- ¿Está tu planta de fabricación lista para IoT? Guía práctica
- Convertir datos IoT en valor empresarial: Una guía práctica
- Aprovechando datos IoT para la excelencia en manufactura
- Tres Formas Poderosas en que Cloud Computing Mejora Despliegues IoT
- Inversión en IoT Superará al Gasto en Cloud, Según Nuevo Estudio