Sistema Embarcado LockWise
Sistema de fechadura inteligente com autenticação por voz, controle MQTT e aplicativo móvel
Carregando...
Procurando...
Nenhuma entrada encontrada
Referência ao ficheiro lock.h
#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.
 

Documentação das macros

◆ LOCK_ACTUATOR_GPIO

#define LOCK_ACTUATOR_GPIO   CONFIG_LOCK_GPIO

Pino GPIO para o atuador da fechadura (configurável via menuconfig)

◆ LOCK_H

#define LOCK_H

◆ LOCK_INDICATOR_LED_GPIO

#define LOCK_INDICATOR_LED_GPIO   22

Pino GPIO para o LED indicador da fechadura.

Documentação dos valores da enumeração

◆ door_reason_t

Razões para mudança de estado da fechadura.

Valores de enumerações
DOOR_REASON_BUTTON 

Ação manual via botão de toque.

DOOR_REASON_TIMEOUT 

Trancamento automático por timeout.

DOOR_REASON_MQTT 

Comando via MQTT.

DOOR_REASON_VOICE 

Autenticação por voz.

DOOR_REASON_REBOOT 

Reinicialização do sistema.

DOOR_REASON_LOCKDOWN 

Bloqueio de emergência.

DOOR_REASON_SERIAL 

Comando via interface serial.

◆ lock_state_t

Estados possíveis da fechadura.

Valores de enumerações
LOCK_STATE_LOCKED 

Fechadura está trancada.

LOCK_STATE_UNLOCKED 

Fechadura está destrancada.

LOCK_STATE_AUTHENTICATING 

Fechadura está em processo de autenticação.

Documentação das funções

◆ blink()

void blink ( void *  param)

Tarefa para fazer o LED piscar continuamente.

Parâmetros
paramPonteiro 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.

◆ get_lock_state()

lock_state_t get_lock_state ( void  )

Retorna o estado atual da fechadura.

Retorna
Estado atual da fechadura (LOCK_STATE_LOCKED, LOCK_STATE_UNLOCKED ou LOCK_STATE_AUTHENTICATING).

◆ lock_door()

void lock_door ( door_reason_t  reason)

Tranca a fechadura.

Parâmetros
reasonRazão para o trancamento.

Desativa o atuador da fechadura e publica o evento via MQTT.

◆ lock_init()

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.

◆ toggle_door()

void toggle_door ( door_reason_t  reason)

Alterna o estado da fechadura.

Parâmetros
reasonRazão para a alternância.

Se estiver trancada, destranca; se estiver destrancada, tranca.

◆ unlock_door()

void unlock_door ( door_reason_t  reason)

Destranca a fechadura.

Parâmetros
reasonRazã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.