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

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

PythonだけではIoTできない理由

2018-08-21 08:24:42 | Weblog
前に

Pythonや複雑なニューラルネットワークの知識がなくてもC言語の知識を用いて開発ができます
https://blog.goo.ne.jp/xmldtp/e/76a8482d2fe745641fce486abe688921


っていうエントリを書いたけど、CでIoTはできても、PythonだけでIoTはできない。
その理由について、一応書いてみる。


■まず、前提として、IoTのシステム構成

IoTのシステムは、以下のように構成される

                   |

センサー→データ送信部  --  データつうしん --- データ収集部
                   |


 センサーデータを集めて、サーバーやクラウドでデータ収集&処理を行う。

 このとき、サーバーやクラウドでは、Pythonを使うことができる。問題ない。

 問題は、センサー→データ送信部。

■センサーデータの送り方
 センサーデータは単なる電気信号のときもあるし、I2Cのような通信でもらえることもある
・・・が、I2Cは、近距離しか届かないので、サーバーにはそのままでは送れない(距離的に)。

 そこで、データ通信を使って、サーバーまたはクラウドにセンサーデータを送ることになる。
 (ちなみに、そのデータ通信にインターネットを使うのが、IoT)

 もし、センサーデータをラズベリーパイにつなげられれば、
   ラズベリーパイからインターネットは使えるので、

 センサー→ラズパイ --- インターネット ---  サーバー 

 ラズパイ上でPythonで組めば、オールPythonでできそうに見える。

 しかし、このシステムは以下の理由で問題があり、利用箇所がかなり限定される
  1.ラズベリーパイには、アナログ入力がない。これでは温度、明るさのような連続量が入力できない
  2.ラズベリーパイの消費電力が大きい。つねに電力供給が必要

 そこで実際には

  センサー→マイコンーUART・I2C・SPI等の通信ートランシーバー -- インターネット -- サーバー

 という構成がとられる。

■マイコンとトランシーバー

 トランシーバーは、通信したいプロトコルによってことなり、
  XBee(ZigBee)、MAX485(RS485)

 などがある。これは買ってきて、そのまま使うか、ファームウェアまで提供されるので、そのまま
 ファームをインストールして使う。

 マイコンは、
   センサーデータ(アナログ・デジタル)を受けて、
   トランシーバーにUART,I2C.SPIでデータを送る。
 この機能はカスタマイズが必要なため、プログラミングが必要。
 低電力で行う必要があるため、PICやMSP430などが使われる。

■PythonだけではIoTできない理由
 つまり、PICやMSP430のプログラミングが必要
 (具体的にはセンサーデータを受け取り、トランシーバー等が受け取れるデータに変換するプログラミングが必要)
 なのだが、これらはPythonではできない(Cが必要)

 なので、PythonだけではIoTできない。




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする