در این آموزش، ما یک سیستم نورپردازی همزمان با استفاده از ESP32 و LEDهای WS2812 ایجاد خواهیم کرد که میتواند از راه دور از طریق MQTT کنترل شود. این سیستم به چندین کاربر این امکان را میدهد که به طور همزمان رنگ چراغها را تغییر دهند و تجربهای متصل را بدون توجه به مکان ایجاد کنند. این پروژه از کیت IoT SunFounder ESP32 استفاده میکند که شامل یک میکروکنترلر قدرتمند با قابلیتهای Wi-Fi است و آن را برای برنامههای IoT ایدهآل میسازد.
WS2812_strip.روشن
در طول ویدئو، ما به مراحل لازم، سیمکشی و پیادهسازی شِفر (کود) برای دستیابی به این اثر میپردازیم. اگر به توضیحات بیشتری نیاز دارید، حتماً ویدئو را در زمانهای مشخص (در ویدئو در mm:ss) مشاهده کنید.
توضیح سختافزار
عناصر اصلی این پروژه شامل میکروکنترلر ESP32، نوار LED WS2812 و بروکر MQTT است. ESP32 یک میکروکنترلر چندمنظوره با قابلیتهای Wi-Fi و بلوتوث داخلی است که امکان اتصال به اینترنت را به آسانی فراهم میکند. این میکروکنترلر به عنوان مغز پروژه ما عمل میکند و ارتباطات را مدیریت کرده و نوار LED را کنترل میکند.
نوار LED WS2812 شامل LED های RGB با آدرسدهی جداگانه است که میتوانند برای نمایش دامنه وسیعی از رنگها کنترل شوند. هر LED میتواند روشن یا خاموش شود و به هر رنگی با استفاده از یک خط داده تنظیم شود، که آن را برای افکتهای نوری دینامیک ایدهآل میسازد. بروکر MQTT ارتباط بین مشتریان مختلف را تسهیل میکند و به کاربران اجازه میدهد موضوعاتی را که رنگ LED ها را کنترل میکنند منتشر و دنبال کنند.
جزئیات برگه مشخصات
تولیدکننده
آدافروت
شماره قطعه
WS2812B
ولتاژ منطق/ورودی-خروجی
۳.۵ - ۵.۵ ولت
ولتاژ تأمین
۵ ولت
جریان خروجی (به ازای هر کانال)
۲۰ میلیآمپرساعت
جریان اوج (به ازای هر کانال)
۶۰ میلیآمپر
راهنمای فرکانس PWM
۴۰۰ هرتز
آستانههای منطقی ورودی
0.2Vcc (پایین)، 0.7Vcc (بالا)
افت ولتاژ / RDS(on)/ اشباع
۰.۵ ولت
محدودیتهای حرارتی
دمای عملیاتی: -25 تا 85 °C
بسته
فرد 5050 SMD
یادداشتها / واریانتها
در انواع طولها و پیکربندیهای مختلف در دسترس است
اطمینان حاصل کنید که تأمین برق کافی برای نوار WS2812 وجود داشته باشد تا از افت ولتاژ جلوگیری شود.
از یک زمین مشترک بین ESP32 و نوار LED استفاده کنید.
خطوط داده را کوتاه نگهدارید تا از کاهش کیفیت سیگنال جلوگیری شود.
استفاده از یک خازن (1000μF) در مقابل منبع تغذیه برای کاهش نوسانات ولتاژ را در نظر بگیرید.
از مقاومتهای مناسب در خط داده استفاده کنید تا از بازتاب سیگنال جلوگیری شود.
به مصرف کل جریان نوار LED توجه داشته باشید؛ در صورت لزوم از منبع برق خارجی استفاده کنید.
دستورالعملهای سیمکشی
برای اتصالات ESP32 با نوار LED WS2812، با اتصال منبع تغذیه شروع کنید. سیم قرمز نوار LED را به یک منبع تغذیه 5 ولت و سیم سیاه را به زمین متصل کنید. سپس، خط داده (سیم زرد) را از نوار WS2812 به پایه 14 روی ESP32 متصل کنید. اطمینان حاصل کنید که ESP32 نیز به همان زمین نوار LED متصل است تا یک مرجع مشترک حفظ شود.
پس از راهاندازی اتصالات برق و داده، ESP32 را با استفاده از یک کابل میکرو USB به کامپیوتر خود متصل کنید تا برنامهنویسی انجام شود. شما باید اطمینان حاصل کنید که ESP32 در حین برنامهنویسی روشن است تا اتصال برقرار شود. پس از برقراری ارتباط، میتوانید به بارگذاری شِفر (کود) و آزمایش تنظیمات ادامه دهید.
esp32-47-cheer-light-wiring
نمونههای شِفر (کود) و راهنمایی
شِفر (کود) با وارد کردن کتابخانههای ضروری برای عملکرد Wi-Fi و MQTT آغاز میشود. شناسههاssidوpasswordبرای ذخیره اطلاعات کاربری Wi-Fi شما استفاده میشوند، در حالی کهmqtt_serverآدرس بروکر MQTT را نگه میدارد.
سپس، رنگهای پشتیبانی شده CheerLights و مقادیر RGB مربوطه آنها را با استفاده از آرایهها تعریف میکنیم. این امر به برنامه اجازه میدهد تا به راحتی تنظیمات رنگ را بر اساس ورودی کاربر دسترسی پیدا کند.
حلقه اصلی به طور مداوم اتصال MQTT را بررسی کرده و پیامهای دریافتی که رنگهای LED را کنترل میکنند، پردازش میکند.callback()عملکرد زمانی فعال میشود که یک پیام در موضوع اشتراکگذاری شده دریافت شود.
نمایش / چه انتظاری باید داشت
پس از اینکه همه چیز تنظیم شد و شِفر (کود) بارگذاری شد، باید قادر باشید رنگ LED های WS2812 را با ارسال پیام به موضوع MQTT تغییر دهید. اگر کاربر دیگری رنگ را تغییر دهد، تمام دستگاههای متصل بهطور همزمان تغییر را منعکس خواهند کرد. مراقب مشکلات احتمالی مانند قطبیت معکوس یا اتصالات نادرست باشید که میتواند از عملکرد صحیح LED ها جلوگیری کند (در ویدیو در دقیقه:ثانیه).
زمانبندی ویدئو
۰۰:۰۰ شروع
۲:۰۰ مقدمه
۳:۴۸ صفحه مستندات
6:33 توضیحاتی درباره سیمکشی
شِفر (کود) آردوینو توضیح داده شده در 7:35
۱۵:۰۳ انتخاب تخته ESP32 و پورت COMP در Arduino IDE