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
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
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.
[woo3dviewer model_url=”//raspberrytips.nl/wp-content/uploads/2021/09/Fritz_Repeater3000_Halterung_Vers2.stl” material_url=”” thumbnail_url=”” canvas_border=”false” display_mode=”3d_model” display_mode_mobile=”3d_model” rendered_file_url=”” model_color=”#7f4180″ background_color=”#FFFFFF” background_transparency=”undefined” model_transparency=”opaque” model_shininess=”plastic” show_grid=”true” grid_color=”#898989″ show_ground=”true” ground_color=”#c1c1c1″ show_shadow=”false” show_mirror=”false” auto_rotation=”true” rotation_x=”0″ rotation_y=”0″ rotation_z=”0″ offset_z=”0″ light_source1=”false” light_source2=”true” light_source3=”false” light_source4=”false” light_source5=”false” light_source6=”true” light_source7=”false” light_source8=”false” light_source9=”false” remember_camera_position=”true” show_controls=”false” camera_position_x=”-168.9524679029376″ camera_position_y=”119.99999999999997″ camera_position_z=”15.970710363251687″ camera_lookat_x=”0.8128729402001048″ camera_lookat_y=”-0.5773502691896256″ camera_lookat_z=”-0.07683911606144055″ controls_target_x=”0″ controls_target_y=”0″ controls_target_z=”0″]