Inhoudsopgave:

Op Google Assistent gebaseerde LED-besturing met Raspberry Pi - Ajarnpa
Op Google Assistent gebaseerde LED-besturing met Raspberry Pi - Ajarnpa

Video: Op Google Assistent gebaseerde LED-besturing met Raspberry Pi - Ajarnpa

Video: Op Google Assistent gebaseerde LED-besturing met Raspberry Pi - Ajarnpa
Video: How To Use Addressable RGB WS2812B LED Strips With a Raspberry Pi Single Board Computer 2024, Juli-
Anonim
Op Google Assistent gebaseerde LED-besturing met Raspberry Pi
Op Google Assistent gebaseerde LED-besturing met Raspberry Pi
Op Google Assistent gebaseerde LED-besturing met Raspberry Pi
Op Google Assistent gebaseerde LED-besturing met Raspberry Pi
Op Google Assistent gebaseerde LED-besturing met Raspberry Pi
Op Google Assistent gebaseerde LED-besturing met Raspberry Pi
Op Google Assistent gebaseerde LED-besturing met Raspberry Pi
Op Google Assistent gebaseerde LED-besturing met Raspberry Pi

Hallo!

In dit project zullen we op Google Assistant gebaseerde besturing van de LED implementeren met behulp van Raspberry Pi 4 met HTTP in Python. Je kunt de LED vervangen door een gloeilamp (uiteraard niet letterlijk, je hebt er een relaismodule tussen nodig) of een ander huishoudelijk apparaat zodat dit project verder kan worden geïmplementeerd voor domotica-doeleinden.

Benodigdheden

Wat heb je nodig voor dit project:

1. Raspberry Pi

2. LED

3. Overbruggingsdraden-2 (man naar vrouw)

4. Broodplank

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

6. Thingspeak-account (https://thingspeak.com/)

Enkele voorwaarden:

1. Basisprincipes van netwerken-HTTP

2. Python om toegang te krijgen tot de webgegevens

Stap 1: Een Thingspeak-kanaal maken

Een Thingspeak-kanaal maken
Een Thingspeak-kanaal maken
Een Thingspeak-kanaal maken
Een Thingspeak-kanaal maken
Een Thingspeak-kanaal maken
Een Thingspeak-kanaal maken
Een Thingspeak-kanaal maken
Een Thingspeak-kanaal maken

Als je nieuw bent bij Thingspeak en het nog nooit eerder hebt gebruikt, volg dan de onderstaande stappen:

Ga naar

U moet zich aanmelden voordat u Thingspeak. gaat gebruiken

Ga na het aanmelden naar het gedeelte Kanalen

Selecteer onder Kanalen Nieuw kanaal (zie afbeelding ter referentie)

In Nieuw kanaal ziet u verschillende informatievakken. U hoeft alleen het veld Naam in te vullen. Je kunt je kanaal een naam geven zoals je wilt. Ik heb een afbeelding bijgevoegd waarin ik mijn kanaal als Raspberry Pi 4 heb genoemd. Laat de rest van de dozen zoals ze zijn.

Gefeliciteerd! U hebt met succes een kanaal gemaakt voor uw IoT-project. (zie de bijgevoegde afbeelding waar je kunt zien dat mijn kanaal met de naam Raspberry Pi 4 met succes is gemaakt)

Stap 2: IFTTT-app gebruiken

IFTTT-app gebruiken
IFTTT-app gebruiken
IFTTT-app gebruiken
IFTTT-app gebruiken
IFTTT-app gebruiken
IFTTT-app gebruiken
IFTTT-app gebruiken
IFTTT-app gebruiken

We moeten deze app gebruiken om een GET-verzoek te activeren voor het plaatsen van gegevens op je gemaakte Thingspeak-kanaal met behulp van Google Assistant. Zie deze app als een interface tussen Google Assistant en je Thingspeak-kanaal.

Vervolgens maken we GET-verzoeken in de IFTTT-app.

Download de IFTTT-app van

Maak een account aan

Ga naar Maak je eigen applets helemaal opnieuw

Tik op Als deze optie

Selecteer triggerservice als Google Assistent

Selecteer daarin Zeg een eenvoudige zin

Onder die optie verschijnen enkele informatievakken. Raadpleeg daarvoor de afbeeldingen en vul de gegevens dienovereenkomstig in! (hiervoor zijn twee afbeeldingen beschikbaar: 1. Om de LED aan te zetten 2. Om de LED uit te schakelen)

We hebben het If This-gedeelte, de Google Assistent, voltooid. Nu selecteren we Dan Die optie die Webhooks is.

Selecteer daaronder Een webverzoek maken

Raadpleeg de afbeelding voor de informatie die in de vakken moet worden ingevuld. Raadpleeg deze URL https://api.thingspeak.com/update?api_key=INSERT YOUR WRITE API KEY&field1=1

In de bovenstaande URL zult u merken dat ik het heb gehad over INSERT YOUR WRITE API KEY. Dit is de API-sleutel die een identiteit is van het kanaal dat je op Thingspeak hebt gemaakt (zie afbeelding). Schrijf API-sleutel helpt u om bepaalde gegevens naar uw kanaal te schrijven en op dezelfde manier helpt API-sleutel lezen u om gegevens van het kanaal te verkrijgen.

Afgezien van uw Write API-sleutel, blijft de rest van de informatie uit de vakken hetzelfde.

Dus hier heb je een trigger gemaakt waarbij wanneer je tegen je Google Assistent zegt: "Zet de LED aan", deze een "1" naar je Thingspeak-kanaal stuurt.

Nu moet je op een vergelijkbare manier een nieuwe applet maken in de IFTTT-app om de LED uit te schakelen. Ik heb afbeeldingen bijgevoegd als je in de war bent over hetzelfde. Anders is de procedure voor het uitschakelen van de LED dezelfde als die van wat u hierboven deed, afgezien van enkele kleine wijzigingen.

Stap 3: Eindelijk beginnen met coderen

Eindelijk beginnen met coderen
Eindelijk beginnen met coderen

Ik zal het hoofddoel van de Python-code uitleggen. We moeten de gegevens ophalen van het Thingspeak-kanaal, wat ofwel een "1" of een "0" zal zijn op basis van wat je tegen je Google Assistent zegt. Op basis hiervan moeten we de LED aan- of uitzetten. Als de geüploade waarde op het Thingspeak-kanaal "1" is, zetten we de LED aan en als het een "0" is, zetten we hem uit.

In de code heb je twee dingen nodig: 1. Je Read API-sleutel 2. Je kanaal-ID (verwijs hiervoor naar de afbeeldingen)

Hier is de code (ervan uitgaande dat je de vereisten van HTTP en Python kent):

urllib importeren

importverzoeken

import json

import tijd

importeer RPi. GPIO als GPIO

GPIO.setmode(GPIO. BOARD)

GPIO.setup(7, GPIO. OUT)

proberen:

terwijl(1):

URL='https://api.thingspeak.com/channels/VOEG UW KANAAL-ID IN/fields/1.json?api_key=' KEY='VOEG UW LEES API-SLEUTEL IN'

HEADER='&resultaten=2'

NEW_URL=URL+KEY+HEADER

#print(NEW_URL)

get_data=requests.get(NEW_URL).json()

#print(get_data)

feild_1=get_data['feeds']

#print("Veld:", veld_1)

t=

voor x in veld_1:

t.append(x['veld1'])

afdrukken(t[1])

if int(t[1])==1:

GPIO.uitgang(7, 1)

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

GPIO.uitgang(7, 0)

behalve KeyboardInterrupt:

GPIO.opschonen()

Aanbevolen: