从Arduino和ESP8266发送Http GET请求

时间:2016-06-13 19:06:24

标签: php mysql arduino at-command esp8266

基本上,我创建了一个php Web应用程序,它读取名为 temp 的GET变量并将其保存到MySql数据库中。 我的脚本看起来像

<?php
function Connection(){
  $server="localhost";
  $user="root";
  $pass="";
  $db="esp";

  $connection = mysql_connect("localhost", "root", "");

  if (!$connection) {
      die('MySQL ERROR: ' . mysql_error());
  }

  mysql_select_db($db) or die( 'MySQL ERROR: '. mysql_error() );

  return $connection;
}

  $link = Connection();

   $temp=$_GET["temp"];


    $query = "INSERT INTO `data` (`temp`) VALUES ('".$temp."')";

    mysql_query($query,$link);
    mysql_close($link);

   echo "Done !";
?>

另一方面,我的ESP8266连接到同一个网络,所以我想连续发出GET请求,以便保存在数据库中。 scketch看起来像:

#include <SPI.h>
#include <SoftwareSerial.h>
#include <stdlib.h>


SoftwareSerial ser(2, 3);// RX, TX



void setup() { 
  Serial.begin(9600);
  ser.begin(115200);
  ser.println("AT+RST");
}

void loop(){

  ser.println("AT+CIPSTART=\"TCP\",\"192.168.43.176\",80");

  if(ser.find((char*)"Error")){
  Serial.println("AT+CIPSTART error");
  return;
  }

  // prepare GET string
  String getStr = "GET /arduino/esp.php?temp=200";
//  getStr += "temp=20";
//  getStr += "\r\n\r\n";
//GET /arduino/esp.php?temp=30\r\n\r\n
  Serial.println(getStr);
  // send data length
  String cmd = "AT+CIPSEND=";
  cmd += String(getStr.length());
  ser.println(cmd);
  Serial.println(cmd);

  if(ser.find((char*)">")){
    ser.print(getStr);
    Serial.println("Message sent!");
  }
  else{
  ser.println("AT+CIPCLOSE");
  // alert user
  Serial.println("AT+CIPCLOSE");
  }

  delay(1000); // WAIT FIVE MINUTES BEFORE SENDING AGAIN
}

我尝试过发送来自Postman的http请求并且它的工作原理,但不是我的原型(Arduino + ESP8266)。 我想知道是否有一些库可以简化编码工作。

0 个答案:

没有答案