Grupo 07 - Detetor Genérico de Correspondência
Equipa: |
Grupo 07: Vitor Correia (Coord.) , André Campos , Denys Zadorozhnyy , Maria João Carvalhais , Rafael Fonseca |
Empresa: | Entropic Ventures, Unipessoal Lda |
Orientadores: |
Prof. Manuel de Oliveira Duarte (DETI)
Eng. David Carvalhão (Entropic Ventures, Unipessoal Lda) |
Muitas vezes com a correria do dia-a-dia, tarefas como verificar a caixa do correio são esquecidas, este esquecimento pode levar a vários inconvenientes principalmente em correspondências com prazos limitados. O Detetor Genérico de Correspondência surgiu de uma conversa entre o Engenheiro David Carvalhão e um membro dos CTT, onde se verificou a necessidade de existir um produto que permitisse notificar um utilizador ao mesmo tempo que chegasse correio. Deste modo, o produto consiste num sistema que detete automaticamente a entrada de correspondência postal numa caixa de correio e notifique o utilizador através de uma aplicação. Em geral, o sistema é constituído por um microcontrolador com uma câmara associada, um sensor piroelétrico e um Reed Switch. A existência de uma câmara associada ao microcontrolador, possibilita ao utilizador visualizar o interior da caixa de correio, através de uma foto enviada para aplicação ao mesmo tempo que seja detetado correio. Assim, através deste produto é possível notificar o utilizador que chegou correspondência à sua caixa de correio, sem que seja necessário efetuar a verificação presencialmente.
O projeto foi implementado com o intuito de desenvolver um sistema capaz de detetar de forma automática a entrada de correspondência numa caixa de correio postal, este deve ser também capaz de notificar o utilizador, através de uma aplicação, sobre a chegada da mesma. Tendo em vista a implementação de um produto comercializável foi necessário estudar qual o método de sensorização mais eficaz para a deteção da chegada de correspondência. Assim sendo, foram definidas num estado inicial duas hipóteses:
- A primeira hipótese, rebate sobre o uso do sensor de infravermelhos, HC-SR501, que deteta a receção de correspondência através da emissão de radiação infra-vermelha.
- A segunda hipótese, remete para o uso de um Reed Switch (RS) num modo Normally Closed, que possuí um íman aplicado numa pala móvel. Na posição de repouso, o RS e o íman encontram-se próximos, sendo que não ocorre fluxo de corrente no circui-to do RS. Após a chegada de correspondência, a pala móvel move-se, afastando o íman do RS, provocando assim o fluxo de corrente no circuito do RS, detetando correspondência. Após o desenvolvimento de vários testes foi possível apurar que, apesar de não ter sido considerado num ponto inicial como hipótese de implementação, o uso dos dois sensores em simultâneo levava a menos erros de deteção. Assim sendo, o módulo de sensorização migrou para uma terceira hipótese que funde a utilização de ambos os sensores.
O protótipo final apresenta um add-on sobre aquilo que foi o requisito inicial, tendo em vista novamente um produto comercializável, o utilizador pode ter acesso ao conteúdo da sua caixa de correio após a deteção de correspondência, através de uma fotografia que será carregada na aplicação mobile.
Desafio
O desafio proposto ao grupo pela empresa Entropic Ventures, consiste no desenvolvimento de um produto intuitivo e eficaz para detetar a entrada de correspondência em qualquer caixa de correio comercializável. Deste modo, as especificações iniciais propostas baseiam-se na construção de um produto de fácil instalação, barato, autonomia mínima próxima de um ano e erros praticamente nulos na deteção de entrada de correspondência.
Resultados
O produto realizado apresenta elevada eficácia de deteção de entrada de correspondência na caixa de correio, devido à utilização dos dois sensores referidos anteriormente (PIR e Reed Switch). Através dos sensores a entrada de correio será detetada e consequentemente será retirada uma foto ao interior da caixa, possibilitando ao utilizador visualizar o tipo de correio recebido. A aplicação desenvolvida, alerta para a chegada de correspondência postal através de uma notificação e permite que o utilizador possa verificar mais alguns detalhes sobre o produto, como: o registo das entradas de correspondência; a foto retirada ao interior da caixa de correio; a chave de identificador de usuário único; o estado da bateria; o manual de utilizador. De forma a proteger o produto, foi construída uma caixa para precaver qualquer dano a que este esteja sujeito. Assim, o produto final está ilustrado nas figuras seguintes:


Mais informação
Nesta secção serão abordados com detalhe todos os tópicos fundamentais para a realização do projeto.
Arquitetura do Produto
Segue-se a arquitetura do produto onde são destacados os seguintes módulos:
Estes módulos fundamentais serão apresentados de seguida.

Módulo Sensorização
Diagrama de Código
A constituição do código pode ser descrita pelas suas 3 principais funções:

