LoginSignup
9
9

More than 1 year has passed since last update.

Raspberry Pi Pico WをAlexa対応デバイス化

Posted at

Echo DotやスマホアプリなどのAlexaからRaspberry Pi Pico W上のLEDやポートをコントロールできるようにしてみました。
Raspberry Pi Pico WをAlexa対応デバイスにして、音声やスマートフォンのアプリからコントロール可能です。

image.png

開発環境

開発環境は、ライブラリが豊富なArduinoIDEを使用します。ボード定義は、Raspberry Pi PicoのオフィシャルSDKベースで作られているarduino-picoを使用しました。

ライブラリ

M5StackやESP32のボード向けに作られたEspalexaをフォークし、Raspberry Pi Pico W向けに改版したPicoalexaを作りました。

ZIP形式でダウンロードして、Arduino IDEにインポートすれば使えます。

スケッチ

Raspberry Pi Pico WにつなげたLEDをAlexaからコントロールできるようにスケッチを書きました。Raspberry Pi Pico W上のLEDはPWMが使用できないため、外に付けてます。ON/OFFだけでしたらRaspberry Pi Pico W上のLEDで良いと思います。

※WiFiのSSID(ssid)とパスワード(password)は、自分の環境のものに変えて下さい。

#include <WiFi.h>
#include <Picoalexa.h>

#define STASSID "ssid"
#define STAPSK "password"
#define LED     D20

const char *ssid = STASSID;
const char *pass = STAPSK;

WiFiMulti multi;
Picoalexa Picoalexa;

void LedChanged(uint8_t brightness) {
    Serial.print("Device 1 changed to ");
    
    if (brightness) {
      Serial.print("ON, brightness ");
      Serial.println(brightness);
      analogWrite(LED, brightness);
    }
    else  {
      analogWrite(LED, 0);
      Serial.println("OFF");
    }
}

void setup()
{
  Serial.begin(115200);
  pinMode(LED,OUTPUT);

  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  multi.addAP(ssid, pass);

  if (multi.run() != WL_CONNECTED) {
    Serial.println("Unable to connect to network, rebooting in 10 seconds...");
    delay(10000);
    rp2040.reboot();
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  
  Picoalexa.addDevice("Pico", LedChanged);
  Picoalexa.begin();    
}
 
void loop()
{
   Picoalexa.loop();
   delay(1);
}

動作確認

スケッチを書き込んだあとにRaspberry Pi Pico WがWi-Fiにつながれば準備OKです。
スマートフォンのAlexaアプリからデバイスを追加します。

デバイスの種類は、その他を選びます。
image.png

通信方式は、Wi-Fiを選びます。
image.png

次のように表示されれば、接続OKです。
image.png

デバイス一覧に設定したPicoが表示されるので、それを選べばコントロールできます。
image.png

スライドバーに従って、LEDの明るさが変化しました。動作OKです。
image.png

もちろん、音声でもコントロールできました!
image.png
(手持ちが初期の方のEcho Dotなので、そろそろ最近のに買い替えたい)

最後に

スケッチの中にデバイスを複数にすれば、Raspberry Pi Pico Wで複数のLEDやリレーなどをコントロールすることもできるので、音声やスマートフォンからデバイスをコントロールしたい場合はけっこう応用がききそうです。

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9