ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

IoTはRaspberryPiだという人が爆死する根拠

2016-06-01 11:13:25 | ネットワーク
 いわゆる知識人、コンサルタントの中に、IoTをやるならRaspberryPiみたいなことを言っている人が居るが、そういう安易な考えだと爆死する・・・もし、そのレベルの理解力でIoT案件関わろうとしていたら、絶対逃げろ!という根拠をこれから書いていく。




■センサーからサーバーまでのつなぎ方

IoTの開発手順-従来開発との違い
http://blog.goo.ne.jp/xmldtp/e/5c5a4246be99188526a224c1ea75efdb

の(4)入出力インターフェースの決定(有線、無線?)に当たるところの話。

センサーからサーバーまでをどうつなぐか・・・

クラウドだと、おうちのセンサーからAmazonのデータセンターまで、何百キロも線をつなぐことは、現実的には出来ない。そこで、どこかで無線の処理が入る。
ここで、クラウドにセンサーデータを上げるコンピューターを「ゲートウェイ」とよぼう。

すると、2通りの方法が考えられる(細かく分けると3とおり)



ゲートウェイに直接センサーをつなげてしまい、その値をインターネット経由でクラウドに送る
この考え方は、よさそうだけど、課題が結構多い

【課題】
(1)センサーから直接線でつないでしまうと、ある一定以上の長さで
 電気が通らなくなり、センサー値が読めなくなる。

  電線には抵抗があるので、長くすると、電線の抵抗が大きすぎ、
  電気が流れなくなる。電気が流れないと、センサーは使えない


(2)ゲートウェイをPCにしてしまうと、センサーとつなげない。

 PCの口はUSBとかだけど、センサーはUSBでつなげるのではなく、
 ただの線で、それをGPIOとかにつなげるしくみになっている。
 なので、センサーはPCにそのままでは使ない。

そこで、RaspberryPiの登場といいたいところだが。。。

(3)RaspberryPiは、GPIOの口をたくさん持っている。たしかに。
 でも、GPIOは、デジタル入力はOKだけど、アナログ入力直接はX
 なんらかの変換がいる・・・

ということで、変換するくらいならということで、



センサーとゲートウェイの間を無線で結ぶ。無線を送受信するものをRFモジュールという。
RFモジュールに直接センサーをつけても構わない

(この場合、親機で子機の状態を取得するように指示する)

が、子機のRFモジュールとセンサーの間に処理プロセッサ(ここでは「エンド処理」とした)
を置くと、受け取ったセンサー内容を処理加工して送信できるので、自由度が増す。

これにより、先ほどの課題は、

(1)は、解決した。センサー、エンド処理プロセッサ。RFモジュール間をできるだけ
 短くし、ゲートウェイには無線で送ればよい

(2)(3)エンド処理プロセッサをArduinoにすれば、アナログもGPIOもいける

というふうに、解決する。




■UART
そうすると、ここで新たな疑問が出てくる

【課題】
(4)ArduinoとRFモジュール、RFモジュールとゲートウェイ間は、
   何でつなげばいいのか

(5)RFモジュール間は、どの周波数帯で、どのプロトコルを使えばいいのか

ここで、(5)は、ZigBee,Wifi,BLE,920MHz特小(プロトコルは固有の場合あり)が考えられる。
そして、(4)は、ZigBee,920MHz特小などのRFモジュールの場合、UART接続が
多い気がする。

UARTとは
・シリアル通信を行うのだが、シリアルの端子ではなく、USB端子で接続できるように
 するもの
・実際には、ATコマンドを書き出し、それをRFモジュールで送信する。

なので、
方式2-1の場合には、
 ・GPIOやアナログ入力で繋がっているセンサーの値をArduinoが読み込み、
  適切に処理し、ATコマンドをシリアルへ書き込むことにより
 ・UART経由でRFモジュールからセンサー値が親機に伝わり、
 ・親機は、RFモジュールからUART経由で何か受け取る
ことになり、

方式2-2の場合には、
 ・親機は、子機のデータを読み込むようにUART経由でRFモジュールに書き出し
 ・RFモジュールはそれを子機に伝え
 ・子機のRFモジュールは自分に繋がっているセンサーから値を読み込み
 ・親機に返す
ことになる。

よって、親機をRaspberry Piにすると(子機のエンドをRaspberry Piにできないのは、
(3)で書いた)Raspberry PiとRFモジュールをUART接続することになる。

これはRaspberry Pi2はできる。
しかし、今売られているRaspberry Pi3でこれをしようとすると・・・

Raspberry Pi3 のシリアルコンソールで通信速度が合わない
http://qiita.com/komeda-shinji/items/03546ae1014c6b4edc92



Raspberry Pi 3 Model Bでシリアル通信で接続してコンソールにログインする方法
http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_3_uart_tips/

に書かれているように、単純ではない。で・・・




■Wifi

では、(5)でZigBeeでなく、Wifiを選ぶとどうなるか

Wifiを選ぶと、親機側のRFモジュールは、Wifiのアクセスポイントでよい
(子機からWifiで通信を送るのだから)
となると、PCがあれば、PCをアクセスポイントにすれば

【AP】Windows7/8/8.1を無線親機にしてWi-Fiを飛ばす!?
http://ahiru8usagi.hatenablog.com/entry/Windows7_8_8.1_Wi-Fi

PC1台で、RFモジュール~ゲートウェイ~インターネットにいく。
Raspberry Piはいらない。

子機側もArduinoでいい(3)の理由でRaspberryPiはむかない。

つまり、Wifiを選ぶと、RaspberryPiは要らない。




ということで、IoTをやる場合、Raspberry Piは要らなかったり、
むしろ、難しかったりする。

Raspberry Piを使うのは、自作でなにかをする人にとってはいいけど、
IoTのお仕事で使うのに、本当にいいのかはぎもん・・・

なので「IoT、はいRaspberryPiつかって・・・」みたいな、その程度の
考えで取り組むと、爆死する。
この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 放送局が偏ってるという話は... | トップ | 渋谷でコミュニティFMやっ... »
最新の画像もっと見る

ネットワーク」カテゴリの最新記事