Arduino 将数据从Andruino发送到Web服务器
您好,我正在尝试按照此链接上的教程进行操作: 我能够使用此代码成功地将我的andruino连接到我的thingspeak帐户Arduino 将数据从Andruino发送到Web服务器,arduino,Arduino,您好,我正在尝试按照此链接上的教程进行操作: 我能够使用此代码成功地将我的andruino连接到我的thingspeak帐户 #include <SoftwareSerial.h> SoftwareSerial gprsSerial(2,3); #include <String.h> #include <DHT.h> #define DHTPIN A0 DHT dht(DHTPIN, DHT11); void setup() { gprsSeri
#include <SoftwareSerial.h>
SoftwareSerial gprsSerial(2,3);
#include <String.h>
#include <DHT.h>
#define DHTPIN A0
DHT dht(DHTPIN, DHT11);
void setup()
{
gprsSerial.begin(9600); // the GPRS baud rate
Serial.begin(9600); // the GPRS baud rate
dht.begin();
delay(1000);
}
void loop()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
delay(100);
Serial.print("Temperature = ");
Serial.print(t);
Serial.println(" °C");
Serial.print("Humidity = ");
Serial.print(h);
Serial.println(" %");
if (gprsSerial.available())
Serial.write(gprsSerial.read());
gprsSerial.println("AT");
delay(1000);
gprsSerial.println("AT+CPIN?");
delay(1000);
gprsSerial.println("AT+CREG?");
delay(1000);
gprsSerial.println("AT+CGATT?");
delay(1000);
gprsSerial.println("AT+CIPSHUT");
delay(1000);
gprsSerial.println("AT+CIPSTATUS");
delay(2000);
gprsSerial.println("AT+CIPMUX=0");
delay(2000);
ShowSerialData();
gprsSerial.println("AT+CSTT=\"internet.globe.com.ph\"");//start task and setting the APN,
delay(1000);
ShowSerialData();
gprsSerial.println("AT+CIICR");//bring up wireless connection
delay(3000);
ShowSerialData();
gprsSerial.println("AT+CIFSR");//get local IP adress
delay(2000);
ShowSerialData();
gprsSerial.println("AT+CIPSPRT=0");
delay(3000);
ShowSerialData();
gprsSerial.println("AT+CIPSTART=\"TCP\",\"api.thingspeak.com\",\"80\"");//start up the connection
delay(6000);
ShowSerialData();
gprsSerial.println("AT+CIPSEND");//begin send data to remote server
delay(4000);
ShowSerialData();
String str="GET https://api.thingspeak.com/update?api_key=KH035X8ZISV334NR&field1=" + String(t) +"&field2="+String(h);
Serial.println(str);
gprsSerial.println(str);//begin send data to remote server
delay(4000);
ShowSerialData();
gprsSerial.println((char)26);//sending
delay(5000);//waitting for reply, important! the time is base on the condition of internet
gprsSerial.println();
ShowSerialData();
gprsSerial.println("AT+CIPSHUT");//close the connection
delay(100);
ShowSerialData();
}
void ShowSerialData()
{
while(gprsSerial.available()!=0)
Serial.write(gprsSerial.read());
delay(5000);
}
#include <DHT.h>
#include <SoftwareSerial.h>
SoftwareSerial gprsSerial(2,3);
#include <String.h>
#include <DHT.h>
#define DHTPIN A0
DHT dht(DHTPIN, DHT11);
void setup()
{
gprsSerial.begin(9600); // the GPRS baud rate
Serial.begin(9600); // the GPRS baud rate
dht.begin();
delay(1000);
}
void loop()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
delay(100);
Serial.print("Temperature = ");
Serial.print(t);
Serial.println(" °C");
Serial.print("Humidity = ");
Serial.print(h);
Serial.println(" %");
if (gprsSerial.available())
Serial.write(gprsSerial.read());
gprsSerial.println("AT");
delay(1000);
gprsSerial.println("AT+CPIN?");
delay(1000);
gprsSerial.println("AT+CREG?");
delay(1000);
gprsSerial.println("AT+CGATT?");
delay(1000);
gprsSerial.println("AT+CIPSHUT");
delay(1000);
gprsSerial.println("AT+CIPSTATUS");
delay(2000);
gprsSerial.println("AT+CIPMUX=0");
delay(2000);
ShowSerialData();
gprsSerial.println("AT+CSTT=\"internet.globe.com.ph\"");//start task and setting the APN,
delay(1000);
ShowSerialData();
gprsSerial.println("AT+CIICR");//bring up wireless connection
delay(3000);
ShowSerialData();
gprsSerial.println("AT+CIFSR");//get local IP adress
delay(2000);
ShowSerialData();
gprsSerial.println("AT+CIPSPRT=0");
delay(3000);
ShowSerialData();
gprsSerial.println("AT+CIPSTART=\"TCP\",\"customersurvey.beauxwin.com\",\"80\"");//start up the connection
delay(6000);
ShowSerialData();
gprsSerial.println("AT+CIPSEND");//begin send data to remote server
delay(4000);
ShowSerialData();
String str="GET http://customersurvey.beauxwin.com/bwn_PHP/temp_test.php?temp=" + String(t) +"&humid="+String(h);
Serial.println(str);
gprsSerial.println(str);//begin send data to remote server
delay(4000);
ShowSerialData();
gprsSerial.println((char)26);//sending
delay(5000);//waitting for reply, important! the time is base on the condition of internet
gprsSerial.println();
ShowSerialData();
gprsSerial.println("AT+CIPSHUT");//close the connection
delay(100);
ShowSerialData();
}
void ShowSerialData()
{
while(gprsSerial.available()!=0)
Serial.write(gprsSerial.read());
delay(5000);
}
#包括
软件串行gprsSerial(2,3);
#包括
#包括
#定义DHTPIN A0
DHT DHT(DHTPIN,DHT11);
无效设置()
{
gprsSerial.begin(9600);//GPRS波特率
Serial.begin(9600);//GPRS波特率
dht.begin();
延迟(1000);
}
void循环()
{
浮动h=dht.read湿度();
浮点数t=dht.readTemperature();
延迟(100);
串行打印(“温度=”);
连续打印(t);
串行打印项次(“C”);
Serial.print(“湿度=”);
连续打印(h);
Serial.println(“%”);
如果(gprsSerial.available())
Serial.write(gprsSerial.read());
gprsSerial.println(“AT”);
延迟(1000);
gprsSerial.println(“AT+CPIN?”);
延迟(1000);
gprsSerial.println(“AT+CREG?”);
延迟(1000);
gprsSerial.println(“AT+CGATT?”);
延迟(1000);
gprsSerial.println(“AT+CIPSHUT”);
延迟(1000);
gprsSerial.println(“AT+CIPSTATUS”);
延迟(2000年);
gprsSerial.println(“AT+CIPMUX=0”);
延迟(2000年);
ShowSerialData();
gprsSerial.println(“AT+CSTT=\“internet.globe.com.ph\”);//启动任务并设置APN,
延迟(1000);
ShowSerialData();
gprsSerial.println(“AT+CIICR”);//打开无线连接
延迟(3000);
ShowSerialData();
gprsSerial.println(“AT+CIFSR”);//获取本地IP地址
延迟(2000年);
ShowSerialData();
gprsSerial.println(“AT+CIPSPRT=0”);
延迟(3000);
ShowSerialData();
gprsSerial.println(“AT+CIPSTART=\'TCP\,\'api.thingspeak.com\,\'80\”;//启动连接
延迟(6000);
ShowSerialData();
gprsSerial.println(“AT+CIPSEND”);//开始向远程服务器发送数据
延迟(4000);
ShowSerialData();
String str=“GET”https://api.thingspeak.com/update?api_key=KH035X8ZISV334NR&field1=“+String(t)+”&field2=“+String(h);
序列号println(str);
gprsSerial.println(str);//开始向远程服务器发送数据
延迟(4000);
ShowSerialData();
gprsSerial.println((char)26);//发送
延迟(5000);//等待回复,很重要!时间取决于互联网条件
gprsSerial.println();
ShowSerialData();
gprsSerial.println(“AT+CIPSHUT”);//关闭连接
延迟(100);
ShowSerialData();
}
void ShowSerialData()
{
而(gprsSerial.available()!=0)
Serial.write(gprsSerial.read());
延迟(5000);
}
但当我试图将它连接到我的web服务器中的数据库时,它给了我一个错误的请求
> 00:18:36.682 -> CAT+CIPSEND
00:18:50.599 -> GET http://customersurvey.beauxwin.com/bwn_PHP/temp_test.php?temp=0.00&humid= NAN
00:18:54.719 -> GET http://customersurvey.beauxwin.com/bwn_PHP/temp_test.php?te
00:19:04.731 ->
00:19:04.731 -> SEND OK
00:19:04.731 -> HTTP/1.1 400 Bad Request
00:19:04.778 -> Date: Mon, 19 Apr 2021 ⸮ѡ⸮Ɂinformation.<br>
00:19:04.825 -> <a href="http://support.a2hosting.com">
00:19:09.923 -> Open Ticket</a>
00:19:09.923 -> </p>
00:19:15.253 -> Temperature = 0.00 °C
00:19:15.253 -> Humidity = nan %
00:19:15.300 -> AT+CIPSHUT
00:19:24.324 ->
00:19:24.324 -> SHUT OK
00:19:24.370 -> AT
>00:18:36.682->CAT+CIPSEND
00:18:50.599->获取http://customersurvey.beauxwin.com/bwn_PHP/temp_test.php?temp=0.00&humid= 楠
00:18:54.719->获取http://customersurvey.beauxwin.com/bwn_PHP/temp_test.php?te
00:19:04.731 ->
00:19:04.731->发送确定
00:19:04.731->HTTP/1.1 400错误请求
00:19:04.778->日期:2021年4月19日星期一⸮ѡ⸮Ɂ信息。
00:19:04.825 ->
00:19:09.923->
00:19:15.253->温度=0.00°C
00:19:15.253->湿度=nan%
00:19:15.300->AT+CIPSHUT
00:19:24.324 ->
00:19:24.324->关闭正常
00:19:24.370->AT
我正在使用这个代码
#include <SoftwareSerial.h>
SoftwareSerial gprsSerial(2,3);
#include <String.h>
#include <DHT.h>
#define DHTPIN A0
DHT dht(DHTPIN, DHT11);
void setup()
{
gprsSerial.begin(9600); // the GPRS baud rate
Serial.begin(9600); // the GPRS baud rate
dht.begin();
delay(1000);
}
void loop()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
delay(100);
Serial.print("Temperature = ");
Serial.print(t);
Serial.println(" °C");
Serial.print("Humidity = ");
Serial.print(h);
Serial.println(" %");
if (gprsSerial.available())
Serial.write(gprsSerial.read());
gprsSerial.println("AT");
delay(1000);
gprsSerial.println("AT+CPIN?");
delay(1000);
gprsSerial.println("AT+CREG?");
delay(1000);
gprsSerial.println("AT+CGATT?");
delay(1000);
gprsSerial.println("AT+CIPSHUT");
delay(1000);
gprsSerial.println("AT+CIPSTATUS");
delay(2000);
gprsSerial.println("AT+CIPMUX=0");
delay(2000);
ShowSerialData();
gprsSerial.println("AT+CSTT=\"internet.globe.com.ph\"");//start task and setting the APN,
delay(1000);
ShowSerialData();
gprsSerial.println("AT+CIICR");//bring up wireless connection
delay(3000);
ShowSerialData();
gprsSerial.println("AT+CIFSR");//get local IP adress
delay(2000);
ShowSerialData();
gprsSerial.println("AT+CIPSPRT=0");
delay(3000);
ShowSerialData();
gprsSerial.println("AT+CIPSTART=\"TCP\",\"api.thingspeak.com\",\"80\"");//start up the connection
delay(6000);
ShowSerialData();
gprsSerial.println("AT+CIPSEND");//begin send data to remote server
delay(4000);
ShowSerialData();
String str="GET https://api.thingspeak.com/update?api_key=KH035X8ZISV334NR&field1=" + String(t) +"&field2="+String(h);
Serial.println(str);
gprsSerial.println(str);//begin send data to remote server
delay(4000);
ShowSerialData();
gprsSerial.println((char)26);//sending
delay(5000);//waitting for reply, important! the time is base on the condition of internet
gprsSerial.println();
ShowSerialData();
gprsSerial.println("AT+CIPSHUT");//close the connection
delay(100);
ShowSerialData();
}
void ShowSerialData()
{
while(gprsSerial.available()!=0)
Serial.write(gprsSerial.read());
delay(5000);
}
#include <DHT.h>
#include <SoftwareSerial.h>
SoftwareSerial gprsSerial(2,3);
#include <String.h>
#include <DHT.h>
#define DHTPIN A0
DHT dht(DHTPIN, DHT11);
void setup()
{
gprsSerial.begin(9600); // the GPRS baud rate
Serial.begin(9600); // the GPRS baud rate
dht.begin();
delay(1000);
}
void loop()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
delay(100);
Serial.print("Temperature = ");
Serial.print(t);
Serial.println(" °C");
Serial.print("Humidity = ");
Serial.print(h);
Serial.println(" %");
if (gprsSerial.available())
Serial.write(gprsSerial.read());
gprsSerial.println("AT");
delay(1000);
gprsSerial.println("AT+CPIN?");
delay(1000);
gprsSerial.println("AT+CREG?");
delay(1000);
gprsSerial.println("AT+CGATT?");
delay(1000);
gprsSerial.println("AT+CIPSHUT");
delay(1000);
gprsSerial.println("AT+CIPSTATUS");
delay(2000);
gprsSerial.println("AT+CIPMUX=0");
delay(2000);
ShowSerialData();
gprsSerial.println("AT+CSTT=\"internet.globe.com.ph\"");//start task and setting the APN,
delay(1000);
ShowSerialData();
gprsSerial.println("AT+CIICR");//bring up wireless connection
delay(3000);
ShowSerialData();
gprsSerial.println("AT+CIFSR");//get local IP adress
delay(2000);
ShowSerialData();
gprsSerial.println("AT+CIPSPRT=0");
delay(3000);
ShowSerialData();
gprsSerial.println("AT+CIPSTART=\"TCP\",\"customersurvey.beauxwin.com\",\"80\"");//start up the connection
delay(6000);
ShowSerialData();
gprsSerial.println("AT+CIPSEND");//begin send data to remote server
delay(4000);
ShowSerialData();
String str="GET http://customersurvey.beauxwin.com/bwn_PHP/temp_test.php?temp=" + String(t) +"&humid="+String(h);
Serial.println(str);
gprsSerial.println(str);//begin send data to remote server
delay(4000);
ShowSerialData();
gprsSerial.println((char)26);//sending
delay(5000);//waitting for reply, important! the time is base on the condition of internet
gprsSerial.println();
ShowSerialData();
gprsSerial.println("AT+CIPSHUT");//close the connection
delay(100);
ShowSerialData();
}
void ShowSerialData()
{
while(gprsSerial.available()!=0)
Serial.write(gprsSerial.read());
delay(5000);
}
#包括
#包括
软件串行gprsSerial(2,3);
#包括
#包括
#定义DHTPIN A0
DHT DHT(DHTPIN,DHT11);
无效设置()
{
gprsSerial.begin(9600);//GPRS波特率
Serial.begin(9600);//GPRS波特率
dht.begin();
延迟(1000);
}
void循环()
{
浮动h=dht.read湿度();
浮点数t=dht.readTemperature();
延迟(100);
串行打印(“温度=”);
连续打印(t);
串行打印项次(“C”);
Serial.print(“湿度=”);
连续打印(h);
Serial.println(“%”);
如果(gprsSerial.available())
Serial.write(gprsSerial.read());
gprsSerial.println(“AT”);
延迟(1000);
gprsSerial.println(“AT+CPIN?”);
延迟(1000);
gprsSerial.println(“AT+CREG?”);
延迟(1000);
gprsSerial.println(“AT+CGATT?”);
延迟(1000);
gprsSerial.println(“AT+CIPSHUT”);
延迟(1000);
gprsSerial.println(“AT+CIPSTATUS”);
延迟(2000年);
gprsSerial.println(“AT+CIPMUX=0”);
延迟(2000年);
ShowSerialData();
gprsSerial.println(“AT+CSTT=\“internet.globe.com.ph\”);//启动任务并设置APN,
延迟(1000);
ShowSerialData();
gprsSerial.println(“AT+CIICR”);//打开无线连接
延迟(3000);
ShowSerialData();
gprsSerial.println(“AT+CIFSR”);//获取本地IP地址
延迟(2000年);
ShowSerialData();
gprsSerial.println(“AT+CIPSPRT=0”);
延迟(3000);
ShowSerialData();
gprsSerial.println(“AT+CIPSTART=\'TCP\,\'customersurvey.beauxwin.com\,\'80\”);//启动连接
延迟(6000);
ShowSerialData();
gprsSerial.println(“AT+CIPSEND”);//开始向远程服务器发送数据
延迟(4000);
ShowSerialData();
String str=“GET”http://customersurvey.beauxwin.com/bwn_PHP/temp_test.php?temp=“+String(t)+”和“+String(h);
序列号println(str);
gprsSerial.println(str);//开始向远程服务器发送数据
延迟(4000);
ShowSerialData();
gprsSerial.println((char)26);//发送
延迟(5000);//等待回复,很重要!时间取决于互联网条件
gprsSerial.println();
ShowSerialData();
gprsSerial.println(“AT+CIPSHUT”);//关闭连接
延迟(100);
ShowSerialData();
}
void ShowSerialData()
{
而(gprsSerial.available()!=0)
Serial.write(gprsSerial.read());
延迟(5000);
}