趣味のマイコンいじり

安価なマイコンを利用して作成したアプリの紹介です。

Pythonでセンサーを無線化して見ました

以前作った温度センサー表示のプログラムを変更してPythonスマホにセンサーの
結果を表示させる様にして見ました。結果、今までのものより簡単にPCでの処理と
スマホへの表示ができ、Pythonの便利さを改めて認識しました。
以下がその状況です。

Python でセンサーの無線化>
  先に検討したセンサー表示用のプログラム「MLX90614 via STM8S」と
  Pythonで無線化して、WiFiでもセンサーの出力が見れる様にして見ました。

  [全体の構成]
   イメージ 1
   1.PC側にはUSBtoTTLのボードのシリアル入力と433MHz受信モジュールの
         出力を直結
   2.センサー側には、STM8S103F3のシリアルポート出力を433MHz送信
         モジュールの入力と接続
   3.各センサー用のプログラムにセンサー結果をシリアル出力する部分を追加
    4.センサーの出力が無い期間のダミーデータには0x20以下のコントロール
         コードを利用して一般のターミナルソフトでもPC側で結果が表示できる様に
         対応
   5.Web用には「Python Firmata test」と同じくFlask+SocketIOの
         パッケージを利用
   6.スマホからWiFiを通じてPCを呼び出して、センサーの出力を表示して
         動作を確認

  [動作状況]
  

<関連資料>
   Python関係のインストール等に関しては次の記事が参考になるかと思います。
      Python関連 : Python Firmata test

   RF送信/受信モジュールに関しては次の記事です。
     RF送信/受信モジュール : 433MHz 無線送信/受信モジュール

   センサー駆動に関しては次の記事ですy。
       MLX90614 : MLX90614 via STM8S
       DHT11/22 : DHT11/22 via STM8S  

<テスト内容と結果>
    Pythonを利用する事により、次の処理がどの程度可能かどうかを確認しました。

       1.安価で単純動作のRF送信/受信モジュールの利用
       2.Flask+SocketIOのパッケージによりWebを利用しての結果表示
       3.センサーからの受信データの2次的処理の自由度

     動作させた結果としては、次の様なものでした。

       1.安価なRF送信/受信モジュールでも簡単にセンサーを無線化できる事が
             判りました。
       2.また、Web上への結果表示もApache 等のHTTPサーバを必要とせず
             簡単に対応できる事も判りました。
       3.ただし、Pythonのシリアルパッケージを利用する時、起動時の
             速度設定を2400bps以上にする必要が有り、最初1200bpsで
             送信した時、一旦2400bpsで起動し、その後に1200bpsに
             変更しないと対応できない問題点がなかなか判らなくて時間を
             費やした事が有りました。(最終的には2400bpsにしました。)

  [テストでの機器の接続]
    イメージ 2