Files

4.5 KiB

LORA モジュール(433MHz) {docsify-ignore-all}


📝概要      :octocat:サンプルコード      🔌回路図      🛒購入リンク

概要

**LORA**モジュールはRa-02と呼ばれる小型のLoRa™モジュールを採用しています。

LoRa™は少ない消費電力で広いエリア(1~2km)をカバーする無線通信方式の一つです。Wi-FiやBluetoothなどとは補完の関係にあります。

特徴

  • Ai-Thinker製Ra-02採用
  • FSK, GFSK, MSK, GMSK, LoRa™, OOK 変調モードをサポート
  • 受信感度 -141 dBm
  • ビットレート可変 up to 300Kbps
  • アンテナ内蔵

パッケージ内容

  • 1x LORA モジュール

アプリケーション

  • 自動検針器
  • スマートホーム
  • リモート灌漑システム

関連リンク

サンプルコード

Arduino IDE

2台以上のLoRaモジュールを用い、長距離通信を行うサンプルコードです。

  • メッセージの送信に成功したら、青い文字列が表示されます。
  • メッセージの受信に成功したら、黄色い文字列が表示されます。
  • 初期化に失敗したら、赤い文字列が表示されます。

完全なソースコードはこちら

#include <M5Stack.h>
#include <M5LoRa.h>

// 宣言
String outgoing;                     // 送信メッセージ
byte msgCount = 0;                   // 送信メッセージ数
byte localAddress = 0xBB;            // このデバイスのアドレス
byte destination = 0xFF;             // 送信先

// 初期化
M5.begin();
LoRa.setPins();                      // CS, reset, IRQピンの設定
LoRa.begin(433E6);                   // 915 MHzで初期化

// メッセージ送信
void sendMessage(String outgoing) {
  LoRa.beginPacket();                // パケット開始
  LoRa.write(destination);           // 送信先アドレスの追加
  LoRa.write(localAddress);          // 送信者アドレスの追加
  LoRa.write(msgCount);              // メッセージIDの追加
  LoRa.write(outgoing.length());     // ペイロード長の追加
  LoRa.print(outgoing);              // ペイロードの追加
  LoRa.endPacket();                  // パケット送信
  msgCount++;                        // メッセージIDインクリメント
}

// メッセージ受信
void onReceive(int packetSize) {
  if (packetSize == 0) return;       // パケットが無い場合リターン
  int recipient = LoRa.read();       // 受信者アドレス
  byte sender = LoRa.read();         // 送信者アドレス
  byte incomingMsgId = LoRa.read();  // 受信メッセージID
  byte incomingLength = LoRa.read(); // 受信メッセージ長

  String incoming = "";

  while (LoRa.available()) {
    incoming += (char)LoRa.read(); // メッセージ取得
  }
}

onReceive(LoRa.parsePacket());

回路図