Programación de Sensores IoT con Arduino y API REST
Clase 21 de 27 • Curso de Introducción al IoT
Resumen
¿Cómo iniciar la programación de un script en Arduino?
Comenzar un nuevo proyecto en Arduino puede parecer desalentador, pero con un enfoque paso a paso se simplifica mucho. Al iniciar un proyecto en IDE de Arduino, siempre verás las funciones básicas setup()
y loop()
. Sin embargo, es clave marcar y documentar tu código desde el principio, señalando detalles relevantes como fechas o un sistema de identificación, que ayudan a mantener el control y referencia del proyecto. Aquí, te explicaré cómo comenzar de manera exitosa tu código.
- Comentarios y librerías:
- Utiliza
//
para añadir comentarios en Arduino. - Comienza incluyendo las librerías necesarias para tu proyecto. Por ejemplo, para trabajar con redes Wi-Fi y ciertas tarjetas, necesitarás
<ESP8266WiFi.h>
. Si trabajas con sensores específicos como el DHT22, incluye su librería correspondiente de Adafruit. Esto se hace así:
#include <ESP8266WiFi.h> #include <DHT.h> #include <Adafruit_Sensor.h>
- Utiliza
¿Qué definiciones iniciales son necesarias?
Para cualquier proyecto, es crucial definir los pines en los que se conectarán los sensores y el tipo de dispositivo que estás utilizando. Esto se realiza en la sección de definiciones:
-
Definiciones básicas:
- Define el pin del sensor, por ejemplo, si el DHT está en el pin D5:
#define DHTPIN D5
- Define el tipo de sensor DHT:
#define DHTTYPE DHT22
-
Red Wi-Fi:
- Define las credenciales de la red a la que se conectará el dispositivo:
const char* ssid = "TuSSID"; const char* password = "TuContraseña";
¿Cómo trabajar con la configuración setup
?
El bloque setup
se ejecuta una vez al inicio del código, por lo tanto, en él inicializamos todas las configuraciones necesarias.
-
Inicialización del sensor DHT:
DHT dht(DHTPIN, DHTTYPE);
- Inicializa también la conexión serie para poder monitorizar e imprimir mensajes de depuración:
Serial.begin(9600); dht.begin();
-
Conexión Wi-Fi:
- Crea una conexión Wi-Fi utilizando las credenciales suministradas y verifica que es exitoso antes de continuar con más procesos:
WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); }
¿Por qué es fundamental el bloque loop
?
La función loop
es donde se realiza el ciclo infinito de ejecución, es decir, todo el trabajo persistente o las acciones repetitivas.
-
Lectura de sensores en el loop:
- Usa el
loop
para leer y procesar los datos de tus sensores:
float h = dht.readHumidity(); float t = dht.readTemperature();
- Agrega cualquier lógica que necesites para procesar y manejar estos valores, como validaciones o conversiones.
- Usa el
-
Actualización de datos y comunicación:
- Aquí estableces cualquier función de actualización o lógica de control que se ejecute de manera cíclica, como enviar datos a través de API:
if (isnan(h) || isnan(t)) { Serial.println("Failed to read from DHT sensor!"); } else { Serial.print("Humidity: "); Serial.print(h); Serial.print("% Temperature: "); Serial.print(t); Serial.println(" *C "); }
Finalmente, asegúrate de revisar constantemente tu código en busca de errores sintácticos, siendo los puntos y comas y las llaves las áreas más frecuentes de problemas en programación en Arduino. Nunca olvides guardar y verificar el código antes de subirlo, ya que esto ayudará a prevenir errores potenciales durante la carga en el dispositivo. Con estas bases sólidas, estarás listo para dar los primeros pasos en un proyecto IoT con Arduino.