Spisu treści:
Wideo: Czujnik ruchu Raspberry Pi IFTTT: 4 kroki
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Dzień dobry. Jestem w czwartej klasie i dzisiaj zrobimy czujnik ruchu IFTTT
Kieszonkowe dzieci
1x małe pudełko kartonowe
1x raspberry pi model b+ lub a+
1x czujnik PIR https://www.amazon.com/gp/product/B07KZW86YR/ref=p…(różne) przewody połączeniowe
1x inteligentna żarówka (opcjonalnie)
Taśma izolacyjna (opcjonalnie)
konto ifttt
Krok 1: Wytnij:
Wytnij mały otwór na środku górnej części pudełka.
Krok 2: Podłączanie czujnika PIR:
Podłącz pin czujnika PIR oznaczony VCC do pinu 5 V na Raspberry Pi. Zapewnia to zasilanie czujnika PIR. Podłącz ten oznaczony jako GND do styku uziemienia na Pi (również oznaczony jako GND). To kończy obwód. Podłącz ten oznaczony jako OUT do dowolnego ponumerowanego pinu GPIO na Pi. W tym przykładzie wybraliśmy GPIO 4. Pin OUT wyśle napięcie, gdy czujnik wykryje ruch. Napięcie zostanie następnie odebrane przez Raspberry Pi.
Krok 3: Skonfiguruj webhooki:
utwórz nowy aplet, a następnie wybierz opcję Webhooks. a następnie zrób to samo z powiadomieniami.
Krok 4: Kod:
Dla Pythona 3 lub Thonny
#! /usr/bin/python # Importsimport RPi. GPIO jako GPIOimport timeimport requests # Ustaw konwencję nazewnictwa GPIO GPIO.setmode(GPIO. BCM) # Wyłącz ostrzeżenia GPIOGPIO.setwarnings(False) # Ustaw zmienną do przechowywania tożsamości pinów GPIO = 17 # Ustaw pin GPIO jako inputGPIO.setup(pinpir, GPIO. IN) # Zmienne do przechowywania bieżącego i ostatniego stanucurrentstate = 0previousstate = 0 try: print("Oczekiwanie na ustabilizowanie się PIR…") # Pętla, aż wyjście PIR będzie równe 0, podczas gdy GPIO.input(pinpir) == 1: currentstate = 0 print("Ready") # Pętla do momentu wyjścia użytkownika z CTRL-C, podczas gdy True: # Odczyt stanu PIR currentstate = GPIO.input(pinpir) # Jeśli PIR zostanie wyzwolony, jeśli currentstate == 1 and previousstate == 0: print("Wykryto ruch!") # Twój adres URL IFTTT z nazwą zdarzenia, kluczem i parametrami (wartościami) json r = requests.post('https://maker.ifttt.com/trigger /YOUR_EVENT_NAME/with/key/YOUR_KEY_HERE', params={"value1":"brak", "value2":"brak", "value3":"brak"}) # Zapisz nowy poprzedni stan poprzedni = 1 #Czekaj 120 sekund przed zapętleniem ag ain print("Waiting 120 seconds") time.sleep(120) # Jeśli PIR powrócił do stanu gotowości elif currentstate == 0 and previousstate == 1: print("Ready") previousstate = 0 # Odczekaj 10 milisekund czas.sleep(0.01) z wyjątkiem KeyboardInterrupt: print(" Zakończ") # Zresetuj ustawienia GPIO GPIO.cleanup()
Cieszyć się!