» » [技術ネタ]Arduinoで安くてオトクに無線通信(315MHz編)

[技術ネタ]Arduinoで安くてオトクに無線通信(315MHz編)

posted in: Blog, Technology | 0

無線通信したいけど、
XBee(*1)さんは¥2,500くらいして安くなったにせよ大量につかうと割高だし、
ESP-WROOM-02さん(*2)は¥1,000以下で安いけどWifiでネットワーク組むほどは…
とよくばりなアナタに。

消費電力おさえめで、ネットワーク組むほど賢いのは不要、
ついでにいうと送信だけとかでもokですよ!って方には恐らくベストな選択肢、
315MHzさんのお話です。

※ あとは通信速度もとめてたり、通信距離求めている場合は微妙かも。

 

必要なハードウェア


Arduino UNO x 2
https://www.switch-science.com/catalog/789/


送信モジュール(315MHz) [RF315-TX5-R] http://www.aitendo.com/product/4138

| VCC | 1.8 – 3.6V |
| 動作電流 | 10mA |
| 外形寸法 | 11.0 x 16.0 x 5.0mm |


受信モジュール(315MHz) [RF315-RXB12] http://www.aitendo.com/product/2607

| VCC | 3.3 – 5.0V |
| 動作電流 | 2.5 – 2.7mA |
| 出力 | 300 – 500m |
| 外形寸法 | 30.0 x 8.5 x 5.0mm |
| バンド幅 | 200KHz |

 

配線

送信側

| Arduino UNO | 送信モジュール側(RF315-TX5-R) |
| 3.3V | VCC |
| D12 | DATA |
| GND | GND |

 

受信側

| Arduino UNO | 受信モジュール(RF315-RXB12) |
| 3.3V | VCC |
| D11 | DATA |
| GND | GND |

 

ソース

送受信は、お手軽無線用モジュール VirtualWire をつかいます。

送信側

#include <VirtualWire.h>

#define SEND_PIN 12 // D12

void setup() {
  vw_set_tx_pin(SEND_PIN);
  vw_setup(2000);
}

void loop() { 
  int numData = 25;
  char datas[numData];
  for (int i = 0; i < numData; i++) {
    datas[i] = i;
  }
  vw_send((uint8_t *)datas, numData);
  vw_wait_tx();
}

送信データが少ない場合、
vw_setupの2000msを6~7000msくらいまで上げると、
送信速度があがるようです。

受信側

#include <VirtualWire.h>

#define RECV_PIN 11

void setup() {
  delay(1000);
  Serial.begin(9600);
  Serial.println("receiver setup");

  vw_set_rx_pin(RECV_PIN);
  vw_setup(2000);
  vw_rx_start();
}

void loop() {
  uint8_t buf[VW_MAX_MESSAGE_LEN];
  uint8_t buflen = VW_MAX_MESSAGE_LEN;
  if (vw_get_message(buf, &buflen)) {
    Serial.print("Got: ");
    for (int i = 0; i < buflen; i++) {
      Serial.print(buf[i], DEC);
      Serial.print(' ');
    }
    Serial.println();
  }
}

 

テスト


こんな感じにシリアルのモニタにでればokです。

 

おまけ

文字列の送信をしたい方向けのサンプル落ちてたので、ぺたり。

How to use 315Mhz RF transmitter and receiver modules with arduino

めでたしめでたし。

[^1] ... https://www.switch-science.com/catalog/996/
[^2] ... https://www.switch-science.com/catalog/2346/