arduinoソースコード クリックで展開
// ライブラリの読み込み
#include <ESP8266WiFi.h>
// 転送レート
#define SERIAL_SPEED 115200
// Wi-Fi SSID
#define WLAN_SSID "親機のid"
// Wi-Fi パスワード
#define WLAN_PASS "親機のパスワード"
// IFTTTのイベント名 のった時
#define IFTTT_EVENT_NAME "kago"
// IFTTTのイベント名 上げたとき
#define IFTTT_EVENT_NAME_PICKUP "uketori"
// IFTTTのホスト名
#define IFTTT_HOST_NAME "maker.ifttt.com"
// IFTTTのシークレットキー
#define IFTTT_KEY "暗号キー"
// ポート番号
#define PORT_NUMBER 80
// ledを接続するピン
#define ledPin 14
// swを接続するピン
#define SW_PIN 16
boolean buttonState = LOW;
//籠の状態
int kagoSts = 0;
//センサーの閾値
int kagoSikii = 300;
void setup(void) {
pinMode(ledPin, OUTPUT);
pinMode(SW_PIN, INPUT);
digitalWrite(SW_PIN, LOW); // off
// パソコンとのシリアル通信のポートを開ける
Serial.begin(SERIAL_SPEED);
// Wi-Fi設定
setupWiFi();
}
/*
Wi-Fiを設定します
*/
void setupWiFi() {
Serial.print("Connecting to ");
Serial.println(WLAN_SSID);
// シリアルポートの指定
WiFi.begin(WLAN_SSID, WLAN_PASS);
while (WiFi.status() != WL_CONNECTED) {
delay(3000);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
delay(3000);
}
void loop(void) {
delay(2000);
WiFiClient client;
const int httpPort = 80;
Serial.print("connecting to ");
Serial.println(IFTTT_HOST_NAME);
// Use WiFiClient class to create TCP connections
if (!client.connect(IFTTT_HOST_NAME, httpPort)) {
Serial.println("connection failed");
Serial.println("wait 5 sec...");
delay(5000);
return;
}
buttonState = digitalRead(SW_PIN);
Serial.print(" buttonState ==> ");
Serial.println(buttonState);
// 検知したら
if (buttonState == HIGH) {
//if (digitalRead(SW_PIN)) {
Serial.print(" buttonState == HIGH ");
if (kagoSts == 0) {
kagoSts = 1;
Serial.println("Send Data notta");
// IFTTTへホストへ接続
//connectHost();
// IFTTTへ送信するデータ
char sendData[256] = "";
sprintf(sendData, "GET http://maker.ifttt.com/trigger/%s/with/key/%s HTTP/1.1\r\nHost:maker.ifttt.com\r\nConnection: close\r\n\r\n", IFTTT_EVENT_NAME, IFTTT_KEY);
Serial.println(sendData);
// IFTTTへデータを送信
// client.print((const uint8_t*)sendData);
client.print(sendData);
for ( int i = 0 ; i < 20 ; i++) {
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
delay(100);
}
}
}
//何も乗ってないときはゼロにしておく
else {
if (kagoSts == 1) {
kagoSts = 0;
Serial.println("Send Data ageta");
// IFTTTへ送信するデータ
char sendData[256] = "";
sprintf(sendData, "GET http://maker.ifttt.com/trigger/%s/with/key/%s HTTP/1.1\r\nHost:maker.ifttt.com\r\nConnection: close\r\n\r\n", IFTTT_EVENT_NAME_PICKUP, IFTTT_KEY);
Serial.println(sendData);
// IFTTTへデータを送信
client.print(sendData);
for ( int i = 0 ; i < 3 ; i++) {
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
}
}
}
}