В общем, я создал php веб-приложение, которое читает переменную 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, TXvoid 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
}
Я попытался отправить http запрос от Почтальона, и он работает, но не с моим прототипом (Arduino + ESP8266).
Интересно, есть ли какие-то библиотеки, упрощающие эту задачу в условиях кодирования?
Задача ещё не решена.
Других решений пока нет …