Skip to content

Commit 7baafa5

Browse files
authored
envoi message MQTT + ouverture du site
1 parent 616b051 commit 7baafa5

File tree

1 file changed

+45
-13
lines changed

1 file changed

+45
-13
lines changed

main.py

Lines changed: 45 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
1-
### MODULES
1+
### IMPORTATION DES MODULES
22

33
import serial #module permettant de "lire" les ports la carte Arduino
44
import mysql.connector #pip install mysql-connector-python #module permettant de faire des requêtes SQL
55
import time #module permettant de mettre le programme en pause
66
import os #module permettant de travailler avec des dossiers / fichiers
7+
import paho.mqtt.client as mqtt
8+
import shutil, webbrowser #travailler avec des fichiers / ouvrir des sites web
79

8-
connection = mysql.connector.connect(host='localhost',database='',user='root',password='')
10+
11+
### INITIALISATION
12+
13+
14+
connection = mysql.connector.connect(host='localhost', database='', user='root', password='')
915
curseur = connection.cursor()
10-
requete_creation_bdd = "CREATE DATABASE IF NOT EXISTS TEMPERATURES"
16+
requete_creation_bdd = "CREATE DATABASE IF NOT EXISTS TEMPERATURES" #création de la base de données
1117
curseur.execute(requete_creation_bdd)
1218
connection.close()
1319

@@ -17,9 +23,9 @@
1723

1824
curseur.execute("CREATE TABLE IF NOT EXISTS `TEMPERATURES_GLACIERE` ( `id_horodatage` DATETIME NOT NULL, `temperatures` FLOAT NOT NULL ) ENGINE = InnoDB;")
1925

20-
print("On vide la table")
21-
curseur.execute("TRUNCATE `TEMPERATURES_GLACIERE`") #On vide la table ( au cas où elle existe déjà )
22-
connection.commit() #On soumet la requete
26+
# print("On vide la table")
27+
# curseur.execute("TRUNCATE `TEMPERATURES_GLACIERE`") #On vide la table ( au cas où elle existe déjà )
28+
# connection.commit() #On soumet la requete
2329

2430
#On crée la fonction ajout_temperature_BDD, qui va nous permettre de creer une requete SQL qui ajoute la temperature dans la base de donnée
2531
def ajout_temperature_BDD(temperature):
@@ -28,22 +34,48 @@ def ajout_temperature_BDD(temperature):
2834
curseur.execute(f"INSERT INTO `TEMPERATURES_GLACIERE` ( `id_horodatage`, `temperatures`) VALUES ( NOW(),'{temperature}')")
2935
connection.commit() #On soumet la requete
3036

31-
### main
37+
38+
os.chdir("site") #On change de dossier
39+
40+
files = ['temperatures_glaciere.php', 'style_site.css', 'fond.jpg']
41+
42+
for file in files:
43+
try:
44+
shutil.copy(file, r'C:\xampp\htdocs')
45+
except shutil.Error: #Si le fichier a deja été déplacé
46+
pass
47+
48+
print("Ouverture de Xampp...")
49+
os.system(r"c: && cd C:\xampp && xampp_start") #On lance xampp
50+
51+
webbrowser.open("http://localhost/phpmyadmin/sql.php?db=temperatures&table=temperatures_glaciere&pos=0")
52+
webbrowser.open("http://localhost/temperatures_glaciere.php") #On ouvre le site en local
53+
54+
def publication(topic, message): #On publie un topic et un message
55+
client.publish(topic, message)
56+
print(f"Publication de la température {message} au topic {topic}")
57+
58+
broker_mqtt = "test.mosquitto.org" #On définit la localisation du broker MQTT ( utilisation du broker test fourni par mosquitto )
59+
client = mqtt.Client("glaciere")
60+
client.connect(broker_mqtt) #Connection au broker
61+
62+
valeur_precedente = None
63+
64+
65+
### MAIN
3266

3367
ARDUINO = "COM3" #On part du principe que la carte Arduino se trouve sur le port 3
3468
ser = serial.Serial(ARDUINO, timeout=1) #On lit le port de la carte Arduino
35-
valeur_precedente = None #On initialise la variable valeur_precedente
3669

3770
while True: #Boucle infinie
3871
ser.flushInput()
3972
serialValue = ser.readline().strip()
4073
if len(serialValue) == 5: #On filtre la valeur pour n'avoir que la température
4174
# if serialValue != valeur_precedente:
42-
# print(float(serialValue))
75+
# print(float(serialValue))
4376
ajout_temperature_BDD(float(serialValue)) #On appelle la fonction afin d'ajouter la température dans la base de donnée
44-
valeur_precedente = serialValue
45-
time.sleep(2) #On met le programme en pause durant deux secondes, pour éviter d'avoir trop de valeur dans la base de donnée
77+
publication("temperature_glaciere", float(serialValue)) #On appelle la fonction afin d'ajouter la température dans la base de donnée
78+
# valeur_precedente = serialValue
79+
time.sleep(1) #On met le programme en pause durant deux secondes, pour éviter d'avoir trop de valeur dans la base de donnée
4680

4781
main()
48-
49-
# webbrowser.open("http://localhost/phpmyadmin/sql.php?db=temperatures&table=temperatures_glaciere&pos=0")

0 commit comments

Comments
 (0)