Projeto final da disciplina Fundamentos de Sistemas Embarcados, semestre 2022.1, da Universidade de Brasília, campus Gama.
Este projeto comunica-se por MQTT com um servidor Thingsboard, reportando como telemetria dados de temperatura em graus Celsius, umidade relativa, e o estado do botão do kit de desenvolvimento. Também são comunicados como atributos os avisos de temperatura alta, temperatura baixa, umidade alta e umidade baixa. Os limites para mudança dos atributos estão disponíveis em código.
O projeto consiste em:
- uma placa de desenvolvimento compatível com a DEVKIT V1, com um módulo ESP-WROOM-32
- um módulo com o sensor de temperatura e umidade relativa DHT11
- um módulo LED RGB
- um módulo de buzzer passivo com disparo em nível lógico baixo
Os seguintes pinos são usados:
Função | Modo de funcionamento | Periférico | Interrupção | Número no ESP-WROOM-32 | Descrição na placa de desenvolvimento |
---|---|---|---|---|---|
botão da placa | entrada | GPIO | wakeup,any edge | 0 | BOOT |
LED da placa | saída | LEDC, TIMER 0, CHANNEL 0 | Não | 2 | D2 |
DHT11 | entrada e saída | GPIO | Não | 16 | RX2 |
LED vermelho | saída | LEDC, TIMER 0, CHANNEL 1 | Não | 17 | TX2 |
LED verde | saída | LEDC, TIMER 0, CHANNEL 2 | Não | 18 | D18 |
LED azul | saída | LEDC, TIMER 0, CHANNEL 3 | Não | 19 | D19 |
Buzzer | saída | LEDC, TIMER 1, CHANNEL 4 | Não | 33 | D33 |
O projeto depende de uma instalação válida dos seguintes softwares:
esp-idf v4.4.2-288-gc070c58ef3
-
Clone o projeto
git clone https://github.com/DaviAntonio/FSE-2022.1-ESP32.git
-
Atualize os módulos
git submodule update --init --recursive
-
Configure o projeto
idf.py menuconfig
-
Compile os códigos-fonte
idf.py build
-
Grave o resultado na memória flash da ESP32
idf.py flash
-
Execute e monitore
idf.py monitor
As seguintes opções podem ser configuradas usando-se o menuconfig
:
ESP_WIFI_SSID
, o SSID da rede usada para se conectar à InternetESP_WIFI_PASSWORD
, a senha da redeESP_MAXIMUM_RETRY
, número máximo de tentativas de conexão
MQTT_SERVER_URI
, o endereço usado para se conectar ao intermediário (broker) MQTT usado pelo ThingsboardMQTT_USERNAME
, o token usado para se comunicar com o broker MQTT do Thingsboard
BATTERY_MODE
, caso marcada, o microcontrolador entrará no modo Light Sleep periodicamente (entre 10 e 20 segundos). É possível retirá-lo do modo de suspensão ativando o botão da placa.
Este projeto usa códigos modificados escritos por Renato Coral.
A comunicação com o DHT11 usa a biblioteca ESP32-DHT11, licenciada sob a MIT por Michele Biondi.
Há, no projeto, o uso da esp-idf, bem como das bibliotecas de código livre ou aberto incorporadas nela.
Os demais códigos estão licenciados por Davi Antônio e Wellington sob a AGPLv3.