Conexión entre la placa IoT-02 y Snap! mediante MQTT
Contingut
- 1 Uso de websockets MQTT
- 2 Saber la MAC del ESP32 de la placa IoT-02
- 3 Controlando los 4 leds y el relé de enclavamiento
- 4 Subscripción a los 3 botones y publicación a las salidas digitales
- 5 Petición del estado de una entrada digital
- 6 Petición del valor de una entrada analógica
- 7 Petición de datos al sensor BME280
- 8 Escritura a la pantalla OLED
Uso de websockets MQTT
Como usar MQTT con websockets, normales (ws) y seguros (wss), en Snap!
Saber la MAC del ESP32 de la placa IoT-02
Listado de prefijos MAC (3 primeros bytes) pertencientes a Espressif
La petición de la MAC es genérica. Cualquier placa tiene que poder responder. Para que sólo nos conteste su MAC una placa concreta, el firmware propuesto obliga a apretar el botón IO0 en el momento de hacer la petición desde el Snap!. Cuando se recibe por primera vez la MAC se cancela la subscripción (si no se hace, cada Snap! cambiaría la MAC cada vez que cualquier placa IoT-02 enviase su MAC).
Acceso directo a 00_reqMAC.xmlCódigo en Snap! para saber la MAC y firmware para gestionar la MAC en la placa IoT-02. IoT-02_mqtts_03 en GitHub
Ejercicio 1 de Snap! con MQTT
Verificar que os funciona el ejemplo
Controlando los 4 leds y el relé de enclavamiento
Acceso directo a 01_ctrlOutputs.xmlCódigo en Snap! para controlar las salidas digitales y firmware para gestionar las salidas digitales en la placa IoT-02. IoT-02_mqtts_04 en GitHub
Ejercicio 2 de Snap! con MQTT
Verificar que os funciona el ejemplo añadiendo el control de los leds amarillo y rojo.
Subscripción a los 3 botones y publicación a las salidas digitales
Acceso directo a 02_subButtonsPubOutputs.xmlCódigo en Snap! para subscribirse al cambio de los botones y publicar las salidas digitales y firmware para gestionar la publicación/subscripción en la placa IoT-02. IoT-02_mqtts_05 en GitHub
Petición del estado de una entrada digital
Acceso directo a 03_requestingDigitalInput.xmlCódigo en Snap! incorporando la lectura del estado del relé de enclavamiento y firmware para gestionar, también, la lectura del estado del relé de enclavamiento en la placa IoT-02. IoT-02_mqtts_06 en GitHub
Ejercicio 3 de Snap! con MQTT
Verificar que os funciona el ejemplo añadiendo la petición del estado de los tres botones.
Petición del valor de una entrada analógica
Acceso directo a 04_requestingAnalogInput.xmlCódigo en Snap! incorporando la lectura analógica de la LDR y firmware para gestionar, también, la lectura analógica de la LDR en la placa IoT-02. IoT-02_mqtts_07 en GitHub
Ejercicio 4 de Snap! con MQTT
Verificar que os funciona el ejemplo enseñando el valor de luz leída en tanto por ciento (%). Sabiendo que el convertidor analógico a digital es de 12 bits (valor entre 0 y 4095).
Petición de datos al sensor BME280
Acceso directo a 05_requestingTemperature.xmlCódigo en Snap! incorporando la lectura de temperatura del sensor BME280 y firmware para gestionar, también, la lectura del sensor mediante el protocolo I2C en la placa IoT-02. IoT-02_mqtts_08 en GitHub
Ejercicio 5 de Snap! con MQTT
Verificar que os funciona el ejemplo añadiendo la petición de la humedad relativa en %, la presión en hPa.
Escritura a la pantalla OLED
06_PublishingOLED.uxf que se puede abrir en umletino
Acceso directo a 06_publishingOLED.xmlCódigo en Snap! incorporando la escritura a la pantalla OLED y firmware para gestionar, también, la escritura a la pantalla mediante el protocolo I2C en la placa IoT-02. IoT-02_mqtts_09 en GitHub
Ejercicio 6 de Snap! con MQTT
Mediante Snap! hacer que en la pantalla aparezca, de forma infinita y con una cadencia de dos segundos, el porcentaje de luz leída por la LDR y después la temperatura en grados centígrados.