Quindi si crea prima la il database con la tabella sql, poi lo script e infine si configura cron.
Il codice sql per creare il database e la tabella che conterrà orario e temperatura interna sarà:
LOG.SQL
CREATE DATABASE `temperature` ;Lo script logger.php va salvato in una directory diversa da quella html pubblica proprio perché non deve essere richiamabile via web.
CREATE TABLE `temperature`.`log` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
`temp_int` FLOAT NOT NULL
) ENGINE = MYISAM ;
Personalmente li ho salvati nella cartella utente /home/frank ma si potrebbe pensare anche alla directory /usr/local/bin:
LOGGER.PHP
<?
/*************************************************************************************************
*
* Motivazione: memorizza in un database MySQL il valore di temperatura acquisito da Arduino.
*
* Autore : Francesco Parisi (fparisi at tiscali dot it) , (fparisi at gmail dot com)
*
* Richiede : db.php, fetcher.php
*
*************************************************************************************************/
require_once('fetcher.php');
require_once('db.php');
// Apre la connessione al server
$conn = mysql_connect( $host, $user, $pass )
or die('Impossibile connettersi al server: ' . mysql_error());
// Seleziona il database
$sel = mysql_select_db( $dbname, $conn )
or die('Impossibile selezionare il database: ' . mysql_error());
// Legge da Arduino la temperatura
$temperature = fetchTemp();
// Query di inserimento
$sql=("INSERT INTO `log` (`id` ,`time` ,`temp_int`)
VALUES (NULL, NULL, ". $temperature .")");
// Esegue la query
$res = mysql_query( $sql )
or die('Impossibile eseguire query: ' . mysql_error());
// Chiude connessione
mysql_close( $conn )
or die('Impossibile chiudere connessione: ' . mysql_error());
?>
Nel file logger.php viene incluso un file db.php, che contiene i dati di accesso al server MySQL. Sostituire con i propri parametri:
DB.PHP
<?php
$host = 'localhost';
$dbname = 'temperature';
$user = 'root';
$pass = 'tua_password_qui';
?>
Infine, si configurerà cron per lanciare il comando:
php /home/frank/logger.php > /dev/null 2>&1
ogni mezz'ora.
Da shell, lanciare
$ crontab -e
Apparirà l'editor di cron per l'utente corrente. Aggiungere la seguente riga:
*/30 * * * * php /home/frank/logger.php # logga temperatura
Salvare il file e uscire dall'editor testo
Assicurarsi che il compito sia stato correttamente inserito:
$ crontab -l
Non ci resta ora che la creazione del grafico e una pagina web che mostri la temperatura corrente e il grafico stesso
Nessun commento:
Posta un commento