使用我的arduino向pushbox发送通知时,我有一个问题。
代码在没有问题的情况下工作 - 我将通知发送到pushbox和udp服务器(以检查功能是否正常)。
所以当传感器发生变化时 - 我看到消息传出了 也使用whireshark我看到通知发送到pushbox。
我的问题是我不会一直收到通知....
它可以工作3-4次然后没有,然后在1小时后我开始得到通知(不是旧的 - 但是" LIVE" on")。
当我看到udp服务器时 - 我可以看到我一直得到通知。
使用udp服务器的计算机未连接到同一网络,而且他是通过互联网" ,所以我知道这不是连接问题。
arduino一直连接到我的路由器并且有互联网连接。
推箱是否可以阻塞"我?如果他在短时间内看到很多请求?
或者我的代码中的某些内容可能没有"断开"从推箱服务器?
这是代码:
/************
GeeksTips.com
ESP8266 Arduino Tutorial - Push notification messages example
Arduino code example
www.geekstips.com
- replace the dots with your Wi-fi credentials and
- your deviceId from pushingBox account
*/
#include <ESP8266WiFi.h>
// PushingBox scenario DeviceId code and API
String deviceId = "v12345BC5EA63CAB";
const char* logServer = "api.pushingbox.com";
const char* ssid = "David";
const char* password = "123456789D";
const int GPIO2 = 3;//door sensor input
bool sending = false;
void setup() {
Serial.begin(115200);
delay(1);
// Sending a notification to your mobile phone
// function takes the message as a parameter
Serial.println("- connecting to Home Router SID: " + String(ssid));
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("- succesfully connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
delay(500);
pinMode (GPIO2 , INPUT);
delay(1500);
sendNotification("Sensor is now OnLIne!!");
}
void loop()
{
if (digitalRead(GPIO2) == LOW)
{
String line = "Door1 is Close";
if (sending == false)
{
Serial.println(line);
sendNotification(line);
sending = true;
}
}
else
{
String line = "Door1 is Open";
if (sending == true)
{
Serial.println(line);
sendNotification(line);
sending = false;
}
}
}
void sendNotification(String message) {
Serial.println("starting client");
WiFiClient client;
Serial.println("- connecting to pushing server: " + String(logServer));
if (client.connect(logServer, 80)) {
Serial.println("- succesfully connected");
Serial.println(deviceId);
String postStr = "devid=";
postStr += String(deviceId);
postStr += "&message_parameter=";
postStr += String(message);
postStr += "\r\n\r\n";
Serial.println("- sending data...");
client.print("POST /pushingbox HTTP/1.0\n");
client.print("Host: api.pushingbox.com\n");
client.print("Connection: close\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(postStr.length());
client.print("\n\n");
client.print(postStr);
Serial.println(postStr);
}
client.stop();
Serial.println("- stopping the client");
}
我需要添加什么以便&#34;看到&#34;推箱服务器响应? 也许在那里我能找到答案?
或发布答案,有人会提供有关此问题的更多信息?
或者可能更改代码以使其有效?
谢谢,