Ogni qualvolta si apre la pagina web temp.php, viene richiamata la funzione fetchTemp() precedentemente vista, che stampa la temperatura misurata in quel momento.
Comunque ogni 30sec. viene forzato il refresh della pagina e quindi viene rieseguita una nuova lettura.
Infine, lo script plotter.php viene richiamato nella pagina come immagine e il risultato è quello di visualizzare il grafico con temperature rilevate nelle ultime 24hh
TEMP.PHP
<?
require_once('fetcher.php')
/*************************************************************************************************
*
* Motivazione: visualizza a ogni refresh della pagina (e comunque in automatico ogni 30 secondi)
* il valore attuale di temperatura acquisito da Arduino.
* Inoltre, richiama plotter per creare un grafico con temperature delle ultime 24hh
*
* Autore : Francesco Parisi (fparisi at tiscali dot it) , (fparisi at gmail dot com)
*
* Richiede : fetcher.php
*
*************************************************************************************************/
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Refresh" content="30; url="temp.php">
<title>Termometro Web</title>
</head>
<body>
<h1 align="center">Termometro Web</h1>
<center><table border="1" cellpadding="10" cellspacing="10" bgcolor="black">
<tr><td><font color="#00ff00" size="5"><b>
<?php echo fetchTemp() ?>
°C
</font></b>
</td></tr></table></center>
<br><br><br><br>
<p align="center">
<img src="plotter.php" border=0>
</p>
<br clear="all">
<i>Autore: Francesco Parisi<br>Versione: 1.5, U.R. 03-Feb-2010</i>
</body>
</html>
Il risultato nel browser è il seguente (click sopra per ingrandire):
PROBLEMI NOTI
Se durante la fase dell'upload dello sketch avviene anche la richiesta della temperatura (a mezzo di fetcher) il flusso seriale va in stallo...lo script perl non riesce a disimpegnare le risorse allocate; ciò produce un consumo delle risorse pari al 100% da parte del relativo processo e l'unico modo è killarlo da shell.
Dall'altro lato non si riesce a caricare su Arduino lo sketch ottenendo degli errori da parte di avrdude.
Quindi l'unico modo per evitare questo è cercare di non rimanere aperta nel browser la pagina temp.php (o comunque metterla off-line, insieme allo script logger) durante i momenti di upgrade del firmware di Arduino.
Buon divertimento