通过Arduino和ESP8266wifi连接到HCP时,出现ESP超时错误。

2020-09-28 03:11发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,我正在尝试将传感器的数据上传到HCP,在这种设置下,我使用的是Arduino和ESP8266和LM35温度传感器。 当我尝试连接到HCP时,它可以正常工作;当我尝试对HCP进行POST时,它会给出超时错误。

下面是我的电路和代码。

(请忽略LED)

 #include 
 #include 
//==========开始配置==========
//WiFi配置
 const char * ssid =" XXXX";
 const char * pass =" XXXXXXXXXXX";
//SAP HCP特定的配置
 const char * host1 =" iotmmsXXXXXXXXXXtrial.hanatrial.ondemand.com";
 字符串device_id =" XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
 字符串message_type_id =" XXXXXXXXXXXXXXXXXXXX";
 字符串oauth_token =" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
 浮点温度= 0.0;
//==========最终配置============

 字符串url ="/com.sap.iotservices.mms/v1/api/http/data/" + device_id;
 
const int ledPin = 13; const int TSPin = A0; const int httpsPort = 8443; //80//443//13 int状态= WL_IDLE_STATUS; WiFiEspClient客户端; SoftwareSerial Serial1(2,3); //RX,TX void setup(){ Serial.begin(9600); Serial1.begin(9600); WiFi.init(&Serial1); //检查是否存在屏蔽 如果(WiFi.status()== WL_NO_SHIELD){ Serial.println(" WiFi防护罩不存在"); //不要继续 而(true); } //尝试连接到WiFi网络 while(status!= WL_CONNECTED){ Serial.print("尝试连接到WPA SSID:"); Serial.println(ssid); //连接到WPA/WPA2网络 状态= WiFi.begin(ssid,pass); } //我要连接网络 Serial.println("您已连接到网络"); Serial.print("正在连接"); Serial.println(host1); 如果(!client.connect(host1,httpsPort)){ Serial.println("连接失败"); 返回; } 否则if(client.connect(host1,httpsPort)) { Serial.println("已连接到主机"); } } 无效循环(){ int sensorVal = AnalogRead(TSPin); digitalWrite(ledPin,HIGH); 延迟(200); digitalWrite(ledPin,LOW); 浮动电压=(sensorVal/1024.0)* 5.0; //将新值打印到串行监视器 Serial.print(" Volts:"); Serial.print(电压); //将电压转换为温度,单位为度 温度=(电压)* 100; // Serial.print(",摄氏度:"); Serial.println(温度); Serial.println(); 字符串post_payload =" {\" mode \":\"异步\",\" messageType \":\"" + message_type_id +" \",\" messages \":[{\"温度\":" +温度+ "}]}"; int Payload_length = post_payload.length(); Serial.print(" requesting URL:"); Serial.println(url); Serial.print(" post_payload:"); Serial.println(post_payload); Serial.print(" Payload_length:"); Serial.println(Payload_length); 如果(client.connect(host1,httpsPort)){ Serial.println(" Connecting ...");///////我已连接客户端///// client.print(String(" POST")+ url +" HTTP/1.0 \ r \ n" + "主机:" + host1 +" \ r \ n" + "连接:close \ r \ n" + "内容类型:application/json; charset = utf-8 \ r \ n" + "授权:承载" + oauth_token +" \ r \ n" + "内容长度:" + post_payload.length()+" \ r \ n \ r \ n" + post_payload +" \ r \ n \ r \ n"); /////////////在POST上获取错误超时/////////////////////// } 其他{ //如果您无法建立连接 Serial.println("连接失败"); } Serial.println("请求已发送"); Serial.println(" reply was:"); Serial.println(" ==========");; while(client.connected()) { //有一个客户端连接。 有什么要看的吗? while(client.available()> 0) { char c = client.read(); Serial.print(c); } Serial.println(); Serial.println("正在等待更多数据..."); 延迟(100); //有一点耐心... } Serial.println(" ==========");; Serial.println("关闭连接并等待15秒"); 延迟(15000); }

