Bonjour,
Mon installation :
Un RPi + une ligne I2C + un mcp23017 pilotant un LCD 20x4 + un mcp23017 pilotant une carte 8 relais.
voici un script python qui récupère des données dans le fichier piscine.txt pour :
1- afficher du texte sur l'afficheur via le mpc avec comme adresse 0x24
2- commander le relais via le mpc avec comme adresse 0x22
Quand j’exécute ce script avec la console 'putty' le fonctionnement est parfait.
Mon but est de faire exécuter ce script à intervalle régulier grâce à la crontab du Rpi
Quand la crontab exécute ce script, les relais du mpc 0x22 fonctionnent selon le script mais l'afficheur LCD piloté par le mpc 0x24 écrit des caractères bizarres un peu partout sur l’écran.
Quelle différence peut-il y avoir entre la console et la crontab ?
Je sèche complètement...... J'ai besoin d'aide
#!/usr/bin/python2.7
#-*- coding: utf-8 -*-
import time
from datetime import datetime, timedelta
import Adafruit_GPIO as GPIO
import Adafruit_GPIO.MCP230xx as MCP
import Adafruit_CharLCD as LCD
gpioPIS = MCP.MCP23017(0x22)
gpioLCD = MCP.MCP23017(0x24)
lcd = LCD.Adafruit_CharLCD(15,13,12,11,10,9,20,4,14,gpio=gpioLCD)
lcd.set_backlight(1)
lcd.clear()
class Piscine:
def __init__(self):
self.OnOff = 0
self.tab = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]
Piscine = Piscine()
def Initialisation():
gpioPIS.setup(0,GPIO.OUT)
# Fonction lecture fichier piscine
def lirePiscine():
FichierPiscine = open("/var/www/piscine.txt", "r")
Piscine.OnOff = int(float(FichierPiscine.readline())) # On/Off
i=1
while i<= 23:
Piscine.tab[i]=int(float(FichierPiscine.readline()))
i=i+1
FichierPiscine.close
return
Initialisation()
maintenant = datetime.now()
lirePiscine()
if len(str(maintenant.hour))==1 :
lcd.message("0")
lcd.message(str(maintenant.hour))
else :
lcd.message(str(maintenant.hour))
lcd.message(":")
if len(str(maintenant.minute))==1 :
lcd.message("0")
lcd.message(str(maintenant.minute))
else :
lcd.message(str(maintenant.minute))
lcd.set_cursor(6,0)
lcd.message("Piscine : ")
if Piscine.OnOff == 1 :
lcd.message("Auto")
i=0
while i <= 22:
if maintenant.hour == i:
if Piscine.tab[i+1]==1:
gpioPIS.output(0,1)
lcd.set_cursor(0,1)
lcd.message("Filtration ON")
else :
gpioPIS.output(0,0)
lcd.set_cursor(0,1)
lcd.message("Filtration OFF")
i=i+1
else :
lcd.message("Manu")
Dernière modification par passemoilaclede12 (02-11-2016 18:49:14)