当前位置: 首页 > 知识库问答 >
问题:

Arduino-GET请求和数据发布到mySQL

融宏伟
2023-03-14

我有一个问题。

我正在尝试设置简单的服务器,它将从传感器向mySQL发送数据。路径/bezp/数据。php?当我在web brower中执行此操作时,temperature=“number”正在工作。我还可以在串行监视器中看到文本“connected”,所以它会输入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);
}

此外,温度传感器正在工作,我正在调用另一个文件中的函数。

共有1个答案

沈健
2023-03-14

您从未完成请求内容-您只发送了一半HTTP请求。

您正在发送:

“GET/bezp/data.php?temperature=123”

但有效的请求如下所示:

HTTP 1.0的“GET/bezp/data.php?temperature=123 HTTP/1.0\r\n\r\n”

"GET /bezp/data.php?temperature=123HTTP/1.1\r\nHost:192.168.1.16\r\n\r\n"for HTTP 1.1.

您必须先发送方法,然后发送路径、协议和CRLF,然后发送任何标头(每个标头以CRLF结尾),然后发送另一个CRLF。

您缺少协议(可能是标头)和CRLF。

见文档。

 类似资料:
  • 我正在尝试将数据发布到 GA 中,但我收到索引错误 连接正在工作,因为我得到响应 200,但 for 循环似乎有问题,它从我的数据帧中发布所有行。有人可以帮助我吗?谢谢! 错误: IndexingError Traceback(最近的调用最后)在4'pa':"购买",5'tid':"xxx", ---- ~\路径\lib\site-packages\pandas\core\indexing.py

  • 我正在尝试数据发送到远程AWS API。 数据应该是部分上的。 使用邮递员,我可以发送数据,一切都正常工作: 现在,为了使用,我正在执行以下操作: 请求成功,但没有数据更新!好像没有收到一样。 我无法访问远程API日志文件。 所以我的问题是,这是在Guzzle请求的主体部分发布数据的正确方法吗? 谢了。

  • 请求方式: "|3|1|url|\r" 参数: url 设置Get请求的url链接 返回值: "|3|code|data|\r" 参数: code http请求返回的成功或者错误码, 成功:code = 200 获取数据失败:code = -1 http请求字段错误:code = 1 data http请求返回的数据 Arduino样例: softSerial.print("|3|1|http:/

  • 使用方法 在koa中,获取GET请求数据源头是koa中request对象中的query方法或querystring方法,query返回是格式化好的参数对象,querystring返回的是请求字符串,由于ctx对request的API有直接引用的方式,所以获取GET请求数据有两个途径。 1.是从上下文中直接获取 请求对象ctx.query,返回如 { a:1, b:2 } 请求字符串 ctx.que

  • 问题内容: 我想将我的网址发送到(和)。 我当前的请求代码不起作用。 使用是 不是 一个容易回答。 问题答案: 在iOS中发送和请求非常容易。无需其他框架。 请求: 首先,将我们的(按需发送的内容)创建为,然后将其转换为。 目标 接下来,我们阅读的,因此我们可以将其传递给请求。 现在我们有了要发布的内容,我们可以创建一个,并包含我们的。 迅速 最后,我们可以发送请求,并通过创建新的请求来阅读回复:

  • 问题内容: 这是对API调用的原始请求: 该请求返回成功(2xx)响应。 现在,我尝试使用发送此请求: 一切对我来说看起来不错,我不太确定自己张贴的错误是什么导致400响应。 问题答案: 用于GET样式的URL参数,用于POST样式的正文信息。在请求中 同时 提供 两种 类型的信息是完全合法的,您的请求也可以这样做,但是您已经将URL参数编码为URL。 您的原始帖子虽然包含 JSON 数据。可以为