Edited at
CPS LabDay 19

MongooseOS で I2C センサー読んだり書いたり飛ばしたりする

More than 1 year has passed since last update.


経緯

自分の研究室はセンサデータを扱うことが多いので、プロトタイプに室内の気温などの値が欲しいことがよくあります。

そのたびにメンバーが個々で電子工作したり Arduino でセンシング環境を作ったりしてます。

毎回各自自前で実装するのはめっちゃ無駄です。

なので、みんなで取ってこれるもの欲しいねってことで作りました。


やったこと


  • ラボの気温と湿度をセンシング

  • ディスプレイに表示

  • MQTT で配信


使ったもの


  • ボード: ESP8266

  • 気温・湿度センサ: SHT31

  • ディスプレイ: AQM0802

  • MQTT broker: Thingspeak

  • Mongoose OS + mjs

IMG_7702.JPG


成果物

リポジトリ: https://github.com/elzup/leilei


気温・湿度を読み取る!

MongooseOS + mjs で I2C 気温センサを読み取る - Qiita


ディスプレイに書く!

ハードコーディングで自前で実装しました。mjs 辛すぎる。。

https://github.com/elzup/leilei/commit/180c6277ed19e543081a932d433c2ebfff914253


ThingSpeak に飛ばす!

ThingSpeak に MQTT API があるのでそれを使いました。

https://jp.mathworks.com/help/thingspeak/publishtoachannelfeed.html

$ curl -XGET "https://api.thingspeak.com/channels/xxx/feeds.json?api_key=xxx" |jq ".feeds[3]"

######################################################################## 100.0%
{
"created_at": "2017-12-25T02:38:09Z",
"entry_id": 4,
"field1": "25.592813",
"field2": "30.153353"
}

とれました。

これで研究室メンバーががいつでも研究室の気温をとれてハッピーです :tada:


感想など


今回のいいところ

i2C のセンサを使っているので、ハブに生やして他のセンサも拡張できます。

ThingSpeak をホストに使っているので MQTT にかぎらず REST API でも取ってこれます。(MQTT over Websocket も使えます)


Mongoose OS について

mos という cli が強くて、ブラウザアプリも充実しています。ローカルエディタでの開発環境を整えたけど、補完が効かなかったりモジュール対応させたいです。

secret key 関係の設定をどうすればいいのかまだわからないです。mos.yml で環境変数とれたりすれば幸せ。