2016-04-06 34 views
0

我正在开发一个项目,该项目注册了由SQL数据库管理的RFID卡条目等。使用Arduino或类似的解决方案更改Web浏览器页面

我正在使用Arduino读取卡片,通过PHP程序发送RFID数据和读卡器ID,然后PHP程序处理数据,并将其注册到MySQL。

注册数据库中的卡是我的问题。 我如何做到这一点,Arduino改变或打开WebBrowser页面,或者当我打开某个链接时,比如something.com/RegisterCard.php,当我读取一张卡时,它会自动将它输入到注册字段中?

谢谢!

回答

0

我一直在做类似的事情,而不是读RFID,我读了几个传感器来存储数据,然后arduino本身要求一些变量(存储在数据库中)并对其值作出响应。

我发现最简单的方法,可能不是最有效的,但工程。

我的方法涉及一个PHP“解释器”,它取决于arduino发送的内容,将存储到数据库中,或读取并返回。

所以更像“当我打开某个链接时,比如something.com/RegisterCard.php,当我读取一张卡时,它会自动将其输入到注册字段中。”

例如,存储纬度/经度变量从通过GSM屏蔽我的GPS我用这个代码:

sim908.print("AT+HTTPPARA=\"URL\",\"YOU_WEB_SERVER_URL_/insert.php?latitude="); 
    sim908.print(latitude); 
    sim908.print("&longitude="); 
    sim908.print(longitude); 
    sim908.println("\""); 
    delay(2000); 
    sim908.println("AT+HTTPACTION=0"); //now GET action 
    delay(2000); 

我有一个页面“insert.php”,处理数据,并将其存储到数据库。

这里是我的PHP处理程序

<html> 

<body> 

<?php 
//funcion para adquirir parametros 
     function getParameter($par, $default = null){ 
      if (isset($_GET[$par]) && strlen($_GET[$par])) return $_GET[$par]; 
      elseif (isset($_POST[$par]) && strlen($_POST[$par])) 
       return $_POST[$par]; 
      else return $default; 
     } 

     $latitud = getParameter("latitud"); 
     $longitud=getParameter("longitud"); 
     $evento=getParameter("evento"); 

     $time = time(); 
     $fecha = date("d-m-Y", $time); 
     $hora = date("H:i:s", $time); 


//Conectarse y seleccionar base de datos 
$link = mysql_connect('localhost', 'mysql_user','mysql_pass'); 
if (!$link) { 
die('Could not connect: ' . mysql_error()); 
} 

echo 'ok'; 


$db_selected = mysql_select_db('mydatabase', $link); 


if (!$db_selected) { 
die ('Cant use ods_db : ' . mysql_error()); 
} 
// Tomar los campos provenientes del Formulario 
//$latitud = $_POST['latitud']; 
//$longitud = $_POST['longitud']; 

// Insertar campos en la Base de Datos 
$que = "INSERT INTO tracklog (fecha, hora,latitud, longitud,event) "; 
$que.= "VALUES ('".$fecha."','".$hora."','".$latitud."', '".$longitud."', '".$evento."') "; 
$res = mysql_query($que, $link) or die(mysql_error()); 
$orden = mysql_insert_id(); 
// Cerrar conexión a la Base de Datos 
mysql_close($link); 
?> 
</body> 

</html> 
+0

感谢您的答复,这是我已经想过以前的解决方案,但它会要求用户从“AwaitingRegistry”条目列表中进行选择,其会是,在另一张光滑的纸上碰撞(#BestMetafors2016)。我想知道是否有可能,可以说Register.php在浏览器中打开,只要我读取一张卡片,它就会输入它在表格上读取的值。 –

相关问题