Índice:

Rastreador de doces ou travessuras Pumpkin Pi: 5 etapas
Rastreador de doces ou travessuras Pumpkin Pi: 5 etapas

Vídeo: Rastreador de doces ou travessuras Pumpkin Pi: 5 etapas

Vídeo: Rastreador de doces ou travessuras Pumpkin Pi: 5 etapas
Vídeo: Eddsworld - Trick or Threat 2024, Julho
Anonim
Rastreador de doces ou travessuras de Pumpkin Pi
Rastreador de doces ou travessuras de Pumpkin Pi

Por elizabethnaFollow Mais do autor:

Como construir um monitor de temperatura Raspberry Pi
Como construir um monitor de temperatura Raspberry Pi
Como construir um monitor de temperatura Raspberry Pi
Como construir um monitor de temperatura Raspberry Pi
Transmita dados do Planilhas Google para um painel
Transmita dados do Planilhas Google para um painel
Transmita dados do Planilhas Google para um painel
Transmita dados do Planilhas Google para um painel
Rede de Sensores de Temperatura
Rede de Sensores de Temperatura
Rede de Sensores de Temperatura
Rede de Sensores de Temperatura

Procurando um projeto rápido de Halloween que seja útil em mais de um aspecto? Quer fazer um bom uso desse Pi Zero WH? Quer usar dados para determinar quanto doce você precisará no próximo ano?

Prepare-se para construir o Rastreador de doces ou travessuras de Pumpkin Pi! Dobrando como decoração e um rastreador de pessoas, esta Pi-in-a-Pumpkin muda de cor e flui quando o movimento é detectado. Começando do zero, este projeto não deve levar mais do que uma tarde para montar - bem a tempo para o Halloween!

Suprimentos

  • Pi Zero WH com cartão SD
  • Sensor de movimento PIR
  • LED RGB
  • Resistores de 220 ohms
  • (3) Linhas de amarração (F / F, M / F, M / M)
  • Bateria portátil
  • Abóbora Falsa

Etapa 1: Montagem de Hardware

Montagem de Hardware
Montagem de Hardware
Montagem de Hardware
Montagem de Hardware
Montagem de Hardware
Montagem de Hardware

Assim que tiver seu Pi instalado e funcionando, precisamos conectar o sensor de movimento e os LEDs. Certifique-se de que seu Pi não esteja conectado à energia neste ponto.

Nosso sensor de movimento requer que o conectemos a uma alimentação de 3,3 V, aterramento e um pino de dados. Eu conectei o pino do sensor de 3,3 V ao pino 1 do Pi, o pino do sensor de aterramento ao pino 6 do Pi e o pino do sensor de dados ao pino 16 do Pi. A primeira imagem mostra a conexão completa para o Pi e o sensor de movimento.

Os LEDs são um pouco mais complicados do que o sensor de movimento porque requerem um resistor para funcionar corretamente sem danificar os sensores ou o Pi. Usei três resistores de 220 ohms, mas os resistores de 220 e 330 ohms geralmente são usados com LEDs.

Para conectar tudo, você pode:

  • Solde as pernas do LED nos resistores e, em seguida, execute os fios no Pi
  • Use uma placa de ensaio e amarras para conectar tudo
  • Use cordas e fita isolante para conectar tudo (como eu fiz).

Estaremos conectando nosso LED aos pinos 11, 13 e 15. Isso é um pouco mais complicado do que o sensor de movimento, porque as pernas do LED correspondem a uma cor específica! A perna longa é GND; e, pelo menos no meu LED, as pernas ficaram vermelhas, GND, azuis, verdes. Eu conectei Azul ao Pi pino 11, Verde ao Pi pino 13 e Vermelho ao Pi pino 15. A segunda imagem mostra as conexões finais do circuito.

Etapa 2: estado inicial

Estado inicial
Estado inicial
Estado inicial
Estado inicial

Claro que podemos ver quando o movimento é detectado com o LED, mas como vamos rastrear quantas travessuras ou travessuras passaram para roubar nossos doces?

Vamos transmitir para um painel sempre que um movimento começa e para de ser detectado. Uma vez que este painel é acessível de qualquer lugar com uma conexão à Internet, podemos monitorar remotamente se alguém está ou não se aproximando da porta da frente / tigela de doces.

Etapa 1: Registre-se para a conta de estado inicial Vá para https://iot.app.initialstate.com e crie uma nova conta.

Etapa 2: Instale o ISStreamer

Instale o módulo Python de estado inicial em seu Raspberry Pi. Em um prompt de comando (não se esqueça de SSH em seu Pi primeiro), execute o seguinte comando:

$ cd / home / pi /

$ / curl -sSL https://get.initialstate.com/python -o - | sudo bash

Etapa 3: Faça um pouco de Automagic

Após a Etapa 2, você verá algo semelhante à seguinte saída na tela:

pi @ raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o - | sudo bash

Senha: Iniciando a instalação fácil do ISStreamer Python! A instalação pode demorar alguns minutos, pegue um café:) Mas não se esqueça de voltar, terei perguntas mais tarde! Easy_install: setuptools 1.1.6 encontrado pip: pip 1.5.6 from /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) versão principal do pip: 1 versão secundária do pip: 5 ISStreamer encontrado, atualizando… Requisito já atualizado: ISStreamer em /Library/Python/2.7/site-packages Limpando… Deseja obter automaticamente um script de exemplo? [s / N] Onde você deseja salvar o exemplo? [padrão:./is_example.py] Selecione qual aplicativo de estado inicial você está usando: 1. app.initialstate.com 2. [NOVO!] iot.app.initialstate.com Insira a opção 1 ou 2: Insira iot.app Nome de usuário.initialstate.com: Digite a senha iot.app.initialstate.com:

Quando solicitado a obter automaticamente um script de exemplo, digite y. Isso criará um script de teste que podemos executar para garantir que possamos transmitir dados para o estado inicial. O próximo prompt perguntará onde você deseja salvar o arquivo de exemplo. Você pode digitar um caminho local personalizado ou pressionar Enter para aceitar o local padrão. Por fim, será perguntado qual aplicativo de estado inicial você está usando. Se você criou uma conta recentemente, selecione a opção 2, insira seu nome de usuário e senha. Depois disso, a instalação estará concluída.

Etapa 4: Chaves de acesso

