Zoals ook in het artikel IFTTT (If This Then That) genoemd, is IoT (internet of things) moment erg hot. Ik heb een vraag ontvangen om het script wat universeler inzetbaar te maken en functies te gebruiken. Geen probleem en kleine moeite! Ik heb ervoor gekozen de GPIO te activeren door een button de +5V (of naar keuze GND) door te laten geven.
Deze tutorial is relatief eenvoudig. Op basis van een HOOG of LAAG niveau op een GPIO pin wordt er een bericht via IFTTT (if this than that) naar de smartphone verstuurd.
In de tutorial IFTTT (If This Then That) heb ik, weliswaar in combinatie met een bewegingsmelder, uitgelegd hoe de basis werkt en dat je een unieke sleutel nodig hebt om een IFTTT event te besturen. In dit artikel leg ik dit niet meer niet. Wil je dus meer weten over IFTTT? Bezoek dan deze pagina en kom daarna weer hier terug.
Daar gaan we!
Aansluitschema
Ik wil het principe laten zien waarbij een button (S1) het signaal (HOOG = +5V of LAAG = GND) naar de GPIO schakelt. Ik noem bewust beide niveaus omdat beide situaties voor kunnen komen. In de tutorial ‘Deurbel’ verbinden met GPIO ga ik hier dieper op in. Wellicht goed om dit even door te lezen. Er is een kleine aanpassing in het script nodig om een HOOG of LAAG logisch signaal te detecteren.
Ik heb voor deze tutorial een script met daarin twee functies geschreven. De eerste leest de button uit (If This), de tweede verstuurt een verzoek via https: aan IFTTT.com. De melding op je smartphone ontvang je als je de app IFTTT op je smartphone geïnstalleerd hebt en de Then That actie, zoals een melding geven op de smartphone, gedefinieerd hebt op de IFTTT website/app. Zoals gezegd; in de tutorial ‘Deurbel’ verbinden met GPIO kun je alles hierover terugvinden.
Alternatief – Instellen Smart Life steker
In plaats van een melding op je smartphone zou je bijvoorbeeld een Smart Life steker via het Than That event kunnen laten schakelen. Wil je meer hierover weten? Bekijk dan de video van Carol Dunn.
(zie video op 9:11) https://www.youtube.com/watch?v=72UjPhD9whM&ab_channel=CarolineDunn
Veel smartstekers werken i.c.m. de app Smart Life. Maak je voor de eerste keer gebruik van het IFTTT event en het aansturen van de Smart Life steker, dan heb je de toegangsgegevens nodig van de app.
…en door!
De 3,3V voeding loopt via de button naar pin 32 (= GPIO12). Gebruik bij voorkeur GEEN 5V! Omdat gebruik gemaakt wordt van de interne pull-up weerstand hoeven we geen fysieke weerstand in het schema aan te brengen.
Het Python script
Het script dat hieronder staat is eenvoudig over te nemen. Om het te laten functioneren moet je op de IFTTT website wel even een event en een sleutel aanmaken. Ik noem het event ‘DEURBEL‘ en de verkregen sleutel ziet er ongeveer uit als: bFqwOkYc_b5mKfYZHtF38a (dit voorbeeld is een niet-werkende sleutel).
Om het script te kunnen draaien heb je de request biblioteek nodig. Vergeet bovendien niet je Pi te updaten en te upgraden. Je installeert de bibliotheek deze als volgt:
python -m pip install requests
Doordat het script functies bevat kunnen deze eenvoudig in andere programma’s opgenomen worden. Zorg er wel voor dat je de bibliotheken (imports) en GPIO definities ook overneemt, anders werkt het niet.
#! /usr/bin/python
import RPi.GPIO as GPIO
from time import sleep
import requests
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
button=12
GPIO.setup(button, GPIO.IN, pull_up_down=GPIO.PUD_UP)
def deurbel():
"Monitort de deurbel"
while True:
input_state = GPIO.input(button)
if input_state == True: # True: als button +5V schakelt, False: als button GND schakelt
print ("\n\033[1;33mDeurbel\033[1;m")
print ("De deurbel (button) is ingedrukt")
time.sleep(0.2)
ifttt()
def ifttt():
"Verstuurt een bericht naar IFTTT"
print ("\n\033[1;33mIFTTT bericht versturen\033[1;m")
print ("Er wordt een bericht verstuurd naar IFTTT")
r = requests.post('https://maker.ifttt.com/trigger/DEURBEL/with/key/JOUW_IFTTT_SLEUTEL', params={"value1":"none","value2":"none","value3":"none"})
print("Wacht 5 seconden om het event af te ronden voor het volgende kan starten")
time.sleep(5)
print ('\n\033[1;34m--------------------------------------------------------Program restart\033[1;m')
print ("\nDruk op de deurbel (button) en er wordt een bericht naar IFTTT verzonden")
deurbel()
# Main ----------------------------------------------------------------
print ("\033[1;1;1m,\033c")
print ("\nDruk op de deurbel (button) en er wordt een bericht naar IFTTT verzonden")
deurbel()
Download
Het script wordt gestart met:
python ifttt_deurbel2.py
Melding op je smartphone
Als alles goed gegaan is ontvang je op je smartphone een melding. Afhankelijk van de Than That eventkeuze kan de melding op jouw smartphone er anders uitzien.
Mochten er nog vragen zijn, laat het dan hieronder weten. Succes ermee!
Have A Nice Day!
Laat een reactie achter