RaspberryPi15Jamのブログ

IoTで作ったもの、ハマったことの備忘録

Grove IoT スターターキットで作ってみた その1

1.Grove IoT スターターキットとは?

SORACOMが販売しているマイコンモジュール Wio LTE JP Version と7種類のセンサーのとSIMカードのセットです。
様々なセンサーを使って簡単にIoTで物が作れます。
スターターキットはココで買えます

2.電話してねボタンを作ってみた

  • ボタンを押すとスマホに「電話してね!」のSMSが届く
  • 磁気スイッチをオンすると別のスマホに「電話してね!」SMSが届く f:id:RaspberryPi15Jam:20201010161907j:plain 機能は、ただ、それだけです(汗)

3. 用意したものと、出来上がった物

・Grove IoT スターターキット
・特定地域向け IoT SIM(plan-D データ通信/SMS)
・モバイルバッテリー
を用意しました。
スターターキットに含まれるSIMはデータ通信のみでSMSは使えません。
今回はSMSを使いたかったので追加でSMS対応のSIMを購入しました。
f:id:RaspberryPi15Jam:20201010165529j:plain

4.ソースコード

#include <WioLTEforArduino.h>

#define BUTTON_PIN          (WIOLTE_D20)
#define MAGNETIC_SWITCH_PIN (WIOLTE_D38)

#define M_PHONE_NUMBER  "090XXXXXXXX"
#define S_PHONE_NUMBER  "090xxxxxxxx"

int buttonState;    //for pushbutton
int magSwitchState; //for magnetsiwtch

WioLTE Wio;

void setup() {
  delay(200);

  SerialUSB.println("");
  SerialUSB.println("--- START ---------------------------------------------------");
  
  SerialUSB.println("### I/O Initialize.");
  Wio.Init();

  Wio.PowerSupplyGrove(true);
  
  SerialUSB.println("### Power supply ON.");
  Wio.PowerSupplyLTE(true);
  delay(500);

  SerialUSB.println("### Turn on or reset.");
  if (!Wio.TurnOnOrReset()) {
    SerialUSB.println("### ERROR! ###");
    return;
  }
  delay(3000);

  SerialUSB.println("### Setup completed.");
  Wio.LedSetRGB(0, 50, 0);
}

void loop() {
    Wio.LedSetRGB(0, 50, 0);    
  
    // read the state of the pushbutton and magnetswitch value :
    buttonState = digitalRead(BUTTON_PIN);
    magSwitchState = digitalRead(MAGNETIC_SWITCH_PIN);

    if(buttonState != 0)
    {
      SerialUSB.println("### Send SMS.");
      if (!Wio.SendSMS(S_PHONE_NUMBER, "This is Name. Please call me!")) {
        SerialUSB.println("### ERROR! ###");
        Wio.LedSetRGB(50, 0, 0);
        delay(1000);
      } else {
        SerialUSB.println("### SMS Send OK.");
        Wio.LedSetRGB(0, 0, 50);
        delay(1000);        
      }
    }

    if(magSwitchState != 0)
    {
      SerialUSB.println("### Send SMS.");
      if (!Wio.SendSMS(M_PHONE_NUMBER, "This is name.\nPlease call me!")) {
        SerialUSB.println("### ERROR! ###");
        Wio.LedSetRGB(50, 0, 0);
        delay(1000);
      } else {
        SerialUSB.println("### SMS Send OK.");
        Wio.LedSetRGB(0, 25, 25);
        delay(1000);        
      }
    }

}

電話番号とメッセージ中の名前は個人情報なので伏せています…

5.スマホにSMSが届きます

f:id:RaspberryPi15Jam:20201010171722j:plain

6.その後

ボタンを押すとスマホに「電話してね!」のSMSが届く機能はそのままにして、
磁気スイッチを外して代わりにスターターキットについてた別のセンサーをつけました。
これについては、次回、書きたいと思います。
他にはGrove IoT スターターキットのセットアップ方法についても書きたいと思います。