Eu desenvolvi um firmware para ESP32 que permite atualizar o código em campo via rede LoRa. A ideia é possibilitar a atualização remota da aplicação sem correr o risco de travar o controlador.
Ele é todo baseado em MicroPython e, depois que o firmware é gravado, o que passa a ser atualizado não é o firmware em si, mas apenas o código da aplicação. Além disso, há um watchdog específico para falhas de atualização: se ocorrer algum erro durante o processo, o dispositivo se conecta ao servidor, faz automaticamente um downgrade para a versão anterior e fica pronto para receber uma nova tentativa de atualização.
Também estou unindo isso a um conceito de trabalho modular. Minha ideia é desenvolver um produto/módulo ESP que você possa integrar facilmente a outros, criando um controlador maior e com mais portas. Esses módulos se comunicam via I²C, tudo sobre uma rede LoRa, usando um protocolo de mensageria semelhante ao MQTT, mas que estou escrevendo do zero.
Em breve vou postar mais coisas sobre esse projeto — quero ter algo mais robusto para mostrar.
Sobre a questão dos Dashboards e integração de dados é justamente o que estou trabalhando para ser bem universal com uma biblioteca ou até mesmos poucas linhas de código dentro do código principal, no site depois pretendo colocar a integração via código nas linguagens mais usadas, ele vai permitir versionamento, upload de logs sem armazenamento local no controlador e backup de código se o controlador suportar claro por que essa função já exige um pouco mais de memória, por isso eu pretendo lançar umas três possibilidades de integração cada uma terá mais funções e consome mais memória.