如何通过esp8266 wifi模块将数据从arduino uno发送到网页?

时间:2016-05-03 12:05:04

标签: arduino webclient iot esp8266

我正在设计一个带有arduino uno,esp8266-01 wifi模块和rfid阅读器的rfid考勤系统。任务是读取rfid卡并将其唯一的ID号发送到将数据存储在数据库中的网页(用php编码)。我们通过uno board从arduino ide串行监视器发送命令到模块。我们首先使用Serial_op http 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);
    ?>

1 个答案:

答案 0 :(得分:0)

您遗漏了一些\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