samedi 26 novembre 2022

Tag Archives: détecteur mouvement

Ma framboise suit vos mouvements

Objets principaux de mon blog : ne pas oublier et partager…

L’un des premiers fichiers en PYTHON que j’ai fait. Il s’agit de la mise en place d’un détecteur de mouvement (PIR).
Le montage est le suivant (extrêmement simple hein):

babyroom_pir

Mon PIR est sur 3,3V, mais la plupart sont sur du 5V, tout dépend de votre modèle.

Le code est le suivant (on pourra ensuite le compléter avec des actions sur la détection de mouvements):

#!/usr/bin/python
################################################################################
# PROJECT: Babyroom - FILE: detection_mouvements.py - CREATION: 2013/03/04
# Ce fichier est sous licence GPL.
# $Id$
################################################################################
"""
Detection de mouvements sur le GPIO 4 avec enregistrement dans un fichier de log
Ce fichier de log est a destination de rrdtool.
U{http://geekandmore.fr/}.

@version: 1.0
@author: U{Mehdi HAMIDA (idem) }
"""

# Import required Python libraries
import time
import RPi.GPIO as GPIO

################################################################################
# Use BCM GPIO references
# instead of physical pin numbers
GPIO.setmode(GPIO.BCM)

# Define GPIO to use on Pi (mon PIR est sur la Pin 4)
GPIO_PIR = 4

print " MOUVEMENT DETECTE (CTRL-C pour sortir)"

# Set pin as input
GPIO.setup(GPIO_PIR,GPIO.IN)      # Echo

print "  Pret"

try: 
# Loop until users quits with CTRL-C
	while True :
                type_sonde = "detection_mouvements"
                logfile = "/data/rrd/log/"+ type_sonde +".log"

		if GPIO.input(GPIO_PIR):
			print "  Mouvement detecte!"
                	output_file = open(logfile, "w")
                	output_file.write("1")
                	output_file.close()
		else:
                	output_file = open(logfile, "w")
                	output_file.write("0")
                	output_file.close()

		time.sleep(1)               # every 1 sec 

except KeyboardInterrupt:
	print "  Quit"
	# Reset GPIO settings
	GPIO.cleanup()