Sigfox Breakout Board (BRKWS01 RC3)の利用方法

[Sigfox Breakout board (BRKWS01 RC3)](https://partners.sigfox.com/products/sigfox-breakout-board-brkws01)は、Wisolモジュールをベースとしたブレークアウトボードであり、開発キット（DevKit）として登録すれば、1年間の無償回線込みでお使いいただくことができます。デバイスの試作や実証実験用にお使いください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/172313/f31d85b5-485c-b1f1-b7e1-b86332f725eb.png)

#BRKWS01 RC3の中身を確認
Sigfox Breakout board Kitには、下記部品が同梱されています。

- Breakout board (BRKWS01 RC3)本体
- 1/2波長アンテナ
- U.FL <> RP-SMAケーブル
- ピンソケット x 4
![IMG_0069.jpg](https://qiita-image-store.s3.amazonaws.com/0/172313/50cfccfc-3955-d494-2848-b4a4632f2665.jpeg)

#マイコンボードと接続
Breakout boardのピン配置は、下図の通りです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/172313/0e936214-f347-f9b4-e9e9-bb7327b83d43.png)
基本動作に必要なピンはVCC/GND/TX/RXの4ピンとなっていますので、さまざまなマイコンボードと接続できますが、今回はArduino Unoと接続してみます。ブレッドボードと半田を用意しておいてください。
![IMG_0071.jpg](https://qiita-image-store.s3.amazonaws.com/0/172313/70e62d58-5def-b00b-e3d8-0a593e2a15cc.jpeg)
Breakout boardとArduinoとの接続ピンのマッピングは下表のとおりです。

|Breakout board|Arduino|
|:------------:|:-----:|
|3.3V(+)|3.3V|
|GND(-)|GND|
|RX|11|
|TX|10|

#DevKit登録
BRKWS01 RC3は、Sigfox DevKitとしての扱いが可能であるため、https://buy.sigfox.com サイトからDevKitとして**1年間無料トークンを取得**することができます。
DevKit登録のやり方は、[こちら](https://qiita.com/ghibi/items/5893923b44f1757294e9)を参考にしてください。
この時、Device IDとPACを入力する必要があります。ESDバッグ（導電袋）に貼られているSIGFOX IDとPACを入力してください。
<img width="504" alt="IMG_0481.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/172313/ab29c857-7f58-583f-f688-6cddfc677e15.jpeg">

#Arduino用サンプルスケッチ
下記GitHubにArduino用サンプルプログラムをアップしています。
https://github.com/kccs-iot/brkws01RC3-arduino
サンプルスケッチ（brkws01rc3-at.ino）は、Arduinoのハードウェアシリアルと接続したPC等から、直接Sigfox ATコマンドを入力し、その動作を確認することができます。

```brkws01rc3![undefined]()
-at.ino##.c
#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
  Serial.println("Connect to the Sigfox Breakout board...");
  Serial.println("AT$I=10 : get Device ID");
  Serial.println("AT$I=11 : get PAC");
  Serial.println("AT$T? : get Temperature");
  Serial.println("AT$V? : get Voltages");
  Serial.println("AT$P=unit : set Power mode (unit = 0:software reset 1:sleep 2:deep_sleep)");
  Serial.println("AT$TR=unit : set Transmit repeat (unit = 0..2)");
  Serial.println("AT$WR : save config");
  Serial.println("AT$SF=[payload] : SEND SIGFOX MESSAGE");
  Serial.print("Device ID : ");
  mySerial.print("AT$I=10\r");
}

void loop() { // run over and over
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}
```

##Sigfoxメッセージを送信
サンプルスケッチをArduinoに書き込み、シリアルモニタを起動すると、下図のような画面になります。ここで、**AT$SF=[payload]**（今回はAT$SF=0123456789ABCDEF）を送信すると、Sigfoxメッセージが送信されます。
<img width="467" alt="atcommand.png" src="https://qiita-image-store.s3.amazonaws.com/0/172313/0f6eb44b-6c32-c74e-8a97-29c0fc600619.png">
無事受信されると、DEVICEのMESSAGES画面で送信メッセージを確認することができます。
※[LFのみ],[9600bps]となっていることをご確認ください。

また、**AT$SF=[payload],1**コマンドで下り要求メッセージを送信することも可能です。

#Seongji(旧Wisol)モジュール
本Breakout Boardに搭載されている通信モジュールはSeongji社製SFM10R3となっています。センサデータの送信テストであれば、AT$SFコマンドのみで可能ですが、その他データシート等は下記サイトからユーザ登録後、ダウンロード可能となります。
[support.seongji.co.kr(Register要)](http://support.seongji.co.kr/2018/07/22/datasheet-of-sigfox-only-modules/)

今回は、マイコンボードとしてArduinoを使いましたが、是非、その他ボードでも試してください。

[Sigfox Japan KCCS](https://qiita.com/organizations/sigfox)