Katt-a-log (1 / 2 steg)
Steg 1: programvara
Data samlas in och göras tillgängliga på en Linux-box med en Apache webbserver
Insamling av data
MySQL databasschemat består av 2 tabeller. "entry" med den chip-id och datum-tid och "namn" med chip-id och namnet på katten. Uppgifterna samlas in med en liten Perl program:
#! / usr/bin/perl
Använd strikt;
använda varningar.
Använd Device::SerialPort;
använda DBI;
min $con = DBI -> ansluta ("dbi:mysql:dbname = katt", "användarnamn", "lösenord", {RaiseError = > 1},) eller dö "Ansluta DBI::errstr";
min $port = ny Device::SerialPort("/dev/ttyUSB0");
skriva ut "öppna err" om ($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;
min $resp ='';
samtidigt (1)
{
tills ($resp ne '')
{
$resp = $port -> lookfor;
sova 1;
}
om (length($resp) ge 14)
{
#filter ut störningar på seriell anslutning som kan störa den SQL-servern
om ($resp = ~ m/^[0-9]{15}$/)
{
skriva ut $resp. "\n";
min $sth = $con - > förbereda ("INSERT INTO intrade (zeit, chip) värden (nu (), \" ". $resp. "\") ") eller varna"Förbereda DBI::errstr";
min $rc = $sth -> execute() eller varna "Excecute DBI::errstr";
}
}
$resp = '';
$port -> lookclear;
}
DBI:Close();
$port -> Stäng;
Datan presentation
Data är presentend som en tabell med de 4 senaste händelserna per katt med ett enkelt php-program.
Vänligen fungerar se skärmdumpen i kodexen, skriva om HTML på en HTML-sidor inte alltid...
fråga ("Välj * från namnet") eller dö ('Välj namn');
om ($names -> num_rows > 0)
{
medan ($namerow = $names -> fetch_assoc())
{
ECHO ""; $name = $namerow ["namn"];
ECHO '';
$sel = "Välj zeit från intrade var chip =". '\'' . $namerow ["chip"]. '\'' . "ORDER BY zeit DESC LIMIT 4"; $times = $mysqli -> query($sel) eller die ("fel Välj post');
om ($times -> num_rows > 0)
{
medan ($timerow = $times -> fetch_assoc())
{
$time = date_create($timerow["zeit"]);
ECHO ' ";
}
}
annat
{
ECHO "";
}
ECHO "";
}
}
annat
{
Die ("inga namn');
}
$mysqli -> close();
? >