voici un script qui n ' est surement pas parfait
sur le long therme j ' ai parfois de faux positifs de detection event , il ne s' agit pas de rebond car le flotteur ne bouge pas dans les tests, une solution pour eviter ce phenomene ?
Code: Select all
#! /usr/bin/python
# coding: utf-8
import RPi.GPIO as GPIO
import time
from datetime import datetime
GPIO.setmode(GPIO.BOARD)
pin_flotteur=36
GPIO.setup(pin_flotteur, GPIO.IN, pull_up_down=GPIO.PUD_UP) # en mode entree Tout Ou Rien
# Fonctions
def sendmail (): # fonction qui envoie les mails
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
########################################################################
time.sleep(0.5) # pause de demarrage
GPIO.add_event_detect(pin_flotteur, GPIO.BOTH, bouncetime=1000) # GPIO.FALLING GPIO.BOTH GPIO.RISING , callback=my_callback
while True :# a utiliser a la place de la fonction callback pour le moment
state = GPIO.input(pin_flotteur) # lecture etat de l ' entree
if not state : # l ' eau fait monter le flotteur et coupe le contacteur relais
#GPIO.remove_event_detect(pin_flotteur)
print("il ya une fuite d' eau")
#sendmail()
now=(datetime.now().strftime("%d/%m/%Y %H:%M:%S"))
fichier = open("/home/pi/projets_auto/logs/envoi_mail_auto.log", "a")
fichier.write("le flotteur est passe en position haute a : "+ now+"\n")
fichier.close()
while not state : # tant qu on est en etat bas donc flotteur en position haute, on attend qu il redescende.
state = GPIO.input(pin_flotteur) # lecture etat de l ' entree
time.sleep(1)
time.sleep(1) # eviter surcharge proc
# a utiliser a la place de la fonction callback pour le moment
Code: Select all
le flotteur est passe en position haute a : 27/06/2019 11:14:42
le flotteur est passe en position haute a : 27/06/2019 11:16:37
le flotteur est passe en position haute a : 27/06/2019 11:17:31
le flotteur est passe en position haute a : 27/06/2019 11:19:11
le flotteur est passe en position haute a : 27/06/2019 11:20:27
le flotteur est passe en position haute a : 27/06/2019 11:20:46le montage est le suivant :
3.3v => contacteur => resistance 1 kohms => pin 36 ( physique )
la resistance est-elle trop elevee ? le montage n ' est pas bon ?
quel peut etre le probleme selon vous ?