初めてのIoT!スマホでバイクを動かしてみた!

昨今テレビやネットでよく目にするようになったIoT。
IoTと聞くと敷居が高く感じる方もいるかと思いますが、これは私がまだ、IoTという言葉すらも知らない、超初心者プログラマーだった頃に作成した、バイクとスマホを連携するアプリケーションの話です。
IoTのとっかかり易さを理解してもらいたいので、今回は詳しい事は省きたいと思います。

そもそもIoTって何?

IoTとはInternet of Thingsの頭文字を取ったものです。
直訳すると『モノのインターネット』。
ようするにモノがインターネットとつながって、操作出来たり、情報を収集したりできる仕組みの事です。
スマートスピーカーなんかが代表的です。

具体的にはどんな仕組み?

IoT仕組み

Androidアプリと、バイクに搭載したArduinoというマイコンを、Bluetoothで接続して相互に通信します。
Androidアプリと、Arduinoに組み込むプログラムのプログラミングが必要になります。
本来、モノ(今回はバイク)自体がインターネットにつながらないとIoTではないかもしれないですが、通信方式がBluetoothからインターネット経由になるだけで、他は変わらないので、今回はIoTという事にします。

用意したモノ

  • バイク:1台
  • Android端末:1台
  • Arduinoをはじめようキット:1個
  • Bluetoothドングル:1個
  • バイクとArduino接続用リレー:1個
  • ギボシ端子:複数
  • 配線:1~2m

作業内容

作業内容は大まかに分けると下記のようになります。

  • Androidアプリのプログラミング
  • Arduino組み込みプログラムのプログラミング
  • モノの物理的な組み込み作業

Androidアプリのプログラミング

AndroidアプリはUI(見た目の部分)はXML、処理自体はjavaという言語を使ってプログラミングします。
今回の場合は、まず初期表示時にBluetooth接続をする処理を実装します。
Bluetooth接続が完了したらメイン画面が表示されます。
メイン画面には、ボタンをいくつか配置し、そのボタンが押された際に、ArduinoにBluetooth通信で特定のパラメータを送信する処理を実装します。
(例:Aボタンを押されたら『onClickABtn』というパラメータを送信)

Arduino組み込みプログラムのプログラミング

Arduinoのプログラミングには、Arduino言語というC/C++をベースとした言語を使用します。
開発にはArduino IDEという総合開発環境を使用します。
Arduinoには入出力用のピンがありますが、拡張する事により、そのピン以外でも入出力が可能になります。
今回の場合であれば、Bluetoothトングルを使う事で、Bluetooth通信による入出力を拡張しています。
具体的なプログラミングはというと、Androidアプリから送信されてきたパラメータ毎に処理を実装する形になります。
またバイクからの特定の信号(エンジンがかかった、ギアがNなど)を受け取ってAndroidアプリに送信する処理も実装します。
(例:先ほどの『onClickABtn』というパラメータを受け取った場合、1番の出力ピンに一定時間、電気を流す)

モノの物理的な組み込み作業

モノの組み込み作業とは、Arduinoの物理的な拡張と、そのArduinoを物理的に接続する側(バイク)の改造になります。
今回の場合は、Arduinoの物理的な拡張はBluetoothトングルをUSBポートに指すだけです。
バイクの改造は、バイク側の操作したい電源に、Arduinoからの電気信号を介入させる作業になります。
その際に、Arduinoの電源では電圧が弱い為、リレーを介して介入させます。
(例:1番の出力ピンに電気が流れた場合、バイクのスターターモーターに電気を流す)

以上が具体的な作業内容になります。
本当はもう少し細かい実装や作業が必要になりますが、今回は割愛します。

実際に動かしてみよう!

これは当時プレゼンに使った動画が残っているので、それをご覧ください。
https://www.youtube.com/watch?v=rJG5Es5fovQ&t=1s

プレゼン用の動画なので説明がないですが、主な機能としては下記になります。

  • エンジンの状態確認(かかっているかどうか)
  • アプリ側で許可してない場合に、N以外のギアに入った場合エンジンストップ(盗難防止)
  • アンサーバック機能(ウインカー点滅&ホーン)
  • エンジン始動履歴の確認
  • 実走!

以上のように、簡単にIoTは試してみる事が出来るので、みなさんも是非チャレンジしてみましょう!

また福井県内の方で、IoTをビジネスに使いたいが、どうすればいいかわからない方など、お気軽にお問合せください。