FEZの温度センサー処理のバージョンアップ対応等 - 2014/12/24日現在

今年後半にかけて、.NET Micro Framework、.NET Gadgeteer、FEZのSDKや製品ラインナップのUpdateが立て続けにあり、APIやセンサーが変わっているので、

https://blogs.msdn.com/b/hirosho/archive/2014/07/25/gadgeteer-azure-part-1.aspx

で説明している内容のStep2の最新環境での実装方法を解説しておきます。

先ず、開発環境のセットアップですが、

https://blogs.msdn.com/b/hirosho/archive/2014/12/03/iot-kit.aspx

で紹介しているセットアップがなされているものとして話を進めます。

プロジェクト作成の際に出てくるメインボード選択のダイアログでFEZ CerbiunoNetを選択する際には、右下のバージョン選択で4.3を選択するようにしてください。

既にディスコンになってしまった、温度湿度センサーを継続して使う場合、このセンサー用のAPIは更新されてしまったので、最新版のSDKを使う場合には、

温度センサー初期化のコード:

            tempHumidity.MeasurementComplete += tempHumidity_MeasurementComplete;
            tempHumidity.StartTakingMeasurements();

の変更が必要です。更に、MeasurementCompleteはシグネチャが変わっているので、このイベントハンドラのメソッドは、

        void tempHumidity_MeasurementComplete(TempHumidity sender, TempHumidity.MeasurementCompleteEventArgs e)
        {
            lock(this)
            {
                lastTemp = e.Temperature;
                lastHumidity = e.RelativeHumidity;
            }
            if (e.Temperature > 30)
            {
                relay_X1.TurnOn();
            }
            else
            {
                relay_X1.TurnOff();
            }
         }

と変更が必要です。

以前の.NET Micro Framework 4.2のプロジェクトをアップデートする場合は、上の修正をする前に、ソリューションエクスプローラでプロジェクトを右クリック→”プロパティ”を選択して、”アプリケーション”タブの”対象のフレームワーク”を”.NET Micro Framework 4.3”に変更します。

そして、プロジェクト直下の”参照”フォルダを展開して、”GHI.Premium.Net”という項目が残っていたら、選択して右クリックし”削除”で消してください。

Program.gadgeteerを開いたときにボードが黒くなっている場合は、エディタ上から一旦Temp&Humidモジュールを削除し、ツールボックスからドラッグ&ドロップしなおしてください。

それから、FEZ版IoT Kitを購入の方、もしくは、TempHumid SI70を使おうと思っている皆さん、このセンサーには、MeasurementCompleteの様なイベントが無く、同期的にしか計測データを取り出せないので、上の方法は使えません。Timerを使ってセンサー計測値をポーリングするロジックの追加が必要です。

やり方は、https://aka.ms/IoTKitHoL のStep2を参考にして実装してみてください。

では、では