Étape 1: logiciel
Les données sont collectées et mises à la disposition sur une machine Linux avec un serveur web Apache
Collecte de données
Le schéma de base de données MySQL est composé de 2 tables ; « entrée » avec la puce-id et la date / heure et le « nom » avec puce-id et le nom du chat. Les données sont recueillies avec un petit programme Perl :
#! / usr/bin/perl
utilisation stricte ;
utiliser des avertissements ;
utiliser Device::SerialPort ;
Utilisez DBI ;
mon $con = DBI -> connect ("dbi:mysql:dbname = chats", "username", "password", {RaiseError = > 1},) ou mourir "Connecter DBI::errstr" ;
mon $port = new Device::SerialPort("/dev/ttyUSB0") ;
imprimer « err ouverte » à moins que ($port) ;
$port -> baudrate(9600) ;
$port -> parity("none") ;
$port -> databits(8) ;
$port -> stopbits(1) ;
$port -> handshake("none") ;
$port -> write_settings ;
$port -> are_match ("\r", "\n") ;
$port -> lookclear ;
mon $resp ='' ;
while (1)
{
jusqu'à ce que ($resp ne '')
{
$resp = $port -> enlacent ;
dormir 1 ;
}
Si (length($resp) ge 14)
{
#filter des perturbations sur la connexion en série qui peuvent perturber le serveur SQL
Si ($resp = ~ m/^[0-9]{15}$/)
{
$resp impression. "\n";
mon $sth = $con - > préparer ("INSERT INTO valeurs d’entrée (zeit, puce) (maintenant (), \" ". $resp. "\") ") ou d’avertir"Préparer DBI::errstr";
mon $rc = $sth -> execute() ou avertir "Execute DBI::errstr" ;
}
}
$resp = '' ;
$port -> lookclear ;
}
DBI:Close() ;
$port -> fermer ;
Présentation des données
Les données sont presentend sous forme de tableau des événements plus récents 4 par chat en utilisant un programme php simple.
S’il vous plaît regardez la capture d’écran du code ainsi, écrit sur le langage HTML sur une page HTML ne fonctionne pas toujours...
requête ('SELECT * de nom ') ou mourir ('select name') ;
if ($names -> num_rows > 0)
{
tandis que ($namerow = $names -> fetch_assoc())
{
echo "" ; $name = $namerow ["nom"] ;
echo '' ;
$sel = ' SELECT zeit FROM entrée puce où ='. '\'' . $namerow ["puce"]. '\'' . « ORDER BY zeit DESC LIMIT 4 » ; $times = $mysqli -> query($sel) ou die ('erreur sélectionner entrée) ;
Si ($times -> num_rows > 0)
{
tandis que ($timerow = $times -> fetch_assoc())
{
$time = date_create($timerow["zeit"]) ;
echo "«; »
}
}
d’autre
{
echo "" ;
}
echo "" ;
}
}
d’autre
{
Die ('No names ») ;
}
$mysqli -> close() ;
? >