首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与SIM800L服务器的HTTP通信

与SIM800L服务器的HTTP通信
EN

Stack Overflow用户
提问于 2017-12-21 07:19:52
回答 2查看 4.8K关注 0票数 0

我使用SIM800L模块和Arduino Uno与web服务器进行通信。我有个传感器被Arduino读出了。我想把传感器的值存储到我的数据库中。

在我的web服务器上,我有一个PHP页面,它将数据保存到数据库中。我使用的GET方法如下:http://www.isj.ir/Samples/sample.php?sen1=27.2

我正在使用这个图书馆作为SIM800L。

但是我不能用这个例子传递我的传感器的值。我太困惑了!你能帮帮我,告诉我该怎么做吗?

代码语言:javascript
复制
sprintf(body, "{\"name\": \"%s\"}", "Arduino");
result = http.post("isj.ir/Samples", body, response);
Serial.println(body);
print(F("HTTP POST: "), result);
if (result == SUCCESS) {
    Serial.println(response);
    StaticJsonBuffer<32> jsonBuffer;
    JsonObject& root = jsonBuffer.parseObject(response);
    lastRunTime = millis();
    waitForRunTime = root["waitForRunTime"];
    print(F("Last run time: "), lastRunTime);
    print(F("Next post in: "), waitForRunTime);
}

result = http.get("isj.ir/Samples", response);
print(F("HTTP GET: "), result);
if (result == SUCCESS) {
    Serial.println(response);
    StaticJsonBuffer<32> jsonBuffer;
    JsonObject& root = jsonBuffer.parseObject(response);
    lastRunTime = millis();
    waitForRunTime = root["waitForRunTime"];
    print(F("Last run time: "), lastRunTime);
    print(F("Next post in: "), waitForRunTime);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-04 21:35:29

要使用GET方法发送数据,请使用以下AT命令:

代码语言:javascript
复制
AT+SAPBR=3,1,"CONTYPE","GPRS"
AT+SAPBR=3,1,"APN","RighTel" // use your Operator  APN 
AT+SAPBR=1,1
AT+HTTPINIT
AT+HTTPPARA="URL","http://yoursite.com?sen1=xxx&sen2=xxx&..."
AT+HTTPACTION=0 //(0=GET,1=POST,2=HEAD)

然后您必须看到一个类似于+HTTPACTION: 0,200,xxx的按摩,使用以下代码:

代码语言:javascript
复制
 AT+HTTPREAD:0,xxx

如果php代码在处理后做了一些事情,您可以看到结果。

票数 4
EN

Stack Overflow用户

发布于 2017-12-23 06:28:06

因此,在服务器端,我使用此代码将传感器数据存储到MySql数据库。

代码语言:javascript
复制
<?php
$servername = "localhost";
$username = "admin";
$password = "#admin#";
$dbname = "admin";


  $sen1 = $_GET['sen1'];
  $sen2 = $_GET['sen2'];
  $sen3 = $_GET['sen3'];
  $sen4 = $_GET['sen4'];
  $sen5 = $_GET['sen5'];
  $sen6 = $_GET['sen6'];
  $sdate = $_GET['sdatetime'];

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "INSERT INTO SensorTable (sen1, sen2, sen3,sen4,sen5,sen6,sdatetime)
VALUES ('$sen1','$sen2','$sen3','$sen4','$sen5','$sen6','$sdate')";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

我可以在任何浏览器地址栏中用这段代码填充我的表。

代码语言:javascript
复制
isj.ir/Samples/sample.php?sen1=1&sen2=5&sen3=10&sen4=15&sen5=20&sen6=33&sdatetime=20171211

现在,我正在寻找通过SIM800L发送这些信息的方法。(和arduino UNO )。我怎样才能改变传感器的价值?我如何用SIM800L发送?

代码语言:javascript
复制
isj.ir/Samples/sample.php?sen1=1&sen2=5&sen3=10&sen4=15&sen5=20&sen6=33&sdatetime=20171211

谢谢。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47919837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档