فهرست مطالب:

دیوار LED 500 با ESP32: 16 مرحله
دیوار LED 500 با ESP32: 16 مرحله

تصویری: دیوار LED 500 با ESP32: 16 مرحله

تصویری: دیوار LED 500 با ESP32: 16 مرحله
تصویری: ESP32 Tutorial 54 - Set WS2812 LED Strip Color over Wifi | SunFounder's ESP32 IoT Learnig kit 2024, جولای
Anonim
دیوار 500 LED با ESP32
دیوار 500 LED با ESP32

سلام به همه! در پایان این آموزش شما می دانید که چگونه دیوار LED خود را ایجاد کنید.

این آموزش بر اساس برنامه تابستانی ارائه شده در دانشگاه قلب مقدس است.

خوش بگذره!

تدارکات

لوازم ذکر شده در زیر.

مرحله 1: لوازم

تدارکات
تدارکات

بیایید با جمع آوری همه چیزهایی که برای تکمیل Led Wall خود نیاز داریم ، جمع آوری کنیم:

(پیوندها در 7/10/2019 ایجاد شد)

نرم افزار آردوینو IDE

میکرو کنترلر ESP32

چراغ پیکسل LED

منبع تغذیه

سیم برق

ابزار سیم کشی

کابل های جامپر Breadboard

سیم برق

مرحله 2: تعیین منبع تغذیه مناسب برای LedWall شما

یک روش ریاضی ساده برای پیدا کردن منبع تغذیه مناسب برای شما وجود دارد.

ما از قانون قدرت اهم استفاده می کنیم: P = IxV (قدرت = شدت x ولتاژ)

ولتاژ توسط led های ما تعیین می شود: در این مورد 5V.

شدت بستگی به سخت افزار دارد ، یک Led تنها 30mA مصرف می کند.

بنابراین هر نوار 50 Leds 50 * 30mA = 1250mA = 1.25A مصرف می کند.

بنابراین دیوار 500 Led ما 10 برابر (10 نوار) مصرف می کند: 12.5A.

مصرف برق پس از آن 5V x 12.5A = 62.5W برای Leds است.

البته ، در بالای Leds شما باید ESP و هر مورد دیگر از مدار خود را حساب کنید.

ما منبع تغذیه 60A داریم ، مقدار بیشتری از آنچه نیاز داریم داریم.

مرحله 3: سیم برق

Image
Image

منبع تغذیه ما دارای اتصالات سیم است. ما باید یک سیم برق را برای اتصال آن به یک پریز 110 ولت مناسب کنیم.

- اتصال زن را از سیم برق جدا کنید. ما قسمت مردانه را نگه می داریم ، در غیر این صورت به عنوان NEMA 5-15P شناخته می شود.

- کابل را بچسبانید تا حدود 3 میلی متر مس روی همه سیم ها قابل مشاهده باشد.

در اینجا یک آموزش ویدیویی سریع در مورد چگونگی جدا کردن سیم ها آمده است:

مرحله 4: سیم کشی منبع تغذیه

تغذیه ESP32S
تغذیه ESP32S

در حال حاضر ما آماده سیم کشی منبع تغذیه خود هستیم!

همیشه هنگام کار روی منبع تغذیه آن را از برق بکشید.

سیم کشی

  • سیم سیاه (فاز) به پین L منبع تغذیه متصل می شود
  • سیم سفید (خنثی) به پین 'N' منبع تغذیه متصل می شود
  • سیم سبز به پین "Ground" منبع تغذیه متصل می شود

(اگر سیم های داخلی سیم برق شما با رنگ ما مشابه نیستند ، ایمن باشید و نقشه ها را بصورت آنلاین جستجو کنید.)

آزمایش کردن

سیم برق رایانه را به هر پریز برق وصل کنید. چراغ سبز رنگ منبع تغذیه باید روشن شود.

مرحله 5: اتصال به ESP32S

با نگاه کردن به ESP خود باید برچسب هایی در کنار هر پین وجود داشته باشد. اگر برچسب گذاری نشده است ، می توانید "pinout" ESP فردی خود را به صورت آنلاین جستجو کنید.

با استفاده از سیم بلوز نرد به زن بلوز یا سیم برق ، موارد زیر را وصل کنید:

  • پین ESP32S '5V' به '+V' منبع تغذیه (نارنجی در عکس بالا)
  • پین 'GND' ESP32S به بخش '-V' منبع تغذیه (سیاه در عکس بالا)

(در برخی از ESP ها ، پین "5V" به عنوان "VCC" برچسب گذاری شده است ، هر دو معنی یکسانی دارند.)

