Edited at
enebularDay 18

enebularでobnizをカスタムノードで動かしてみた

この記事はenebular advent calendar 2018の18日目の記事です。

記事の内容に詰まって1時間遅れで投稿してます。

↓いいわけ


つくったもの


  • 最近enebular meetupでobnizが活躍してるらしい!

  • カスタムノード作成のLTも流行ってる!

というのを見たので、両方掛け合わせてobnizのカスタムノードつくってenebularで使ってみました!

enebular x obnizを生でやると、websocketのリダイレクトで大変だったようなので、その解決策になります。

前に書いた記事の「誰かがobnizノードを作ってくれるのを待つ」つもりだったら結局自分が書くやつです、はい。


obnizって何?

obnizはAPIで操作できるマイコンボードです。

APIで操作=enebular(node-red)でも操作できる となっていて、非常に簡単に現実世界の"もの"とシステムをつなぐことができます!

公式サイトはこちら


カスタムノードを作ってみた

カスタムノードの作り方はいろんな人が紹介してたので、参考にさせてもらった記事だけ載せときます!

- 自作ノード開発中にハマったあれこれ #nodered

- Node-REDのノードを作り、Node-RED Libraryに登録する

どっちも古い記事ですが、まだまだ参考になる現役記事でした。

カスタムノードにはいろんなハマりポイントがあるようですが、自分がハマったのはpackage.jsonのkeywordsにnode-redを入れてなかったことでした。


obnizノードの使い方

せっかく公開したので、使い方等をメインで書いていきます。


install

node-red Libraryに追加もされたので、"Manage palette"からいけます

スクリーンショット 2018-12-18 23.25.54.png

obnizで検索してinstallします

スクリーンショット 2018-12-19 0.32.39.png

暫く待つとインストールが完了して

advancedカテゴリ内にobnizノードが出現しますスクリーンショット 2018-12-19 0.34.25.png


使い方

obniz websocket api に応じたjsonデータをこのノードに渡してあげるとobnizが反応します。

obnizIdの設定はノードをダブルクリックしたときの設定画面でやります

スクリーンショット 2018-12-18 23.58.53.png


サンプル

injectで次のjsonを流してみました

[

{
"display": {
"clear": true,
"text": "Hello, obniz!"
}
}
]

ディスプレイに "Hello, obniz!" と表示するjsonです。

スクリーンショット 2018-12-19 0.10.25.png

画面が小さくてわかりにくいですが、injectのボタンが押されたらディスプレイの表示が変わっています

20181219_004438.GIF

もう一つ別のtextでついかしたらこんな感じになりました

スクリーンショット 2018-12-18 23.58.35.png

20181219_004118.GIF

1Aまでの出力やPWMなどの機能もjsonから扱うことができるので、これでなんでもenebularから動かすことができます!


今後

まだバージョン0.2の名前の通り、全然実装できてない部分があるので、

お正月休みつかって下記あたり実装したいなぁと企んでます。

node-red/enebularは初心者なので、こういうのあると便利!ってのがあれば教えてほしいです。


  • twitterノードの"接続済み"みたいにobnizのonline/offlineがノード上でわかるようにしたい

  • 今はobnizにデータ送るしかできていないが、データ受信用のノードを作りたい

  • 複数台のobnizにつないだとき(obnizノードが複数ある時)の挙動が未知なので、検証したい

  • obnizが未接続時の対応をちゃんと書きたい(今はデータ無視してる)

こたつの魔力に負けなければやります! ・・・負けそうな予感