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

Arduino MKR FOX 1200とSigfoxで作る低消費電力IoT気象ステーション

必要な部品と材料

部品 数量
Arduino MKR FOX 1200(Sigfoxモジュール内蔵) 1
DHT11 温湿度センサー(3ピン)または DHT22 1

使用アプリ・オンラインサービス

プロジェクト概要

Sigfoxはフランス発のLPWAN(低消費電力広域ネットワーク)技術で、868MHz(欧州)/ 902MHz(米国)のISMバンドを使用し、超狭帯域変調で遠距離・低消費電力通信を実現します。本プロジェクトでは、Arduino MKR FOX 1200とDHT11/DHT22センサーを用い、Sigfoxネットワーク経由でThingSpeakダッシュボードへ温湿度データを送信する気象ステーションを構築します。Wi-Fi不要で、電池駆動・屋外/地下設置にも適しています。

Arduino MKR FOX 1200とSigfoxで作る低消費電力IoT気象ステーション

ステップ1:Arduino MKR FOX 1200のセットアップ

  1. 公式ガイド Arduino MKR FOX 1200 Guide を参照
  2. Sigfoxボード登録:SigFox First Configuration に従い、backend.sigfox.com/activate でデバイスをアクティベート
  3. この手順を完了しないと、ThingSpeak等へのデータ転送ができません
Arduino MKR FOX 1200とSigfoxで作る低消費電力IoT気象ステーション

ステップ2:ThingSpeakアカウント作成とチャネル設定

  1. ThingSpeak でアカウント作成
  2. 新規チャネル作成(Field 1: 温度, Field 2: 湿度 等)
  3. API Keys ページの「Write API Key」を控える
  4. SigfoxバックエンドのコールバックURLにこのAPIキーを組み込む(ステップ4参照)

ステップ3:ハードウェア接続

DHT11(またはDHT22)の接続:

Arduino MKR FOX 1200とSigfoxで作る低消費電力IoT気象ステーション

DHTライブラリのサンプルでシリアルモニタに温湿度が正常表示されるか確認してから次へ進みます。

ステップ4:Sigfox開発者ポータルでコールバック設定

  1. Sigfoxバックエンド にログイン
  2. Device Type → Callbacks → New Callback
  3. Type: DATA, Channel: URL, Direction: Uplink
  4. Custom payload config に以下を設定:
    status::uint:8 temp::int:16:little-endian t::int:16:little-endian h::int:16:little-endian
  5. HTTP Method: GET
  6. Callback URL に以下を設定(############### をThingSpeak Write API Keyに置換):
    https://api.thingspeak.com/update?api_key=###############&field1={customData#temp}&field2={customData#t}&field3={customData#h}&field4={snr}

ステップ5:コードとソフトウェア

必要ライブラリ(Arduino IDEのライブラリマネージャからインストール):

主要コード抜粋

#include <ArduinoLowPower.h>
#include <Sigfox.h>
#include <DHT.h>

// ペイロード構造体(Sigfoxコールバックのpayload configと対応)
struct SigfoxMessage {
  uint8_t status;
  int16_t temp;       // 温度 ×100 等のスケーリング
  int16_t t;          // モジュール温度等
  int16_t h;          // 湿度 ×100
  // ...
} msg;

void loop() {
  float t = dht.readTemperature();
  float h = dht.readHumidity();

  // floatをint16に変換(スケーリング例)
  msg.temp = convertFloatToInt16(t, 60, -60);   // 範囲 -60〜60℃
  msg.h = convertFloatToUInt16(h, 110);         // 範囲 0〜110%
  msg.moduleTemperature = convertFloatToInt16(internalTemp, 60, -60);

  // Sigfox送信(12バイト)
  SigFox.beginPacket();
  SigFox.write((uint8_t*)&msg, 12);
  SigFox.endPacket();

  // 低消費電力スリープ(例:10分)
  LowPower.sleep(600000);
}

完全なコードはGitHubで公開:
https://github.com/masteruan/SigFoxThingSpeak

運用のポイント

製造プロセス

  1. 高度気象ステーション v2.0:温度・気圧・湿度・高度のリアルタイム監視
  2. Arduinoで作る模型鉄道DCCコマンドステーション 〜Bluetooth制御・無料アプリ付き〜
  3. Arduino制御の6連ショット・ドリンクミキシングステーション – 自作カクテル自動製造機
  4. Bluetooth操作のArduinoスパイボットを自作する
  5. 10ドルで作る携帯型Arduino気象観測ステーション – Nano、DHT22、BMP180、LCDで簡単DIY
  6. eDOT:高精度Arduino時計・気象ステーション(IRリモコン・自動輝度調整内蔵)
  7. ArduinoとThingSpeakで作るリアルタイム気象モニタリングシステム
  8. MKR GSM 1400で実現するリアルタイムIoT圧力監視:Arduino Cloud+Google Sheets連携
  9. Arduino MKR FOX 1200とSigfoxで作る低消費電力IoT気象ステーション
  10. DHT センサで作る信頼性の高い Arduino 気象ステーション
  11. ArduinoでChrome恐竜ゲームを実機操作 – ジャンプ/しゃがみを身体でコントロール