温度計プログラム完成

HSES-LCD24のサンプルプログラムとして温度計が完成、githubに公開した。まずは、画面を見て貰おう。

161124a1i
画面には、日付、時刻、温度センサーから取得した4つの温度と、その平均値、温度変化のグラフが表示されている。グラフには当日のデータに加えて、前日のデータもグレイで表示されている。

温度センサー

161124b5温度センサーはHSTS-ATD7410で、ESP-WROOM-02搭載の近日発売予定のモジュールとともにGROVE-WRAPPERで1.8mの棒に固定されており、この棒を立てて設置する。

このような温度センサーを使っているのには理由がある。もっとも大きな理由は、室温といっても足元の温度と天井近くの温度では全然違うだろうということ。適当なところに置かれた温度計の表示を見ても納得できない。いろんなところの温度を同時に見たい。次に、HSES-LCD24自体にもI2CコネクタがありI2Cの温度センサーを接続可能なのだが、ESP-WROOM-02自体が発熱する。ほんのり温かくなる程度だが、これが計測温度に影響すると嫌なので、温度センサーを近くに置けない。 使ってみてわかったが、ディスプレイは小さいこともあって、ちょいちょい動かす。よく見えるように位置を変えたりする。この時、センサーがつながっていないので、気にせず動かせるのは利点だと思う。

システム構成

センサーの計測値をWiFiで飛ばし、ネット接続の小型ディスプレーに表示するのであれば、通常は、常時稼働のサーバを介するシステム構成とすると思う。私も当初は、そう考えていたが、それでは、サーバを持っていない人に勧め辛い。そこで、HSES-LCD24自体をサーバにできないか検討した。 WebServerはサンプルプログラムも提供されているし問題なく動く。SDカードも使用可能ということで、性能面はわからないが、不可能ではなさそうだ。実際に作り始めるとSPI上の3つのデバイスを使用することになり大変なことも色々あったが、なんとかできた。

出来上がってみると、なかなか良い。受信した温度データは1データ1行のcsv形式のテキストファイルで、1日毎のファイルに書き込んでいる。このデータは、SDカードを抜いてPCで読み出すこともできるが、esp8266で動作するWebServerからも読み出すことができる。これがあればサーバーが無くても常時データを記録することができるので、他にも活用できる状況がありそうな気がする。但し、注意が必要なの点がある。SDカードにファイルを書き込んでいる途中に電源断やリセットをしてしまうと、SDカードのファイルシステムが破壊される可能性がある。プログラムの開発中、なんどもSDカードのフォーマットをやり直す必要があった。リセットでも壊れる可能性があるので、Arduino SDKでのプログラム書き込み、シリアルモニタの開け閉めにも注意が必要となる。OTAでの書き込みは、プログラム内部でタイミングが取れているので問題ない。この問題に対応するため、shutdownと称しSDカードへの書き込みをブロックするモードを用意、タッチスクリーンからの操作で呼び出せるようにした。

今後

まずは、再来週のOMMFでの展示用に準備を進めたい。ネットワーク接続はどうなるかとか、いろいろ心配。 他のデモプログラムと統合し、切り替えて表示する、というようなことも可能だと思うが、そこまで準備する時間は無いような気がする。

未完成な機能、グラフの拡大表示や日付選択なども、いづれ作りたい。あと、外気温をOpenWeatherMapDark Skyあたりから取ってきて一緒に表示する、というアイデアもある。これにはJSONパーザを作らなければならない。

この温度計は、もともと自分が欲しくてHSES-LCD24を作った面もあるので、自分使い用のガジェットとして、もっと完成度を上げていきたい。そうなると、温度データはSDカードではなく、サーバのデータベースに保存するのが自然、そうすればパソコンでも温度変化のグラフを見れるようになる。

あと、今回のプログラム開発ではOTAを使用し、プログラム書き込みがとても速く大変便利だった。OTAはROM容量を2倍使用するので、Fontxを使用するプログラムはをROM容量的に使えない。今回の開発でSDカードに慣れたので、漢字FontをSDカードに置いて使用できる漢字表示機能を作りたい。これならOTAが使用できるはずだ。

発売予定のESP-WROOM-02搭載新モジュール

161124h0発売予定のESP-WROOM-02搭載新モジュールは GROVE-WRAPPERで固定できることが特徴。あと、0.96インチSPI接続 128x64dot OLEDモジュール接続可能。GROVE-I2Cコネクタ付き。OLED付きと無しの2種類、GROBE-WRAPPERの入手が国内では難しいようなのでGROVE-WRAPPER1個付きで発売予定。温度センサーHSTS-ATD7410もGROVE-WRAPPER付属の物を発売したい。

Leave a Reply

メールアドレスが公開されることはありません。