Arduino - GET 请求和数据发布到 mySQL
Arduino - GET request and data posting to mySQL
我有一个问题。
我正在尝试设置简单的服务器,它将从传感器发送数据到 mySQL。
路径 /bezp/data.php?temperature="number" 正在工作,当我在网络浏览器中执行此操作时。我也可以在串行监视器中看到文本“已连接”,因此它进入 IF,但数据库仍然不会更新。
Arduino代码:
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = {192, 168, 1, 101 }; //Enter the IP of ethernet shield
byte serv[] = {192, 168, 1, 16} ; //Enter the IPv4 address
EthernetClient cliente;
void runWebSetup() {
Ethernet.begin(mac, ip);
}
void runWebLoop(float temp) {
if (cliente.connect(serv, 80)) { //Connecting at the IP address and port we saved before
Serial.println("connected");
cliente.print("GET /bezp/data.php?"); //Connecting and Sending values to database
cliente.print("temperature=");
cliente.print(temp);
cliente.stop(); //Closing the connection
}
else {
// if you didn't get a connection to the server:
Serial.println("connection failed");
}
delay(5000);
}
温度传感器也在工作,我正在调用另一个文件中的函数。
您从未完成请求内容 - 您只发送了一半的 HTTP 请求。
您发送的是:
"GET /bezp/data.php?temperature=123"
但是一个有效的请求是这样的:
"GET /bezp/data.php?temperature=123 HTTP/1.0\r\n\r\n"
用于 HTTP 1.0
"GET /bezp/data.php?temperature=123 HTTP/1.1\r\nHost: 192.168.1.16\r\n\r\n"
用于 HTTP 1.1。
您必须发送方法,后跟路径和协议以及 CRLF,然后是任何 headers(每个都以 CRLF 结尾),然后是另一个 CRLF。
您缺少协议(可能 header(s))和 CRLF。
参见docs。
我有一个问题。
我正在尝试设置简单的服务器,它将从传感器发送数据到 mySQL。 路径 /bezp/data.php?temperature="number" 正在工作,当我在网络浏览器中执行此操作时。我也可以在串行监视器中看到文本“已连接”,因此它进入 IF,但数据库仍然不会更新。
Arduino代码:
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = {192, 168, 1, 101 }; //Enter the IP of ethernet shield
byte serv[] = {192, 168, 1, 16} ; //Enter the IPv4 address
EthernetClient cliente;
void runWebSetup() {
Ethernet.begin(mac, ip);
}
void runWebLoop(float temp) {
if (cliente.connect(serv, 80)) { //Connecting at the IP address and port we saved before
Serial.println("connected");
cliente.print("GET /bezp/data.php?"); //Connecting and Sending values to database
cliente.print("temperature=");
cliente.print(temp);
cliente.stop(); //Closing the connection
}
else {
// if you didn't get a connection to the server:
Serial.println("connection failed");
}
delay(5000);
}
温度传感器也在工作,我正在调用另一个文件中的函数。
您从未完成请求内容 - 您只发送了一半的 HTTP 请求。
您发送的是:
"GET /bezp/data.php?temperature=123"
但是一个有效的请求是这样的:
"GET /bezp/data.php?temperature=123 HTTP/1.0\r\n\r\n"
用于 HTTP 1.0
"GET /bezp/data.php?temperature=123 HTTP/1.1\r\nHost: 192.168.1.16\r\n\r\n"
用于 HTTP 1.1。
您必须发送方法,后跟路径和协议以及 CRLF,然后是任何 headers(每个都以 CRLF 结尾),然后是另一个 CRLF。
您缺少协议(可能 header(s))和 CRLF。
参见docs。