|
Sistema Embarcado LockWise
Sistema de fechadura inteligente com autenticação por voz, controle MQTT e aplicativo móvel
|
#include "config.h"#include "driver/gpio.h"#include "esp_log.h"#include "freertos/FreeRTOS.h"#include "freertos/semphr.h"#include "freertos/timers.h"#include "lock.h"#include "mqtt.h"#include <stdint.h>Estruturas de Dados | |
| struct | lock_context_t |
| Estrutura de contexto para gerenciamento da fechadura. Mais... | |
Funções | |
| void | lock_init (void) |
| Inicializa o controle da fechadura. | |
| static void | lock_timeout_callback (TimerHandle_t xTimer) |
| Callback do timer de trancamento automático. | |
| void | blink (void *param) |
| Tarefa para fazer o LED piscar continuamente. | |
| void | unlock_door (door_reason_t reason) |
| Destranca a fechadura. | |
| void | lock_door (door_reason_t reason) |
| Tranca a fechadura. | |
| void | toggle_door (door_reason_t reason) |
| Alterna o estado da fechadura. | |
| lock_state_t | get_lock_state (void) |
| Retorna o estado atual da fechadura. | |
Variáveis | |
| static const char * | TAG = "\033[1mLOCKWISE:\033[93mLOCK" |
| static lock_context_t | lock_ctx |
| Instância singleton do contexto da fechadura. | |
| void blink | ( | void * | param | ) |
Tarefa para fazer o LED piscar continuamente.
| param | Ponteiro para blink_params_t contendo os parâmetros de piscar. |
Esta função roda em loop infinito, controlando o GPIO do LED conforme os parâmetros fornecidos.
| lock_state_t get_lock_state | ( | void | ) |
Retorna o estado atual da fechadura.
| void lock_door | ( | door_reason_t | reason | ) |
Tranca a fechadura.
| reason | Razão para o trancamento. |
Desativa o atuador da fechadura e publica o evento via MQTT.
| void lock_init | ( | void | ) |
Inicializa o controle da fechadura.
Esta função configura os GPIOs necessários, inicializa o mutex e define o estado inicial da fechadura como trancada.
|
static |
Callback do timer de trancamento automático.
| xTimer | Handle do timer que expirou. |
Chamado quando o timer de auto-trancamento expira, trancando a fechadura automaticamente.
| void toggle_door | ( | door_reason_t | reason | ) |
Alterna o estado da fechadura.
| reason | Razão para a alternância. |
Se estiver trancada, destranca; se estiver destrancada, tranca.
| void unlock_door | ( | door_reason_t | reason | ) |
Destranca a fechadura.
| reason | Razão para o destrancamento. |
Se a fechadura não estiver já destrancada, ativa o atuador, publica o evento via MQTT e inicia o timer de auto-trancamento.
|
static |
Instância singleton do contexto da fechadura.
|
static |