در این آموزش، ما یاد میگیریم که چگونه رنگ یک LED RGB را با استفاده از میکروکنترلر ESP32 از طریق Wi-Fi کنترل کنیم، با استفاده از پروتکل MQTT و سرویس Adafruit IO. این تنظیم به شما این امکان را میدهد که رنگ LED RGB را از هر نقطهای در جهان تغییر دهید و یک کاربرد عملی از فناوری IoT را فراهم میآورد. ما همچنین بررسی خواهیم کرد که چگونه میتوان از لغزندهها و انتخابگر رنگ برای انتخاب رنگ مورد نظر استفاده کرد.
esp32-50-rgb-led-mqtt-main
ESP32 یک میکروکنترلر قدرتمند است که دارای قابلیتهای Wi-Fi و Bluetooth داخلی است و آن را برای پروژههای IoT ایدهآل میسازد. در این ساختار، ما یک LED RGB را به ESP32 متصل خواهیم کرد و رنگ آن را از طریق یک کارگزار MQTT که توسط Adafruit ارائه شده کنترل خواهیم کرد. این آموزش شما را از طریق تنظیمات سختافزاری، دستورالعملهای سیمکشی و شِفر (کود) لازم برای کارکرد هموار همه چیز راهنمایی خواهد کرد (در ویدئو در 00:00).
توضیح سختافزار
اسپ۳۲-۵۰-دیود الایدی RGBاسپ ۳۲-۵۰-آلدی-آر جی بی
برای این پروژه، اجزای اصلی که استفاده خواهیم کرد میکروکنترلر ESP32 و LED RGB هستند. ESP32 قادر به اتصال به شبکههای Wi-Fi است و به این ترتیب میتواند با سرویس Adafruit IO ارتباط برقرار کند. LED RGB شامل سه LED مستقل (قرمز، سبز و آبی) است که میتوانند با هم ترکیب شوند تا طیف وسیعی از رنگها را ایجاد کنند.
LED RGB بر اساس اصل آند مشترک یا کاتد مشترک کار میکند، به این معنی که آند (مثبت) یا کاتد (منفی) هر LED باید به درستی متصل شود تا کار کند. هر رنگ میتواند با استفاده از مدولاسیون عرض پالس (PWM) کنترل شود، که با تغییر چرخه کار، روشنایی هر LED را تنظیم میکند.
ES32-38_RGB_LED-وایرینگ
جزئیات دیتاشیت
تولیدکننده
SunFounder
شماره قطعه
LED RGB
ولتاژ پیشخوان (V)F)
۲.۰-۳.۴ ولت
جریان پیشرو (IF)
۲۰ میلی آمپر
طول موج اوج (نانومتر)
قرمز: ۶۲۰، سبز: ۵۲۵، آبی: ۴۶۵
بسته
استاندارد ۴ پایه
یادداشتها / واریانتها
گزینههای آند مشترک یا کاتد مشترک در دسترس است
برای هر رنگ LED از مقاومتی ۲۲۰ اهمی برای محدود کردن جریان استفاده کنید.
اطمینان حاصل کنید که سیمکشی به درستی برای پیکربندی آند مشترک یا کاتد مشترک انجام شده است.
منبع تغذیه ESP32 را بررسی کنید تا از افت ولتاژ جلوگیری شود.
فرکانس PWM را در محدودههای مجاز نگهدارید تا انتقالات رنگ به طور نرم انجام شود.
اطمینان حاصل کنید که اطلاعات احراز هویت Wi-Fi برای اتصال به سرویس Adafruit IO صحیح است.
دستورالعملهای سیمکشی
ES32-38_RGB_LED-wiring
برای اتصال LED RGB به ESP32، با شناسایی پایانهها روی LED RGB شروع کنید. بلندترین پایانه، پایانه مشترک است. برای یک پیکربندی آند مشترک، این پایانه را به منبع ولتاژ مثبت (3.3V) متصل کنید. سه پایانه دیگر مربوط به LED های قرمز، سبز و آبی هستند. پایانه قرمز را به GPIO 27، پایانه سبز را به GPIO 26 و پایانه آبی را به GPIO 25 متصل کنید. هر یک از این اتصالات باید از طریق یک مقاومت 220 اهمی انجام شود تا جریان عبوری از LED ها محدود شود.
سپس، زمین (GND) ESP32 را به خط زمین مدار خود متصل کنید. اطمینان حاصل کنید که اتصالات محکم هستند تا از هرگونه اتصال ناپایدار جلوگیری شود. اگر از یک LED RGB کاتد مشترک استفاده میکنید، پایه مشترک را به زمین متصل کنید و پایههای رنگی جداگانه را از طریق مقاومتها به منبع مثبت وصل کنید. قبل از تامین برق مدار، تمام اتصالات را دوباره بررسی کنید.
نمونههای شِفر (کود) و راهنمایی
در شِفر (کود) آردوینو، ما با تعریف پایهها برای ال ای دیهای قرمز، سبز و آبی با استفاده از شناسهها شروع میکنیم.redPin,greenPin, andbluePinبعلاوه، ما کانالهای PWM را برای هر رنگ تعریف میکنیم با استفاده ازredChannel,greenChannel, andblueChannelفرکانس PWM به 5000 هرتز با دقت 8 بیت تنظیم شده است.
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 متصل میشویم و مشتری MQTT را برای برقراری ارتباط با Adafruit IO تنظیم میکنیم.
حلقه اصلی اتصال MQTT را بررسی کرده و پیامهای ورودی را پردازش میکند. همچنین مقادیر RGB فعلی را به نمایشگر مسلسل چاپ میکند. رنگ LED بر اساس مقادیر دریافتی از طریق اشتراکگذاری MQTT بهروزرسانی میشود.
برای جزئیات بیشتر در مورد شِفر (کود) کامل، لطفاً به شِفر (کود) کامل بارگذاری شده در زیر مقاله مراجعه کنید.
نمایش / چه انتظاری داشته باشید
پس از اینکه همه چیز تنظیم شد و شِفر (کود) بارگذاری شد، باید ببینید که LED RGB به تغییرات رنگی که از طریق داشبورد Adafruit IO انجام میدهید، پاسخ میدهد. وقتی که لغزندههای قرمز، سبز و آبی را تنظیم میکنید، LED باید رنگ خود را به تناسب تغییر دهد. اگر با مشکلی مواجه شدید، مطمئن شوید که اتصال Wi-Fi پایدار است و نامهای موضوع MQTT با آنچه در شِفر (کود) تعریف شده است، مطابقت دارد (در ویدیو در ساعت 17:30).
چالشهای رایج شامل سیمکشی نادرست، نامهای موضوع نامتناسب و فراموش کردن تنظیم اعتبارنامههای صحیح Wi-Fi است. اگر LED روشن نشد، اتصالات مقاومت را دوباره بررسی کنید و اطمینان حاصل کنید که ESP32 به درستی مقداردهی شده است.