SORACOM LTE-M Button Plus を Arduino から制御する方法について記載します。
準備
- 以下の部品を準備してください。
- SORACOM LTE-M Button Plus
- Arduino UNO R3
- 照度センサ DFR0026
- リレースイッチ G6L-1P
- SORACOM ユーザーコンソールに SORACOM LTE-M Button Plus を登録してください。詳しくは、SORACOM LTE-M Button for Enterprise を登録する を参照してください。
ステップ 1: SORACOM LTE-M Button Plus と Arduino、リレースイッチ、センサーの配線を行う
SORACOM LTE-M Button Plus を リレースイッチ G6L-1P で制御する構成を作成します。 また、リレースイッチは「照度センサ DFR0026」のアナログ電圧出力を「Arduino UNO R3」に入力し、「Arduino UNO R3」のデジタル出力を利用し「リレースイッチ G6L-1P」の接点オープン/ショートの制御を行います。
回路構成図の概要は以下のとおりです。
ステップ 2: Arduino の設定を行う
SORACOM LTE-M Button Plus は接点をショートさせる (= HIGH) 時間に応じて、SINGLE、DOUBLE、LONG の 3 通りのメッセージを送信できます。これはボタンのシングルクリック、ダブルクリック、長押しに相当します。
スケッチは以下のとおりです。
int message = 1; // type of message : 1 -> SINGLE, 2 -> DOUBLE, 3 -> LONG
int relayIn = 2;
void setup() {
Serial.begin(9600);
pinMode(relayIn, OUTPUT);
digitalWrite(relayIn, LOW);
}
void loop() {
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
if (sensorValue > 800) {
if (message == 1) { // message : SINGLE
digitalWrite(relayIn, HIGH);
delay(200);
digitalWrite(relayIn, LOW);
} else if (message == 2) { // message : DOUBLE
digitalWrite(relayIn, HIGH);
delay(200);
digitalWrite(relayIn, LOW);
delay(500);
digitalWrite(relayIn, HIGH);
delay(200);
digitalWrite(relayIn, LOW);
} else { // message : LONG
digitalWrite(relayIn, HIGH);
delay(1500);
digitalWrite(relayIn, LOW);
}
delay(3000);
}
delay(1000);
}
Arduino UNO R3 にスケッチを書き込みます。
ステップ 3: SORACOM LTE-M Button Plus が動作することを確認する
書き込みを行なったのちにスマホの懐中電灯アプリ等で照度センサを照らすことで、SORACOM LTE-M Button Plus の LED が点灯していることが確認できます。 SORACOM Harvest Data を有効にしているとデータが保存できていることが確認できます。
SORACOM Harvest Data の設定については、ボタンクリック時のデータを SORACOM Harvest Data で確認する を参照してください。
本構成は動作確認はされていますが、長期にわたる運用や動作環境、部品個々の安定性などについては未保証になっていますので、お手元の環境で確認されることをお勧めいたします。
以上で SORACOM LTE-M Button Plus を Arduino から操作できました。