Para que o processo descrito seja inicializado, é necessária a ativação do primeiro círculo de controlo, para tal existe um botão externo ao ESP32 que, tal como os sensores, gera uma interrupção externa. Este botão é utilizado como o botão de reset para a interface do utilizador.
Módulo de Alimentação
O Modulo de alimentação foi implementado para que o produto tenha grande autonomia. Para tal será utilizada uma pilha de carregamento de 9V. Como, quer o ESP32-CAM quer o sensor PIR estão limitados a uma tensão de alimentação de 5V, foi necessário incluir um regulador de tensão que regula a tensão de entrada para 5V.
Módulo de Comunicação
AccessPoint
De forma que a ESP32-CAM comunique com a Firebase e consequentemente com a aplicação, a ESP32-CAM tem de ter acesso à Internet. Por isso, quando o produto é ligado pela primeira vez, a ESP32-CAM vai entrar em AccessPoint Mode (AP Mode); este modo é equivalente a ligar um hotspot de um telemóvel. O microcontrolador cria então uma rede Wi-Fi, à qual outros dispositivos se podem ligar.
No entanto, ao contrário dos telemóveis, a ESP32-CAM não está efetivamente conectada à Internet. Por isso, este modo é usado para criar uma rede Wi-Fi local privada que está isolada da Internet. Como seria de esperar, neste modo o microcontrolador não tem as capacidades de performance de um router Wi-Fi convencional, nem é suposto, e, por isso mesmo, é que este apenas servirá para se poder enviar as credencias do Wi-Fi de casa do utilizador.
Deste modo, o usuário através do telemóvel terá de se conectar à rede Wi-Fi local privada criada pelo microcontrolador, o que irá fazer com que seja gerada automaticamente uma página html, denominada por WiFiManager. Nesta página, o utilizador terá de clicar no botão Configure WiFi, para que insira as suas credenciais do Wi-Fi de casa e uma KEY. No campo Enter KEY, o usuário terá de introduzir a chave apresentada no botão Perfil da aplicação, que é o identificador de usuário único (uid) gerado pelo recurso Firebase Authentication. Através da KEY introduzida irá fazer com que a ESP32-CAM comunique com um campo específico na base de dados e todas as verificações posteriores feitas pelo microcontrolador a partir daí, são feitas dentro desse campo único. Para finalizar o processo, o utilizador terá de clicar no botão Save, para que todos os dados sejam armazenados na ESP32-CAM. Assim que a ESP32-CAM recebe os dados de que precisa, vai passar para o Station Mode (STA Mode) e conecta-se à rede de casa do utilizador (Wi-Fi AP). Após a conexão ao Wi-Fi, o dispositivo está funcional para notificar o usuário assim que exista correspondência na caixa de correio.

Módulo de Aplicação
APP
A aplicação, encontra-se, visualmente, tal como é possível observar na figura. Quando o utilizador entra pela primeira vez na aplicação, pode criar a sua conta, inserindo um e-mail e uma password. Se for escolhida uma password muito simples, como por exemplo, “1234” ou “abcd”, é apresentada uma mensagem de erro, obrigando a que seja inserida uma password mais complexa. É também verificado se o e-mail introduzido já está a ser utilizado por outra conta.

Se a criação da conta for bem-sucedida, o utilizador é redirecionado para a interface principal. Se realizar o log out ou desinstalar a aplicação, na próxima vez que decidir usar a app, poderá realizar o respetivo login diretamente, sendo que é verificado se a conta introduzida está registada na base de dados.
Este gerenciamento referente ao login e ao sign up, é feito recorrendo ao recurso Firebase Authentication, que facilita o desenvolvimento de um sistema de autenticação seguro, além de melhorar a experiência de login e integração para os utilizadores finais. Para além disso, este recurso gera um identificador de usuário único (uid) no momento em que é realizada a criação de uma conta.
Depois de fazer o primeiro login, a app “memoriza” essas credencias e, a partir daí, não é mais necessário introduzi-las, a menos que seja feito um log out.
Na interface principal, essencialmente, são apresentados 4 botões: Registo, Definições, Perfil e Log Out. O registo permite a consulta de todas as notificações de correspondência recebidas, apresentando uma lista com a data e hora de cada uma. As definições permitem ao utilizador alterar algumas configurações simples, como por exemplo, se pretende ou não, receber a foto em conjunto com a notificação. O perfil apresenta algumas informações importantes sobre o usuário.
Quando o usuário cria a sua conta, é criado um campo específico na base de dados com o seu uid. Todas as verificações posteriores feitas pela app, são realizadas dentro desse campo único.
As notificações funcionam quando a aplicação está em foreground (aberta), background (minimizada) e terminada ou fechada. Para englobar estes 3 casos, foram precisos utilizar os seguintes recursos: Firebase Cloud Messaging e Firebase Cloud Functions.
Firebase Cloud Messaging (FCM) é uma solução de mensagens multiplataforma que permite entregar mensagens de forma confiável e sem custos. É possível usar o FCM de modo a enviar mensagens a todos os utilizadores de uma determinada aplicação ou para usuários finais. Neste último caso, quando se pretende enviar uma notificação para um utilizador específico, é necessário usar o FCM token, um identificador exclusivo atribuído a cada instância da aplicação. Estes tokens são usados para identificar dispositivos registados para receberem mensagens de um servidor.
Logo, quando uma instância da aplicação é registada no FCM, é gerado um token exclusivo para esse utilizador. Na nossa aplicação, este token é gerado cada vez que o utilizador faz o login, de modo a poder receber notificações em qualquer dispositivo que esteja a utilizar no momento. Depois de gerado, o token é enviado para a base de dados e guardado dentro do respetivo campo uid. Assim, mesmo que a aplicação esteja fechada, como o token identifica o próprio dispositivo, este consegue receber notificações.
O objetivo é enviar uma notificação quando ocorrem mudanças na base de dados dentro do respetivo campo uid, ou seja, quando há a inserção de um novo registo de correspondência. Mas, se a aplicação estiver fechada, esta não consegue fazer essa verificação. É necessário que “algo”, independente da aplicação, faça essa verificação constantemente e envie a notificação. Foi por essa razão que foi essencial utilizar o recurso Firebase Cloud Functions. Trata-se de uma estrutura sem servidor que permite executar automaticamente o código de back-end em resposta a eventos acionados por recursos da Firebase e solicitações HTTPS. O seu código é armazenado na nuvem do Google e executado num ambiente gerenciado. Não há necessidade de gerenciar e dimensionar servidores próprios.
Tendo isto em conta, foi implementada uma Cloud Function, escrita em JavaScript, que verifica, sem interrupções, se ocorrem mudanças na base de dados. A função consegue reter o campo uid onde ocorreu a mudança; de seguida acede ao respetivo token e envia uma notificação usando o FCM.
Protótipo Caixa de Correio
Após a programação de todo o software foi necessário desenvolver um protótipo que permitisse testar o sistema em ambiente real. Nesse sentido foi desenvolvido o seguinte protótipo de caixa do correio:


