Spisu treści:

Sterowanie diodami LED w oparciu o Asystenta Google za pomocą Raspberry Pi: 3 kroki
Sterowanie diodami LED w oparciu o Asystenta Google za pomocą Raspberry Pi: 3 kroki

Wideo: Sterowanie diodami LED w oparciu o Asystenta Google za pomocą Raspberry Pi: 3 kroki

Wideo: Sterowanie diodami LED w oparciu o Asystenta Google za pomocą Raspberry Pi: 3 kroki
Wideo: Бесшумное zigbee реле в подрозетник без нулевой линии, особенности монтажа, установка конденсатора 2024, Listopad
Anonim
Sterowanie diodami LED w oparciu o Asystenta Google za pomocą Raspberry Pi
Sterowanie diodami LED w oparciu o Asystenta Google za pomocą Raspberry Pi
Sterowanie diodami LED w oparciu o Asystenta Google za pomocą Raspberry Pi
Sterowanie diodami LED w oparciu o Asystenta Google za pomocą Raspberry Pi
Sterowanie diodami LED w oparciu o Asystenta Google za pomocą Raspberry Pi
Sterowanie diodami LED w oparciu o Asystenta Google za pomocą Raspberry Pi
Sterowanie diodami LED w oparciu o Asystenta Google za pomocą Raspberry Pi
Sterowanie diodami LED w oparciu o Asystenta Google za pomocą Raspberry Pi

Hej!

W tym projekcie zaimplementujemy sterowanie diodą LED w oparciu o Asystenta Google za pomocą Raspberry Pi 4 za pomocą HTTP w Pythonie. Możesz zastąpić diodę LED żarówką (oczywiście nie dosłownie, będziesz potrzebować modułu przekaźnika pomiędzy) lub dowolnym innym urządzeniem gospodarstwa domowego, aby ten projekt mógł być dalej wdrażany do celów automatyki domowej.

Kieszonkowe dzieci

Czego potrzebujesz do tego projektu:

1. Raspberry Pi

2. LED

3. Przewody połączeniowe-2 (męski na żeński)

4. Deska do krojenia chleba

