Empezar a trabajar con Deci Networks es más sencillo de lo que parece. Una vez que tienes las credenciales necesarias y has creado el "Gateway" previamente configurado, el siguiente paso es asegurarte de que todo esté listo para operar. Es fundamental recordar que el "Gateway" conecta a un solo canal, y para que funcione adecuadamente, necesitarás definir los canales mínimos como ocho, haciendo uso efectivo de la infraestructura para desarrollar un producto mínimo viable que monitoree y controle datos desde internet.
¿Cómo configurar la frecuencia de transmisión?
La frecuencia de transmisión es clave para que los datos fluyan correctamente entre el "Gateway" y los sensores. Dado que el radio Lora posee 72 canales, es más eficiente desactivar todos con un bucle "for" en lugar de hacerlo manualmente línea por línea.
for(int canal =0; canal <72; canal++){// Código para desactivar canales}
La frecuencia que se usó en el "Gateway" es de 904.3 MHz, un canal específico en América Latina que va de 902 a 928 MHz, centrada en los 915 MHz. Así, la frecuencia del canal a utilizar será el canal 10.
¿Qué configuraciones avanzadas de Lora son relevantes?
Para optimizar las comunicaciones, es esencial desactivar configuraciones avanzadas como "Extended Interruptions" con la función setSyncWord. Adicionalmente, puedes definir la velocidad de transmisión usando "Spreading Factor" como el 7, y ajustar la potencia según las necesidades del proyecto.
¿Cómo gestionar el ciclo del sistema operativo sin detener su ejecución?
El uso de la función millis() en lugar de delay() es crítico para no interrumpir el funcionamiento del sistema operativo al ejecutar un ciclo:
unsignedlong prevMillis =0;constlong txInterval =10000;voidloop(){if(millis()- prevMillis >= txInterval){ prevMillis =millis();// Código para ejecutar cada txInterval milisegundos}}
Esto asegura que las tareas se ejecuten exactamente en los intervalos definidos, sin detener otras operaciones del sistema.
¿Cómo aumenta la precisión de las transmisiones?
Al actualizar prevMillis después de cada transmisión, garantizamos que el tiempo se mida correctamente:
if(millis()- prevMillis >= txInterval){ prevMillis =millis();// Obtener y enviar datos del sensor}
Cada transmisión genera un evento llamado txComplete. Puedes informar que la transmisión se ha completado con:
Serial.println("TX Complete");
Finalmente, activa un LED durante la adquisición y envío de datos para una indicación visual de las acciones del microcontrolador.
¿Qué pasos adicionales son cruciales para finalizar el programa?
Asegúrate de declarar el LED que utilizarás como salida:
pinMode(LED_BUILTIN, OUTPUT);
Compila y verifica el código para asegurarte de que no hay errores. Esta fase es esencial para validar que todo esté configurado correctamente y para resolver cualquier error de sintaxis o configuración a medida que avanza el desarrollo.
Estos pasos te proporcionarán un marco sólido para diseñar, construir y experimentar con tus propios proyectos IoT. ¡Sigue explorando y desarrollando innovaciones apasionantes!
Tengo dos preguntas:
¿Cómo se cambia la frecuencia a la que escucha el gateway? Si yo estoy trabajando desde España quiero transmitir en la banda 868 Mhz (Europa) y no me ha quedado muy claro
Por otro lado, aquí vemos que ponemos un "timer" para el upload, ¿Cómo se haría en el caso del download? Y entonces para qué sirven o cómo se configura a cada clase (A,B y C) que vimos al principio del curso?
Lo siento compañero es lo que hay, te puedes creer que lanzaron una escuela de Diversidad e Inclusion, antes que una de IoT ! Falta mucho por ver en IoT pero no es el target aquí.
Que canal es para la frecuencia 433MHz , ya que yo tengo un TTGO ESP32 LoRa SX1278 0,96 pulgadas pantalla OLED Bluetooth azul WIFI Lora Kit 32 módulo IOT Placa de desarrollo 433 MHz?
Ah ya cambie la frecuencia en la que esta escuchando el gateway a 433MHz
Hola Maday, tengo entendido que hay tres tipos de esta tarjeta 433 Mhz, 868 MHz y 915 MHZ
Buen día, excelente curso.
Tengo una pregunta, con el conteo progresivo mediante la variable "millis", si el dispositivo está conectado todo el tiempo, ¿va a existir el instante en el que se desborde esta variable (por su gran tamaño)? y como consecuencia reinicia el arduino?
Podrias agregar un evento que reinicie la variable despues de cierto tiempo evitando que el long se llene.