ESP32 チュートリアル 50/55 - 世界中のどこからでも RGB LED を制御する | SunFounder の ESP32 キット

ESP32 チュートリアル 50/55 - 世界中のどこからでも RGB LED を制御する | SunFounder の ESP32 キット

このチュートリアルでは、ESP32マイクロコントローラを使用してWi-Fi経由でRGB LEDの色を制御する方法を学びます。MQTTプロトコルとAdafruit IOサービスを利用します。このセットアップにより、世界のどこからでもRGB LEDの色を変更でき、IoT技術の実用的なアプリケーションを提供します。また、スライダーやカラーピッカーを使用して希望の色を選択する方法についても探ります。

esp32-50-RGB-LED-mqtt-main

ESP32は強力なマイクロコントローラーで、内蔵のWi-FiとBluetooth機能を備えており、IoTプロジェクトに最適です。このビルドでは、ESP32にRGB LEDを接続し、Adafruitが提供するMQTTブローカーを通じてその色を制御します。チュートリアルでは、ハードウェアのセットアップ、配線の指示、およびすべてをシームレスに動作させるために必要なコードを案内します(ビデオは:00で)。

ハードウェアの解説

esp32-50-RGB-LED
esp32-50-RGB-LED

このプロジェクトでは、主なコンポーネントとしてESP32マイクロコントローラーとRGB LEDを使用します。ESP32はWi-Fiネットワークに接続できるため、Adafruit IOサービスと通信できます。RGB LEDは、赤、緑、青の3つの個別のLEDを含んでおり、それらを混ぜることで広範囲の色を作り出すことができます。

RGB LEDは共通アノードまたは共通カソードの原理で動作します。これは、各LEDのアノード(正)またはカソード(負)が正しく接続されている必要があることを意味します。各色はパルス幅変調(PWM)を使用して制御でき、デューティサイクルを変化させることで各LEDの明るさを調整します。

ES32-38_RGB_LED配線

データシートの詳細

メーカー サンファウンダー
部品番号 RGB LED
順方向電圧 (V)F) 2.0-3.4 V
前方電流 (IF) 20 mA
ピーク波長 (nm) 赤: 620, 緑: 525, 青: 465
パッケージ 標準4ピン
ノート / バリアント 共通アノードまたは共通カソードのオプションが利用可能です

  • 各LEDの色に対して220オームの抵抗を使用して電流を制限してください。
  • 正しい配線を共通アノードまたはカソード構成にしてください。
  • ESP32の電源をチェックして、ブラウンアウトを避けてください。
  • スムーズな色の遷移のために、PWM周波数を制限内に保ってください。
  • Adafruit IOサービスに接続するには、Wi-Fiの認証情報が正しいことを確認してください。

配線指示書

ES32-38_RGB_LED-wiring

RGB LEDをESP32に接続するには、まずRGB LEDのピンを特定します。最も長いピンが共通ピンです。共通アノード構成の場合、このピンを正電圧供給(3.3V)に接続します。他の3つのピンは赤、緑、青のLEDに対応しています。赤ピンをGPIO 27に、緑ピンをGPIO 26に、青ピンをGPIO 25に接続します。これらの接続はそれぞれ220オームの抵抗を介して行い、LEDを流れる電流を制限します。

次に、ESP32の接地(GND)を回路の接地線に接続します。接続が不安定にならないよう、配線がしっかりしていることを確認してください。共通カソードのRGB LEDを使用する場合は、共通ピンを接地に接続し、各色ピンを抵抗を介して正電源に接続します。回路に電源を入れる前に、すべての接続を再確認してください。

コード例とウォークスルー

Arduinoコードでは、識別子を使用して赤、緑、青のLEDのピンを定義することから始めます。redPin,greenPin, とbluePinさらに、各色のPWMチャネルを定義します。redChannelgreenChannel, とblueChannelPWM周波数は、8ビットの解像度で5000 Hzに設定されています。

const int redPin = 27;
const int greenPin = 26;
const int bluePin = 25;

const int redChannel = 0;
const int greenChannel = 1;
const int blueChannel = 2;

中でsetup()関数では、PWMチャネルを初期化し、対応するピンに接続します。また、定義された認証情報を使用してWi-Fiネットワークに接続し、Adafruit IOとの通信のためにMQTTクライアントを設定します。

void setup() {
  ledcSetup(redChannel, freq, resolution);
  ledcAttachPin(redPin, redChannel);
  // Connect to WiFi
  WiFi.begin(WLAN_SSID, WLAN_PASS);
}

メインループはMQTT接続をチェックし、受信したメッセージを処理します。また、現在のRGB値をシリアルモニターに表示します。LEDの色は、MQTTサブスクリプションを通じて受信した値に基づいて更新されます。

void loop() {
  MQTT_connect();
  mqtt.processPackets(500);
  setColor();
}

記事の下に読み込まれた完全なコードを参照して、完全なコードの詳細をご覧ください。

デモンストレーション / 何を期待するか

すべてが設定され、コードがアップロードされると、Adafruit IOダッシュボードを通じて行われた色の変更に対してRGB LEDが反応するのが見えるはずです。赤、緑、青のスライダーを調整すると、LEDはそれに応じて色を変更するはずです。問題が発生した場合は、Wi-Fi接続が安定していることと、MQTTトピック名がコードで定義されているものと一致していることを確認してください(動画の17:30)。

一般的な落とし穴には、誤った配線、不一致のトピック名、正しいWi-Fi認証情報を設定するのを忘れることが含まれます。LEDが点灯しない場合は、抵抗器の接続を再確認し、ESP32が正しく電源が供給されていることを確認してください。

動画のタイムスタンプ

  • 00:00 開始
  • 2:23 プロジェクトの紹介
  • 4:43 MQTTとは何ですか
  • 7:55 Adafruit IO セットアップ
  • 14:09 配線の説明
  • 16:07 コードの説明
  • 27:03 Arduino IDEでESP32ボードとCOMポートを選択する
  • 29:12 プロジェクトデモンストレーション
  • 31:25 RGB LEDとは何ですか?
  • 35:26 RGBカラー

画像

ESP32_rgb_pin
ESP32_rgb_pin
ESP32_RGB_led_wires
ESP32_RGB_led_wires
ES32-38_RGB_LED-wiring
ES32-38_RGB_LED-wiring
esp32-50-RGB-led
esp32-50-RGB-led
esp32-50-RGB-led-mqtt-main
esp32-50-RGB-led-mqtt-main
852-ESP32 Tutorial 50/55- Arduino code to control RGB LED using MQTT service of Adafruit
言語: C++
コピーしました!

リソースと参考文献

まだリソースはありません。

ファイル📁

ファイルは利用できません。