2017年9月3日日曜日

スマホ、サイコン化計画

サイクルコンピュータには、GARMINを利用してきましたが、どうも文字が小さく「老眼の人は使わないで結構です」といわんばかりです。

そこで、Smartphoneをサイクルコンピュータ化してみました。
技術的には、ANT心拍/パワー/速度等の各センサーの情報をスマートフォンにWiFiで転送するデバイスを製作してみました、というものです。

現状品
















スマートフォンのブラウザで各センサーのデータを表示します。
スマホなので、画面の拡大、縮小やスクロールが楽です。
ピンチ操作で拡大してみました。




サイクルコンピュータは、ボタンを押しにくいものが多く、よく不便に感じてましたが、だいぶ改善できたと思います。

また、夏は、信号ストップでサイコンを見て「今、気温43度!熱すぎるー」と空騒ぎするのが自転車の楽しみですが、GARMINは温度表示がかなりいい加減です。

感覚的に誤差が±4度くらいあり、誤差範囲がANTチップ内蔵の温度センサーと重なることから、ANT受信チップ内蔵の温度計をそのまま使ってると推測します。

もう少し温度の精度がほしいです。
丁度、BME280というチップが、温度、湿度、気圧を計測でき、温度誤差は±1度なので、これを採用しました。

今回のハードウェア構成です。
-D52(Dynastream製ANTモジュール)- これでANTセンサーの無線情報を受信します。
-BME280              - これで温度、湿度、気圧を計測します

-Arduino Pro Mini          - 上記2つのモジュールからデータを受信し、文字列として、ESP-WROOMに転送します。

-ESP-WROOM            - WEBサーバとして機能し、各センサーの情報が反映されたWEBサイトをブラウザに送信します。

クライアントは、スマートフォンに限らず、WEBサイトを表示できるデバイスならば、PCでもタブレットでも、腕時計でもOKです。
専用のAppを入れる必要もなく、WiFiのアクセスポイントをESP-WROOMに変更し、ブラウザで、192.168.10.1にアクセスすれば、ブラウザで画面表示され、1秒置きにページが更新される仕組みです。

配線図




ソフトウェアは、Arduino ProMiniはもちろん、ESP-WROOMもArduinoとしてプログラムを書き込んでいます(ESP-WROOMをArduino IDEで書き込む方法はGoogle検索でたくさんでてきます)。

BME280へのアクセスは、GIT HUBのSWITCH SCIENSE製のソースコードをそのまま利用させていただきました。

つづく