WiFi IoT模块开箱上电之HTTPGet()问题
本帖最后由 kevinzhang19701 于 2021-3-3 09:23 编辑WiFi IoT模块使用MQTT协议连接EasyIoT平台,已在前篇描述过,现在利用HTTP连接一台Web服务器,遇到一点问题。
IoT、WiFi、HTTP配置看上去都完成了,但是调用HTTPGet()方法时,一直失败。我的思路是利用HTTPGet()方法,向一台Web服务器(上位机http://openkevin.net,Servlet为dfrobotWifi,唯一参数a01)提交室内温度数据(DS18B20温度传感连在数字端口2)。
代码如下:
#include <SoftwareSerial.h>
#include <OneWire.h>
#include "DFRobot_WiFi_IoT_Module.h"
DFRobot_WiFi_IoT_Module_I2C IoT;
const char *WIFI_SSID = "Linksys19544";
const char *WIFI_PASSWORD = "********";
const char *EASY_IOT_SERVER = "iot.dfrobot.com.cn";
const char *EASY_IOT_PORT = "1883";
const char *EASY_IOT_ID = "********";
const char *EASY_IOT_PWD = "********";
const char *SUBSCRIBE_TOPIC = "RrRlB-yMR";
const char *PUBLISH_TOPIC = "RrRlB-yMR";
const char *HTTP_ADDRESS = "openkevin.net";
const char *EASY_IOT_SEND_MESSAGE= "";
int DS18S20_Pin = 2;
OneWire ds(DS18S20_Pin);
void setup()
{
Serial.begin(115200);
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
while(IoT.begin() != 0)
{
Serial.println("IoT init ERROR!!!!");
delay(100);
}
Serial.println("IoT init Success");
while(IoT.connectWifi(WIFI_SSID, WIFI_PASSWORD) != 0)
{
Serial.print(".");
delay(100);
}
Serial.println("Wifi Connect Success");
while(IoT.HTTPBegin(HTTP_ADDRESS) != 0)
{
Serial.println("Parameter is empty!");
delay(100);
}
Serial.println("HTTP Configuration Success");
while(IoT.HTTPGet("http://openkevin.net/servlet/dfrobotWifi?a01=00") != 0)
{
Serial.println("Error...");
}
Serial.println("HTTPGet Success");
}
void loop()
{
//float temperature = getTemp();
//Serial.println(temperature);
//String txtTemp2 = "http://openkevin.net/servlet/dfrobotWifi?a01=" + String(temperature);
//while(IoT.HTTPGet(txtTemp2)!=0)
//{
//Serial.println("Error...");
//}
//Serial.println("HTTPGet Success");
}
float getTemp()
{
//returns the temperature from one DS18S20 in DEG Celsius
byte data;
byte addr;
if ( !ds.search(addr))
{
//no more sensors on chain, reset search
ds.reset_search();
return -1000;
}
if ( OneWire::crc8( addr, 7) != addr)
{
Serial.println("CRC is not valid!");
return -1000;
}
if ( addr != 0x10 && addr != 0x28)
{
Serial.print("Device is not recognized");
return -1000;
}
ds.reset();
ds.select(addr);
ds.write(0x44,1); // start conversion, with parasite power on at the end
byte present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad
for (int i = 0; i < 9; i++)
{
// we need 9 bytes
data = ds.read();
}
ds.reset_search();
byte MSB = data;
byte LSB = data;
float tempRead = ((MSB << 8) | LSB); //using two's compliment
float TemperatureSum = tempRead / 16;
return TemperatureSum;
}
看上去IoT、WiFi、HTTP都初始化通过了,但是使用HTTPGet()提交数据时,一直失败。
然而,手工从浏览器向Web服务器提交数据的话(Http Get),服务器端能够正常接收。
Serlvet能显示出接收到的值。
以上,请哪位大神给予指点,万分感谢。
你填写的数据是有问题的 在HTTPGet中应该填写“servlet/dfrobotWifi?a01=00”,其他的内部会处理 HI 发表于 2021-4-27 15:28
你填写的数据是有问题的 在HTTPGet中应该填写“servlet/dfrobotWifi?a01=00”,其他的内部会处理 ...
我试试看,感谢感恩。
页:
[1]