Contador De Pessoas
by Pet EngComp in Circuits > Microcontrollers
1127 Views, 0 Favorites, 0 Comments
Contador De Pessoas
![PrintSite.png](/proxy/?url=https://content.instructables.com/FC5/FDXV/KKML3KMQ/FC5FDXVKKML3KMQ.png&filename=PrintSite.png)
![unknown.png](/proxy/?url=https://content.instructables.com/FVC/V211/KKB5JGE9/FVCV211KKB5JGE9.png&filename=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](/proxy/?url=https://content.instructables.com/F5J/JXKP/KKB5JGCX/F5JJXKPKKB5JGCX.jpg&filename=sensor-de-obstaculo-reflexivo-infravermelho-1b7e19f1.jpg)
![dht11_pins.png](/proxy/?url=https://content.instructables.com/FE9/L09F/KKB5JGDL/FE9L09FKKB5JGDL.png&filename=dht11_pins.png)
![nodemcu_1_1.jpg](/proxy/?url=https://content.instructables.com/FLU/R6SL/KKB5JGDM/FLUR6SLKKB5JGDM.jpg&filename=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](/proxy/?url=https://content.instructables.com/FVC/V211/KKB5JGE9/FVCV211KKB5JGE9.png&filename=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.
Downloads
Software - Download Dos Códigos
Os códigos e as bibliotecas usadas nesse projeto podem ser baixados no arquivo abaixo ou no seguinte link:
Baixe o IDE do Arduino no seu computador e adicione as bibliotecas, para subir o código para o NodeMCU.
Downloads
Software - Explicação Dos Códigos
![PrintFront.png](/proxy/?url=https://content.instructables.com/FN8/TN07/KKML3KL0/FN8TN07KKML3KL0.png&filename=PrintFront.png)
![PrintBackEnd.png](/proxy/?url=https://content.instructables.com/F5Q/0M7P/KKML3KMO/F5Q0M7PKKML3KMO.png&filename=PrintBackEnd.png)
![PrintNodeMCU.png](/proxy/?url=https://content.instructables.com/FSA/IOYA/KKPFWZ0D/FSAIOYAKKPFWZ0D.png&filename=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](/proxy/?url=https://content.instructables.com/FTV/BP6L/KKFFU5CD/FTVBP6LKKFFU5CD.png&filename=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.