لطفاً توجه داشته باشید که ESP شما ممکن است "pinout" متفاوتی نسبت به آنچه که ما استفاده می کنیم داشته باشد. به این ترتیب ممکن است سیم های خود را به مکان متفاوتی نسبت به تصویر بالا متصل کنید. تا زمانی که به پین های صحیح وصل می شوید (5V و GND) ، مکان فیزیکی روی برد مهم نیست.

TestingPas منبع تغذیه خود را دوباره وصل کنید ، و اگر ESP شما دارای نشانگر LED باشد (اکثر آن ها) ، چراغ روشن می شود تا نشان دهد که نیرو به ESP ارسال می شود. تبریک می گویم!

مرحله 6: تغذیه نوارهای نور LED

تغذیه نوارهای چراغ LED
تغذیه نوارهای چراغ LED

استفاده از سیم برق:

- سیم قرمز LED Light Strip را به منبع تغذیه به V+ وصل کنید.

- سیم آبی نوار چراغ LED را به منبع تغذیه V- وصل کنید.

مرحله 7: اتصال ESP32 به نوارهای چراغ LED

ESP32 ما به راننده WS2811 متصل به هر LED رنگ و روشنایی مورد نیاز را آموزش می دهد. برای انجام این کار ، ESP32 ما به کابل "داده" به نوارها نیاز دارد.

نوارهای Leds دارای یک اتصال 3 سیم هستند:

- قرمز: قدرت- آبی- خنثی- سفید: داده

بیایید کابل نوار White Led را به یک پین دیجیتالی در ESP وصل کنیم. لطفاً شماره پین انتخاب شده را به خاطر بسپارید زیرا بعداً باید آن را در کد انتخاب کنیم. ما شماره خود را به پین 13 وصل کردیم.

مرحله 8: آماده سازی رایانه: درایور C2102

اکنون که سخت افزار ما سیم کشی شده است ، می خواهیم اولین کد خود را برای آزمایش آن بارگذاری کنیم. به طور پیش فرض ، Windows یا MacOs نمی توانند با ESP32 ما ارتباط برقرار کنند. برای انجام این کار ، ما باید "درایور" تراشه ارتباطی USB ESP را بارگیری کنیم: C2102

این درایور باید بارگیری و نصب شود:

- Windows 10: https://www.silabs.com/documents/public/software/C…- Windows 7/8/8.1: https://www.silabs.com/documents/public/software/C…- Mac:

(پیوندها از 7/10/2019)

مرحله 9: نرم افزار Arduino - افزودن پشتیبانی ESP32 - مرحله 1

نرم افزار آردوینو - افزودن پشتیبانی ESP32 - مرحله 1
نرم افزار آردوینو - افزودن پشتیبانی ESP32 - مرحله 1
نرم افزار آردوینو - افزودن پشتیبانی ESP32 - مرحله 1
نرم افزار آردوینو - افزودن پشتیبانی ESP32 - مرحله 1

قبل از اینکه بتوانیم از ESP32 خود با نرم افزار Arduino استفاده کنیم ، باید مطمئن شویم که این نرم افزار شناخته شده است. به طور پیش فرض ، نرم افزار Arduino نمی تواند کد ESP32 ما را کامپایل کند ، بیایید آن را برطرف کنیم:

مرحله 1: افزودن تخته به مدیر

1 - در آردوینو گزینه File >> Preferences را کلیک کنید

2- در قسمت "آدرس های اضافی مدیران تابلوها" ، پیوند زیر را کپی کنید:

مرحله 10: نرم افزار Arduino - افزودن پشتیبانی ESP32 - مرحله 2

نرم افزار آردوینو - افزودن پشتیبانی ESP32 - مرحله 2
نرم افزار آردوینو - افزودن پشتیبانی ESP32 - مرحله 2
نرم افزار آردوینو - افزودن پشتیبانی ESP32 - مرحله 2
نرم افزار آردوینو - افزودن پشتیبانی ESP32 - مرحله 2

اکنون که نرم افزار آردوینو بردهای بیشتری "می شناسد" ، اجازه دهید پشتیبانی ESP32 خود را نصب کنیم

مرحله 2: نصب پشتیبانی ESP32

1 - در منوی بالا ، گزینه: Tools >> Board >> Boards Manager را انتخاب کنید

2 - پنجره ای ظاهر می شود. برای پیدا کردن "ESP32" از کادر جستجو ، واقع در گوشه سمت راست بالا استفاده کنید.

3 - محل ایجاد شده توسط espressif را پیدا کنید. آن را نصب کنید. (تصویر را ببینید)

