‘Deurbel’ verbinden met GPIO

Een knop aan een GPIO aansluiten lijkt best simpel. Maar hoe werkt het als je met de knop een buzzer aanstuurt zoals een (smart) deurbel en de Raspberry Pi wilt laten weten als er op de knop gedrukt wordt. 

Een standaard deurbel werkt doorgaans op wisselspanning. In de meterkast is veelal een transformator opgenomen die via de knop bij de deur de deurbel schakelt. De spanning die hier gebruikt wordt is ongeschikt om de Raspberry PI er rechtstreeks mee te voorzien.

Voorbeeld van een wisselspanningstrafo voor de deurbel

Wil je een echte deurbel op je Pi aansluiten? Lees dan deze tutorial door en scrol naar beneden naar het hoofdstuk ‘Deurbel aansluiten’ en download het schema ervoor.


In deze tutorial bespreek ik twee modellen die erg veel overeenkomsten met elkaar hebben en waarbij een buzzer via een knop gevoed wordt.

Let op! De buzzer kent een polariteit. De +5V wordt aangesloten op de buzzerpin die met een + aangegeven is.

Let op! Ik heb het over een buzzer, een zoemer dus, dus niet over een luidsprekertje dat er nagenoeg hetzelfde eruit ziet. Het verschil is dat een zoemer bij 5V zoemt! Een luidsprekertje geeft slechts wat knetterend geluid als deze met 5V in aanraking komt. Een zoemer wordt ook wel een actieve buzzer genoemd en een luidsprekertje een passieve buzzer. De zoemer is herkenbaar aan het teken op de behuizing. Het luidsprekertje heeft deze niet.

De buzzer en de luidspreker

De kern van deze tutorial is het uitlezen van de GPIO in relatie tot de polariteit van de voeding in het circuit en het verschil in het bijbehorende Python script.

Let op!
Ik ben zelf geen fan om 5V op een GPIO te zetten. Ofschoon de GPIO redelijk robuust is, adviseer ik 3,3V te gebruiken. Mocht de 5V buzzer niet functioneren bij 3,3V, zit er niets anders op 5V te gebruiken. Hoe dan ook, je bent gewaarschuwd!

Opstelling 1 (input_state == True)
In deze opstelling wordt de Vcc (3,3V of 5V) geschakeld via de knop (S1) daarom is de + van de buzzer met de schakelaar verbonden. Om de Pi te laten weten dat er op de knop gedrukt wordt, sturen we de Vcc ook naar de GPIO pin. De overgebleven pin van de buzzer wordt verbonden met de GND (ground). De Vcc en de GND worden voorzien door de Raspberry Pi.

Het Python script
Ik heb het uitlezen van de knop als functie genoteerd zodat het eenvoudig als onderdeel in een groter script op te nemen is. Ik gebruik in het script GPIO12 (pin 32). Om de functie aan te roepen is de laatste scriptregel ‘knop()‘. Het script om de GPIO pin uit te lezen is als volgt.

import RPi.GPIO as GPIO
import time

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)

GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_UP)

def knop():
    while True:
        input_state = GPIO.input(12)
        if input_state == True:
            print('De knop is ingedrukt')
            time.sleep(0.2)

knop()

Opstelling 2 (input_state == False)
In deze opstelling wordt de GND geschakeld via de knop (S1) daarom is de onbenoemde pin van de buzzer met de schakelaar verbonden. Om de Pi te laten weten dat er op de knop gedrukt wordt, sturen we de GND ook naar de GPIO pin. De + aansluiting van de buzzer wordt verbonden met de Vcc. De Vcc (3,3V of 5V) en de GND worden voorzien door de Raspberry Pi.

Het Python script
Het script is nagenoeg gelijk aan het script van hierboven, op één verschil na. De input_state == False. Dit is de status die de GPIO pin heeft als de GND door de knop geschakeld wordt. Het script om de GPIO pin uit te lezen is als volgt.

import RPi.GPIO as GPIO
import time

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)

GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_UP)

def knop():
    while True:
        input_state = GPIO.input(12)
        if input_state == False:
            print('De knop is ingedrukt')
            time.sleep(0.2)

knop()

Deurbel aansluiten
Als je een beetje handig bent kun je je eigen deurbel met de Raspberry Pi verbinden. Je moet er wel voor zorgen dat de aangeboden spanning op de GPIO tussen de 3,3 en 5V bedraagt. Bij een hogere spanning is de kans ERG GROOT dat je de Raspberry Pi beschadigt. Download hieronder de handleiding hoe je dit kunt doen.

Have A Nice Day!

Geef als eerste een reactie

Laat een reactie achter

Het e-mailadres wordt niet gepubliceerd.


*