注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ ここ]をクリックして今すぐ参加しましょう!
CheerLights
CheerLightsは、誰でも制御できるグローバルな同期ライトのネットワークです。 @CheerLights - Twitter のLEDカラーチェンジコミュニティに参加し、世界中のLEDを同時に色を変えられるようにしましょう。オフィスの片隅にLEDを置いて、自分が一人でないことを思い出しましょう。
このケースでは、MQTTを使用しますが、自分のメッセージを公開する代わりに、「cheerlights」というトピックにサブスクライブします。これにより、他の人が「cheerlights」トピックに送信したメッセージを受信し、その情報を使用してLEDストリップの色を変更することができます。
必要なコンポーネント
このプロジェクトには以下のコンポーネントが必要です。
全体のキットを購入すると便利です。こちらがリンクです:
名称 |
このキットのアイテム数 |
リンク |
|---|---|---|
Elite Explorer Kit |
300+ |
以下のリンクから別々に購入することもできます。
コンポーネント紹介 |
購入リンク |
|---|---|
- |
|
配線図
回路図
ライブラリのインストール
ライブラリをインストールするには、Arduinoライブラリマネージャーを使用し、「ArduinoMqttClient」と「FastLED」を検索してインストールしてください。
ArduinoMqttClient.h:MQTT通信用に使用します。
FastLED.h:RGB LEDストリップのドライブに使用します。
コードの実行
注釈
ファイル
05_cheerlight.inoをelite-explorer-kit-main\iot_project\05_cheerlightのパスから直接開くことができます。または、このコードをArduino IDEにコピーしてください。
注釈
コード内で、SSIDとパスワードは arduino_secrets.h に格納されています。この例をアップロードする前に、自分のWiFiの認証情報でそれらを修正する必要があります。さらに、コードを共有または保存する際には、この情報を機密に保つためのセキュリティ対策を講じてください。
グローバルな@CheerLightsデバイスを制御する
Discordサーバー に参加し、
/CheerLightsボットを利用して色を設定します。 CheerLights Discord Server の任意のチャンネルで「/cheerlights」と入力してボットをアクティブにします。
ボットが提供する指示に従って色を設定します。これにより、グローバルにCheerLightsデバイスを制御できます。
どのように動作するのか?
こちらはコードの主要部分とその機能の説明です:
必要なライブラリを含む:
WiFiS3.h:Wi-Fi接続の処理に使用します。ArduinoMqttClient.h:MQTT接続の処理に使用します。FastLED.h:NeoPixel LEDストリップの制御に使用します。
いくつかの定数を定義する:
NUM_LEDS:LEDストリップ上のLEDの数。DATA_PIN:LEDストリップを制御するためにArduinoに接続されているデータピン。arduino_secrets.h:Wi-Fiネットワーク名とパスワードを含むヘッダーファイルで、機密情報を保護します。broker:MQTTサーバーのアドレス。port:MQTTサーバーのポート。topic:サブスクライブするMQTTトピック。
いくつかのグローバル変数を定義する:
CRGB leds[NUM_LEDS]:LEDの色データを格納するための配列。colorName:CheerLightsプロジェクトでサポートされている色名の配列。colorRGB:色名に対応するRGBカラーコードの配列。
setup()関数:シリアル通信を初期化します。
Wi-Fiモジュールが存在するかを確認し、そのファームウェアバージョンを出力します。
Wi-Fiネットワークに接続を試み、失敗した場合は10秒待って再試行します。
接続に成功したら、MQTTブローカー(サーバー)に接続し、指定されたトピックにサブスクライブします。
NeoPixel LEDストリップを初期化します。
loop()関数:定期的に
mqttClient.poll()関数を呼び出して、MQTTメッセージを受信し、MQTTのキープアライブ信号を送信します。継続的な接続を避けるために5秒の遅延を追加します。
printWifiData()およびprintCurrentNet()関数は、Wi-Fiネットワークおよび接続情報を出力するために使用されます。printMacAddress()関数は、MACアドレスを16進数形式で印刷するために使用されます。onMqttMessage()関数は、MQTTメッセージが受信されたときにトリガーされるコールバック関数です。受信したトピックとメッセージ内容を出力し、メッセージ内容を小文字に変換します。トピックが「cheerlights」の場合、setColor()関数を呼び出して、LEDストリップの色を設定します。setColor()関数は、色名をパラメータとして取り、colorName配列で一致する色を探します。一致する色が見つかった場合、LEDストリップの色を対応するRGB値に設定し、FastLED.show()関数を使用してLEDストリップの色を更新します。