5. Aplikacja IFTTT (https://play.google.com/store/apps/details?id=com.ifttt.ifttt&hl=en_IN)

6. Konto Thingspeak (https://thingspeak.com/)

Niektóre warunki wstępne:

1. Podstawy sieci -

2. Python, aby uzyskać dostęp do danych internetowych

Krok 1: Tworzenie kanału Thingspeak

Tworzenie kanału Thingspeak
Tworzenie kanału Thingspeak
Tworzenie kanału Thingspeak
Tworzenie kanału Thingspeak
Tworzenie kanału Thingspeak
Tworzenie kanału Thingspeak
Tworzenie kanału Thingspeak
Tworzenie kanału Thingspeak

Jeśli jesteś nowy w Thingspeak i nigdy wcześniej go nie używałeś, wykonaj poniższe czynności:

Przejdź do

Musisz się zarejestrować, zanim zaczniesz korzystać z Thingspeak

Po zarejestrowaniu przejdź do sekcji Kanały

W sekcji Kanały wybierz Nowy kanał (patrz obraz w celach informacyjnych)

W nowym kanale zobaczysz różne pola informacyjne. Musisz tylko wypełnić pole Nazwa. Możesz nazwać swój kanał, jak chcesz. Załączam obrazek, na którym nazwałem swój kanał jako Raspberry Pi 4. Resztę pudełek zostaw bez zmian.

Gratulacje! Pomyślnie utworzyłeś kanał dla swojego projektu IoT. (patrz załączony obraz, na którym można zobaczyć pomyślnie utworzony mój kanał o nazwie Raspberry Pi 4)

Krok 2: Korzystanie z aplikacji IFTTT

Korzystanie z aplikacji IFTTT
Korzystanie z aplikacji IFTTT
Korzystanie z aplikacji IFTTT
Korzystanie z aplikacji IFTTT
Korzystanie z aplikacji IFTTT
Korzystanie z aplikacji IFTTT
Korzystanie z aplikacji IFTTT
Korzystanie z aplikacji IFTTT

Musimy użyć tej aplikacji do wywołania żądania GET w celu opublikowania danych na utworzonym przez Ciebie kanale Thingspeak za pomocą Asystenta Google. Pomyśl o tej aplikacji jako o interfejsie między Asystentem Google a Twoim kanałem Thingspeak.

Następnie tworzymy żądania GET w aplikacji IFTTT.

Pobierz aplikację IFTTT z

Utwórz swoje konto

Przejdź do Twórz własne aplety od podstaw

Stuknij w Jeśli ta opcja

Wybierz usługę wyzwalania jako Asystent Google

W tym wybierz Powiedz proste zdanie

W ramach tej opcji pojawi się kilka pól informacyjnych. W tym celu zapoznaj się z obrazami i odpowiednio uzupełnij szczegóły! (do tego celu służą dwa obrazy: 1. Aby włączyć diodę LED 2. Aby wyłączyć diodę LED)

Zakończyliśmy część If This, czyli Asystent Google. Teraz wybieramy opcję Then That czyli Webhooks.

Pod nim wybierz Złóż żądanie internetowe

Zapoznaj się z obrazem, aby uzyskać informacje, które należy wypełnić w polach. Odwołaj się do tego adresu URL https://api.thingspeak.com/update?api_key=WSTAW SWÓJ KLUCZ WRITE API&field1=1

W powyższym adresie URL zauważysz, że wspomniałem o INSERT YOUR WRITE API KEY. To jest klucz API, który jest tożsamością kanału, który utworzyłeś w Thingspeak (patrz obraz). Write API key pomoże Ci zapisać konkretne dane do Twojego kanału i podobnie Read API key pomoże Ci uzyskać dane z kanału.

Oprócz klucza Write API, pozostałe informacje z pól pozostają takie same.

Więc tutaj utworzyłeś wyzwalacz, w którym gdy powiesz do Asystenta Google „Włącz diodę LED”, wyśle „1” do twojego kanału Thingspeak.

Teraz w podobny sposób musisz utworzyć nowy aplet w aplikacji IFTTT, aby wyłączyć diodę LED. Załączam obrazy, jeśli jesteś zdezorientowany tym samym. W przeciwnym razie procedura wyłączania diody LED jest taka sama jak ta, którą zrobiłeś powyżej, z wyjątkiem drobnych zmian.

Krok 3: Wreszcie zaczynam kodować

Wreszcie zaczynam kodować
Wreszcie zaczynam kodować

Wyjaśnię główny cel kodu Pythona. Musimy pobrać dane z kanału Thingspeak, które będą miały wartość „1” lub „0” w zależności od tego, co mówisz Asystentowi Google. Na tej podstawie musimy włączyć lub wyłączyć diodę LED. Jeśli wgrana wartość na kanale Thingspeak to „1”, to włączamy diodę, a jeśli to „0”, wyłączamy.

W kodzie potrzebne będą dwie rzeczy: 1. Twój klucz Read API 2. Twój identyfikator kanału (sprawdź te same obrazy)

Oto kod (zakładając, że znasz wymagania wstępne HTTP i Pythona):

importuj bibliotekę url

żądania importu

importuj json

czas importu

importuj RPi. GPIO jako GPIO

GPIO.setmode(GPIO. BOARD)

GPIO.setup(7, GPIO. OUT)

próbować:

podczas (1):

URL='https://api.thingspeak.com/channels/WSTAW IDENTYFIKATOR KANAŁU/fields/1.json?api_key=' KEY='WSTAW SWÓJ KLUCZ ODCZYTU API'

NAGŁÓWEK='&wyniki=2'

NEW_URL=URL+KLUCZ+NAGŁÓWEK

#drukuj(NEW_URL)

get_data=żądania.get(NOWY_URL).json()

#drukuj(pobierz_dane)

feild_1=get_data['feeds']

#print("Pole:", feild_1)

t=

dla x w feild_1:

t.append(x['pole1'])

drukuj(t[1])

jeśli int(t[1])==1:

GPIO.wyjście(7, 1)

elif int(t[1])==0:

GPIO.wyjście(7, 0)

z wyjątkiem KeyboardInterrupt:

GPIO.oczyszczanie()

Zalecana: