はじめに
ロボット側にBLEモジュールが付いて、今回はBLEモジュールが付く情報連絡端末が、Bluetoothを介してロボットの動きをリモート監視、制御を行う。全体のシステム構成としては、ロボット(BLE)~(BLE)情報連絡端末(WiFi)~WiFiアクセスポイント~(ether)クラウドサーバ(ether)~WiFiアクセスポイント~(WiFi)ブラウザまたはスマホアプリの形となる。
アクセス方式
SPPシリアル
ツール
プロトコールGATT、SDK化したのは、NOBLE(セントラル)/BLENO(ペリフェラル)、Node.js、Andriodなどいくつかのバージョンが用意されている。これでメソッドと、イベントをきちんとおさえれば、MVC開発の感覚で開発が進められる。
https://github.com/sandeepmistry/
http://yegang.hatenablog.com/entry/2014/08/09/195246
https://www.safaribooksonline.com/library/view/getting-started-with/9781491900550/ch04.html
役割分担
情報連絡端末はCentral(セントラル)、ロボットはPeripheral(ペリフェラル)、ペリフェラルは外部設備、端末の意味合いと思って良い。携帯無線、WiFiとは真反対にして、ペリフェラルはアドバタイズメントを出して、自分の存在を一所懸命を周りに知らせる。セントラルが近くにあれば、ペリフェラルの存在を知り、必要であれば接続する。
サーバ/クライアント
セントラル/ペリフェラルとはイコールではない、サービス提供者の立場から、セントラルはサーバでも可能だし、クライアントでも可能だ。ペリフェラルも同様。
キーワード
Serviceサービス(キャラクタリスティクスのコンテナ)、Characteristicsキャラクタリスティクス(送受信データのコンテナー)、UUID(サービス、キャラクタリスティクスを区分するための識別子)、writeキャラクタリスティクスvalue書き込み、readキャラクタリスティクスvalue読み込み、Notification知らせ(Subscribe登録しておけば、キャラクタリスティクスvalue変更の際、相手に知らせる)、Subscribe登録など。
開発手順
gatttoolツールで、GATTで定義したサービス、キャラクタリスティクスをよく確認して、それからNode.jsでプログラムを綴る。