Een zoemer aansturen via Python en GPIO Zero (Raspberry Pi)

In sommige gevallen kan het handig zijn dat er een zoemer (buzzer) klinkt, denk hierbij aan het overschrijden van een bepaalde waardes zoals bijvoorbeeld bij een temperatuursensor. Of natuurlijk een andere situatie waarbij aandacht/feedback wordt gevraagd.

Op de Raspberry Pi kun je heel simpel een actieve piezo zoemer aansluiten. De werking van een dergelijke zoemer is heel simpel, als de zoemer stroom krijgt dan zal er een signaal klinken. Er zijn ook passieve zoemers op de markt, deze zijn lastiger aan te sluiten omdat ze verschillende tonen (melodies) kunnen genereren. In dit stappenplan gebruiken we een simpele actieve zoemer (buzzer).

Gebruikte componenten

Actieve piezo Buzzer (Zoemer)
2x Dupont verbindingskabel (male/female)
Breadboard

Door gebruik te maken van de bovenstaande links steun je raspberrytips, bedankt!

Raspberry Pi 3 model B
Raspbian Stretch (2018-03-13 kernel 4.9.)

Aansluitschema

zoemer buzzer python raspberry pi schema

Het aansluiten van de zoemer is heel simpel, sluit de zwarte draad aan op GND (pin #9) en de rode draad op GPIO 17 (pin #11). In het schema hebben we een braadboard gebruikt, deze hoef je niet te gebruiken. Je kunt de draden direct op de Pin aansluiten, de door ons gebruikte zoemer had geen connecters vandaar dat we een breadboard en dupont kabeltjes hebben gebruikt.

De zoemer gebruiken in Python

Nadat de zoemer is aangesloten kunnen we deze gaan aansturen met behulp van een klein Python script. Onder Python maken we gebruik van de GPIO Zero library, deze heeft standaard ondersteuning voor een zoemer (buzzer). De GPIO Zero library is standaard aanwezig in de Raspbian images en hoeft niet geïnstalleerd te worden.

In het onderstaande Python voorbeeld laten de zoemer in loop van 1 seconde aan/uit gaan, de kunt de loop verbreken met crtl+c. Buzzer(17) geeft aan dat we de zoemer hebben aangesloten op GPIO 17.

from gpiozero import Buzzer
from time import sleep

buzzer = Buzzer(17)

while True:
        buzzer.on()
        sleep(1)
        buzzer.off()
        sleep(1)

Open de nano editor in Terminal om het Python script aan te maken:

nano buzzer.py

plak de bovenstaande code in de nano editor, sla de wijzigingen op met ctrl+x, y, enter.

Start het python script:

python buzzer.py

Buzzer Zoemer Raspberry Pi Python

Beeper functie

De gpiozero library heeft ook een beep-functie voor de buzzer, deze kun je aanroepen met behulp van buzzer.beep(), ook hier moet je opgeven op welke GPIO de zoemer is aangesloten. Voorbeeld Python script:

from gpiozero import Buzzer

buzzer = Buzzer(17)

buzzer.beep()

Open de nano editor in Terminal om het Python script aan te maken:

nano beep

plak de bovenstaande code in de nano editor, sla de wijzigingen op met ctrl+x, y, enter.

Start het python script:

python beep.py

GPIO Zero opnieuw installeren

Mocht bij het uitvoeren van de scripts de foutmelding ImportError: No module named gpiozero verschijnen dan is de GPIO Zero library niet beschikbaar en waarschijnlijk handmatig verwijderd. Je kunt dan GPIO Zero library opnieuw installeren met de onderstaande commando's.

Update allereerst de repositories list:

sudo apt update

Installeer het package voor Python 2:

sudo apt install python-gpiozero

Of installeer het package voor Python 3:

sudo apt install python3-gpiozero

Hierna zullen de voorbeeld scripts zonder problemen werken en wordt de zoemer aangestuurd.

Een reactie plaatsen

%d bloggers liken dit: