|
Sistema Embarcado LockWise
Sistema de fechadura inteligente com autenticação por voz, controle MQTT e aplicativo móvel
|
#include "audio_stream.h"#include "config.h"#include "driver/gpio.h"#include "esp_crt_bundle.h"#include "esp_log.h"#include "freertos/FreeRTOS.h"#include "lock.h"#include "mqtt.h"#include "nvs_flash.h"#include "system_utils.h"#include <arpa/inet.h>#include <cbor.h>#include <netdb.h>#include <stdlib.h>#include <string.h>#include <sys/socket.h>#include <time.h>Funções | |
| static void | mqtt_event_handler (void *handler_args, esp_event_base_t base, int32_t event_id, void *event_data) |
| Handler de eventos MQTT. | |
| static void | process_cbor_command (CborValue *value) |
| Processa comandos recebidos via CBOR MQTT. | |
| static void | handle_update_config_command (CborValue *map_value) |
| Trata comando UPDATE_CONFIG recebido via MQTT. | |
| void | mqtt_init (void) |
| Inicializa o cliente MQTT. | |
| void | mqtt_publish_status (const char *status) |
| Publica um status no tópico MQTT do dispositivo. | |
| void | mqtt_publish_lock_event (lock_state_t state, door_reason_t reason) |
| Publica um evento de mudança de estado da fechadura via MQTT. | |
| static void | mqtt_publish_heartbeat (void) |
| Publica heartbeat detalhado via MQTT. | |
| void | mqtt_heartbeat_task (void *pvParameters) |
| Tarefa que publica heartbeats periódicos via MQTT. | |
Variáveis | |
| static const char * | TAG = "\033[1mLOCKWISE:\033[35mMQTT\033[0m\033[35m" |
| TaskHandle_t | idle_blink_task |
| Handle da tarefa de piscar idle (acessível de audio_stream.c) | |
| esp_mqtt_client_handle_t | mqtt_client |
| Handle global do cliente MQTT. | |
|
static |
Trata comando UPDATE_CONFIG recebido via MQTT.
| map_value | Valor CBOR do mapa contendo chave e valor para atualização. |
Atualiza configuração específica baseada na chave e valor fornecidos.
|
static |
Handler de eventos MQTT.
| handler_args | Argumentos do handler. |
| base | Base do evento. |
| event_id | ID do evento. |
| event_data | Dados do evento. |
Processa eventos de conexão, desconexão e dados recebidos via MQTT.
| void mqtt_heartbeat_task | ( | void * | pvParameters | ) |
Tarefa que publica heartbeats periódicos via MQTT.
| pvParameters | Parâmetros da tarefa (não usado). |
Executa em loop, publicando informações completas do estado do dispositivo em intervalos configuráveis.
| void mqtt_init | ( | void | ) |
Inicializa o cliente MQTT.
Esta função configura e inicia o cliente MQTT, conectando-se ao broker especificado na configuração. Assina o tópico específico do dispositivo para receber comandos.
|
static |
Publica heartbeat detalhado via MQTT.
Publica mensagem CBOR com informações completas do estado do dispositivo, incluindo configurações atuais e estado da fechadura.
| void mqtt_publish_lock_event | ( | lock_state_t | state, |
| door_reason_t | reason | ||
| ) |
Publica um evento de mudança de estado da fechadura via MQTT.
| state | Novo estado da fechadura. |
| reason | Razão da mudança de estado. |
Publica uma mensagem CBOR detalhada incluindo lock state, reason, uptime e timestamp.
| void mqtt_publish_status | ( | const char * | status | ) |
Publica um status no tópico MQTT do dispositivo.
| status | String descrevendo o status atual (ex.: "CONNECTED", "STREAMING"). |
Publica uma mensagem CBOR contendo o evento, uptime e timestamp no tópico lockwise/{device_id}/status.
|
static |
Processa comandos recebidos via CBOR MQTT.
| value | Valor CBOR contendo o comando. |
Interpreta comandos como UNLOCK, LOCK, PING, etc., e executa ações correspondentes.
|
extern |
Handle da tarefa de piscar idle (acessível de audio_stream.c)
| esp_mqtt_client_handle_t mqtt_client |
Handle global do cliente MQTT.
Esta variável externa armazena o handle do cliente MQTT usado para comunicação com o broker.
|
static |