(86.6 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,我正在尝试将传感器的数据上传到HCP,在这种设置下,我使用的是Arduino和ESP8266和LM35温度传感器。 当我尝试连接到HCP时,它可以正常工作;当我尝试对HCP进行POST时,它会给出超时错误。

下面是我的电路和代码。

(请忽略LED)

 #include 
 #include 
//==========开始配置==========
//WiFi配置
 const char * ssid =" XXXX";
 const char * pass =" XXXXXXXXXXX";
//SAP HCP特定的配置
 const char * host1 =" iotmmsXXXXXXXXXXtrial.hanatrial.ondemand.com";
 字符串device_id =" XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
 字符串message_type_id =" XXXXXXXXXXXXXXXXXXXX";
 字符串oauth_token =" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
 浮点温度= 0.0;
//==========最终配置============

 字符串url ="/com.sap.iotservices.mms/v1/api/http/data/" + device_id;
 
const int ledPin = 13; const int TSPin = A0; const int httpsPort = 8443; //80//443//13 int状态= WL_IDLE_STATUS; WiFiEspClient客户端; SoftwareSerial Serial1(2,3); //RX,TX void setup(){ Serial.begin(9600); Serial1.begin(9600); WiFi.init(&Serial1); //检查是否存在屏蔽 如果(WiFi.status()== WL_NO_SHIELD){ Serial.println(" WiFi防护罩不存在"); //不要继续 而(true); } //尝试连接到WiFi网络 while(status!= WL_CONNECTED){ Serial.print("尝试连接到WPA SSID:"); Serial.println(ssid); //连接到WPA/WPA2网络 状态= WiFi.begin(ssid,pass); } //我要连接网络 Serial.println("您已连接到网络"); Serial.print("正在连接"); Serial.println(host1); 如果(!client.connect(host1,httpsPort)){ Serial.println("连接失败"); 返回; } 否则if(client.connect(host1,httpsPort)) { Serial.println("已连接到主机"); } } 无效循环(){ int sensorVal = AnalogRead(TSPin); digitalWrite(ledPin,HIGH); 延迟(200); digitalWrite(ledPin,LOW); 浮动电压=(sensorVal/1024.0)* 5.0; //将新值打印到串行监视器 Serial.print(" Volts:"); Serial.print(电压); //将电压转换为温度,单位为度 温度=(电压)* 100; // Serial.print(",摄氏度:"); Serial.println(温度); Serial.println(); 字符串post_payload =" {\" mode \":\"异步\",\" messageType \":\"" + message_type_id +" \",\" messages \":[{\"温度\":" +温度+ "}]}"; int Payload_length = post_payload.length(); Serial.print(" requesting URL:"); Serial.println(url); Serial.print(" post_payload:"); Serial.println(post_payload); Serial.print(" Payload_length:"); Serial.println(Payload_length); 如果(client.connect(host1,httpsPort)){ Serial.println(" Connecting ...");///////我已连接客户端///// client.print(String(" POST")+ url +" HTTP/1.0 \ r \ n" + "主机:" + host1 +" \ r \ n" + "连接:close \ r \ n" + "内容类型:application/json; charset = utf-8 \ r \ n" + "授权:承载" + oauth_token +" \ r \ n" + "内容长度:" + post_payload.length()+" \ r \ n \ r \ n" + post_payload +" \ r \ n \ r \ n"); /////////////在POST上获取错误超时/////////////////////// } 其他{ //如果您无法建立连接 Serial.println("连接失败"); } Serial.println("请求已发送"); Serial.println(" reply was:"); Serial.println(" ==========");; while(client.connected()) { //有一个客户端连接。 有什么要看的吗? while(client.available()> 0) { char c = client.read(); Serial.print(c); } Serial.println(); Serial.println("正在等待更多数据..."); 延迟(100); //有一点耐心... } Serial.println(" ==========");; Serial.println("关闭连接并等待15秒"); 延迟(15000); }

(86.6 kB)
付费偷看设置
发送
3条回答
一只江湖小虾
1楼-- · 2020-09-28 03:20

你好拉贾特,

我建议尝试使用IoT StarterKit [1]中的ESP8266示例,并将其与您的实现进行比较。

问候,安东

[1] https://github.com/SAP/iot-starterkit/blob/master/neo/hardware/ESP8266/Arduino/HTTPSRequest_HCP_POST.ino

樱桃小丸子0093
2楼-- · 2020-09-28 03:43

一个用于运行Arduino的ESP8266板/使用Arduino IDE进行编程。 它不是最初的Arduino品牌开发板之一。

Aaron 3364
3楼-- · 2020-09-28 03:27

嗨,Rajat,

WiFiESP库是否支持HTTPS? 至少在文档中( https://github.com/bportaluri/WiFiEsp ) 我找不到参考。 另一方面,适用于新环境的SAP Cloud Platform物联网仅支持HTTPS( https://help.sap.com/viewer/7436c3125dd5491f939689f18954b1e9/Cloud/zh-CN/8e1c277be0cd4854943a15f86188aaec.html )。

过去,我们使用ESP8266HTTPClient连接到IoT Services。 该库支持HTTPS。 您可以在这里找到它: https://github.com。 com/scanlime/esp8266-Arduino/tree/master/libraries/ESP8266HTTPClient

致谢

Jan

一周热门 更多>