Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Olá. Eu sou um aluno da 4ª série e hoje vamos fazer um sensor de movimento IFTTT
Suprimentos
1x pequena caixa de papelão
1x raspberry pi modelo b + ou a +
1x sensor PIR https://www.amazon.com/gp/product/B07KZW86YR/ref=p…(Various) fios de jumper
1 lâmpada inteligente (opcional)
Fita adesiva (opcional)
conta ifttt
Etapa 1: Corte:
Faça um pequeno furo no meio da parte superior da caixa.
Etapa 2: Conectando o Sensor PIR:
Conecte o pino do sensor PIR identificado como VCC ao pino 5V no Raspberry Pi. Isso fornece energia ao sensor PIR. Conecte aquele identificado como GND a um pino de aterramento no Pi (também denominado GND). Isso completa o circuito. Conecte aquele rotulado OUT a qualquer pino GPIO numerado no Pi. Neste exemplo, escolhemos GPIO 4. O pino OUT emitirá uma tensão quando o sensor detectar movimento. A tensão será então recebida pelo Raspberry Pi.
Etapa 3: configurar webhooks:
crie um novo miniaplicativo e selecione Webhooks. e faça o mesmo com as notificações.
Etapa 4: Código:
Para python 3 ou thonny
#! / usr / bin / python # Importsimport RPi. GPIO as GPIOimport timeimport solicitações # Defina a convenção de nomenclatura GPIOGPIO.setmode (GPIO. BCM) # Desligue GPIO warningsGPIO.setwarnings (False) # Defina uma variável para manter o GPIO Pin identitypinpir = 17 # Defina o pino GPIO como inputGPIO.setup (pinpir, GPIO. IN) # Variáveis para manter o atual e o último statescurrentstate = 0previousstate = 0 try: print ("Aguardando PIR para resolver …") # Loop até que a saída PIR seja 0 enquanto GPIO.input (pinpir) == 1: currentstate = 0 print ("Ready") # Loop até que os usuários saiam com CTRL-C enquanto True: # Ler estado PIR currentstate = GPIO.input (pinpir) # Se o PIR for acionado se currentstate == 1 e estado anterior == 0: print ("Movimento detectado!") # Seu URL IFTTT com nome do evento, chave e parâmetros json (valores) r = requests.post ('https://maker.ifttt.com/trigger / YOUR_EVENT_NAME / with / key / YOUR_KEY_HERE ', params = {"value1": "none", "value2": "none", "value3": "none"}) # Grava o novo estado anterior previousstate = 1 #Wait 120 segundos antes de fazer o loop ag ain print ("Waiting 120 seconds") time.sleep (120) # Se o PIR retornou ao estado pronto elif currentstate == 0 e previousstate == 1: print ("Ready") previousstate = 0 # Aguarde 10 milissegundos.sleep (0.01) exceto KeyboardInterrupt: print ("Quit") # Redefine as configurações GPIO GPIO.cleanup ()
Aproveitar!