使用pushbox从arduino发送通知

时间:2018-06-03 15:21:00

标签: push-notification arduino sensor

使用我的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;推箱服务器响应? 也许在那里我能找到答案?

或发布答案,有人会提供有关此问题的更多信息?

或者可能更改代码以使其有效?

谢谢,

0 个答案:

没有答案