Stap 1: Software
De gegevens worden verzameld en beschikbaar gesteld op een Linux box met een Apache-webserver
Gegevensverzameling
Het schema van de MySQL-database bestaat uit 2 tafels; "entry" met de chip-id en de datum-tijd en de "naam" met chip-id en de naam van de kat. De gegevens worden verzameld met een klein Perl programma:
#! / usr/bin/perl
Gebruik streng;
gebruik van waarschuwingen;
gebruik van Device::SerialPort;
gebruik van DBI;
mijn $con = DBI -> verbinding ("dbi:mysql:dbname = katten", "gebruikersnaam", "wachtwoord", {RaiseError = > 1},) of sterven "Verbinding DBI::errstr";
mijn $port = nieuwe Device::SerialPort("/dev/ttyUSB0");
afdrukken "open err" tenzij ($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;
mijn $resp ='';
terwijl (1)
{
totdat ($resp ne '')
{
$resp = $port -> vlekken;
slaap 1;
}
Als (length($resp) ge 14)
{
#filter uit de verstoringen van de seriële aansluiting die de SQL-server verstoren kunnen
Als ($resp = ~ m/^[0-9]{15}$/)
{
afdrukken van $resp. "\n";
mijn $sth = $con - > bereiden ("INSERT INTO ingang (zeit, chip) VALUES (nu (), \ '". $resp. "\") ") of waarschuwen"Bereiden DBI::errstr";
mijn $rc = $sth -> execute() of waarschuwen "Excecute DBI::errstr";
}
}
$resp = '';
$port -> lookclear;
}
DBI:Close();
$port -> sluiten;
De presentatie van gegevens
De gegevens zijn presentend als een tabel met de 4 meest recente gebeurtenissen per kat met behulp van een eenvoudig php-programma.
Gelieve te werkt kijken naar de screenshot van het Wetboek alsook, schrijven over HTML op een HTML-pagina's niet altijd...
query ("Selecteer * uit naam ') of sterven ('select naam');
Als ($names -> num_rows > 0)
{
terwijl ($namerow = $names -> fetch_assoc())
{
echo ""; $name = $namerow ["naam"];
ECHO '';
$sel = "Selecteer zeit FROM post waar chip ='. '\'' . $namerow ["chip"]. '\'' . 'ORDER BY zeit DESC limiet 4'; $times = $mysqli -> query($sel) of sterven ('fout select entry');
Als ($times -> num_rows > 0)
{
terwijl ($timerow = $times -> fetch_assoc())
{
$time = date_create($timerow["zeit"]);
echo "";"
}
}
anders
{
echo "";
}
echo "";
}
}
anders
{
sterven ('geen namen');
}
$mysqli -> close();
? >