工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

MKR FOX 1200を使った電池駆動の気象観測ステーションの構築

必要な部品と材料

部品数量
Arduino MKR Fox 12001
SparkFun Atmospheric Sensor Breakout - BME2801
TSL2561 デジタル光度センサー1
HTU21D 湿度・温度センサー1

使用するアプリとオンラインサービス

プロジェクト概要

注意: このチュートリアルは古い可能性があります。最新版はこちらを参照してください。

このプロジェクトでは、MKR FOX 1200と複数のI2Cセンサーを組み合わせて、シンプルな電池駆動の気象観測ステーションを作成します。

使用するセンサー

ハードウェアセットアップ

ハードウェア接続は非常にシンプルです。すべてのセンサーはI2Cインターフェースを使用し、3.3Vで動作します。

MKR FOX 1200から必要な配線は4本のみです:GND、3.3V、SDA(ピン11)、SCL(ピン12)。各センサーは固有のI2Cアドレスを持つため、同じ4本の配線を並列に共有できます。関連ライブラリと関数がそれぞれを識別してくれます。

プロジェクト全体は、直列に接続した単3または単4アルカリ電池2本(3V)で駆動でき、基板上のネジ端子ブロックに接続します。

Sigfoxメッセージの最適化

Sigfoxネットワークは1日最大140メッセージまで送信可能です。データをコンパクトなバイナリ形式で送信するために読み取りを最適化します。

データのパッキングは重要です。送信可能な最大メッセージサイズは12バイトです。float型は4バイトを占有するため、読み取り値をより小さな表現にパックする必要があります。

float形式は非常に広い範囲(3.402823e+38まで)を表現できますが、その全データ空間は不要です。設置場所に基づいた安全な範囲を決定し、バックエンドで元の表現に復元します。

クラウドサービスの設定

2つのクラウドサービスを使用します:

FirstConfigurationの例で提供されるPACとIDを使用して、ボードをSigfoxバックエンドに登録します(以前のプロジェクトで既に行っている場合はスキップ可能)。

両サービスを相互に通信できるよう設定し、データを正しい形式で解釈させます。両方に登録し、ThingSpeakでいくつかのチャンネルを作成します。設定内容は以下の画像を参照してください。

MKR FOX 1200を使った電池駆動の気象観測ステーションの構築

最初に設定するチャンネルは生データを受信するもの(readChannelID)、2つ目は再スケーリングされたデータを収集するもの(writeChannelID)です。

Arduino Create Editorを使用してスケッチをアップロードします。デフォルトのスケッチでは、フィールド展開前にすべてのインフラストラクチャを広範囲にテストできます。

バックエンドインフラのセットアップが正しいと確信したら、以下を宣言してください:

oneshot = false

スケッチはシリアルポートを待機するため、すぐに起動しません。代わりにSigfoxバックエンドを開き、コールバックを設定します:

  1. DEVICE TYPE → LIST → ボードを右クリック → Edit
  2. 左側メニューのCALLBACKSをクリック
  3. 右上のNewボタンをクリック
  4. Custom callbackを選択

関連設定は以下の通りです。コールバックを以下のように設定してください:

Custom Payloadとして設定:

status::uint:8 temp1::int:16:little-endian temp2::int:16:little-endian press::uint:16:little-endian hum::uint:16:little-endian light::uint:16:little-endian lastMsg::uint:8

これはスケッチでパックした構造を表します。各フィールドに変数を割り当て、HTTPコールバックで参照できるようにします。

URL Patternとして設定:

https://api.thingspeak.com/update?api_key=XXXXXXXXXXXX&field1={customData#temp1}&field2={customData#press}&field3={customData#temp2}&field4={customData#hum}&field5={customData#light}&field6={customData#status}&field7={customData#lastMsg}

設定完了後、ウィンドウは以下のようになります:

MKR FOX 1200を使った電池駆動の気象観測ステーションの構築

api_keyを、ThingSpeakでChannel1のWrite API Keyとして提供されるものに変更してください。

MKR FOX 1200を使った電池駆動の気象観測ステーションの構築

保存して終了。シリアルポートを開き、最初のメッセージ送信を観察できます。

生データからグラフへ

設定したルートでデータがThingSpeakバックエンドに送られますが、まだ生データ形式です。ThingSpeakの分析ツールを使用して以下のスニペットで変換します:

% TODO - データ読み取り用チャンネルIDに置き換え: readChannelID = []; 
% TODO - Read API Keyを以下に入力: readAPIKey = 'T6UK7XO6A4H2AGT7'; 
% TODO - データ書き込み用チャンネルIDに置き換え: writeChannelID = []; 
% TODO - Write API Keyを以下に入力: writeAPIKey = 'XU4TGY261P6B5USN'; 
%% データ読み取り %% 
data = thingSpeakRead(readChannelID, 'ReadKey', readAPIKey,'OutputFormat','table'); 
analyzedData = data; 
%% データ分析 %% 
INT16_t_MAX = 32767; 
UINT16_t_MAX = 65536; 
analyzedData.('Temperature1') = data.('Temperature1') / INT16_t_MAX * 120 ; 
analyzedData.('Temperature2') = data.('Temperature2') / INT16_t_MAX * 120 ; 
analyzedData.('Pressure') = data.('Pressure') / UINT16_t_MAX * 200000 ; 
analyzedData.('Light') = data.('Light') / UINT16_t_MAX * 100000 ; 
analyzedData.('Humidity') = data.('Humidity') / UINT16_t_MAX * 110 ; 
%% データ書き込み %% 
thingSpeakWrite(writeChannelID, analyzedData, 'WriteKey', writeAPIKey); 
%% アクションのスケジュール: React → 10分ごと

独自のチャンネルIDに置き換えることで、生データを実際の値に変換できます。Reactを使用して10分ごとに分析アクションをスケジュールすることを忘れずに、そうしないと実行されません!

MKR FOX 1200を使った電池駆動の気象観測ステーションの構築
MKR FOX 1200を使った電池駆動の気象観測ステーションの構築
MKR FOX 1200を使った電池駆動の気象観測ステーションの構築

ついに美しいグラフが完成しました。

MKR FOX 1200を使った電池駆動の気象観測ステーションの構築
MKR FOX 1200を使った電池駆動の気象観測ステーションの構築

コード

WeatherMonitor

完全なコードはArduino Web Editorで確認できます。

製造プロセス

  1. Raspberry Piで気象観測ステーションを構築し、日次天気データをメール送信
  2. Weather Monitor:Raspberry Pi自作気象ステーション+Dropboxアップロード
  3. Arduinoで作るモニター用Ambilightシステム:没入感アップの自作ガイド
  4. K30 CO2センサで室内空気質をリアルタイム監視する
  5. ArduinoとMAX30100で作るリアルタイムIoT心拍数モニター
  6. コンパクト気象ステーション:Arduino Nano & ESP8266 + BMP280 + OLED/Nokia LCD
  7. デジタル身長計の自作:Arduino Nanoとレーザー距離センサーで成長記録
  8. DFRobot静電容量式指紋センサーをArduino/ESP8266で使う – 登録・認証・削除の完全ガイド
  9. ESP32で作るIoT環境モニター:温湿度・気圧・CO2をWebダッシュボードで可視化
  10. シャープGP2Y1010AU0Fセンサーで作る高精度空気質モニター
  11. Arduino Nano製ウェザーステーション:気圧・温湿度・UV・時計表示付き