Skip to content

Firmware para ESP32 com suporte a integração com WebService e configuração via WiFiManager

Notifications You must be signed in to change notification settings

douglaszuqueto/esp32-http-firmware

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ESP32 HTTP Firmware - V1.2.0 (em desenvolvimento)

Firmware para ESP32 com suporte a integração com WebService e configuração via WiFiManager

Versões

Posts relacionados

Se você chegou até aqui e esta boiando sobre o que originou este projeto, recomendo ver os posts que fiz no Grupo Arduino Brasil no Facebook!

Bibliotecas

Arquitetura/Organização

Firmware dividido em arquivos. Cada arquivo com sua responsabilidade. Tudo isso visando melhor organização e facilidade em manter o código a longo prazo.

img

Diagrama de fluxo

img

Funcionalidades

  • Configuração WiFi/Device via WifiManager
  • Storage(Preferences)
  • Ticker
  • Cache(carregado no setup) - token, device_id, device_token, client_id
  • Integração com webservice
  • Autenticação e Autorização
  • Renovação de token apenas quando expirado
  • Suporte a debug
  • Suporte a deepsleep
  • Visualização através do webapp embarcado
  • Multi-tarefas

Código principal

void setup() {
  pinMode(LED, OUTPUT);
  ticker.attach(0.3, tick);

  initSerial();
  openStorage();

  setupWifiManager();
  setupWiFi();

  makeCache();
  showConfig();

  //
  API_AUTH = API_URL + "/auth";
  API_SEND_DATA = API_URL + "/device/" + device_id;
  //

  requestAccess();

  ticker.detach();
  digitalWrite(LED, LOW);

#if ESP_DASH
  initEspDash();
#endif

#if DEEP_SLEEP
  sendData();
  closeStorage();
  DEBUG_PRINTLNC(F("[ESP] Sleeping..."));
  ESP.deepSleep(sleep_time);
#endif

  delay(1000);
  initTasks();
}

void loop() {
}

Tasks

X tarefas são criadas. Elas serão distribuidas e gerenciadas através do RTOS de forma automática.

img

WifiManager

Página de configuração via wifi manager

img

ESP-DASH

Como brincadeira adicional acabei conhecendo o projeto ESP-DASH em um grupo, dei uma olhada e gostei bastante das funcionalidades e da arquitetura que foi aplicada no projeto.

Ainda não tem nenhuma integração real, mas o mesmo possui uma tarefa no qual os dados são atualizados de X em X tempo. Também possui um botão no qual possui integração com o led.

É um projeto muito bacana, pois foi embarcado um WebAPP desenvolvido em VueJS e o build('compilação') desse webapp é embarcado dentro do esp através do SPIFFS - uma técnica deveras interessante que pode agregar muito nos projetos!

Outro fato legal que eu gostei bastante, é que toda comunicação ocorre em 'tempo real' através do uso de websockets. Então além do ESP32 atuar como webserver servindo o webapp também cria um servidor de websockets, interessante não é?!

  • Dashboard

img

  • Stats

img

Monitor serial

Um pouco do fluxo que ocorre após o salvamento das configurações no wifi manager.

No monitor serial houve uma melhoria que agora possibilita ver em qual core as tasks estão rodando em tempo de execução.

img

Referências

About

Firmware para ESP32 com suporte a integração com WebService e configuração via WiFiManager

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published