注目キーワード

【Arduino】「M5Stack」Json形式データを使ってみる!

すけろく
M5StackとほかのWebサービスなどとの
データのやり取りにJSON形式を使いたいのだが。
げんろく
うむ。
M5StackでもJSON形式が使えるか試してみるか。
この記事では、Arduino IDEを使ってM5StackのプログラムでJSON形式を取り扱う方法を紹介します。
JSON形式データは、Webサービスやほかのコンピュータとのやり取りにも使用される汎用形式なので、取り扱う方法をマスターすることで、できることの幅が広がります!
プログラミングの内容も含めて解説しますので、ぜひ、挑戦してみてください!
今回使用するライブラリは、「ArduinoJson」ライブラリを使用します。
ArduinoJson

ArduinoJson is a JSON library for Arduino, IoT, and any embe…

JSONって何?

JSONとは?

JSONとは「JavaScriptのオブジェクト記法を用いたデータ交換フォーマット」です。

Python、PHP、JavaScript、C++、Javaなど様々な言語でサポートされています。

JSONを間に挟むことで各プログラミング言語間のデータの受け渡しがとても簡単にできます。

インターネット上のWebサービスからデータを取得する際の形式もJSON形式のものが多いので、例えば、天気情報をWebサービスから取得する際に使用できます。

JSONの表記方法

JSONは以下の形式で表記されます。

[
{“id” : “1”, “name” : “Genroku”},
{“id” : “2”, “name” : “Sukeroku”}
]

上記の例では、IDが「1」、nameが「Genroku」のデータと、IDが「2」、nameが「Sukeroku」のデータの2つのデータを表しています。

 

ArduinoでJSON形式データを扱う場合の注意事項

Arduino でJSONを使用する場合、マイコンのメモリに一時ロードされるため、メモリを事前に予約する必要があります。

どのくらいメモリ確保を行えばよいか、自分で計算するのは大変ですよね。

でも安心してください。

ArduinoでJSON形式データを使用する場合のメモリ量を、計算できる便利なツールがありますのでご紹介します!

 

JSONを扱う際のメモリサイズを計算する

以下のページでArduino IDEでJSONを扱う際のメモリサイズを計算できます。

ArduinoJson

The ArduinoJson Assistant is an online tool that computes th…

 

「Step1:Configuration」画面で以下の通り選択します。
 Processor  :「ESP32」
 Mode     :「Deserialize」
 Input Type    :「String」

【Next:JSON】を選択して次の画面に移ります。


「Step2:JSON」画面にて今回使いたいJSONデータを入力します。
【Next:Size】を選択して次の画面に移ります。

前の画面で入力したJSONデータをもとに必要なメモリサイズが計算され、画面に表示されます。※この例ではトータルで「96」だけ必要であることがわかります。【Next:Program】を選択して次の画面に移ります。

Arduino IDE用のプログラム例が表示されます。※先ほどの画面で必要となるサイズとして表示されていた内容をプログラムで指定する方法が記載されています。

StaticJsonDocument<96> doc;

 

 

M5Stack内でJSONデータを取り扱ってみよう

それでは、実際にプログラミングしてみましょう。

今回は、プログラムの中でJSONデータを定義して、それをM5Stackのディスプレイに表示させてみます。

ライブラリを追加する

今回使うライブラリ「ArduinoJSON」をインストールします。

※プログラムを実行した際の「ArduinoJSON」のバージョンは「6.19.4」です。

ライブラリのインストールは、次の記事で紹介しています。

関連記事

Arduino IDE」では、使用する機能やセンサー、ボードを使用するプログラムで使用できる有効なライブラリが公開されています。ライブラリを使用すると、効率的かつ品質を確保したプログラミングが可能です。 ここでは、Ardu[…]

 

JSON取り扱いプログラム

Arduino IDEを起動して、「ファイル」メニューから「新規ファイル」を選択し、表示されるスケッチに以下のように記述します。

 Arduino IDE スケッチ例

 

 M5Stackへの書き込み

  1. 「ファイル」メニューから「名前を付けて保存」で任意の名前を付けて保存します。
  2. 「ツール」メニューから「ボード」情報を確認し、次のものを選択します。この際、「シリアルポート」にマイコンを接続したCOMポートが指定されているかも確認します。
    ボード:「M5Stack Arduino」-「M5Stack-Core-ESP32」または、「M5Stack-Core2」または「M5Stack-Tough」
  3. 「ツール」メニューから「シリアルモニタ」を選択してシリアルモニタを起動します。(転送速度は「115200」です)
  4. 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。

 プログラム実行結果

M5Stackのディスプレイ上に次のように表示されます。

JSON形式データの部分は赤字で表示されます。

 

 

編集後記

いかがだったでしょうか。

さて、これでJSON形式データを扱うことができるようになりました。

今後は、読み込んだデータを使って、別の処理につなげるプログラムの実行例も、ご紹介していきます。

ご期待ください。

 

今回の記事は以上になります。

最後までご覧いただきありがとうございました。

 

これからはじめる方にお勧めの参考図書はこちら!