かえるボタンに機能を追加しようと思い、あのボタンの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件の返信