LoginSignup
3

More than 1 year has passed since last update.

posted at

updated at

プログラミング言語未経験者でもSORACOM使ってIoT体験してみたい

この記事は SORACOM Advent Calendar 2020 の 20 日目の記事です。

はじめに

コロナ禍で仕事がめっさ忙しくなった SORACOM UG 信州 & 農業活用コミュニティ の中の人の @ko2a です。

2020年の SORACOM UG というと・・・オンラインイベントが開催されるようになり、また新たな試みとして「SORACOM UG ビギナーズ」が始まりました。

ふとビギナーズのステップアップに何がよいのだろう?と、過去のUGでのハンズオンと思い返してみると、Raspberry PiやWioなどプログラミング言語を書いていくスタイルメインで、プログラミングはじめて触ります!って人だと取っつきにくいものが多い印象があります。
Scratchのようにビジュアルプログラミング言語できないかな?と思ってみたら、M5StackとUIFlowを使えばWebベースなビジュアルプログラミングで簡単にできるのでは?ということで、通信費も安価なM5Stack用Sigfoxモジュールを使って試してみました。

おことわり

本業が忙しくてろくに勉強する間もなく、データがアップされているところを確認するとこで終わってしまいましたorz
できればM5Stackシリーズの豊富なセンサーを活用したサンプルを組みたかったのですが・・・初挑戦のUIFlowは難しかったです。

もちっとクラウドとかIoTとかのお仕事メインにしたいなぁ・・・

必要なもの

手順

1. M5StackとSigfoxモジュールの組み立て

M5StackとSigfoxモジュールを組み立てます。

[参考] IoT向けネット「Sigfox」を試す、年額1000円サービスの使い勝手
https://xtech.nikkei.com/atcl/nxt/column/18/01109/120700012/

2. SORACOM Air for Sigfoxへ登録

通常は「Sigfox Buy」に登録するように、とありますが、そうしてしまうとSORACOMの便利なサービスが利用できなくなるので、Sigfoxモジュールの情報をSORACOMへ登録します。

[参考] M5Stack用SigfoxモジュールをSORACOM Air for Sigfoxで利用する方法
https://blog.soracom.com/ja-jp/2020/10/15/howto-use-sigfox-module-for-m5stack-with-soracom-air/#co-index-2

3. UIFlowの準備

M5Stack公式サイトのUIFlow Quick Startの手順どおりセットアップします。
https://docs.m5stack.com/#/en/quick_start/m5core/m5stack_core_get_started_MicroPython

Google Chromeの翻訳機能を使えばある程度精度の良い日本語になりますが、やることをざくっと説明すると

  1. M5ドライバーのインストール
  2. ファームウェア書き込みツール「M5Burner」のインストール
  3. UIFlow用ファームウェアの書き込み(+WiFi設定)
  4. インターネットモードで起動してAPIキーを取得
  5. APIキーをWebブラウザ開発環境に設定する https://flow.m5stack.com/

となります。

4. UIFlowでSigfoxモジュールからデータを送る

@intm さんの記事を参考に、UIFlowでSigfoxモジュールからデータを送る処理を組みます。
M5Stack用Sigfoxモジュールの使い方

UIFLowの実装
20201219_003.png

5. SORACOM User Consoleで確認

手順4で作った簡易アプリのA/Bボタンを使って送信する値を変更し、Cボタン押下でデータを送信します。
20201219_004.png

課題あれやこれや

これでビジュアルプログラミングで簡単にできるぞ!
・・・と思っていたのですが、試してたら結構ハードル高いことに気づいた。

  • 16進数の変換にコード書いてる
  • マイナスの値どうする?(signed/unsignedの話持ち出すの?
  • 小数点の値どうする?(float使う?10倍して整数で送る?

温度データなど送ろうとすると、どうしてもマイナス値や小数の扱いを考慮しないといけないので、こういったところはビギナーズ向けじゃないなぁと。
データフォーマットの設計は難しい。

おわりに

ビジュアルプログラミングなら簡単にできる、と高を括ってたら盛大に躓きましたね・・・
ふつうのプログラミング言語に慣れていると、どうブロックを並べてロジック組めばよいか考えるのが煩わしい。

あと、M5Stackシリーズのセンサーを使って何かアプリを組もうとしたら、データ変換とバイナリパーサーの使い方をマスターしないとつらいですね。
そのあたりを学習するにはよいかもしれません。

バイナリパーサー詳細
https://dev.soracom.io/jp/docs/binary_parser/

参考資料

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
What you can do with signing up
3