ESP32 チュートリアル 52/55 - WS2812 CheerLights MQTT グローバル同期 LCD 付き | SunFounder ESP32 IoT キット
このチュートリアルでは、ESP32を使用してCheerLightsプロジェクトを作成します。このプロジェクトは、MQTTを介して色をグローバルに同期させるものです。このプロジェクトは、他のユーザーからの入力に基づいて色を変更するだけでなく、現在の色とそれが更新された回数をLCDスクリーンに表示します。その結果は、IoTの能力を示す楽しいデモンストレーションとなり、デバイスがどのようにインタラクトし、距離を超えてユーザーをつなげることができるかを示しています。追加の説明が必要な場合は、動画を(動画内の00:00で)ご覧ください。
esp32-52-チアライト-LCD-メイン
ハードウェアの説明
このプロジェクトを構築するには、ESP32マイクロコントローラ、WS2812 LEDストリップ、およびLCDディスプレイが必要です。ESP32は操作の中心となり、内蔵のWi-Fi機能を利用してインターネットに接続し、MQTTメッセージを受信します。これにより、他のユーザーからのグローバルな入力に基づいてLEDの色がリアルタイムで更新されます。
WS2812 LEDストリップは、アドレス指定可能なRGB LEDを必要とするプロジェクトに人気の選択肢です。各LEDは独立して制御できるため、豊かな色彩表示が可能です。LCDは現在の色と変更回数の視覚的確認を提供し、ユーザーインタラクションを向上させます。
チェーライト_LCD
データシートの詳細
| 製造業者 |
サンファウンダー |
| 部品番号 |
ESP32 |
| ロジック/IO電圧 |
3.3 V |
| 供給電圧 |
5 V |
| 出力電流(チャネルごと) |
20 mA |
| ピーク電流(チャネルごと) |
60 mA |
| PWM周波数ガイダンス |
400 Hz |
| 入力ロジックの閾値 |
0.15 V(低)、0.8 V(高) |
| 電圧降下 / RDS(on)/ サaturation |
0.2 V |
| 熱的制限 |
85 °C |
| パッケージ |
ESP32モジュール |
| メモ / バリアント |
内蔵のWi-FiとBluetoothを搭載しています。 |
- ESP32(5 V)およびWS2812ストリップ(5 V)に適切な電源を供給してください。
- ESP32とLEDストリップの間に共通の接地を使用してください。
- カラー同期のための適切なMQTTブローカーを実装します。
- WS2812のデータピン接続に注意してください(コードに従ってピン14です)。
- LEDの数には注意してください。電力制限を超えると追加の電源が必要になります。
配線手順
ESP32-11_LCD-wiring
esp32-47-cheer-light-wiringコンポーネントを配線するには、まずWS2812 LEDストリップを接続します。LEDストリップのグラウンドピン(通常は黒)をESP32のグラウンドピンに接続します。次に、LEDストリップのVCCピン(通常は赤)をESP32の5V出力に接続します。最後に、データピン(多くの場合黄色)をESP32のGPIOピン14に接続します。
LCDのために、グラウンドピン(多くの場合は黒)をESP32のグラウンドに接続します。VCCピン(通常は赤)は5V出力に接続する必要があります。SDAピン(一般的には灰色)はGPIOピン21に接続され、SCLピン(通常は白)はGPIOピン22に接続されます。この設定により、ESP32はLCDと通信し、必要に応じて情報を表示できます。
コード例とウォークスルー
セットアップ関数では、LCDを初期化し、Wi-Fiに接続します。以下のコードは、必要なライブラリを定義し、LCDを設定する方法を示しています:
#include
#include
LiquidCrystal_I2C lcd(0x27, 16,2); // set the LCD address
void setup() {
Serial.begin(115200);
lcd.init(); // initialize the lcd
lcd.backlight(); // Turns on the LCD backlight.
}
これはLCDを使用するために初期化し、メッセージを表示できるようにします。次の抜粋では、Wi-Fi接続の確立方法を示します。
void setup_wifi() {
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
lcdConnect(); //for LCD
delay(500);
}
Serial.println("WiFi connected");
}
この機能は指定されたWi-Fiネットワークへの接続を確立し、接続中にLCDにメッセージを表示します。最後に、色の変更ロジックはコールバック関数で処理されます。
void callback(char* topic, byte* message, unsigned int length) {
String messageTemp;
for (int i = 0; i < length; i++) {
messageTemp += (char)message[i];
}
if (String(topic) == "cheerlights") {
setColor(messageTemp);
}
}
この関数は「cheerlights」トピックに届くメッセージをリッスンし、それに応じて色を更新します。完全なコードは記事の下に読み込まれるので、完全な実装を確認するためにレビューしてください。
デモンストレーション / 期待すること
プロジェクトが完了すると、LEDストリップはグローバルMQTTフィードからの入力に基づいて色を変えることができます。LCDは現在の色の名前と、どのくらいの回数それが変更されたかを表示します。インターネットを切断すると、LCDには「接続中...」と表示され、接続が再確立されるまで続きます(ビデオの12:30に)。
一般的な落とし穴には、データ接続に正しいピンが使用されていることを確認することや、Wi-Fiの資格情報が正確であることを確認することが含まれます。SSIDやパスワードに不一致がある場合、ESP32は接続に失敗し、LCDは接続中のメッセージを表示し続けます。
ビデオのタイムスタンプ
- 00:00 開始
- 1:59 プロジェクトの紹介
- 6:16 配線の説明
- 8:13 Arduinoコードの説明
- 14:26 Arduino IDEでESP32ボードとCOMポートを選択中
- 16:07 LCDによるCheerLightデモンストレーション
画像
ESP32-11_LCD-wiring
esp32-47-cheer-light-wiring
esp32-52-cheer-light-lcd-main
cheeLights_LCD
esp32-47-cheer-light-wiring
esp32-52-cheer-light-lcd-main
853-ESP32 Tutorial 52/55- CheerLight MQTT and LCD
言語: C++