مرحله 11: نرم افزار Arduino - افزودن پشتیبانی ESP32 - مرحله 3

نرم افزار آردوینو - افزودن پشتیبانی ESP32 - مرحله 3
نرم افزار آردوینو - افزودن پشتیبانی ESP32 - مرحله 3

اکنون که نرم افزار آردوینو می تواند با ESP32 ما ارتباط برقرار کند ، اجازه دهید آن را به کامپیوتر وصل کرده و بررسی کنیم که همه چیز کار می کند.

1 - اجازه دهید مطمئن شویم که روی پلت فرم ESP32 کار می کنیم:

روی Tools >> Board >> ESP32 Dev Module کلیک کنید

1- مطمئن شویم که نرم افزار آردوینو می داند چگونه با ESP ما ارتباط برقرار کند:

بر روی Tools >> Port کلیک کرده و موردی را که از اتصال این کابل ظاهر می شود انتخاب کنید.

مهم:

اگر در بارگذاری کد در ESP خود مشکلی دارید ، ابتدا آن دو منو را بررسی کنید. اگر پورت با علامت تیک انتخاب نشده باشد ، نرم افزار Arduino با آن ارتباط برقرار نمی کند.

مرحله 12: افزودن کتابخانه ها به Arduino IDE

افزودن کتابخانه ها به IDE آردوینو
افزودن کتابخانه ها به IDE آردوینو

اکنون ما قصد داریم کتابخانه ای را اضافه کنیم که به ما امکان آزمایش Led Wall را بدهد!

1- بر روی Tools >> Manage Libraries کلیک کنید.

2- در گوشه سمت راست بالا ، NeoPixelBus را جستجو کنید. "NeoPixelBus by Makuna" را پیدا کنید ، آن را نصب کنید (تصویر را ببینید)

کتابخانه های جالب دیگر احتمالی: (برای این آموزش لازم نیست)

- NeoMatrix

- FastLed

- آرت نت

- GFX

مرحله 13: کد اول: Strand Test

اولین کد ما نمونه ای از کتابخانه است.

می توانید کد زیر را کپی / جایگذاری کنید یا روی آن کلیک کنید:

فایل >> مثالها >> Adafruit NeoPixelBus >> Strandtest

لطفاً مطمئن شوید که LED_PIN خود را به پستی که برای اتصال فیزیکی led های خود استفاده می کنید تغییر دهید. ما در طول این آموزش از 13 استفاده کردیم.

همچنین مطمئن شوید که اندازه رشته را با متغیر LED_COUNT تطبیق دهید.

// یک برنامه اساسی روزانه Striptest LED.

