Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save EspaceRaspberryFrancais/93094e32d5318b3018b16c0784666746 to your computer and use it in GitHub Desktop.
Save EspaceRaspberryFrancais/93094e32d5318b3018b16c0784666746 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python3
from flask import Flask, render_template
import RPi.GPIO as GPIO
from datetime import datetime, timedelta
import os
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
app = Flask(__name__)
# Entree : statut de sauvegarde; Fonction : Retourner la temperature actuelle et ordonner ou non son enregistrement
def getTemp(sauvegardeStatus):
# On ouvre le fichier de la sonde. Remplacer les X par le numero de la sonde
fichSonde = open("/sys/bus/w1/devices/28-XXXXXXXXXXXX/w1_slave")
contenu = fichSonde.read()
fichSonde.close()
# On 'nettoie' le contenu pour recuperer que la temperature
secondeLigne = contenu.split("\n")[1]
temperatureData = secondeLigne.split(" ")[9]
temperature = float(temperatureData[2:])
temperature = temperature / 1000
# sauvegardeStatus = 1 => on enregistre la temperature
if sauvegardeStatus == True :
enregistrement(temperature)
return temperature
def enregistrement(temperature):
d = datetime.now()
# On recupere de datetime.now l'annee & le jour et on le stocke
annee = str(d)[:4]
jour = str(d)[:10]
repertoire = '/home/pi/ProjetGraphTemp/temperatures/' + annee + '/'
# On verifie que le repertoire existe. S'il n'existe pas : on le cree
if not os.path.isdir(repertoire):
os.makedirs(repertoire)
fich_Temp = repertoire + jour + '.txt'
# On ouvre le fichier ayant pour nom la date_du_jour.txt en fonction de s'il existe ou pas : en add ou en write
if os.path.exists(fich_Temp):
# Le fichier existe, on l'ouvre en mode ajout
f = open(fich_Temp, "a")
else:
# Le fichier n'existe pas, on le cree et on l'ouvre
f = open(fich_Temp, "w")
# Enfin, on ajoute une ligne dans le fichier au format : HH:MM Temp _ Exemple : 10:15 27.02
time = d.strftime("%H:%M")
print(str(time) + " " + str(temperature), file=f)
f.close()
@app.route("/getTemp")
def affTemp():
return render_template('index.html', temp=getTemp(True))
app.run(debug=True, host='0.0.0.0', port=5000)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment