読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

315MHz帯通信モジュールIM315をArduinoで試す その1:Arduinoシールド編

IM315シリーズは"特定小電力無線"と呼ばれる帯域を使う通信モジュールです。
1:1からN:Mまで、スター型やクラスタツリー型のネットワークを構築可能。
送信専用のデバイスに至っては、なんとボタン電池一個で一年持つとかいう脅威の低消費電力。
通信距離も、見通し50m(公式による)、屋内でもドアを挟んで4m、遮蔽なしで15m程は飛びます。
ワザワザZigBeeみたいなものは使いたくないがリモートで接続したい場合……などには中々有用です。

実際のところ

構成

受/送信子機

どちらも同じ構成で行けます。

315MHz特定小電力無線 送受信モジュール IM315TRX

315MHz特定小電力無線 送受信モジュール IM315TRX

組み上がった装置はこんな感じ

デフォではD8、D9が通信に使われています。
また、D10がビジー状態用フラグ、D11がスリープ状態指定用フラグとして推奨されている様子。

ソフトウェア

とりあえず、受信器側で動作確認してみましょう。
"RDID"という機器固有IDを読み出す関数をコールしてシリアルに吐き出してみます。

#include <SoftwareSerial.h>

SoftwareSerial IM315Serial(8, 9); // ソフトウエアシリアル

void setup() {
 IM315Serial.begin(19200); // ソフトウエアシリアル 初期化
 Serial.begin(19200);
 pinMode(10, INPUT);       // Busy 信号 Pin10 入力
 while (!IM315Serial & !Serial ) { ; } //受信待機
 delay(1000);

 /* 機器固有IDを表示*/
 Serial.print("ID");

 IM315Serial.println("RDID");
  while (IM315Serial.available()) {
    readPacket();
  };
}

void loop() {
  ;
}