Contador de Travessuras ou Gostosuras com Raspberry Pi usando OpenCV
Um contador de Trick-or-Treat registra visitantes na porta e armazena cada entrada como um evento com carimbo de tempo. Com um Raspberry Pi, isso pode ser resolvido de forma limpa, seja por câmera (OpenCV/YOLO, cruzar a linha) ou simplesmente por sensor de porta e série temporal no painel. Este material explicativo mostra passo a passo qual variante é mais adequada quando, como funciona e onde encontrar instruções confiáveis.
Introdução e Visão Geral
Para um contador de Trick-or-Treat, existem duas abordagens principais: contagem baseada em câmera e contagem baseada em sensor. Ambas utilizam um Raspberry Pi como unidade central de controle. A variante baseada em câmera identifica pessoas na imagem de vídeo, as acompanha ao longo dos quadros e registra a travessia de uma linha virtual como um evento de contagem. Isso é denominado contagem por linha/zonas. A variante baseada em sensor utiliza um sensor de porta que registra cada abertura e fechamento. Os dados coletados podem ser visualizados em um painel, por exemplo com Grafana.
Contagem baseada em câmera
A contagem baseada em câmera utiliza visão computacional para reconhecer e contar pessoas. OpenCV é uma biblioteca para processamento de imagens e rastreamento. YOLO (You Only Look Once) é um detector de aprendizado profundo que identifica objetos em tempo real. Ultralytics documenta contagem direta de linha/zone para YOLO. Nesse processo, pessoas na imagem de vídeo são reconhecidas, rastreadas ao longo de quadros, e a travessia de uma linha virtual é registrada como '+1'. Isso evita contagens duplas por backends de rastreamento. Já em 2018 mostrou PyImageSearch um contador de pessoas prático com OpenCV, Rastreamento e lógica de 'in/out' através de uma linha. Desde 2024/2025 existem guias bem elaborados sobre YOLO-Counting (Linhas/Zonas) incluindo backends de rastreamento. Para o hardware existe um offizieller Quick-Start von Ultralytics für den Raspberry Pi (inclui o Pi 5, Bookworm, configuração da câmera e exportação NCNN para mais desempenho). OpenCV pode ser instalado no Pi via repositório de pacotes ou script de compilação; Q-engineering pflegt aktuelle, Pi-5-taugliche Anleitungen. Contagem com câmera fornece contexto, mas requer iluminação e poder de processamento. YOLO é robusto a fundos em mudança, OpenCV apenas é mais leve e suficiente com pouca movimentação. No Pi 5, Ultralytics recomenda modelos NCNN, pois estes funcionam de forma mais eficiente em ARM do que apenas inferência PyTorch, o que reduz latência e consumo de energia.

Quelle: youtube.com
O OpenCV permite o reconhecimento e a contagem precisos de pessoas em tempo real.
Quelle: YouTube
Contagem baseada em sensor
Como alternativa à contagem baseada em câmera, um sensor de porta, como um interruptor reed magnético, pode registrar cada abertura e fechamento da porta. Este método é robusto e frequentemente suficiente. Adafruit bietet Anleitungen zur Bewegungserfassung mit dem Raspberry Pi. Também em Raspberry Pi Stack Exchange finden sich Informationen zur Anbindung von 2-Draht-Türsensoren. Os sensores de porta são extremamente simples, mas contam apenas 'eventos de porta'. Em aglomerações de Halloween, isso pode subestimar ou superestimar o número real de pessoas. No entanto, são econômicos em termos de dados e requerem menos poder de processamento do que sistemas de câmeras.

Quelle: donskytech.com
Sensores infravermelhos oferecem um método simples e eficaz para contar visitantes.
Visualização de dados e armazenamento
Para a visualização dos dados de contagem, são adequados InfluxDB (Zeitreihen-Datenbank) e Grafana. Sem um banco de dados dedicado, pode-se usar Grafana Live/MQTT pode ser utilizado. O Grafana MQTT-Datasource-Plugin prioriza dados em tempo real. Para dashboards, InfluxDB 2 e Grafana estão estabelecidos no Pi, com guias oficiais de configuração. Quem quiser começar sem banco de dados pode usar streaming via Grafana Live e plugin MQTT, onde o plugin prioriza tempo real em vez de histórico. Grafana-MQTT-Streaming funciona, mas é voltado para tempo real; histórico exige um banco de dados. Comentários da comunidade relatam, às vezes, comportamento instável ou limitações em plugins MQTT, o que para setups produtivos torna razoável ter um pipeline de BD.
Implementação prática e dicas
Para resultados rápidos, escolha o caminho com maior probabilidade de sucesso para o seu ambiente. Para a variante de câmera com YOLO: instale Ultralytics, escolha um modelo leve (por exemplo, 'n'), defina a linha na soleira da porta, publique o callback de contagem via MQTT. O offizielle Raspberry-Pi-How-to deckt Setup und Beschleunigung per NCNN ab. Para OpenCV apenas: subtração de fundo/tracking, linha virtual, contagem sem rede — especialmente boa com fundo estável. Para a rota do sensor de porta: interruptor Reed no GPIO, script Python para abertura/fechamento, publicação MQTT. Verkabelung und Pull-ups sind dokumentiert. Para dashboards: Ou InfluxDB 2 + Grafana nach Anleitung installieren ou Live/MQTT testen, wenn Historie unwichtig ist. Exemplos de Trick-or-Treat da comunidade Maker mostram como gatilhos de movimento, contadores e exibição trabalham juntos, por exemplo, o „Pumpkin Pi Trick-or-Treat Tracker“. O vídeo zeigt Counting mit YOLOv8, ByteTrack und Supervision; útil para ver como a detecção, rastreamento e eventos de linha trabalham juntos. Comece pequeno, teste na porta real e expanda apenas o que faltar no dia a dia – então seu contador irá exatamente contar o que importa.

Quelle: support.initialstate.com
Com um Raspberry Pi, é possível criar sistemas de contagem criativos para os visitantes de Halloween.
Quelle: YouTube