サイクルコンピュータには、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製のソースコードをそのまま利用させていただきました。
つづく
お世話になっております。信州MAKERSです。新作のアイデア凄いですね。スマホに表示するためにBLE-JAVA言語などは使わずにWEBサーバー経由でデータを転送表示できるのは、素晴らしいアイデアだと感心いたしました。私もPMMで使わせていただきたく存じます。ご指導宜しくお願いいたします。
返信削除早速のコメントありがとうございます。
返信削除HTMLページの更新速度が1秒毎と遅いため、PMMに利用できるか否かは不明ですが、とりあえず、ソースコードをお送りします。
HTMLをベタに送信するのではなく、Server-Sent Eventsという技術を使うと、スマホでリアルタイムにセンサーの情報を表示できるようです。勉強不足なのと、1秒間隔更新の方が、バッテリには優しいのでは、と考えて、手つかずの状態です。
“ご指導”差し上げられるものは、何ひとつ保有しておりませんが、ご指摘のとおり、もう少し記事をわかりやすく書き換えようと思います。