#شامل #ifdef _AVR_ #شامل // مورد نیاز برای 16 مگاهرتز Adafruit Trinket #endif // کدام پین روی آردوینو به NeoPixels متصل است؟ #تعریف LED_PIN 13 // چند NeoPixel به آردوینو وصل شده است؟ #LED_COUNT 500 تعریف کنید // شی نوار NeoPixel خود را اعلام کنید: نوار Adafruit_NeoPixel (LED_COUNT ، LED_PIN ، NEO_GRB + NEO_KHZ800) ؛ // Argument 1 = تعداد پیکسل ها در نوار NeoPixel // Argument 2 = شماره پین آردوینو (اکثر آنها معتبر هستند) // Argument 3 = پرچم های نوع پیکسل ، در صورت نیاز به هم اضافه کنید: // NEO_KHZ800 800 KHz بیت استریم (اکثر محصولات NeoPixel w/ LED های WS2812) // NEO_KHZ400 400 کیلوهرتز (کلاسیک 'v1' (نه v2) پیکسل های FLORA ، درایورهای WS2811) // پیکسل های NEO_GRB برای جریان بیت GRB (اکثر محصولات NeoPixel) // پیکسل های NEO_RGB برای جریان RGB بیت استریم (v1 پیکسل FLORA) ، نه v2) // NEO_RGBW پیکسل ها برای RGBW bitstream (محصولات NeoPixel RGBW) // عملکرد () setup ()-یکبار در هنگام راه اندازی اجرا می شود -------------------- ------------ void setup () {// این خطوط به طور خاص برای پشتیبانی از Adafruit Trinket 5V 16 مگاهرتز است. // هر تخته دیگر ، می توانید این قسمت را حذف کنید (اما ترک آن ضرری ندارد): #اگر تعریف شده باشد (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1) ؛ #endif // END کد اختصاصی Trinket. strip.begin ()؛ // INITIALIZE NeoPixel strip object (REQUIRED) strip.show ()؛ // خاموش کردن همه پیکسل ها ASAP strip.setBrightness (50) ؛ // تنظیم BRIGHTNESS روی 1/5 (حداکثر = 255)} // تابع loop ()-تا زمانی که برد روشن است مکرراً اجرا می شود --------------- حلقه خالی () {// طول نوار را با رنگهای مختلف پر کنید … colorWipe (strip. Color (255، 0، 0)، 50)؛ // رنگ قرمز پاک کردن (نوار. رنگ (0 ، 255 ، 0) ، 50) ؛ // رنگ سبز پاک کردن (نوار. رنگ (0 ، 0 ، 255) ، 50) ؛ // آبی // یک اثر تئاتر در رنگ های مختلف انجام دهید… theaterChase (strip. Color (127 ، 127 ، 127) ، 50) ؛ // سفید ، تئاتر نیمه روشنایی Chase (نوار. رنگ (127 ، 0 ، 0) ، 50) ؛ // قرمز ، تئاتر نیمه روشنایی Chase (نوار. رنگ (0 ، 0 ، 127) ، 50) ؛ // رنگین کمان آبی ، نیمه روشن (10) ؛ // جریان چرخه رنگین کمان در طول کل strip theaterChaseRainbow (50) ؛ // Rainbow-enhanced theaterChase variant} // برخی از عملکردهای خودمان برای ایجاد جلوه های متحرک ----------------- // پیکسل های نوار را یکی پس از دیگری با رنگ پر می کنیم. نوار پاک نمی شود // اول ؛ هر چیزی در آنجا پیکسل به پیکسل پوشانده می شود. گذر در رنگ // (به عنوان یک مقدار "بسته بندی شده" 32 بیتی ، که می توانید با تماس // strip دریافت کنید. رنگ (قرمز ، سبز ، آبی) همانطور که در تابع حلقه () بالا نشان داده شده است) ، // و a زمان تأخیر (بر حسب میلی ثانیه) بین پیکسل ها. void colorWipe (uint32_t color، int wait) {for (int i = 0؛ i strip.setPixelColor (i، color)؛ // تنظیم رنگ پیکسل (در RAM) strip.show ()؛ // نوار به روز رسانی برای مطابقت با تاخیر (منتظر بمانید) ؛ // یک لحظه مکث کنید}} // چراغهای تعقیب کننده به سبک تئاتر- marquee. گذر در یک رنگ (مقدار 32 بیتی ، // a la strip. رنگ (r ، g ، b) همانطور که در بالا ذکر شد) ، و زمان تأخیر (بر حسب ms) // بین فریم ها. void theaterChase (uint32_t color، int wait) {for (int a = 0؛ a <10؛ a ++) {// 10 بار تکرار … برای (int b = 0؛ b <3؛ b ++) {// 'b' از 0 تا 2 شمارش می کند… strip.clear ()؛ // همه پیکسل های RAM را روی 0 تنظیم کنید (خاموش) // 'c' از 'b' تا انتهای نوار در مراحل 3… برای (int c = b؛ c strip.setPixelColor (c ، color) ؛ // پیکسل 'c' را روی مقدار 'color'} تنظیم کنید strip.show ()؛ // نوار به روز رسانی با تاخیر در محتویات جدید (منتظر بمانید) ؛ // یک لحظه مکث کنید}}} // چرخه رنگین کمان در طول کل نوار. زمان تأخیر را (بر حسب میلی ثانیه) بین فریم ها منتقل کنید. رنگین کمان خالی (int wait) {// رنگ اولین پیکسل 5 حلقه کامل را از طریق چرخ رنگ. // چرخ رنگ دارای محدوده 65536 است اما این است خوب اگر رو به رو شدیم ، بنابراین // فقط از 0 تا 5*65536 را حساب کنید. هر بار 256 به firstPixelHue اضافه کنید // به این معنی که ما 5*65536/256 = 1280 از این حلقه خارجی عبور می دهیم: for (long firstPixelHue = 0؛ firstPixelHue <5*65536؛ firstPixelHue += 256) {برای (int i = 0؛ I // رنگ پیکسل را به مقدار تغییر می دهم تا یک دور کامل از // چرخ رنگ (محدوده 65536) در طول نوار // (مراحل strip.numPixels ()) انجام شود: int pixelHue = firstPixelHue + (i * 65536L / strip. // در اینجا ما فقط از نوع رنگ تک آرگومان استفاده می کنیم. نتیجه // قبل از اختصاص دادن به هر پیکسل: strip.setPixelColor (i ، strip.gamma32) از طریق strip.gamma32 () برای ارائه رنگهای "واقعی تر" عبور می کند. (strip. ColorHSV (pixelHue)))؛} strip.show ()؛ // نوار به روز رسانی با تاخیر مطالب جدید (منتظر بمانید) ؛ // یک لحظه مکث کنید}} // خیمه تئاتر تقویت شده با رنگین کمان. زمان تاخیر را بگذرانید (در ms) بین فریم ها. void theaterChaseRainbow (int wait) {i nt firstPixelHue = 0؛ // پیکسل اول با رنگ قرمز شروع می شود (رنگ 0) برای (int a = 0 ؛ a <30؛ a ++) {// 30 بار تکرار … برای (int b = 0؛ b RGB strip.setPixelColor (c ، رنگ) ؛ / / پیکسل 'c' را روی مقدار 'color'} تنظیم کنید strip.show ()؛ // نوار به روز رسانی را با تاخیر مطالب جدید (منتظر بمانید) ؛ // ابتدا یک لحظه مکث کنید PixelHue += 65536 /90 ؛ // یک چرخه چرخ رنگ بیش از 90 فریم}}}

