Contador De Pessoas

by Pet EngComp in Circuits > Microcontrollers

1127 Views, 0 Favorites, 0 Comments

Contador De Pessoas

PrintSite.png
unknown.png

O projeto foi criado com o intuito de ser utilizado na sala do PET da engenharia de computação da UFES para ter controle do número de pessoas dentro da mesma, além da medição de temperatura e umidade. Para que possa ter o controle total esses número são alterados e enviados para um site, que pode ser acessado de qualquer lugar.

Componentes

sensor-de-obstaculo-reflexivo-infravermelho-1b7e19f1.jpg
dht11_pins.png
nodemcu_1_1.jpg

Para realizar o projeto, os seguintes componentes serão utilizados:

  • 1 NODEMCU ESP8266;
  • 1 Sensor de Umidade e Temperatura DHT11;
  • 2 Sensores de Obstáculos Reflexivo Infravermelho.

Esses componentes são facilmente encontrados tanto na internet, quanto em lojas físicas. Há diversos sites confiáveis, por exemplo, o Mercado Livre.

Preço total médio comprando pelo Mercado Livre: R$ 56,72.

Hardware - Montagem Do Circuito

unknown.png

No arquivo abaixo pode ser encontrado o esquemático, em que utilizamos o programa Fritzing para desenvolve-lo, e com isso entender as ligações dos componentes. De acordo com o esquemático, monte-o em um protoboard para poder testar, e se funcionar, faça uma plaquinha PCB para seu circuito.

Software - Download Dos Códigos

Os códigos e as bibliotecas usadas nesse projeto podem ser baixados no arquivo abaixo ou no seguinte link:

Códigos

Baixe o IDE do Arduino no seu computador e adicione as bibliotecas, para subir o código para o NodeMCU.

Software - Explicação Dos Códigos

PrintFront.png
PrintBackEnd.png
PrintNodeMCU.png

Para o projeto, criamos 3 códigos diferentes.
No Frontend do site utilizamos HTML, JS e CSS. A aplicação se resume em criar uma página utilizando HTML e CSS puro, onde mostraremos a ultima atualização do site, número de pessoas, a temperatura e a umidade. O JavaScript é utilizado para se comunicar com o Nodemcu, usando o socket.io e enviando para a página com o .innerHTML.

Para o Backend foram utilizados alguns consts para criação do servidor, com a instalação do WebSocket e o express. A função wss.on está atenta a qualquer conexão nesse servidor, caso ocorra e o cliente mande uma mensagem, a função ws.on('message') será chamada. Essa mensagem será armazenada na variável dados. Na função setInterval, que é chamada a cada 100 ms, ele avaliará se a nova mensagem é a mesma da anterior, caso contrário, ele a enviará para todos os clientes conectados, utilizando a função ws.send.

Por último, temos o código .ino que controla o nodemcu. Para esse projeto foram utilizadas 5 bibliotecas, sendo elas:

  • DHT.h - Para utilizar o sensor de temperatura e umidade
  • ESP8266WiFi.h - Para que possa ser possível existir uma comunicação Wifi.
  • WebSocketsClient.h - Responsável pela comunicação com o websocket
  • NTPCliente.h e WifiUdp.h - Responsáveis por pegar o tempo atual e mostrar quando foi a última atualização

Inicialmente são criadas algumas variáveis para armazenar alguns valores importantes para o decorrer do código. Algumas funções foram criadas para gerenciar essas variáveis. Uma deles é a função webSocketEvent(WStype_t type, uint8_t *payload, size_t length), dedicada a receber o valor das variáveis e enviar ao backend da aplicação.

E temos as funções void verificaAlteracaoDados() e void contaPessoas() que atualizarão os valores de temperatura, umidade e contagem de pessoas.

Plaquinha PCB

Captura de tela 2021-01-27 133651.png

Se tudo deu certo até agora, faça uma placa PCB (normalmente usamos o software EAGLE CAD para fazer isso) e depois solde os componentes.

Downloads

Funcionamento Do Projeto

Assista ao vídeo da demonstração final do projeto.

Licença Do Projeto

Este trabalho está licenciado com a Licença Creative Commons Atribuição 4.0 Internacional.