ArduinoJsonを使う上での注意点

CO2センサーMH-z19の値をAWS IoTに送る で示したプログラムを作成する際に、ArduinoJsonライブラリ (ver. 5.13.2) の使い方を誤って手間取ったことがあるので備忘録として残す。

ArduinoJson のJsonObjectを単純なデータベースのようなものとして使うと、変化しない決まった内容を最初に設定しておけば、それらの設定を繰り返し行わなくても良いと思った。しかし、ArduinoJsonのメモリ管理は使い捨てが基本になっており、一度使用されたメモリ領域は再利用されない。

このため、最初は値を変更することがうまくできていたが、何度も繰り返すと領域不足で値が変わらなくなってしまって、正しく動作しなかった。

ドキュメントをきちんと読まなかったのが良くなかったが、原因の調査にかなり時間をとられた。

ユーザマニュアルの Avoiding Pitfalls などをちゃんと読めば書いてある。