2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SMK製Sigfox Breakout Board (EM-WF931-02F) を使ってみる

Last updated at Posted at 2019-12-03

SMKからSigfox Breakout Board (EM-WF931-02F)がリリースされています。
image.png
WF931というSigfoxモジュールをベースとした評価ボードで、SONYのSPRESENSEとピン互換があります。こちらにSPRESENSE Arduino用のサンプルコードもあるので、SPRESENSEをお持ちの人は簡単に試してみることができるでしょう。
ここでは、SPRESENSEを持っていない方(でも、Arduinoならあるよ)という方向けの使用方法をまとめます。

#Devkitとしてデバイスを登録する
EM-WF931-02FもDevkitとして登録されていますので、こちらの参考にして登録してもらえれば、1年間の無料回線込みでお使いいただけます。

#ハードウェア構成
EM-WF931-02Fは、WF931モジュールとチップアンテナが内蔵されていますが、半田ジャンパーで外部アンテナに切り替えることも可能です。
外観とピン配置は下図のようになっており、まず簡単に通信を確認するだけであれば、CN1_1(GND)とCN2_3(VDD)で電源供給、CN1_2(RX0)とCN1_3(TX0)でATコマンド制御、あとは、CN1_6(Reset)ピンに対して、起動時にリセットをかけた方が良いと思います。
image.png

#Arduinoと接続
手持ちのArduino(ここではArduino Uno)と下図のように配線します。
smk.jpg
参考に配線例を下記に示します。

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クラウドに送信する例となっています。

WF931.c
#include <SoftwareSerial.h>
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の入手方法
フルタカパーツオンラインで取り扱いがあるようです。

Sigfox Japan KCCS

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?