|
Sistema Embarcado LockWise
Sistema de fechadura inteligente com autenticação por voz, controle MQTT e aplicativo móvel
|
#include <stdint.h>Ir para o código fonte deste ficheiro.
Estruturas de Dados | |
| struct | blink_params_t |
| Parâmetros para controle do piscar do LED. Mais... | |
Macros | |
| #define | LOCK_H |
| #define | LOCK_INDICATOR_LED_GPIO 22 |
| Pino GPIO para o LED indicador da fechadura. | |
| #define | LOCK_ACTUATOR_GPIO CONFIG_LOCK_GPIO |
| Pino GPIO para o atuador da fechadura (configurável via menuconfig) | |
Enumerações | |
| enum | lock_state_t { LOCK_STATE_LOCKED , LOCK_STATE_UNLOCKED , LOCK_STATE_AUTHENTICATING } |
| Estados possíveis da fechadura. Mais... | |
| enum | door_reason_t { DOOR_REASON_BUTTON , DOOR_REASON_TIMEOUT , DOOR_REASON_MQTT , DOOR_REASON_VOICE , DOOR_REASON_REBOOT , DOOR_REASON_LOCKDOWN , DOOR_REASON_SERIAL } |
| Razões para mudança de estado da fechadura. Mais... | |
Funções | |
| void | lock_init (void) |
| Inicializa o controle da fechadura. | |
| 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. | |
| void | blink (void *param) |
| Tarefa para fazer o LED piscar continuamente. | |
| #define LOCK_ACTUATOR_GPIO CONFIG_LOCK_GPIO |
Pino GPIO para o atuador da fechadura (configurável via menuconfig)
| #define LOCK_H |
| #define LOCK_INDICATOR_LED_GPIO 22 |
Pino GPIO para o LED indicador da fechadura.
| enum door_reason_t |
Razões para mudança de estado da fechadura.
| enum lock_state_t |
| 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.
| 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.