Esta caixa é constituída por duas peças: plano frontal da caixa, que possuí uma ranhura que permite a simulação da entrada de correspondência e um plano interior da caixa, que é constituído por uma pala móvel fixada nas laterais da caixa, onde sempre que é dada a entrada de correspondência ocorre um movimento que faz afastar o íman do ReedSwitch.
Contrução da Caixa de Proteção
Para proteger o sistema de qualquer tipo de dano, foi desenvolvida uma caixa de proteção através do programa SolidWorks. A caixa foi impressa através de uma impressora 3D utilizando filamento PLA, conforme é possível visualizar através da imagem.



Design do PCB
O layout do PCB desenvolvido encontra-se na imagem seguinte, onde estão destacados alguns sub-circuitos que constituem o circuito principal:

Construção do PCB
Numa primeira fase, o sistema foi montado numa placa furada, onde os componentes foram interligados com fios e solda, conforme é apresentado na imagem abaixo.

Após serem realizados todos os testes na placa furada e o sistema funcionar corretamente, procedemos à impressão do PCB. Na figura seguinte é apresentado o PCB final, onde todos os componentes apresentam-se soldados com bastante estabilidade.

Consumo Energético
Assumindo entrada de correspondência na caixa de correio uma vez por dia, os equipamentos estão ativos os seguintes tempos diários:
Assim, os consumos energéticos anuais estão apresentados na tabela seguinte:
Categoria | Descrição | Consumo Anual |
---|---|---|
Microcontrolador | Deep Sleep Mode | 35 000 mAh |
Microcontrolador | Active Mode sem Flash | 124 mAh |
Microcontrolador | Active Mode com Flash | 104 mAh |
Sensor PIR | Sensor PIR HC-SR501 | 438 mAh |
Sensor Reed Switch | Sensor Reed Switch SPST-NC | 104 mAh |
Access Point | Access Point Manager | 3 mAh |
Consumo Anual Total: | 35 773 mAh |
Custos do produto
De seguida é apresentada a tabela de custo para a construção de um protótipo do produto:
# | Categoria | Descrição | Valor |
---|---|---|---|
1 | Microcontrolador | ESP32-OV2640-CAM | 12,80 € |
2 | Sensor PIR | Sensor PIR HC-SR501 | 2,40 € |
3 | Sensor Reed Switch | Sensor Reed Switch SPST-NC | 6,05 € |
4 | Regulador de Tensão | LM7805 | 1,00€ |
5 | Pilha | Pilha 9V 1000mAh | 2,99 € |
6 | Suporte para pilhas | Suporte de pilhas 1x6F22, 6LR61 (9V) | 1,86 € |
7 | Suporte | Suporte em acrílico | 3,00 € |
8 | Pala móvel | Pala em acrílico | 1,50 € |
9 | Caixa Suporte | Caixa em PLA | 1,00 € |
Custo Total: | 32,60 € |
Para um produto comercializável, espera-se um valor total mais baixo, pois a compra de produtos irá ser feita em maior quantidade. É necessário ter em conta que no processo de prototipagem inicial são utilizados produtos adquiridos em poucas quantidades.