2020-09-23
血圧計の解析(4)
続き。
i2cで読んでみた。
昨日、最悪の場合って書いてた、外から直接フラッシュメモリを読むのをやってみた。
人間がタイミングよくボタンを押すっていうのが「最悪」の理由だけど、 実装はしごく簡単だった。
i2cアドレス54に、読みたいメモリアドレスを送り、 同じく54から必要なだけ読むだけだから、 ほぼ、i2cライブラリのサンプルそのものだった。
実際、読むのは簡単に完了し、 せっかくだから、デコーダも書いて、 サーバーで動くRubyでCGIを書いて、そこにデータを送るクライアントも書いた。
これで、 M5StickCを起動すると、フラッシュメモリから最後の測定値を読み出し、 それをサーバーに送信して、サーバー側はデーターベースに格納。 その後、M5stickCは自分で自分の電源を切る。 という一連の動作が確認できた。
更新失敗
動いたので、通しで測定してみたところ、 なんと、何度測定しても、フラッシュに書かれた結果が更新されなかった。 これは想定外。
ノイズが入るのか、M5StickCのi2cが悪さをしているのか。
- M5StickCを外してみた → 動く
- 通信終了後はGPIOをHi-Zにする → だめ
- 通信終了後はWireモジュールを別のポートで再初期化 → だめ
- 最初からWireモジュールを使わないコードをいれてみる → だめ
うむむ。 どうしたものか。
この記事へのご意見、ご感想、コメントは、
twitter
か下のフォーム(実験的)へどうぞ。