[初心者向け]ArduinoからIFTTTを経由でTwitterとLINEを作成まで


用意するもの

1.Wio LTE スタートキット

2.SIMカード(今回はsoracom)/ネットが繋がる端末ならなんでもOK
3.Arduino IDE
4.IFTTTアカウント(Twitterと連携、Lineアカウント)

環境構築

Wio LTE/Arduino IDEの設定をソラコムさんのハンズオンご参考していただけます。内容は省略させていただきます。

Wio LTE はこんなもの

Wio LTE ハンズオン
https://github.com/soracom/handson/wiki/Wio-LTE-%E3%83%8F%E3%83%B3%E3%82%BA%E3%82%AA%E3%83%B3#%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%AE%E6%BA%96%E5%82%99

仕組み

1.ArduinoのD38ボタンを繋げて、ボタンを押すたびにHttp通信で、IFTTTのwebhookトリガーする

#include <WioLTEforArduino.h>
#include <stdio.h>

#define APN               "soracom.io"
#define USERNAME          "sora"
#define PASSWORD          "sora"

#define WEBHOOK_EVENTNAME "xxxxxxxxxxx"  //adruino-tweet
#define WEBHOOK_KEY       "xxxxxxxxxxx" //iftttのwebhookの設定から
#define WEBHOOK_URL       "https://maker.ifttt.com/trigger/"WEBHOOK_EVENTNAME"/with/key/"WEBHOOK_KEY

#define INTERVAL          (1000)
#define BUTTON_PIN  (WIOLTE_D38)  

WioLTE Wio;

volatile bool StateChanged = false;
volatile bool State = false;

void change_state()
{
  State = !State;
  StateChanged = true;
  delay(150);
}

void send_to_ifttt() {

  char twiiterStr[100] = "なんか投稿する";
  char data[100];
  sprintf(data, "{\"value1\":\"%s uptime %lu\"}", twiiterStr, millis() / 1000);

  int status;
  SerialUSB.println("### Post.");

  SerialUSB.print("Post:");
  SerialUSB.print(data);
  SerialUSB.println("");
  SerialUSB.println("### EXE #57");

  if (!Wio.HttpPost(WEBHOOK_URL, data, &status)) {
    SerialUSB.println("### ERROR! ###");
    goto err;
  }
  SerialUSB.println("### EXE #63");
  SerialUSB.print("Status:");
  SerialUSB.println(status);

err:
  SerialUSB.println("### Wait.");
  delay(INTERVAL);
}

void setup() {
  delay(200);

  SerialUSB.println("");
  SerialUSB.println("--- START ---------------------------------------------------");

  SerialUSB.println("### I/O Initialize.");
  Wio.Init();

  SerialUSB.println("### Power supply ON.");
  Wio.PowerSupplyLTE(true);
  delay(500);

  SerialUSB.println("### Turn on or reset.");
  if (!Wio.TurnOnOrReset()) {
    SerialUSB.println("### ERROR! ###");
    return;
  }

  SerialUSB.println("### Connecting to \""APN"\".");
  if (!Wio.Activate(APN, USERNAME, PASSWORD)) {
    SerialUSB.println("### ERROR! ###");
    return;
  }

  pinMode(BUTTON_PIN, INPUT);  /// ボタンのイベント
  attachInterrupt(BUTTON_PIN, change_state, CHANGE); /// ボタンを押す時の呼ぶ関数
bindする

  SerialUSB.println("### Setup completed.");
}

void loop() {
  if (StateChanged) {
    if (State) {
      send_to_ifttt();
    }
    StateChanged = false;
  }
}

2.IFTTTの設定
twiiterのアカウントを設定する()
1.My Applets > Services > Webhooks (なかった場合、Searchから追加する) > Documentaion でWEBHOOK_KEYをコピーする

2.IoT端末のコードのWEBHOOK_KEYに書く

3.My Applets > New Applets
if this and that の文字の「+」thisをクリックして、順番に設定する

this: webhook (searchから検索できる)
trigger/event-name: なんでもいい <-- 例: adruino-tweet、IFTTTのwebhooksのトリガー、WEBHOOK_EVENTNAMEに書く
that: Twitterに投稿 or Lineに投稿(Lineの承認がいる)
Tweet text: {{value1}} <-- テキストの表示

結果

IFTTTからLineの通知の結果