IoT利用
AndroidスマートフォンのLTE通信とテザリング機能を利用してIoTハブにする
AndroidスマートフォンのLTE通信とWIFI機能を利用してIoTデバイスにする
マスートフォンが利用しにくい厳しい環境ではラズベリーパイをIoTデバイスとする
ラズベリーパイにUSBやブルートゥースを利用してIoTデバイスとして利用する
サンプルはスマートフォンのテザリングを利用してラズベリーパイに接続してUSBカメラの映像をVNC経由で表示
IOTとは
全ての機器をインターネットに接続して利便性を向上させる
PC,スマートフォンをはじめスマートテレビ,ネットワークカメラ,スマートホーム,スマートドア等様々な機器がある
インターネットに接続できない機器はインターネットに接続できるコンピュータ機器を経由して利用する
IoTとしての条件
IoTハブは複数のIoTデバイスをインターネットへ接続する
IoTデバイスは単体でインターネットに接続できるかIoTハブを経由して接続する
市販のIoTハブは非常に高価で通信種類と自由度が少ないのでハブとしての通信部分はスマートフォン,IoTデバイスはラズベリーパイが最適
スマートフォンは新品で2万円以下,ラズベリーパイはゼロWであれば2千円以下で調達可能
IoTハブの通信
企業や家庭で利用している固定回線でインターネットに接続
スマートフォンやLTEモデムを利用してLTE回線などの移動通信でインターネットに接続する
IoTデバイスとの接続はスマートフォンのテザリングを利用するが10台以上の場合はUSBテザリングと市販のルーターを使用する
LTEモデムは3万円以上と高価なので厳しい条件下のみとする
IoTハブとデバイスの通信は有線/無線LAN,ブルートゥースの他にUSB接続で行う
移動通信キャリアのスマートフォンとLTEモデムはIPV4とIPV6の両方で通信ができるがグローバルIPとして直接アクセスできるのはIPV6のみでLTE接続毎にIPアドレスが変更されます
IoTハブ及びデバイスとの通信
企業や家庭内ではLAN内の環境に閉じて基本的には外部からの接続は禁止しデータのやり取りはクラウド経由とする
LAN外にあるIoTデバイスは移動通信を利用してインターネットに接続するが直接アクセス可能なIPV6をDHCPで利用する
IPV6が利用できないIotデバイスはSSHサーバーを経由したTunnel通信とする
IoTデバイスの制御はリモートディスクトップかSSH接続とする
Androidのテザリング例1
テザリングを有効にしてラズベリーパイをWIFI接続する
接続デバイスにラズベリーパイのホスト名を確認
IPV6を利用するのでAPNでAPNプロトコルをIPv4/IPv6にする
テザリングでIPV6を利用できるのはAndroid 8.0以上
Androidのテザリング例2
IPアドレスとMacアドレスの確認
IPV6のアドレスではなくIPV4しか表示されない点に注意
IPV6でのリモート接続例1
IoTデバイスにはVNC/SSHサーバーが起動していること
IPアドレスはRclone等を利用してIoTデバイスからクラウドに自動的にアップロードしておく
VNCビューワーでリモートディスクトップ接続確認画面
IPV6でのリモート接続例2
VNCでのリモートディスクトップ接続
IPV6でのリモート接続例3
VNCでのリモートディスクトップ接続でUSB接続したWEBカメラの映像を表示
IPV6が使えないIotデバイス
IoTハブ(Androidスマートフォン)にSSHelperアプリをインストールしSSHサーバーにする
SSH Tunnelを使ってIPV6が使えないIoTデバイスに接続する
SSHの説明
以下のサイトにアクセスする(表示は日本語翻訳済み)
https://linux.die.net/man/1/sshTunnelはポート転送(-L,-R)を参照
IoTハブ(Androidスマートフォン)内の操作
IoTハブ(Androidスマートフォン)にTermuxアプリをインストールする
Termuxを利用してIoTデバイスを操作する
Termuxの説明
以下のサイトにアクセスする(表示は日本語翻訳済み)
https://wiki.termux.com/wiki/Main_PageLinuxのターミナルと同様のコマンドが利用できるが一部のコマンドに限られスーパーユーザーコマンドRoot(sudo)はAndroidをルート化しないと使えない
Rcloneの説明
以下のサイトにアクセスする(表示は日本語翻訳済み)
https://rclone.org/Goole Drive,Dropvox,OneDrive等多くのクラウドストレージとの同期やファイルのアップロート,ダウンロードを行う
操作はコマンドのCLIなので各IoTデバイスで自分のIPV6アドレスを自動(スクリプト等)でクラウドストレージへアップロードさせる
ここでは詳細の説明は省略する
AndroidはLinuxをベースとして開発されているのでLinuxに非常に似ており相性も良いためiOSに比べて自由度が高くIoTに利用するには安価で手に入りやすい
Android内でのコマンド利用はTermux以外にAutomate,Taskerアプリを利用してアプリ作成と同様な機能を作成することで利便性を大幅に向上できる