Vamos dar uma olhada no exemplo de script que foi criado. $ nano is_example.py Na linha 15, você verá uma linha que começa com streamer = Streamer (bucket_…. Esta linha cria um novo depósito de dados chamado “Python Stream Example” e está associado à sua conta. Essa associação ocorre por causa do access_key =”…” parâmetro na mesma linha. Essa longa série de letras e números é a chave de acesso de sua conta de estado inicial. Se você for para sua conta de estado inicial em seu navegador da web, clique em seu nome de usuário no canto superior direito e vá em “minhas configurações”, você encontrará a mesma chave de acesso na parte inferior da página em “Chaves de acesso de streaming”.

Cada vez que você cria um fluxo de dados, essa chave de acesso irá direcionar esse fluxo de dados para sua conta (portanto, não compartilhe sua chave com ninguém).

Etapa 5: execute o exemplo

Execute o script de teste para se certificar de que podemos criar um fluxo de dados para sua conta de estado inicial. Execute o seguinte:

$ python is_example.py

Etapa 6: Lucro

Volte para sua conta do estado inicial no navegador da web. Um novo depósito de dados chamado “Exemplo de fluxo do Python” deve ter aparecido à esquerda em sua prateleira de registro (pode ser necessário atualizar a página). Clique neste balde e, em seguida, clique no ícone Waves para visualizar os dados de teste.

Etapa 3: Script Python

Crie um script e abra o editor de texto com o seguinte comando:

nano vistors.py

Copie e cole o código daqui para o seu editor de texto.

Antes de tentarmos executar qualquer coisa, precisamos fazer algumas edições e revisar o que está acontecendo em nosso script.

importar RPi. GPIO como GPIO

from time import sleep from ISStreamer. Streamer import Streamer # Diga ao Pi que vamos usar seu sistema de numeração GPIO.setmode (GPIO. BCM) # Pinos que D1 e LED estão conectados a PIN = 23 AZUL = 17 VERDE = 27 VERMELHO = 22 # Especifique o pino do nosso sensor de movimento como entrada GPIO.setup (PIN, GPIO. IN) # Especifique os pinos do LED como saída GPIO.setup (RED, GPIO. OUT) GPIO.output (RED, 0) GPIO.setup (GREEN, GPIO. OUT) GPIO.output (VERDE, 0) GPIO.setup (AZUL, GPIO. OUT) GPIO.output (AZUL, 0)

As linhas 1-21 são para inicialização. Primeiro, importamos a interface GPIO do Pi e uma maneira de suspender nosso script. Em seguida, importamos o streamer de estado inicial que instalamos na página anterior.

GPIO.setmode especifica qual sistema de numeração estamos usando para os pinos. Em vez da localização física, estamos usando o sistema de numeração de Pi. Como em nosso diagrama anterior, os pinos que escolhemos foram 23, 17, 27 e 22. Em seguida, configuramos o pino de movimento como entrada e os pinos de LED como saída.

# Nome do intervalo de estado inicial (exibido)

BUCKET_NAME = ": jack_o_lantern: Trick or Treat Tracker" # Chave do intervalo de estado inicial (oculto) BUCKET_KEY = "trickortreat" # Chave de acesso do estado inicial ACCESS_KEY = "Your_Access_Key" # Variáveis que garantem que não transmitimos se havia ou não movimento duas vezes consecutivas # Isso economiza em eventos enviados e capacidade de processamento alreadyRecordedMotion = False alreadyRecordedNoMotion = False counter = 0 # Inicializar o streamer de estado inicial streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) # Ligue e defina o LED para amarelo GPIO.output (RED, 1) GPIO.output (GREEN, 1)

As linhas 23-41 são importantes porque estamos inicializando o streamer de estado inicial e definindo o LED para amarelo. Coloque sua chave de acesso de estado inicial na linha 28.

# Loop indefinidamente

enquanto Verdadeiro: # Se o sensor de movimento puxa alto (detecta movimento): if GPIO.input (PIN) == 1: imprimir "Movimento detectado" # Se ainda não transmitimos: se não jáRecordedMotion: contador = contador + 1 # Defina o LED para vermelho GPIO.output (RED, 1) GPIO.output (GREEN, 0) # Stream to Initial State streamer.log (": ghost: or: chocolate_bar:?", ": chocolate_bar: Time For Treats!") streamer.log (": candy: Hungry Humans?: candy:", counter) streamer.flush () alreadyRecordedMotion = True alreadyRecordedNoMotion = False else: # Pause o script por 1 segundo sleep (1) else: print "Nenhum movimento detectado" # Se ainda não transmitimos: se ainda não tivermosRecordedNoMotion: # Defina o LED para amarelo GPIO.output (VERMELHO, 1) GPIO.output (VERDE, 1) # Transmita para o estado inicial streamer.log (": fantasma: ou: chocolate_bar:? ",": no_pedestrians: Ninguém por perto ") streamer.flush () alreadyRecordedNoMotion = True alreadyRecordedMotion = False else: # Pause o script por 1 segundo sleep (1)

As linhas 43-77 são a essência do código. Se o movimento for detectado, o script verificará se "Time For Treats!" já foi transmitido. Se não tiver, é enviado para o estado inicial e o LED fica vermelho; se tiver, o script espera 1 segundo e, em seguida, lê novamente o sensor de movimento. O mesmo se aplica se nenhum movimento for detectado.

É hora de testar o código! Certifique-se de salvar o arquivo editado com a chave de acesso adicionada na linha 28 e, em seguida, digite no terminal:

python Visitors.py

Você deve ver o LED acender e "Nenhum movimento detectado" começar a imprimir na linha de comando. Experimente acenar com a mão sobre o sensor de movimento - você deverá ver uma luz vermelha e "Movimento detectado" começar a imprimir!

Agora, para verificar se nossas leituras estão sendo transmitidas para o estado inicial.

Etapa 4: Painel de truques ou travessuras

Painel Trick-or-Treat
Painel Trick-or-Treat

Vá para o estado inicial e verifique seu painel! Você deve ver um balde chamado "? Trick or Treat Tracker". Acene com a mão perto do sensor de movimento e observe a atualização!

Meu painel consiste em 2 blocos de resumo exibindo o último valor e um histograma da contagem de eventos para que eu possa ver quais horários o sensor foi acionado.

Aqui estão algumas coisas a considerar:

  • Você provavelmente deseja dividir a contagem de "Hungry Humans" por 2 para explicar o fato de que a mesma pessoa passará na frente do sensor de movimento duas vezes - no caminho para a sua porta e no caminho de volta. Você pode fazer isso com expressões em tempo real usando a equação "= math.round (([Hungry Humans?] / 2), 0)".
  • Você pode testar a sensibilidade do seu sensor de movimento e colocá-lo na calçada de acordo. Eu sugiro mantê-lo longe o suficiente da porta para que ele não seja acionado quando alguém estiver parado na porta.
  • Você também pode configurar alertas de texto para avisar que alguém está se aproximando.
  • Escolha uma imagem de plano de fundo para dar ao seu painel um pouco de personalidade assustadora!

Recomendado: