SORACOM LTE-M Button の通知をラズパイのLEDで知らせる

かえるボタンに機能を追加しようと思い、あのボタンの3種のボタン通知に応じてラズパイのGPIOに接続したLEDを点灯させてみました。

フロー

SORACOM LTE-M Button クリック > AWS IoT 1-Click > Lambda > AWS IoT Core
RasPi は AWS IoT Coreに対してMQTT subscribe

topic: kaeru/001
message : {"click_type": <click type> } # click type はSINGLE, DOUBLE, LONG

AWS Lambda

ボタンクリックによって呼び出されるLambda関数にAWS IoT Coreへpublishするコードを追加します。

import boto3
iot = boto3.client('iot-data')

def publish_iot(event):
    topic = 'kaeru/001'
    payload = {
        "click_type": event['deviceEvent']['buttonClicked']['clickType']
    }
    try:
        iot.publish(topic=topic, qos=0, payload=json.dumps(payload, ensure_ascii=False))
    except Exception as e:
        print(e)

Raspberry Pi

以前作成したLEDボードがありましたのでこれを使いました。赤LED 3個、緑1個なので、赤色LEDをそれぞれ点灯

SINGLE: 赤LED 1個
DOUBLE: 赤LED 2個
LONG : 赤LED 3個

緑色LEDは動作中点灯。スイッチクリックで赤色LEDを消灯して次の受信に備えます。

ラズパイのプログラムは
昨日の投稿のaws-iot-device-sdk-pythonのサンプルbasicPubSub.pyを少し修正してsubscribeプログラムを作成します。
メッセージに応じてGPIOのOn/Offを行えばOK。

ボタンのクリックに応じて無事LEDが点灯しました。
SINGLE受信時とLONG受信時です。

かえるボタンと組み合わせるとスマホが手元に無いときやスマホに送信されたLINE Notifyに気付かない時、あるいはかえるボタンを登録していない人でもかえるボタンが発動したことが解ります。

“SORACOM LTE-M Button の通知をラズパイのLEDで知らせる” への1件の返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です