技術情報
SMK製Sigfox Breakout Board(EM-WF931-02F)を使ってみる
2019.12.10
SMKからSigfox Breakout Board(EM-WF931-02F)がリリースされています。

WF931というSigfoxモジュールをベースとした評価ボードで、SONYのSPRESENSEとピン互換があります。こちらにSPRESENSE Arduino用のサンプルコードもあるので、SPRESENSEをお持ちの人は簡単に試してみることができるでしょう。
ここでは、SPRESENSEを持っていない方(でも、Arduinoならあるよ)向けの使用方法をまとめます。
Devkitとしてデバイスを登録する
EM-WF931-02FもDevkitとして登録されていますので、こちらを参考に登録してもらえれば、1年間の無償回線※1 込みでお使いいただけます。
※1 2022年7月1日をもって、Devkit対応デバイスのDevkit登録(無償回線利用)が終了いたしました。
Sigfox回線をご利用の際には、Sigfox Buyにて有償回線をご購入ください。
Sigfox Buy お申込みからご利用開始までの流れはこちら
ハードウェア構成
EM-WF931-02Fは、WF931モジュールとチップアンテナが内蔵されていますが、半田ジャンパーで外部アンテナに切り替えることも可能です。
外観とピン配置は下図のようになっており、まず簡単に通信を確認するだけであれば、CN1_1(GND)とCN2_3(VDD)で電源供給、CN1_2(RX0)とCN1_3(TX0)でATコマンド制御、あとは、CN1_6(Reset)ピンに対して、起動時にリセットをかけた方が良いと思います。

Arduinoと接続
手持ちのArduino(ここではArduino Uno)と下図のように配線します。

参考に配線例を下記に示します。
EM-WF931-02F | Arduino Uno |
---|---|
CN1_1 | GND |
CN1_2(RX0) | D9 |
CN1_3(TX0) | D8 |
CN1_6(RESET) | D2 |
CN2_3(VDD) | V3.3 |
Arduinoスケッチサンプル
上記配線にあわせたサンプルスケッチは下記の通りとなります。Software Serialのポートやリセット用のPIN(PIN_RESET)に関しては、ご自身の配線にあわせて変更していただければ結構です。
このサンプルでは、デバイスIDとPACコードを表示、その後、メッセージをSigfoxクラウドに送信する例となっています。
#include SoftwareSerial mySerial(8, 9); // RX, TX #define PIN_RESET 2 void setup() { Serial.begin(9600); // PC-Arduino間のシリアル while (!Serial) {;} mySerial.begin(9600); // ソフトウェアシリアル(Arduino-EM-WF931-02F間) // Configure reset pin pinMode(PIN_RESET, OUTPUT); // Do reset digitalWrite(PIN_RESET, LOW); delay(1000); // Release reset digitalWrite(PIN_RESET, HIGH); delay(1000); result(); atcommand("AT$ID?"); atcommand("AT$PAC?"); atcommand("AT$SF=0123456789ABCDEF"); } void atcommand(String cmd){ mySerial.write("0x00"); delay(50); Serial.println(">" + cmd); mySerial.println(cmd); delay(100); result(); } void result(){ char c; if (mySerial.available()) { do{ c = mySerial.read(); Serial.write(c); if(c==0xFF){ Serial.println("Error!"); return; } }while(c!='\r'); // for LF Serial.write(mySerial.read()); } } void loop() { if (mySerial.available()) Serial.write(mySerial.read()); if (Serial.available()) mySerial.write(Serial.read()); }
ATコマンドを投げる前に"0x00"を送ってあげるのが、この評価ボードのマナーなのかと思います。(定かではありませんが、0x00なしでは、ATコマンドを受け付けませんでした。)
ATコマンド例
EM-WF931-02FもSigfoxの標準的なATコマンドを受け付けるようですが、AT?コマンドは何も返してきませんでした。
ATコマンド | 内容 |
---|---|
AT$ID? | デバイスIDの取得 |
AT$PAC? | PACコードの取得 |
AT$SB | バイトメッセージ送信コマンド |
AT$SF | メッセージ送信コマンド |
通信に成功すれば、SigfoxクラウドのDevice-Messages画面で受信メッセージを確認することができます。
EM-WF931-02Fの入手方法
フルタカパーツオンラインで取り扱いがあるようです。