588浏览
查看: 588|回复: 2

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)。

代码如下:

  1. #include <SoftwareSerial.h>
  2. #include <OneWire.h>
  3. #include "DFRobot_WiFi_IoT_Module.h"
  4. DFRobot_WiFi_IoT_Module_I2C IoT;
  5. const char *WIFI_SSID                       = "Linksys19544";
  6. const char *WIFI_PASSWORD          = "********";
  7. const char *EASY_IOT_SERVER        = "iot.dfrobot.com.cn";
  8. const char *EASY_IOT_PORT           = "1883";
  9. const char *EASY_IOT_ID                  = "********";
  10. const char *EASY_IOT_PWD            = "********";
  11. const char *SUBSCRIBE_TOPIC        = "RrRlB-yMR";
  12. const char *PUBLISH_TOPIC            = "RrRlB-yMR";
  13. const char *HTTP_ADDRESS            = "openkevin.net";
  14. const char *EASY_IOT_SEND_MESSAGE  = "";
  15. int DS18S20_Pin = 2;
  16. OneWire ds(DS18S20_Pin);
  17. void setup()
  18. {
  19.   Serial.begin(115200);
  20.   pinMode(13, OUTPUT);
  21.   digitalWrite(13, HIGH);
  22.   while(IoT.begin() != 0)
  23.   {  
  24.     Serial.println("IoT init ERROR!!!!");
  25.     delay(100);
  26.   }
  27.   Serial.println("IoT init Success");
  28.   while(IoT.connectWifi(WIFI_SSID, WIFI_PASSWORD) != 0)
  29.   {  
  30.     Serial.print(".");
  31.     delay(100);
  32.   }
  33.   Serial.println("Wifi Connect Success");
  34.   while(IoT.HTTPBegin(HTTP_ADDRESS) != 0)
  35.   {
  36.     Serial.println("Parameter is empty!");
  37.     delay(100);
  38.   }
  39.   Serial.println("HTTP Configuration Success");
  40.   
  41.   while(IoT.HTTPGet("http://openkevin.net/servlet/dfrobotWifi?a01=00") != 0)
  42.   {
  43.     Serial.println("Error...");
  44.   }
  45.   Serial.println("HTTPGet Success");
  46. }
  47. void loop()
  48. {
  49.   //float temperature = getTemp();
  50.   //Serial.println(temperature);
  51.   //String txtTemp2 = "http://openkevin.net/servlet/dfrobotWifi?a01=" + String(temperature);
  52.   //while(IoT.HTTPGet(txtTemp2)!=0)
  53.   //{
  54.   //  Serial.println("Error...");
  55.   //}
  56.   //Serial.println("HTTPGet Success");
  57. }
  58. float getTemp()
  59. {
  60.   //returns the temperature from one DS18S20 in DEG Celsius
  61.   byte data[12];
  62.   byte addr[8];
  63.   if ( !ds.search(addr))
  64.   {
  65.     //no more sensors on chain, reset search
  66.     ds.reset_search();
  67.     return -1000;
  68.   }
  69.   if ( OneWire::crc8( addr, 7) != addr[7])
  70.   {
  71.     Serial.println("CRC is not valid!");
  72.     return -1000;
  73.   }
  74.   if ( addr[0] != 0x10 && addr[0] != 0x28)
  75.   {
  76.     Serial.print("Device is not recognized");
  77.     return -1000;
  78.   }
  79.   ds.reset();
  80.   ds.select(addr);
  81.   ds.write(0x44,1); // start conversion, with parasite power on at the end
  82.   byte present = ds.reset();
  83.   ds.select(addr);
  84.   ds.write(0xBE); // Read Scratchpad
  85.   for (int i = 0; i < 9; i++)
  86.   {
  87.     // we need 9 bytes
  88.     data[i] = ds.read();
  89.   }
  90.   ds.reset_search();
  91.   byte MSB = data[1];
  92.   byte LSB = data[0];
  93.   float tempRead = ((MSB << 8) | LSB); //using two's compliment
  94.   float TemperatureSum = tempRead / 16;
  95.   return TemperatureSum;
  96. }
复制代码

看上去IoT、WiFi、HTTP都初始化通过了,但是使用HTTPGet()提交数据时,一直失败。

Untitled007.png

然而,手工从浏览器向Web服务器提交数据的话(Http Get),服务器端能够正常接收。

Screenshot from 2021-02-27 19-28-32.png

Serlvet能显示出接收到的值。

Untitled.png

以上,请哪位大神给予指点,万分感谢。

HI  学徒

发表于 2021-4-27 15:28:45

你填写的数据是有问题的 在HTTPGet中应该填写“servlet/dfrobotWifi?a01=00”,其他的内部会处理
回复

使用道具 举报

kevinzhang19701  高级技匠
 楼主|

发表于 2021-4-29 08:36:02

HI 发表于 2021-4-27 15:28
你填写的数据是有问题的 在HTTPGet中应该填写“servlet/dfrobotWifi?a01=00”,其他的内部会处理 ...

我试试看,感谢感恩。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail