Projetos IoT com ESP32: Planejamento e Programação
Aprimorando Sistemas de Alarme com Sensores e ESP32
A segurança é uma preocupação constante na sociedade moderna, e sistemas de alarme residenciais e comerciais desempenham um papel crucial na proteção de propriedades e pessoas. O ESP32, com sua versatilidade e poder de processamento, permite a criação de sistemas de alarme sofisticados e personalizáveis. Neste artigo, exploraremos como aprimorar um sistema de alarme existente incorporando sensores adicionais. Abordaremos desde a seleção de sensores adequados até a integraçãoIntegração com Aplicativos Móveis e WebDescubra como integrar ESP32 com aplicativos móveis e dashboards web, garantindo interatividade, controle remoto e segurança em seus projetos IoT. no hardware e software, fornecendo exemplos práticos e dicas para elevar o nível de segurança do seu sistema.
Introdução aos Sensores Adicionais🔗
A adição de sensores ao sistema de alarme amplia a capacidade de detecção e resposta a eventos. Sensores como detectores de fumaça, gás, vibração, abertura de portas e janelas, entre outros, podem ser incorporados para monitorar diferentes tipos de ameaças. A escolha adequada e a correta integraçãoIntegração com Aplicativos Móveis e WebDescubra como integrar ESP32 com aplicativos móveis e dashboards web, garantindo interatividade, controle remoto e segurança em seus projetos IoT. desses sensores são essenciais para um sistema de segurança robusto.
Tipos de Sensores e Suas Aplicações🔗
Sensor Magnético de Portas e Janelas
- Funcionamento: Composto por um interruptor reed
Utilizando Sensores Magnéticos de Porta e Janela com ESP32Aprenda a integrar sensores magnéticos com ESP32 para monitoramento de portas e janelas, acionando sirene e notificações via Wi-Fi com segurança efetiva. e um imã, detecta a abertura ou fechamento de portas e janelas.
- Aplicação: Ideal para monitorar pontos de entrada e alertar sobre intrusões.
Sensor de Vibração
- Funcionamento: Detecta vibrações ou impactos utilizando um elemento piezoelétrico ou um interruptor mecânico.
- Aplicação: Útil para detectar tentativas de arrombamento em portas, janelas ou cofres.
Sensor de Fumaça
- Funcionamento: Utiliza tecnologia de ionização ou fotoelétrica para detectar a presença de fumaça.
- Aplicação: Essencial para detecção de incêndios, aumentando a segurança
Segurança em MQTT: Autenticação e Criptografia no ESP32Descubra como proteger conexões MQTT em aplicações IoT com ESP32, implementando autenticação e criptografia TLS para segurança máxima. contra sinistros.
Sensor de Gás
- Funcionamento: Capaz de detectar concentrações de gases combustíveis ou tóxicos no ambiente.
- Aplicação: Importante em cozinhas, garagens ou locais com risco de vazamento de gás.
Sensor Ultrassônico
- Funcionamento: Emite ondas ultrassônicas e mede o tempo de retorno para detectar objetos ou movimentos.
- Aplicação: Pode ser utilizado para detectar invasores em áreas específicas.
Sensor de Quebra de Vidro
- Funcionamento: Detecta o som específico do vidro quebrando ou as vibrações resultantes.
- Aplicação: Monitora janelas e vitrines contra tentativas de invasão.
Seleção dos Sensores🔗
Ao selecionar sensoresProgramando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código. adicionais, considere:
- Compatibilidade: Verifique se o sensor
Programando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código. é compatível com o ESP32 em termos de tensão e comunicação.
- Alcance e Sensibilidade
Conectando Sensores de Movimento PIR ao ESP32Aprenda a integrar sensores PIR com ESP32 neste tutorial completo, explorando montagem, ajustes e programação na Arduino IDE.: Escolha sensores
Programando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código. que atendam às necessidades específicas do ambiente a ser monitorado.
- Consumo de Energia
Dual-Core do ESP32: Como Funciona e BenefíciosDescubra como a arquitetura dual-core do ESP32 otimiza a performance em IoT e automação, distribuindo tarefas e gerenciando recursos com eficiência.: Sensores de baixo consumo
🔑 Autenticador Físico 2FA com E-InkDescubra como os autenticadores físicos com display E-Ink garantem segurança 2FA offline, unindo durabilidade e baixa energia. Inove agora. são preferíveis, especialmente em sistemas alimentados por bateria.
- Facilidade de Integração
Protocolos Nativos: Wi-Fi (2.4 GHz), Bluetooth Classic e BLEDescubra como utilizar os protocolos Wi-Fi, Bluetooth Classic e BLE no ESP32, com exemplos práticos e dicas para projetos IoT inovadores.: Sensores com protocolos de comunicação
🌧 Alerta de Enchentes com Sensores de Nível de RiosTutorial sobre sistema IoT com ESP32 e sensores de nível. Descubra a implementação, comunicação robusta e alertas para enchentes em comunidades ribeirinhas. simples (digital ou analógico) facilitam a implementação.
Integração de Sensores ao Hardware🔗
Conexões Gerais
- Alimentação: Certifique-se de que os sensores
Programando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código. estejam alimentados com a tensão adequada (3.3V ou 5V).
- Comunicação: Determine se o sensor
Programando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código. utiliza sinais digitais, analógicos, I2C, SPI ou outra interface.
- Pinos do ESP32
O que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia!: Planeje a atribuição dos pinos GPIO
Interação com GPIOs via Interface Web no ESP32Aprenda a configurar e controlar os GPIOs do ESP32 por meio de uma interface web dinâmica realizando automação, monitoramento e interação remota com facilidade. para evitar conflitos e facilitar a manutenção.
Exemplo: Conectando um Sensor Magnético
- Componentes
📜 Quadro Digital com Tela E-Ink de 32 PolegadasDescubra como combinar eficiência energética, tecnologia E-Ink e ESP32 para criar quadros digitais, dashboards interativos e arte generativa com soluções IoT. Necessários:
- Sensor magnético
Utilizando Sensores Magnéticos de Porta e Janela com ESP32Aprenda a integrar sensores magnéticos com ESP32 para monitoramento de portas e janelas, acionando sirene e notificações via Wi-Fi com segurança efetiva. (interruptor reed)
- Resistência de pull-up (10kΩ)
- Fios de conexão
- Sensor magnético
Esquemático de Conexão
[Sensor] --- [Pino GPIO do ESP32]
|
[Resistência de 10kΩ]
|
[3.3V]
Exemplo: Conectando um Sensor de Fumaça MQ-2
- Componentes
📜 Quadro Digital com Tela E-Ink de 32 PolegadasDescubra como combinar eficiência energética, tecnologia E-Ink e ESP32 para criar quadros digitais, dashboards interativos e arte generativa com soluções IoT. Necessários:
- Sensor
Programando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código. MQ-2
- Divisor de tensão
Leitura de Potenciômetros e Sensores de TemperaturaConfigure o ESP32 para ler potenciômetros e sensores de temperatura com alta precisão, aplicando calibração e filtragem para medições confiáveis. (se necessário)
- Conexão ao pino analógico do ESP32
O que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia!
- Sensor
Esquemático de Conexão
[MQ-2 Analog Output] --- [Pino ADC do ESP32]
[MQ-2 VCC] --- [5V]
[MQ-2 GND] --- [GND]
Observação: O ESP32 lida com tensões de entrada até 3.3V. Se o sensor operar em 5V, utilize um divisor de tensãoLeitura de Potenciômetros e Sensores de TemperaturaConfigure o ESP32 para ler potenciômetros e sensores de temperatura com alta precisão, aplicando calibração e filtragem para medições confiáveis. ou adaptador de nível lógico.
Programação e Leitura dos Sensores🔗
Configuração dos Pinos
Defina os pinos utilizados pelos sensoresProgramando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código. no início do código:
#define SENSOR_MAGNETICO_PIN 14
#define SENSOR_VIBRACAO_PIN 27
#define SENSOR_FUMACA_PIN 34 // Pino ADC
Configurando os Pinos no Setup
void setup() {
pinMode(SENSOR_MAGNETICO_PIN, INPUT_PULLUP);
pinMode(SENSOR_VIBRACAO_PIN, INPUT);
Serial.begin(115200);
}
Leitura dos Sensores no Loop Principal
Sensor Magnético
int estadoPorta = digitalRead(SENSOR_MAGNETICO_PIN);
if (estadoPorta == LOW) {
Serial.println("Porta/Janela aberta!");
// Acionar alarme ou notificação
}
Sensor de Vibração
int vibraçãoDetectada = digitalRead(SENSOR_VIBRACAO_PIN);
if (vibraçãoDetectada == HIGH) {
Serial.println("Vibração detectada!");
// Acionar alarme ou notificação
}
Sensor de Fumaça
int valorFumaca = analogRead(SENSOR_FUMACA_PIN);
if (valorFumaca > LIMIAR_FUMACA) {
Serial.println("Fumaça detectada!");
// Acionar alarme ou notificação
}
Defina uma constante para LIMIAR_FUMACA
de acordo com calibração📡 Drone FPV com Transmissão de Vídeo ao VivoEste tutorial técnico detalha a construção de um drone FPV com transmissão de vídeo, telemetria via MAVLink e otimizações de latência. necessária.
Integração com o Sistema de Alarme Existente🔗
Agora, é necessário integrar a leitura desses sensoresProgramando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código. com o restante do sistema de alarme, garantindo que as ações apropriadas sejam tomadas quando um evento é detectado.
Modificando a Lógica de Detecção
Crie funções específicas para a leitura de cada sensorProgramando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código.:
void verificarSensorMagnetico() {
int estadoPorta = digitalRead(SENSOR_MAGNETICO_PIN);
if (estadoPorta == LOW) {
acionarAlarme("Porta/Janela aberta!");
}
}
void verificarSensorVibracao() {
int vibraçãoDetectada = digitalRead(SENSOR_VIBRACAO_PIN);
if (vibraçãoDetectada == HIGH) {
acionarAlarme("Vibração detectada!");
}
}
void verificarSensorFumaca() {
int valorFumaca = analogRead(SENSOR_FUMACA_PIN);
if (valorFumaca > LIMIAR_FUMACA) {
acionarAlarme("Fumaça detectada!");
}
}
Função para Acionamento do Alarme
void acionarAlarme(String mensagem) {
Serial.println(mensagem);
// Código para acionar sirene, enviar notificação, etc.
}
Chamando as Funções no Loop
void loop() {
verificarSensorMagnetico();
verificarSensorVibracao();
verificarSensorFumaca();
delay(500); // Ajuste o intervalo conforme necessário
}
Envio de Notificações Aprimorado🔗
Além de acionar alarmes locais, é importante notificar o usuário sobre os eventos detectados.
Integração com Serviços de Notificação
- E-mail: Utilize bibliotecas
Hospedando Múltiplas Páginas Web no ESP32Descubra como hospedar múltiplas páginas web no ESP32 com um guia passo a passo. Aprenda a configurar rotas e interagir via HTTP. como
ESP32 Mail Client
para enviar alertas por e-mail.Enviando Notificações por E-mail com ESP32Descubra como configurar o ESP32 para enviar e-mails de alerta via SMTP com segurança e eficiência, utilizando exemplos práticos e dicas indispensáveis.
- Aplicativos de Mensagens: Integre com APIs do Telegram, WhatsApp ou outros serviços.
- Serviços em Nuvem: Envie dados para plataformas IoT como Firebase, AWS IoT ou Google Cloud IoT
Segurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Proteja a conexão Wi-Fi do ESP32 com dicas de criptografia, senhas fortes e monitoramento, garantindo segurança e integridade dos dados..
Exemplo: Enviando Notificação via Telegram
#include <WiFi.h>
#include <UniversalTelegramBot.h>
#include <WiFiClientSecure.h>
const char* ssid = "SEU_SSID";
const char* password = "SUA_SENHA";
WiFiClientSecure client;
UniversalTelegramBot bot("SEU_TOKEN_DO_BOT", client);
String chat_id = "SEU_CHAT_ID";
void enviarNotificacao(String mensagem) {
bot.sendMessage(chat_id, mensagem, "");
}
Observação: Certifique-se de importar as bibliotecasHospedando Múltiplas Páginas Web no ESP32Descubra como hospedar múltiplas páginas web no ESP32 com um guia passo a passo. Aprenda a configurar rotas e interagir via HTTP. necessárias e lidar com conexões seguras.
Testes e Validação do Sistema🔗
Após a implementação, é fundamental testar o sistema de forma abrangente.
Testes Individuais
- Ação de Cada Sensor
Programando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código.: Verifique se cada sensor
Programando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código. está detectando corretamente e acionando o alarme.
- Respostas Apropriadas: Certifique-se de que o sistema está respondendo conforme esperado (acionamento de sirene
Selecionando Componentes de Hardware para o Sistema de Alarme com ESP32Descubra como selecionar os melhores componentes de hardware para criar um sistema de alarme com ESP32. Tutorial prático com dicas de segurança e eficiência., envio de notificações, etc.).
Testes de Integração
- Múltiplos Eventos Simultâneos: Observe como o sistema lida com múltiplos sensores
Programando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código. acionados ao mesmo tempo.
- Estabilidade
📡 Drone FPV com Transmissão de Vídeo ao VivoEste tutorial técnico detalha a construção de um drone FPV com transmissão de vídeo, telemetria via MAVLink e otimizações de latência. do Sistema: Deixe o sistema em operação contínua para identificar possíveis falhas ou instabilidades.
Simulação de Falhas
- Sensores
Programando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código. Desconectados: Teste o comportamento do sistema quando um sensor
Programando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código. falha ou é desconectado.
- Perda de Conexão: Verifique como o sistema se comporta em caso de perda de conexão Wi-Fi
Configurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização. ou com serviços externos.
Otimizações e Boas Práticas🔗
Economia de Energia
- Modo Deep Sleep
Técnicas de Otimização de ConsumoDescubra técnicas avançadas para reduzir o consumo do ESP32. Economize energia, prolongue a vida útil e maximize o desempenho do seu projeto IoT.: Configure o ESP32 para entrar em modo de baixo consumo
🔑 Autenticador Físico 2FA com E-InkDescubra como os autenticadores físicos com display E-Ink garantem segurança 2FA offline, unindo durabilidade e baixa energia. Inove agora. quando apropriado.
- Sensores de Baixo Consumo
🔑 Autenticador Físico 2FA com E-InkDescubra como os autenticadores físicos com display E-Ink garantem segurança 2FA offline, unindo durabilidade e baixa energia. Inove agora.: Utilize sensores
Programando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código. que consomem menos energia para prolongar a vida útil do sistema em casos de alimentação por bateria.
Gerenciamento de Eventos
- Debounce em Sensores
Programando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código.: Implemente técnicas para evitar leituras falsas causadas por ruídos elétricos ou mecânicos.
- Filtragem de Dados: Utilize algoritmos para filtrar leituras anômalas ou fora do padrão.
Segurança do Sistema
- Criptografia
Segurança em MQTT: Autenticação e Criptografia no ESP32Descubra como proteger conexões MQTT em aplicações IoT com ESP32, implementando autenticação e criptografia TLS para segurança máxima.: Assegure que as comunicações são realizadas de forma segura, protegendo dados sensíveis.
- Atualizações Remotas: Implemente mecanismos OTA para atualizar o firmware e aplicar correções de segurança
Segurança em MQTT: Autenticação e Criptografia no ESP32Descubra como proteger conexões MQTT em aplicações IoT com ESP32, implementando autenticação e criptografia TLS para segurança máxima..
Expansão Futura e Integração com Outros Sistemas🔗
A versatilidade do ESP32 permite que o sistema de alarme seja integrado com outros sistemas de automação residencialIntrodução à Automação Residencial com ESP32Descubra como o ESP32 transforma sua casa em um lar inteligente com dicas práticas de configuração, programação e automação residencial..
Integração com Assistentes Virtuais
- Amazon Alexa: Controle e receba notificações através de comandos de voz.
- Google Assistant: Utilize o Google Home para interagir com o sistema.
Painéis de Controle
- Aplicativos Móveis
Integração com Aplicativos Móveis e WebDescubra como integrar ESP32 com aplicativos móveis e dashboards web, garantindo interatividade, controle remoto e segurança em seus projetos IoT.: Desenvolva um aplicativo personalizado para monitorar e controlar o sistema.
- Dashboards Web
Integração com Aplicativos Móveis e WebDescubra como integrar ESP32 com aplicativos móveis e dashboards web, garantindo interatividade, controle remoto e segurança em seus projetos IoT.: Crie uma interface web
Interação com GPIOs via Interface Web no ESP32Aprenda a configurar e controlar os GPIOs do ESP32 por meio de uma interface web dinâmica realizando automação, monitoramento e interação remota com facilidade. acessível para visualizar o status do sistema em tempo real.
Exemplo de Projeto Completo🔗
Descrição do Projeto
Desenvolver um sistema de alarme completo que monitora portas, janelas, detecção de fumaça e movimentos, e que notifica o usuário via aplicativo móvelIntegração com Aplicativos Móveis e WebDescubra como integrar ESP32 com aplicativos móveis e dashboards web, garantindo interatividade, controle remoto e segurança em seus projetos IoT..
Componentes Utilizados
- ESP32 DevKit
Configuração de PWM e FrequênciaAprenda a configurar e ajustar o PWM no ESP32 com exemplos práticos para controlar LEDs, motores e servomotores em projetos IoT.
- Sensor Magnético
Utilizando Sensores Magnéticos de Porta e Janela com ESP32Aprenda a integrar sensores magnéticos com ESP32 para monitoramento de portas e janelas, acionando sirene e notificações via Wi-Fi com segurança efetiva. de Porta/Janela
- Sensor de Movimento PIR
Segurança Residencial: Sensores de Movimento e Detecção com ESP32Descubra como implementar um sistema de segurança residencial utilizando ESP32 com sensor PIR, notificações e muito mais para proteger seu lar.
- Sensor
Programando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código. de Fumaça MQ-2
- Módulo Wi-Fi integrado
Integração com Aplicativos Móveis e WebDescubra como integrar ESP32 com aplicativos móveis e dashboards web, garantindo interatividade, controle remoto e segurança em seus projetos IoT.
- Aplicativo Blynk (ou similar) para notificações
Passos para Implementação
1. Montagem📡 Drone FPV com Transmissão de Vídeo ao VivoEste tutorial técnico detalha a construção de um drone FPV com transmissão de vídeo, telemetria via MAVLink e otimizações de latência. do Hardware: Conectar todos os sensores
Programando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código. ao ESP32 conforme esquemático.
2. Desenvolvimento do Software:
- Programar a leitura dos sensores
Programando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código..
- Implementar a lógica de alarme e notificações.
3. ConfiguraçãoInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns. do Aplicativo: Configurar o aplicativo móvel
Integração com Aplicativos Móveis e WebDescubra como integrar ESP32 com aplicativos móveis e dashboards web, garantindo interatividade, controle remoto e segurança em seus projetos IoT. para receber as notificações e possibilitar o controle remoto.
4. Teste e ValidaçãoAplicações Práticas e Boas PráticasDescubra como implementar com segurança e eficiência aplicações práticas com o ESP32 em projetos de IoT, seguindo boas práticas.: Realizar testes para garantir o funcionamento de todos os componentes
📜 Quadro Digital com Tela E-Ink de 32 PolegadasDescubra como combinar eficiência energética, tecnologia E-Ink e ESP32 para criar quadros digitais, dashboards interativos e arte generativa com soluções IoT..
5. Implantação: Instalar o sistema no local desejado e monitorar o desempenhoDual-Core do ESP32: Como Funciona e BenefíciosDescubra como a arquitetura dual-core do ESP32 otimiza a performance em IoT e automação, distribuindo tarefas e gerenciando recursos com eficiência..
Conclusão🔗
A incorporação de sensores adicionais ao sistema de alarme com ESP32 amplia significativamente as capacidades de detecção e aumenta a segurança do ambiente monitorado. Com a abordagem correta na seleção, integração e programação dos sensores, é possível criar um sistema de segurança personalizado e eficiente. Além disso, a flexibilidade do ESP32 permite futuras expansões e integraçõesIntegração com Aplicativos Móveis e WebDescubra como integrar ESP32 com aplicativos móveis e dashboards web, garantindo interatividade, controle remoto e segurança em seus projetos IoT. com outros sistemas, tornando-o uma excelente escolha para projetos de automação e IoT.
Ao seguir as orientações e práticas apresentadas neste artigo, você estará apto a aprimorar seu sistema de alarme, tornando-o mais robusto e confiável. Lembre-se sempre de testar exaustivamente cada componente📜 Quadro Digital com Tela E-Ink de 32 PolegadasDescubra como combinar eficiência energética, tecnologia E-Ink e ESP32 para criar quadros digitais, dashboards interativos e arte generativa com soluções IoT. e manter o foco na segurança, tanto física quanto da informação, para garantir o sucesso do seu projeto.
Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.
Referências🔗
- Arduino IDE Official Website: arduino.cc
- Documentação de Apresentação do ESP32: espressif.com/en/products/socs/esp32
- Documentação do ESP32 Arduino Core: docs.espressif.com/projects/arduino-esp32
- Repositório do ESP32 Arduino Core: github.com/espressif/arduino-esp32