Internet of Things (IoT) is hot. Met handige services ben je in staat om de elektronische omgeving om je heen interactief te besturen en het leven makkelijker en leuker te maken. Een voorbeeld is dat als iemand op de deurbel drukt, de verlichting in de gang inschakelt. Of als er thuis een beweging waargenomen wordt, ontvang je een bericht op je smartphone met een foto van de ruimte.
In deze tutorial laat ik een bewegingsmelder een beweging detecteren en vervolgens, via IFTTT, een melding geven op de smartphone. Je zult gedurende de tutorial ontdekken dat er honderden services zijn die je kunt gebruiken als reactie op een event.
Daar gaan we!
Aansluiten van de bewegingsmelder (PIR)
Sluit de bewegingsmelder als volgt aan. Er zijn verschillende modellen verkrijgbaar, maar ze werken allemaal volgens hetzelfde principe en meestal op 5V. In dit voorbeeld wordt de HC-SR501 gebruikt. We gebruiken GPIO17 (pin 11) om de output van de sensor aan te sluiten.
IFTTT instellen
Ga naar ifttt.com
Maak een account bij ifttt.com aan, mocht je deze nog niet hebben. Het is gratis, je hebt er geen creditkaart voor nodig.
Als je ingelogd bent, dan bevind je je in Explore, zo niet klik je bovenin de balk op Explore.
Klik op Explore
Klik op Create
Klik op If This
Om beweging te detecteren geven we hier in: Webhooks
Wat zijn Webhooks?
Om IFTTT met Raspberry Pi te integreren, hebben we Webhooks nodig. Webhooks is een service die gebeurtenissen activeert via HTTP-verzoeken. HTTP-verzoeken, ook wel webverzoeken genoemd, zijn berichten die een client naar een server stuurt.
Er zijn twee soorten webverzoeken: HTTP GET en HTTP POST.
HTTP GET is een webverzoek dat gegevens van een webbrowser ophaalt. Het verandert niets aan de server. Het haalt er gewoon de gegevens uit.
Aan de andere kant is HTTP POST een webverzoek dat gegevens naar de server verzendt. Het voegt er iets nieuws aan toe.
Een typisch voorbeeld van een GET-verzoek is het browsen op een website. U haalt de gegevens op die nodig zijn om de webpagina op uw pc weer te geven. Aan de andere kant worden POST-verzoeken gebruikt om tekst in een webpagina te typen, zoals een gebruikersnaam en wachtwoord.
Een algemeen webhooksysteem werkt als volgt:
Zoals gezegd geef je hier in: Webhooks
Klik op het blauwe vlak Webhooks
Klik op het blauwe vlak Receive a web request
Geef bij Event name de naam van het event in. Dit kan iedere naam zijn, maar in dit geval geef je hier in: motion_detected. Later hebben we deze naam weer nodig.
Klik op: Create trigger
De ‘IF’ is vastgesteld. Nu klik je op ‘Then That’
Je kunt hier van alles selecteren zoals het versturen van een bericht, een lamp inschakelen d.m.v. een smartsteker, noem maar op. In dit geval willen we een melding op de smartphone ontvangen. Scrol maar eens door het scherm heen, je zult zien dat er heel veel services beschikbaar zijn.
Geef in het veld Search services: notifications
Klik op het blauwe vlak Notifications.
We kiezen voor: Send a notification from the IFTTT app.
Alternatief – Instellen Smart Life stekker
(zie video op 9:11) https://www.youtube.com/watch?v=72UjPhD9whM&ab_channel=CarolineDunn
Je zou ook kunnen kiezen voor: smart life omdat je hiermee apparaten kunt inschakelen met een smartsteker die je hiervoor nodig hebt. Veel smartstekers werken i.c.m. de app Smart Life. Maak je hier voor de eerste keer gebruik van, dan heb je de toegangsgegevens nodig van de app.
Klik op Create action
De ‘IF‘ en de ‘Then‘ zijn ingesteld. Klik op Continue
Klik op Finish
Ga terug naar de homepagina van IFTTT. Klik daarvoor links bovenin op IFTTT
Zoek op ‘webhooks‘
Klik op het blauwe vlak Webhooks
Klik op Documentation
Vervolgens verschijnt de pagina met de unieke sleutel.
Geef op de plek van {event} de naam van het event. In dit geval ‘motion_detected’
Installatie op de Raspberry Pi
Open nu de terminal op Raspberry Pi.
Doe voor de zekerheid een update en een upgrade zodat de Pi helemaal bijgewerkt is.
sudo apt-get update
sudo apt-get upgrade
Maak vervolgens een directorie aan met de naam ifttt en ga erin staan.
mkdir ifttt
cd ifttt
Of download het bestand door de volgende opdracht in te geven:
wget https://awsiotbutton.s3.amazonaws.com/iftttpir.py
Controleer of het bestand in de directorie staat met
ls -l
Open het bestand met
sudo nano iftttpir.py
Ga terug naar jouw IFTTT-webpagina en kopieer de sleutel. Het ziet er ongeveer uit als:
bFqwOkYc_b5mKfYZHtF38a
Plak de IFTTT-sleutel in regel 46 van het script. Bijvoorbeeld
r = requests.post(‘https://maker.ifttt.com/trigger/motion_detected/with/key/ bFqwOkYc_b5mKfYZHtF38a‘, params={“value1″:”none”,” waarde2″:”geen”,”waarde3″:”geen”})
Sla het python script op met [Ctrl]-o en sluit af met [Ctrl]-x
Laten we nu de code uitvoeren met:
sudo python3 iftttpir.py
Beweeg nu je hand voor je bewegingssensor en kijk of het werkt. Lukt het niet, keer dan op je stappen terug.
Na detectie van de sensor wordt een bericht door het script naar IFTTT verstuurd die vervolgens de melding op de smartphone via de IFTTT app weergeeft.
Script uitvoeren bij opstarten van de Raspberry Pi
Deze stap is optioneel als u wilt dat dit python-script tijdens het opstarten wordt uitgevoerd.
Open de terminal en ga naar:
sudo nano /home/pi/.bashrc
Ga met de pijl omlaag naar de onderkant van het bestand.
Voer het volgende in onderaan de .bashrc
sudo python3 /home/pi/ifttt/iftttpir.py
Gebruik [Ctrl]-x om af te sluiten
En ‘Y’ om op te slaan
Start je Raspberry Pi opnieuw op.
Have A Nice Day!
Laat een reactie achter