myThings Advent Calendar 2016二日目の記事です。
構成
- GR-PEACH
- IDCFチャンネル
- HelloMQTT
結果
IDCFチャンネルに接続できず。
サンプルプログラムの接続先には問題なく接続できたが、IDCFチャンネルに接続するように書き換えると以下の部分で接続エラーに。
- MQTTEthernet#connect
- MQTT::Client#connect
- MQTT::Client#subscribe
mosquitto_subでの連携はできており、またごく稀に接続できることがあるので、おそらくGR-PEACH(mbed)側の問題。
やったこと
- HelloMQTTをコンパイラにインポート
- インポートしたプログラムのライブラリを全てアップデート
- mbedのみ個別に選択してアップデートしないと以下のコンパイルエラーが解消しなかった。
- Error: Cannot open source input file "device.h": No such file or directory in "extras/mbed_6213f644d804/platform.h", Line: 21, Col: 21
- C12832を削除
- ライブラリをアップデートしても以下のコンパイルエラーが発生する。LCD未搭載で不要なので削除
- Error: "NORMAL" has already been declared in the current scope in "C12832/C12832.h", Line: 44, Col:
- main.cpp の修正
- 31行目を次のように修正
#define USE_LCD 0
- 31行目を次のように修正
- コンパイルしてGR-PEACHで実行
- サンプルコードが動作することを確認する
- Mac の screen コマンドでシリアル通信
- IDCFチャンネルに接続するように修正して実行
main.cpp
char* topic = "action-1 の uuid"; // 70行目
char* hostname = "仮想マシンのIPアドレス"; // 76行目
data.username.cstring = "action-1 の uuid"; // 96行目
data.password.cstring = "action-1 の token"; // 97行目
その他
その他のライブラリに差し替えてのチャレンジもしたい