Construindo um contador de pessoas com Raspberry Pi e Ubidots
Ubidots é um serviço em nuvem que permite armazenar e analisar dados de sensores em tempo real . Permite criar aplicações para a Internet das Coisas, sem nenhum conhecimento profundo de programação web, bancos de dados ou APIs.
– Uma pequena bateria, com seu cabo micro-USB:
– Sensor de movimento da Parallax:
ATUALIZAÇÃO Seguindo uma sugestão de Doug Jefferies (Obrigado!), Os GPIOs do Raspberry Pi são projetados para 3,3 V, mas estamos colocando 5 V lá. Portanto, é uma ideia melhor conectar:
V+ -> Pino nº 1 (3,3 V).
Como o sensor é muito sensível ao movimento, usei o jumper atrás dele para definir a sensibilidade mais baixa. Além disso, coloquei-o em uma caixa escura com uma pequena abertura, para que a detecção de movimento se concentre em um ponto em vez de ser tão omnidirecional:
Codificação
Crie um novo arquivo chamado “peoplecounter.py”:
$ sudo nano peoplecounter.py
E escreva o seguinte código nele. Certifique-se de substituir os valores da chave API e do ID da variável pelos da sua conta pessoal Ubidots .
(Observação: o código não é muito elegante, mas ei, não sou um desenvolvedor Python, apenas um cara de hardware 🙂
de ubidots importar ApiClient importar RPi.GPIO como tempo de importação GPIO GPIO.setmode (GPIO.BCM) GPIO.setup (7, GPIO.IN) tentar: api = ApiClient ("a21ebaf64e14d195c0044fcc3b9f6dab9d653af3") pessoas = api.get_variable ("5238cec3f91b282c735) 7a140") exceto: print "Não foi possível conectar-se à API, verifique sua conexão com a Internet" contador = 0 peoplecount = 0 while(1): presença = GPIO.input(7) if(presence): peoplecount += 1 presença = 0 tempo. sleep(1.5) time.sleep(1) counter += 1 if(counter==10): print peoplecount people.save_value({'value':peoplecount}) counter = 0 peoplecount = 0
$ python contador de pessoas.py
Agora que os dados estão na nuvem, você pode adicionar widgets ao seu dashboard para exibir a atividade em tempo real. Você também pode configurar “Eventos” em sua conta Ubidots , para receber uma notificação por SMS ou e-mail quando sua variável atingir um limite específico.
Conclusão
Este projeto fornece uma dica do número de pessoas que passam por um determinado ponto. Não fornece o número exato de pessoas, dadas as limitações do sensor de movimento, mas em algumas aplicações, isso pode ser suficiente.
Contadores de pessoas mais elaborados utilizam câmeras e algoritmos de processamento de imagem para detectar o que é o objeto em movimento (pessoa, carro, animal de estimação...), em que direção ele se move (para dentro/para fora, esquerda/direita) e poderiam até ser estendidos, em teoria , para saber a idade e o sexo da pessoa.
Outra forma de detectar pessoas seria sentir passivamente os sinais de rádio de seus smartphones, como Wifi ou Bluetooth ( veja como esse cara detectou smartphones em sua casa ). Em última análise, a iBeacon também deverá ser um grande facilitador destas aplicações.
Em qualquer caso, os dados recolhidos podem ser facilmente enviados para Ubidots , onde podem ser interpretados através da criação de alertas, dashboards ao vivo ou conectando-os a outros sistemas.