Introduction: Contador De Pessoas

About: The Tutorial Education Program is an honors program for Brazilian undergraduates, sponsored by the Ministry of Education. Based on philosophical principles of tutorial education in which small groups of academ…

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.

Step 1: Componentes

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.

Step 2: Hardware - Montagem Do Circuito

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.

Step 3: 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.

Step 4: Software - Explicação Dos Códigos

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.

Step 5: Plaquinha PCB

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.

Step 6: Funcionamento Do Projeto

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

Step 7: Licença Do Projeto

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