2018年2月7日 星期三

在IFTTT觸發ESP 8266上運行


在IFTTT觸發ESP 8266上運行 (IFTTT---> NODEMCU)

/*
GET 表示信封內不得裝信件的寄送方式,如同是明信片一樣(感謝網友 Kevin 的建議,
採用明信片來詮釋 GET),你可以把要傳遞的資訊寫在信封(http-header)上,寫滿為止,
價格比較便宜。
然而 POST 就是信封內有裝信件的寄送方式(信封有內容物),不但信封可以寫東西,
信封內 (message-body) 還可以置入你想要寄送的資料或檔案,價格較貴。

使用 GET 的時候我們直接將要傳送的資料以 Query String(一種Key/Vaule的編碼方式)
加在我們要寄送的地址(URL)後面,然後交給郵差傳送。
使用 POST 的時候則是將寄送地址(URL)寫在信封上,另外將要傳送的資料寫在另一張信紙後,
將信紙放到信封裡面,交給郵差傳送。*/

#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>

// 設定ファイル
#include "config.h"

const char* host = "maker.ifttt.com";
const char* event   = "ping";
const int httpsPort = 443;

// Wi-FiアクセスポイントのSSIDとパスワード
const char* ssid = "PTS-2F";
const char* password = "";

int value=0;

// IFTTTのシークレットキー
const char* key = "zaHdzsOGgZ71vZT1Y1FA6";
WiFiClientSecure client;

void setup() {
  Serial.begin(115200);
  Serial.println();
  Serial.print("connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println();
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  Serial.print("connecting to ");
  Serial.println(host);

  if (!client.connect(host, httpsPort)) {
    Serial.println("connection failed");
    return;
  }

  // URLを作成
  // maker.ifttt.com/trigger/{event}/with/key/{key}
  String url = "/trigger/";
  url += event;
  url += "/with/key/";
  url += key;

  Serial.print("requesting URL: ");
  Serial.println(url);

  // 發送網絡請求
  client.print(String("POST ") + url + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" +
               "Connection: close\r\n\r\n");

  while (client.connected()) {
    String line = client.readStringUntil('\n');
    if (line == "\r") {
      //結束標題部分的接收
      break;
    }
  }

  String line = client.readStringUntil('\n');
  Serial.print("reply: ");
  Serial.println(line);
  Serial.println("closing connection ");
  Serial.print("counter = ");
  Serial.println(value);
  // 1分後に再度実行
  //delay(60*1000);
  delay(2*1000);
  value++;
}






沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...