8.5 CheerLights

CheerLightsは、誰でも制御できる同期したライトのグローバルネットワークです。

@CheerLights のLEDカラーチェンジコミュニティに参加し、世界中のLEDが同時に色を変えることができます。

オフィスの一角にLEDを置いて、自分が一人ではないことを思い出せます。

このケースでは、MQTTを利用しますが、自分自身のメッセージを公開する代わりに、「cheerlights」トピックをサブスクライブします。これにより、「cheerlights」トピックに他の人が送信したメッセージを受信し、その情報に基づいて自分のLEDストリップの色を変更することができます。

必要な部品

このプロジェクトでは、以下のコンポーネントが必要です。

一式を購入するのが間違いなく便利です。リンクはこちらです:

名前

このキットのアイテム

リンク

ESP32 Starter Kit

320+

ESP32 Starter Kit

以下のリンクから個別に購入することもできます。

コンポーネントの紹介

購入リンク

ESP32 WROOM 32E

BUY

ESP32カメラ拡張ボード

-

ジャンパーワイヤ

BUY

WS2812 RGB 8 LED ストリップ

BUY

どのように実行しますか?

  1. 回路を組み立てます。

    ../../_images/iot_5_cheerlight_bb.png
  2. 次に、USBケーブルを使ってESP32-WROOM-32Eをコンピュータに接続します。

    ../../_images/plugin_esp32.png
  3. コードを開きます。

    • esp32-starter-kit-main\c\codes\iot_5_cheerlights ディレクトリにある iot_5_cheerlights.ino ファイルを開くか、Arduino IDEにコードをコピーします。

    • ボード(ESP32 Dev Module)と適切なポートを選択した後、 アップロード ボタンをクリックします。

    • "Unknown COMxx"が常に表示されますか?

    • ここでは PubSubClientAdafruit_NeoPixel ライブラリが使用されており、 Library Manager からインストールできます。

      ../../_images/mqtt_lib.png
  4. 次の行を見つけて、あなたの <SSID><PASSWORD> で修正してください。

    // Replace the next variables with your SSID/Password combination
    const char* ssid = "<SSID>";
    const char* password = "<PASSWORD>";
    
  5. 次の行を見つけて、あなたの unique_identifier で修正してください。 unique_identifier が本当にユニークであることを保証してください。同一のIDを持つデバイスが同じ MQTT Broker にログインしようとすると、ログインに失敗する可能性があります。

    // Add your MQTT Broker address:
    const char* mqtt_server = "mqtt.cheerlights.com";
    const char* unique_identifier = "sunfounder-client-sdgvsasdda";
    
  6. 正しいボード(ESP32 Dev Module)とポートを選択した後、 アップロード ボタンをクリックします。

  7. この時点で、RGBストリップが特定の色を表示していることがわかります。デスクに置いてみると、定期的に色が変わるのが分かります。これは他の@CheerLightsフォロワーがあなたのライトの色を変えているからです!

  8. シリアルモニターを開きます。次のようなメッセージが表示されます:

WiFi connected
IP address:
192.168.18.77
Attempting MQTT connection...connected
Message arrived on topic: cheerlights.
Message: oldlace
Changing color to oldlace

グローバルな@CheerLightsデバイスを制御する

  1. Discord Server に参加して、CheerLightsボットを使用して色を設定してください。 CheerLights Discordサーバー のチャンネルで /cheerlights と入力するだけでボットが起動します。

    ../../_images/sp230511_163558.png
  2. ボットが提供する指示に従って色を設定してください。これにより、グローバルにCheerLightsデバイスを制御できます。

    ../../_images/sp230511_163849.png