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. Ele possibilita a criação de aplicações para a Internet das Coisas, sem aedge em programação web, bancos de dados ou APIs.

– Uma pequena bateria externa, 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 aplicando 5 V neles. Portanto, é melhor conectar:
V+ –> Pino nº 1 (3,3 V).
Como o sensor é muito sensível ao movimento, usei o jumper na parte traseira 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 concentrasse em um ponto específico em vez de ser omnidirecional


Codificação
Crie um novo arquivo chamado “peoplecounter.py”:
$ sudo nano peoplecounter.py
E insira o seguinte código. Certifique-se de substituir os valores da chave da API e do ID da variável pelos valores da sua pessoal Ubidots conta.
(Observação: o código não é muito elegante, mas, ei, eu não sou um desenvolvedor Python, apenas um cara do hardware 🙂)
from ubidots import ApiClient import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(7, GPIO.IN) try: api = ApiClient("a21ebaf64e14d195c0044fcc3b9f6dab9d653af3") people = api.get_variable("5238cec3f91b282c7357a140") except: print "Não foi possível conectar à API, verifique sua conexão com a Internet" counter = 0 peoplecount = 0 while(1): presence = GPIO.input(7) if(presence): peoplecount += 1 presence = 0 time.sleep(1.5) time.sleep(1) counter += 1 if(counter==10): print peoplecount people.save_value({'value':peoplecount}) counter = 0 peoplecount = 0
$ python peoplecounter.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" na 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 estimativa do número de pessoas que passam por um determinado ponto. Ele não fornece o número exato de pessoas, devido às limitações do sensor de movimento, mas em algumas aplicações, isso pode ser suficiente.
Contadores de pessoas mais sofisticados usam 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, para a esquerda/para a direita) e poderiam até ser ampliados, em teoria, para saber a idade e o sexo da pessoa.
Outra forma de detectar pessoas seria captar passivamente os sinais de rádio dos seus smartphones, como Wi-Fi ou Bluetooth (veja como este indivíduo detectou smartphones ao redor da sua casa). Em última análise, a iBeacon também deverá ser um grande facilitador dessas aplicações.
Em qualquer caso, os dados coletados podem ser facilmente enviados para o Ubidots, onde podem ser interpretados através da criação de alertas, em tempo real dashboards ou integração com outros sistemas.
Você tem ideias para projetos com sensores?
Crie uma Ubidots contae faça acontecer!

