On continue avec le code php du cron qui doit etre lancé a intervalle régulier. Chez moi toute les heures.
<meta charset="utf-8">
<table>
<tr>
<th>Nom du capteur: </th>
<th>Température: </th>
<th>Hygrométrie: </th>
<th>Hygrométrie sol: </th>
</tr>
<?php
//On désactive l'affichage des erreurs, car les erreurs PDO renvoit le nom d'utilisateur et le mot de passe
error_reporting(0);
//On crée l'objet gérant la base de données
$usr = "ici votre login BDD";
$pass = "et la votre pasword BDD";
$bdd = new PDO('mysql:dbname=ici le nom de la BDD;host=localhost', $usr, $pass);
//Le temps du serveur formatté en javascript (nombre de millisecondes depuis le 1er Janvier 1970)
$temps = time()*1000 + 3600*1000;
//On récupère le document XML généré par l'Arduino
$doc = simplexml_load_file('http://ici l ip sur serveur arduino:et son port souvent 80');//Doit correspondre à l'adresse de l'Ethernet Shield
//On boucle sur tous les éléments du document XML
foreach($doc as $elem)
{
//On récupére les attributs de l'élement notamment le nom du capteur
$attributes = $elem->attributes();
$name = $attributes["name"];
//On récupère les valeurs des capteurs (température/humidité)
$enfants = $elem->children();
$temp = $enfants[0];
$hygro = $enfants[1];
$hSol = $enfants[2];
//On prépare la requete avec les bons paramètres
$requete = $bdd->prepare("INSERT INTO graph_tbl(`id`, `nomCapteur`, `temperature`, `humidity`, `sol`, `date`) VALUES (NULL, :nom, :temp, :humi, :lesol, :time);");
//On execute la requête en lui passant les données qui vont bien
$etat = $requete->execute(array("nom" => $name,
"temp" => $temp,
"humi" => $hygro,
"lesol" => $hSol,
"time" => $temps));
//Si la requête s'est bien déroulée
if($etat)
echo "OK";
else
echo "Fail";
//On affiche l'état des capteurs (pour debug)
echo "<tr><td>".$name."</td><td>".$temp."</td><td>".$hygro."</td><td>".$hSol."</td></tr>";
}
?>
</table>