La saison de la chasse à neuneus est de retour, voici venu le temps de tir dans les champs, la chasse à ces dangereux volatiles, les pigeons par exemple, une espèce sauvagement invasive qu’il ne faut surtout pas hésiter à détruite jusqu’au bout 😉
Si vous aussi les nuisances sonores de ces intellectuels à fusils vous brouillent l’écoute, voici une solution basée sur un simple Raspberry Pi en python 3 :
import pygame
import time
import random
import paho.mqtt.client as mqtt
from datetime import datetime
# Initialisation du mixer de pygame
pygame.mixer.init()
# Liste des fichiers audio
audio_files = ["faucon.mp3", "aigle.mp3", "buse.mp3"]
# Variables de contrôle
mqtt_broker = "iot.tonserveur.fr"
mqtt_port = 1883
mqtt_topic = "/raspibuse"
mqtt_username = "ton_login"
mqtt_password = "ton_mot_de_passe"
# État du script (activé/désactivé)
script_active = False
# Jouer le son de démarrage une seule fois
def jouer_son_demarrage():
print("🎵 Lecture du son de démarrage : buse.mp3")
pygame.mixer.music.load("buse.mp3")
pygame.mixer.music.play()
# Fonction de lecture audio
def jouer_audio():
global script_active
while True:
if script_active:
fichier_audio = random.choice(audio_files)
pygame.mixer.music.load(fichier_audio)
print(f"Lecture de : {fichier_audio}")
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
pygame.time.Clock().tick(10)
print("Lecture terminée à :", datetime.now().strftime("%H:%M:%S"))
# Pause aléatoire entre 20 et 120 secondes
pause = random.randint(20, 120)
print(f"Pause de {pause} secondes...\n")
time.sleep(pause)
else:
time.sleep(1)
# Callback de connexion MQTT
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("✅ Connexion MQTT réussie")
client.subscribe(mqtt_topic)
else:
print(f"⚠ Échec de la connexion MQTT, code {rc}")
# Callback de réception d'un message MQTT
def on_message(client, userdata, msg):
global script_active
message = msg.payload.decode("utf-8").strip()
print(f"📩 Message reçu: {message}")
if message.upper() == "ON":
script_active = True
print("🔊 Activation du script")
elif message.upper() == "OFF":
script_active = False
pygame.mixer.music.stop()
print("🔇 Désactivation du script")
# Jouer le son de d marrage
jouer_son_demarrage()
# Configuration du client MQTT
client = mqtt.Client()
client.username_pw_set(mqtt_username, mqtt_password)
client.on_connect = on_connect
client.on_message = on_message
# Connexion au broker MQTT
client.connect(mqtt_broker, mqtt_port, 60)
client.loop_start()
# Démarrage du script
jouer_audio()
Le script va lancer au choix 3 sons : faucon (pas ceux avec les fusils qui sont des vrais, ne confondez pas), buse, et aigle. Vous pouvez choisir une pause entre 20 et 120 secondes, aléatoire.
Venez ajouter sur la sortie audio du Pi un amplificateur audio à moins de 40 € sur Amazon :
et associez le à un haut-parleur étanche et directif, toujours sur Amazon, dans les 20 € :
Bonne nouvelle, vous allez pouvoir activer l’effaroucheur via un serveur MQTT, cf le script, en envoyant /raspibuse ON ou OFF selon vos besoins. Pratique pour l’activer à distance si besoin.
Je ne détaille volontairement pas l’installation des librairies Python et tous les détails, au besoin Google ou ChatGPT pourront vous aider sur les commandes à utiliser.