مرحله 14: کد نمونه SHU

Image
Image

کد ما همه Led ها را یک به یک روشن می کند تا از کارکرد آنها مطمئن شوید:

// این مثال بین نشان دادن 500 پیکسل به رنگ قرمز می چرخد

#includeconst uint16_t PixelCount = 500؛ // این مثال 4 پیکسل را فرض می کند ، کوچکتر شدن آن باعث خرابی const uint8_t PixelPin = 13 خواهد شد؛ // مطمئن شوید این را روی پین صحیح تنظیم کرده اید ، برای Esp8266 نادیده گرفته شده است

#تعریف رنگ اشباع 128 // پیکسل سه عنصر ، در ترتیب و سرعت های مختلف

نوار NeoPixelBus (PixelCount ، PixelPin) ؛

// نوار NeoPixelBus (PixelCount ، PixelPin) ؛ RgbColor قرمز (0 ، رنگ اشباع ، 0) ؛ RgbColor سبز (رنگ اشباع ، 0 ، 0) ؛ RgbColor آبی (0 ، 0 ، رنگ اشباع) ؛ Rgb رنگ سفید (رنگ اشباع) ؛ RgbColor مشکی (0) ؛ HslColor hslRed (قرمز) ؛ HslColor hslGreen (سبز) ؛ HslColor hslBlue (آبی) ؛ HslColor hsl سفید (سفید) ؛ HslColor hslBlack (سیاه) ؛ void setup () {Serial.begin (115200) while (! Serial)؛ // منتظر سریال متصل شوید Serial.println ()؛ Serial.println ("در حال راه اندازی…") ؛ Serial.flush ()؛ // این همه نئوپیکسل ها را به یک نوار حالت خاموش بازنشانی می کند. شروع ()؛ strip. Show ()؛ Serial.println ()؛ Serial.println ("در حال اجرا …") ؛ } void loop () {تاخیر (100)؛ Serial.println ("رنگهای R ، G ، B ، W …") ؛ for (int i = 0؛ i <= 499؛ i ++) {// رنگها را تنظیم کنید ، // اگر آنها به ترتیب مطابقت ندارند ، باید از نوار ویژگی NeoGrbFeature استفاده کنید. SetPixelColor (i ، قرمز) ؛ strip. () تأخیر (100) ؛ strip. SetPixelColor (i ، hslRed) ؛ strip. Show ()؛ تأخیر (100) ؛ }}

مرحله 15: بارگذاری کد در ESP32

مهم:

برای اینکه بتوانید کد را روی هر کنترلر کوچک بارگذاری کنید ، باید در حالت برنامه نویسی باشد. بیشتر این کار را به صورت خودکار انجام دهید و تنها کاری که باید انجام دهید این است که روی بارگذاری در نرم افزار کلیک کنید.

ESP32 ما از شما می خواهد که دکمه برنامه نویسی را در حین ارسال کد نگه دارید. همچنین باید پس از بارگذاری کد با فشار دادن یک بار دکمه تنظیم مجدد آن را بازنشانی کنید.

دکمه برنامه نویسی ESP32 ما در سمت چپ ، دکمه تنظیم مجدد در سمت راست قرار دارد. اگر میکرو کنترلر دیگری دارید ، به دفترچه راهنمای خود مراجعه کنید.

مرحله 16: نقل قول ها

این آموزش با کمک آموزش های زیر ساخته شده است:

randomnerdtutorials.com/installing-the-esp…

برای نصب ESP32 در Arduino IDE استفاده می شود.

نویسندگان:

ناتانیل بارون گابریل کاسترو

ویراستار:

سدریک بلیملینگ

توصیه شده: