如何通过esp8266 wifi模块将数据从arduino uno发送到网页?
How to send a data from arduino uno to a webpage through esp8266 wifi module?
我正在使用 arduino uno、esp8266-01 wifi 模块和 rfid reader 设计一个 rfid 考勤系统。任务是读取 rfid 卡并将其唯一 ID 号发送到网页(编码为 php),该网页将数据存储在数据库中。我们通过 uno 板从 arduino ide 串行监视器向模块发送命令。我们首先使用Serial_ophttp POST方法将读取的rfid号码发送到网页。由于该尝试失败,我们尝试使用 GET 方法。但是这两种方法都不起作用。
<?php
error_reporting(E_ALL ^ E_DEPRECATED);
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$Data=$_GET['Data'];
//$Data='Data test';
echo "Data is :" . $Data;
$sql = "INSERT INTO test_tab (Data) VALUES ('$Data')";
mysql_select_db('robot');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($conn);
?>
您遗漏了一些 \r\n
并且您为 AT+CIPSEND
提供的长度不正确。
试试发送这个:
AT+CIPSEND=43\r\n
GET /test.php?Data=2\r\nHost:192.168.1.13\r\n\r\n
要发送 \r\n
,只需点击 Enter
。确保在串行监视器中选择了 "Both NL & CR"
。最后,是的,你点击了 Enter
两次。
我在这里发送值 2。
这里是我如何得到 43 长度的:
您获取 GET 的大小(我们有 49 个),然后为每个 \r
或 \n
减去 1。因为他们只是一个角色。所以我们有 49 - 6 = 43
.
请确保尝试直接从 URL 发送值以验证您的 PHP 脚本是否正常工作。在尝试通过 ESP8266 发送数据之前修复所有可能的错误。
旁注: 不建议使用 API mysql,因为它已被弃用并从 php 的新版本中删除。参见 (http://php.net/manual/en/mysqlinfo.api.choosing.php)
我正在使用 arduino uno、esp8266-01 wifi 模块和 rfid reader 设计一个 rfid 考勤系统。任务是读取 rfid 卡并将其唯一 ID 号发送到网页(编码为 php),该网页将数据存储在数据库中。我们通过 uno 板从 arduino ide 串行监视器向模块发送命令。我们首先使用Serial_ophttp POST方法将读取的rfid号码发送到网页。由于该尝试失败,我们尝试使用 GET 方法。但是这两种方法都不起作用。
<?php
error_reporting(E_ALL ^ E_DEPRECATED);
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$Data=$_GET['Data'];
//$Data='Data test';
echo "Data is :" . $Data;
$sql = "INSERT INTO test_tab (Data) VALUES ('$Data')";
mysql_select_db('robot');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($conn);
?>
您遗漏了一些 \r\n
并且您为 AT+CIPSEND
提供的长度不正确。
试试发送这个:
AT+CIPSEND=43\r\n
GET /test.php?Data=2\r\nHost:192.168.1.13\r\n\r\n
要发送 \r\n
,只需点击 Enter
。确保在串行监视器中选择了 "Both NL & CR"
。最后,是的,你点击了 Enter
两次。
我在这里发送值 2。
这里是我如何得到 43 长度的:
您获取 GET 的大小(我们有 49 个),然后为每个 \r
或 \n
减去 1。因为他们只是一个角色。所以我们有 49 - 6 = 43
.
请确保尝试直接从 URL 发送值以验证您的 PHP 脚本是否正常工作。在尝试通过 ESP8266 发送数据之前修复所有可能的错误。
旁注: 不建议使用 API mysql,因为它已被弃用并从 php 的新版本中删除。参见 (http://php.net/manual/en/mysqlinfo.api.choosing.php)