ENGINEER BLOG ENGINEER BLOG
  • 公開日
  • 最終更新日

【IoT】『押したらLambda関数が起動するボタン』を作成してみる(前編)

この記事を共有する

目次

サービスG松原です。 今回はRaspberry Pi Pico W(以下 Pico W)とAWS IoT Core(以下IoT Core)を使用して『押したらLambda関数が起動するボタン』を作っていきます。

※すこし長いので前後編で分けます。この記事は前編です。(IoT Coreが出てくるのは後半からです)

やりたいこと

最終的に目指すのは『押したらLambda関数が起動するボタン』です。以下のような処理を行います。

  • Pico W に接続したタクトスイッチを押すとIoT CoreにMQTTメッセージを送信
  • MQTTメッセージの受信を起因としてAWS Lambda(以下Lambda)の関数を起動

構成図1.png

前編ではローカルでPico Wの初期設定まで行います。以下のような構成で機器を設定します。

  • スイッチを押したらLEDが点灯

構成図2.png

Raspberry Pi Pico W とは?

まず最初に簡単にRaspberry Pi Picoについて説明します。 Raspberry Pi PicoはRaspberry Pi財団が開発した小型/低価格のマイコン(マイクロコントローラ)です。 Pico WはPicoの通信機能付きモデルで、Wifiに接続してAWSとオンラインで通信することが可能です。

この機器、通常のRaspberry Piと異なりLinuxではなく組み込み開発向けのプログラムで稼働する点が特徴です。 この点敷居が高いと思っていたのですが、実際にやってみるとスクリプト(Pythonファイル)だけで稼働するので以外と簡単でした。

環境準備

用意するもの

今回の構成では以下の機器/部品を使用します。

  • Raspberry Pi Pico W :1台
  • ブレットボード:1個
  • リニアスイッチ:1個
  • LED:1個
  • 抵抗器:1個
  • ジャンパー線:4本
  • Micro USB ケーブル(PicoWとPCの接続用ケーブル)

Thonnyのインストール

まずIoTの開発環境としてPCにThonnyをインストールします。

Thonny公式ページからインストーラを取得しインストールします。

MicroPythonファームウェアのインストール

RaspberryPi公式ページにアクセスし、Pico Wのリンクを押下し、ファームウェア(.uf2ファイル)を入手します。

続いてPCにPico Wを接続し、ディスクとして認識されたPico Wにファームウェアファイルを保存します。
※ディスクとして認識されない場合はPicoW本体のBOOTSELボタン(白いボタン)を押しながら接続してください。

PCにPico Wを再接続し、Thonnyを開きます。MicroPython(Rasoberry Pi Pico)が認識されていればOKです。 Thonnyでは[MicroPython(Rasoberry Pi Pico)]を選択した状態で作業を行います。

スクリーンショット 2025-09-08 21.05.27.png

動作確認:LED点灯と消灯

動作検証としてPico WのオンボードのLEDを点灯/消灯テストします。

Thonnyの右下のシェルで以下を入力します。RaspberryPi本体のLEDが緑に点灯したら成功です。

import machine
led = machine.Pin("LED",machine.Pin.OUT)
led.on()

LEDを消灯するには続けて以下のコマンドを実行します。

led.off()

設定

配線の設定

続いてPico Wにタクトスイッチを接続するために配線していきます。 ブレットボードにPico WのGPIOピンをを接続し、写真のように配線します。

IMG_0203.jpg

IMG_0204.jpg

  • LED:14番ピン(GP10)にLEDのプラス側を接続、マイナス側に抵抗を接続し、18番ピン(GND)に接続
  • タクトスイッチ:21番ピン(GP16)に一方を接続、もう一方は33番ピン(GND)に接続

Pico Wのピン配置はこちらを参照。

タクトスイッチを押すとLEDを点灯する処理の実装

以下のコードをThonnyのエディタ上で作成し、ファイル>名前を付けて保存>RaspberryPi Pico>main.pyとして保存します。

import machine
import time
led = machine.Pin('GP10',machine.Pin.OUT)
button = machine.Pin('GP16',machine.Pin.IN, machine.Pin.PULL_UP)
while True:
    if button.value():
        led.off()
    else:
        led.on()
    time.sleep (0.1)

上記はタクトスイッチを押すとLEDが点灯する処理です。

Pico W が起動する時はmain.pyが自動実行されるため、これでスイッチを押すとLEDが点灯するIoT機器の完成です。

動作検証

Pico WをPC以外の電源に接続した状態でタクトボタンを押すとLEDが...光る!

LED点灯.jpg

今回はここまでです。

おわりに

今回の手順でまずは『押したらLEDが点灯するボタン』ができました。 次回はこの機器をIoT Coreに接続していきます。乞うご期待!ありがとうございました!

この記事は私が書きました

松原 唯介

記事一覧

2024年4月入社 サービスG所属

松原 唯介

この記事を共有する

クラウドのご相談

CONTACT

クラウド導入や運用でお悩みの方は、お気軽にご相談ください。
専門家がサポートします。

サービス資料ダウンロード

DOWNLOAD

ビジネスをクラウドで加速させる準備はできていますか?
今すぐサービス資料をダウンロードして、詳細をご確認ください。