LoginSignup
2
1

More than 5 years have passed since last update.

Wio LTE用Milkcocoaライブラリ

Last updated at Posted at 2017-12-09

Wio LTEでもMilkcocoaが使いたいということでArduino IDE向けのライブラリを作りました!

image.png

作った経緯

ESP8266用のライブラリがそのまま動くかなと思いきやコンパイルエラーが起きたので、それを解消したものをWio LTE用のライブラリとして公開しています。

https://github.com/junichikatsu/Milkcocoa_Wio_LTE-master

使い方

他のライブラリと同じようにZIP形式でダウンロードして、Arduino IDEでインポートすればライブラリとして取り込まれます。
以下のサンプルも同封しているのでArduino IDEのスケッチ例から選択すれば使用できます。

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

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


/************************* Your Milkcocoa Setup *********************************/

#define MILKCOCOA_APP_ID      "...YOUR_MILKCOCOA_APP_ID..."
#define MILKCOCOA_DATASTORE   "Wio_LTE"

/************* Milkcocoa Setup (you don't need to change this!) ******************/

#define MILKCOCOA_SERVERPORT  1883

/************ Global State (you don't need to change this!) ******************/

WioLTE Wio;
WioLTEClient WioClient(&Wio);

const char MQTT_SERVER[] PROGMEM    = MILKCOCOA_APP_ID ".mlkcca.com";
const char MQTT_CLIENTID[] PROGMEM  = __TIME__ MILKCOCOA_APP_ID;

Milkcocoa milkcocoa = Milkcocoa(&WioClient, MQTT_SERVER, MILKCOCOA_SERVERPORT, MILKCOCOA_APP_ID, MQTT_CLIENTID);

void onpush(DataElement *elem) {
  SerialUSB.println("onpush");
  SerialUSB.println(elem->getInt("v"));
};

void setupLTE() {
  delay(200);

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

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

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

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

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

void setup() {
  Serial.begin(115200);
  delay(10);

  SerialUSB.println(F("Milkcocoa SDK demo"));

  setupLTE();

  SerialUSB.println( milkcocoa.on(MILKCOCOA_DATASTORE, "push", onpush) );
};

void loop() {
  milkcocoa.loop();

  DataElement elem = DataElement();
  elem.setValue("v", 1);

  milkcocoa.push(MILKCOCOA_DATASTORE, &elem);
  delay(7000);
};

MilkcocoaのAPP IDを入力すれば、pushと通知が確認できます。

image.png

image.png

Milkcocoaはリアルタイムにデータの更新、保存、通知ができるサービスです。使い方はチュートリアルを参考にしてください。

最後に

setup()の最初にSerial.begin(115200);を行っていますが、本来は不要のはずです。ですが、なぜかこれが無いと動作しないので入れています。とりあえず問題なく動作するので公開しました。自分でも調査中ですがもし原因がわかった方がいらっしゃれば修正版のプルリク投げてください~。
次はJavaScript版も作りたいと思っています。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1