BTS Mesure BTS Mesure
pH IOTMySQLressources phpjaugegraphesrobotGyro

Ressources

Nous allons stocker nos mesures dans une base de données MySQL.

Liens utiles pour débuter :

Structure de notre base

Pour notre projet nous allons créer 2 tables :

  • consignes : elle stocke les consignes pH bas, pH haut....
  • piscine : elle stocke les mesures avec pour champs : Identité, date, t_piscine, t_ext, pH, pile
  • Rem :      Id est en auto_increment, c'est la clé primaire qui doit être unique. Elle est générée automatiquement par MySQL.
    • date est un timestamp généré automatiquement à partir de l'horloge du serveur.

  • grâce au lien Créer source PHP nous pouvons obtenir le code PHP de la requête qu'il faudra insérer dans notre script PHP

 

Script php :

Notre programme Arduino va générer une url du type : bts2m.free.fr/PH/sql.php?Text=38.2&Tpiscine=24.5&pH=7.2&pile=3.85

 Puis le script php va insérer les mesures transmises dans la base de donnée.

La version PHP disponible sur le serveur free est  PHP 4.4.3-dev.
Cette version ne permet pas l'utilisation de la classe PDO.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <head> <title>Transfert SQL</title> <meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Cache-Control" content="no-cache, must-revalidate" /> <meta http-equiv="Expires" content="0" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <body> <?php // bts2m.free.fr/PH/sql.php?Text=38.2&Tpiscine=24.5&pH=7.2&pile=3.85 // roupet.free.fr/informatique/mysql.php //--Connexion au serveur define("NOM","tpil.projet"); //nom = login chez free define("PASSE","motDePasse"); // passe=votre mot de passe free define("SERVEUR","sql.free.fr"); // adresse du serveur free define("BASE","tpil.projet"); // nombase = login chez free define("TABLE","piscine"); // nom de ma Table $link = mysql_connect('sql.free.fr','tpil.projet',PASSE); if(!$link) {echo"Impossible de se connecter au serveur".mysql_error();exit;} else {echo "connection au serveur réussie !";} //--Connexion à la table consignes mysql_select_db(consignes,$link); $requete= "SELECT * FROM consignes"; // Requete 1 : explorer consignes $reponse=mysql_query($requete, $link); $ligne=mysql_fetch_row($reponse);$Cb = $ligne[2]; $ligne=mysql_fetch_row($reponse);$Ch = $ligne[2]; $ligne=mysql_fetch_row($reponse);$pH_B = $ligne[2]; $ligne=mysql_fetch_row($reponse);$pH_H = $ligne[2]; if (isset($_GET['Text']) && isset($_GET['Tpiscine']) && isset($_GET['pH'] )&& isset($_GET['pile']) ) { $requete = "INSERT INTO piscine (`date`, `t_piscine`, `t_ext`, `pH`,`pile`) VALUES (CURRENT_TIMESTAMP,".$_GET['Tpiscine'].",".$_GET['Text'].",".$_GET['pH'].",".$_GET['pile'].");"; if (mysql_query($requete, $link)) { echo "<p>Insertion réussie : t-piscine = ".$_GET['Tpiscine']."°C, text =".$_GET['Text']."°C, pH = ".$_GET['pH'].", pile = ".$_GET['pile']." V</p>"; echo "<p>Ch=".$Ch." Cb=".$Cb." </p>"; // Envoi consigne temperature pour Arduino echo "<p>pH_H=".$pH_H." pH_B=".$pH_B." </p>"; // Envoi consigne pH pour Arduino } else echo "<p>Echec d'insertion </p><p>".mysql_error()."</p>;"; mysql_close($link); } else // Sinon, on affiche un message d'erreur {echo '<p>Pas de transmission</p><p>Rappel format : /PH/sql.phpText=38.2&Tpiscine=24.5&pH=7.2&pile=3.85</p>';} ?> </body> </html>