Բովանդակություն:

500 LED լուսամուտ ՝ ESP32- ով ՝ 16 քայլ
500 LED լուսամուտ ՝ ESP32- ով ՝ 16 քայլ

Video: 500 LED լուսամուտ ՝ ESP32- ով ՝ 16 քայլ

Video: 500 LED լուսամուտ ՝ ESP32- ով ՝ 16 քայլ
Video: Zitayic Heto / Kisabac Lusamutner 05.09.2022 2024, Հուլիսի
Anonim
500 լուսադիոդային պատ ՝ ESP32- ով
500 լուսադիոդային պատ ՝ ESP32- ով

Բարեւ բոլորին! Այս ձեռնարկի ավարտին դուք կիմանաք, թե ինչպես ստեղծել ձեր սեփական LED պատը:

Այս ձեռնարկը հիմնված է Sacred Heart University- ում առաջարկվող ամառային ծրագրի վրա:

Զվարճանալ!

Պարագաներ

Ստորև թվարկված պարագաներ:

Քայլ 1: Պաշարներ

Պարագաներ
Պարագաներ

Եկեք սկսենք հավաքելով այն ամենը, ինչ մեզ անհրաժեշտ է մեր Led Wall- ը ավարտելու համար.

(Հղումները ստեղծվել են 7/10/2019)

Arduino IDE ծրագրակազմ

ESP32 միկրո վերահսկիչ

LED պիքսելային լույս

Էներգամատակարարում

Հոսանքի լար

Հաղորդալարերի մերկացման գործիք

Breadboard Jumper մալուխներ

Էլեկտրական լար

Քայլ 2. Ձեր LedWall- ի համար ճիշտ էներգիայի մատակարարման որոշում

Կա պարզ մաթեմատիկական միջոց ՝ պարզելու համար, թե որ էներգիայի մատակարարումն է ձեզ համար լավագույնը:

Մենք օգտագործում ենք Օմի հզորության օրենքը. P = IxV (հզորություն = ինտենսիվություն x լարման)

Լարումը որոշվում է մեր լամպերով `այս դեպքում 5 Վ:

Ինտենսիվությունը կախված է սարքավորումից, մեկ Led- ը սպառում է 30 մԱ:

Հետևաբար, 50 Leds- ի յուրաքանչյուր շերտ սպառում է 50 x 30mA = 1250mA = 1.25A:

Այսպիսով, մեր 500 Led պատը սպառում է 10 անգամ ավելի (10 շերտ) ՝ 12.5A:

Էլեկտրաէներգիայի օգտագործումը 5V x 12.5A = 62.5W է Leds- ի համար:

Իհարկե, Leds- ի վերևում դուք պետք է հաշվի առնեք ESP- ը և ձեր սխեմայի յուրաքանչյուր այլ տարր:

Մենք ունենք 60 Ա սնուցման աղբյուր, մենք ունենք շատ ավելին, քան մեզ անհրաժեշտ է:

Քայլ 3: Սնուցման լար

Image
Image

Մեր էլեկտրամատակարարումը գալիս է լարային միակցիչներով: Մենք պետք է հարմարեցնենք հոսանքի լարը, որպեսզի այն միացնենք 110 Վ լարման:

- Կտրեք կանացի միակցիչը հոսանքի լարից: Մենք կպահենք արական մասը, այլապես հայտնի է որպես NEMA 5-15P:

- Հեռացրեք մալուխը, որպեսզի բոլոր լարերի վրա տեսանելի լինի մոտ 3 մմ պղինձ:

Ահա արագ վիդեո ձեռնարկ, թե ինչպես հեռացնել լարերը.

Քայլ 4: Էլեկտրամատակարարման միացում

Միացում ESP32S- ին
Միացում ESP32S- ին

Այժմ մենք պատրաստ ենք միացնել մեր էներգիայի մատակարարումը:

Միշտ անջատեք էլեկտրասնուցումը, երբ երբևէ աշխատում եք դրա վրա:

Հաղորդալարեր

  • Սև մետաղալարը (փուլ) միանում է սնուցման աղբյուրի «L» քորոցին
  • Սպիտակ մետաղալարը (չեզոք) միանում է սնուցման աղբյուրի 'N' քորոցին
  • Կանաչ մետաղալարը միանում է էներգիայի մատակարարման «Գրունտ» քորոցին

(Եթե ձեր հոսանքի լարերի ներքին լարերը նույն գույնը չեն, ինչ մերն են, ապահով եղեք և առցանց նայեք սխեմաներին):

Փորձարկում

Միացրեք համակարգչի հոսանքի լարը ցանկացած սնուցվող վարդակից: Սնուցման աղբյուրի կանաչ LED- ը պետք է միանա:

Քայլ 5: Միացում ESP32S- ին

Ձեր ESP- ին նայելիս յուրաքանչյուր պինկի կողքին պետք է լինեն պիտակներ: եթե այն պիտակավորված չէ, կարող եք առցանց փնտրել ձեր անհատական ESP- ի «pinout» - ը:

Օգտագործելով արականից իգական սեռի հացահատիկի ցատկող մետաղալար կամ էլեկտրական մետաղալար, միացրեք.

  • «5V» ESP32S կապը սնուցման աղբյուրի «+V» - ին (նարնջագույն ՝ վերևի լուսանկարում)
  • «GND» ESP32S կապը հոսանքի աղբյուրի «-V» հատվածին (սևը վերևի լուսանկարում)

(Որոշ ESP- ների վրա «5V» կապը նշվում է որպես «VCC», դրանք երկուսն էլ նույնն են նշանակում):

Խնդրում ենք նկատի ունենալ, որ ձեր ESP- ն կարող է ունենալ այլ «պինուտ», քան այն, ինչ մենք օգտագործում ենք: Որպես այդպիսին, դուք կարող եք ձեր լարերը միացնել այլ վայրին, քան վերևում պատկերվածը: Քանի դեռ դուք միանում եք ճիշտ կապումներին (5V և GND), գրատախտակին ֆիզիկական գտնվելու վայրը նշանակություն չունի:

TestingPlug միացրեք ձեր էլեկտրասնուցումը, և եթե ձեր ESP- ն ունի LED ցուցիչ (շատերն ունեն), այն կլուսավորվի ՝ նշելով, որ էներգիան ուղարկվում է ESP: Շնորհավորում եմ:

Քայլ 6: LED լուսավորության ժապավենների միացում

LED լուսավորության ժապավենների սնուցում
LED լուսավորության ժապավենների սնուցում

Էլեկտրական լարերի օգտագործումը.

- LED լուսադիոդի կարմիր մետաղալարը միացրեք V+ էլեկտրասնուցման աղբյուրին:

- LED լուսարձակման կապույտ մետաղալարը միացրեք V- հոսանքի աղբյուրին:

Քայլ 7: ESP32- ը LED լուսարձակման ժապավեններին միացնելը

Մեր ESP32- ը հրահանգում է WS2811 վարորդին, որը յուրաքանչյուրին միացված է, պետք է լինի գույնը և պայծառությունը: Դա անելու համար մեր ESP32- ին անհրաժեշտ է «տվյալների» մալուխ ՝ շերտերին:

Leds շերտերը գալիս են 3 լարային միակցիչով.

- Կարմիր ՝ Հզորություն, Կապույտ ՝ Չեզոք, Սպիտակ ՝ Տվյալներ

Եկեք միացնենք White Led շերտի մալուխը ESP- ի թվային կապին: Խնդրում ենք հիշել ընտրված PIN- ի համարը, քանի որ այն պետք է ավելի ուշ ընտրենք ծածկագրում: Մենք մերը միացրեցինք 13 -ի կապում:

Քայլ 8: Համակարգչի պատրաստում. C2102 վարորդ

Այժմ, երբ մեր սարքավորումները միացված են, մենք ցանկանում ենք վերբեռնել մեր առաջին կոդը `այն փորձարկելու համար: Լռելյայն, Windows- ը կամ MacO- ն չեն կարող կապվել մեր ESP32- ի հետ: Դա անելու համար մենք պետք է ներբեռնենք« վարորդ »ESP USB կապի չիպի համար. 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 Software - Ավելացնել ESP32 աջակցություն - Քայլ 1

Arduino Software - Ավելացնելով ESP32 աջակցություն - Քայլ 1
Arduino Software - Ավելացնելով ESP32 աջակցություն - Քայլ 1
Arduino Software - Ավելացնելով ESP32 աջակցություն - Քայլ 1
Arduino Software - Ավելացնելով ESP32 աջակցություն - Քայլ 1

Նախքան մեր ESP32- ը Arduino ծրագրաշարի հետ օգտագործելը, մենք պետք է համոզվենք, որ այն ճանաչված է: Լռելյայն, Arduino ծրագրակազմը չի կարող ծածկագիր կազմել մեր ESP32- ի համար, եկեք շտկենք դա.

Քայլ 1. Տախտակներ ավելացնել կառավարչին

1 - Սեղմեք Arduino- ի վրա Ֆայլ >> Նախապատվություններ

2- «Լրացուցիչ խորհուրդների կառավարիչների հասցեներ» դաշտում պատճենեք հետևյալ հղումը ՝

Քայլ 10. Arduino Software - ESP32 աջակցություն ավելացնելը - քայլ 2

Arduino Software - Ավելացնելով ESP32 աջակցություն - քայլ 2
Arduino Software - Ավելացնելով ESP32 աջակցություն - քայլ 2
Arduino Software - Ավելացնելով ESP32 աջակցություն - քայլ 2
Arduino Software - Ավելացնելով ESP32 աջակցություն - քայլ 2

Այժմ, երբ Arduino ծրագրակազմը «գիտի» ավելի շատ տախտակներ, եկեք տեղադրենք մեր ESP32 աջակցությունը

Քայլ 2: Տեղադրեք ESP32 աջակցությունը

1 - Վերին ընտրացանկում ընտրեք ՝ Գործիքներ >> Տախտակ >> Տախտակների կառավարիչ

2 - կհայտնվի պատուհան: Օգտագործեք որոնման դաշտը, որը գտնվում է վերին աջ անկյունում ՝ «ESP32» գտնելու համար:

3 - Տեղադրեք espressif- ի պատրաստածը: Տեղադրեք այն: (Տես նկարը)

Քայլ 11: Arduino Software - Ավելացնել ESP32 աջակցություն - Քայլ 3

Arduino Software - Ավելացնելով ESP32 աջակցություն - Քայլ 3
Arduino Software - Ավելացնելով ESP32 աջակցություն - Քայլ 3

Այժմ, երբ Arduino ծրագիրը կարող է հաղորդակցվել մեր ESP32- ի հետ, եկեք այն միացնենք համակարգչին և ստուգենք, որ ամեն ինչ աշխատում է:

1 - Եկեք համոզվենք, որ մենք աշխատում ենք ESP32 հարթակում.

Կտտացրեք Գործիքներ >> Տախտակ >> ESP32 Dev մոդուլ

1- Եկեք համոզվենք, որ Arduino ծրագրակազմը գիտի, թե ինչպես հաղորդակցվել մեր ESP- ին.

Կտտացրեք Գործիքներ >> Պորտ և ընտրեք այն, որը հայտնվում է այս մալուխը միացնելուց:

Կարևոր:

Եթե ձեր ESP- ում կոդը վերբեռնելու հետ կապված որևէ խնդիր ունեք, նախ ստուգեք այդ երկու ընտրացանկերը: Եթե նավահանգիստը չընտրված է չեկի նշանով, ապա Arduino ծրագրակազմը չի շփվի դրա հետ:

Քայլ 12. Գրադարանների ավելացում Arduino IDE- ին

Գրադարանների ավելացում Arduino IDE- ին
Գրադարանների ավելացում Arduino IDE- ին

Այժմ մենք մտադիր ենք ավելացնել գրադարան, որը թույլ կտա փորձարկել մեր Led Wall- ը:

1- Կտտացրեք Գործիքներ >> Կառավարեք գրադարանները:

2- Վերին աջ անկյունում որոնեք NeoPixelBus- ը: Տեղադրեք «NeoPixelBus by Makuna», տեղադրեք այն (տես նկարը)

Պոտենցիալ այլ հետաքրքիր գրադարաններ. (Պարտադիր չէ այս ձեռնարկի համար)

- NeoMatrix

- FastLed

- Արտնետ

- GFX

Քայլ 13: Առաջին ծածկագիր. Strand Test

Մեր առաջին ծածկագիրը օրինակ է Գրադարանից:

Կարող եք կամ պատճենել / տեղադրեք ներքևի ծածկագիրը կամ կտտացնել ՝

Ֆայլ >> Օրինակներ >> Adafruit NeoPixelBus >> Strandtest

Խնդրում ենք համոզվել, որ ձեր LED_PIN- ը փոխեք այն լուսացույցի, որն օգտագործել եք ձեր լուսադիոդները ֆիզիկապես միացնելու համար: Այս ձեռնարկի ընթացքում մենք օգտագործել ենք 13 -ը:

Նաև համոզվեք, որ շղթայի չափը հարմարեցրեք LED_COUNT փոփոխականին:

// Հիմնական ամենօրյա LED Striptest ծրագիր:

#ներառում #ifdef _AVR_ #ներառել // Պահանջվում է 16 ՄՀց հաճախականությամբ Adafruit մանրուք #endif // Arduino- ի ո՞ր քորոցը միացված է NeoPixels- ին: #սահմանեք LED_PIN 13 // Քանի՞ NeoPixel է կցված Arduino- ին: #սահմանեք LED_COUNT 500 // Հայտարարեք մեր NeoPixel շերտի օբյեկտը ՝ Adafruit_NeoPixel ժապավենը (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Փաստարկ 1 = NeoPixel շերտի պիքսելների քանակը // Փաստարկ 2 = Arduino փին համարը (շատերը վավեր են) // Փաստարկ 3 = Պիքսել տիպի դրոշներ, անհրաժեշտության դեպքում ավելացնել միասին. // NEO_KHZ800 800 ԿՀց բիթստրիմ WS2812 LED) // 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 ՄՀց հաճախականությանը: // boardանկացած այլ տախտակ, կարող եք հեռացնել այս հատվածը (բայց դրանից հեռանալը ոչ մի վնաս չի պատճառի). #endif // Trinket- ի հատուկ ծածկագրի ՎԵՐ END: strip.begin (); // ՍՆԱՆԵԼ NeoPixel շերտի օբյեկտ (ՊԱՐՏԱԴԻՐ) strip.show (); // Անջատեք բոլոր պիքսելները ASAP strip.setBrightness (50); // BRIGHTNESS- ը սահմանել մոտ 1/5 (max = 255)} // loop () գործառույթը-անընդհատ աշխատում է այնքան ժամանակ, քանի դեռ տախտակը միացված է --------------- void loop () {// Լրացրեք շերտի երկարությամբ տարբեր գույներով… colorWipe (շերտ. Գույն (255, 0, 0), 50); // Red colorWipe (շերտ. Գույն (0, 255, 0), 50); // Կանաչ գույնը Սրբել (շերտ. Գույն (0, 0, 255), 50); // Կապույտ // Կատարեք թատրոնի էֆեկտ տարբեր գույներով… theaterChase (strip. Color (127, 127, 127), 50); // Սպիտակ, կես պայծառությամբ TheaterChase (շերտ. Գույն (127, 0, 0), 50); // Կարմիր, կես պայծառությամբ TheaterChase (շերտ. Գույն (0, 0, 127), 50); // Կապույտ, կես պայծառությամբ ծիածան (10); // Flowիածանի հոսք ցիկլ ամբողջ ժապավենային թատրոնի երկայնքով ChaseRainbow (50); // Rainbow- ով ուժեղացված TheaterChase տարբերակ} // Մեր սեփական որոշ գործառույթներ ՝ անիմացիոն էֆեկտներ ստեղծելու համար ----------------- // Լրացրեք շերտերի պիքսելները մեկը մյուսի հետևից գույնով: Գոտին ՉԻ մաքրվում // նախ; այնտեղ ցանկացած բան ծածկված կլինի պիքսել առ պիքսել: Անցնել գույնով // (որպես մեկ «փաթեթավորված» 32-բիթանոց արժեք, որը կարող եք ձեռք բերել // strip զանգահարելով) հետաձգման ժամանակը (միլիվայրկյաններով) պիքսելների միջև: void color Սրբել (uint32_t գույնը, int սպասել) {for (int i = 0; i strip.setPixelColor (i, color); // Սահմանել պիքսելների գույնը (RAM- ում) strip.show (); // Թարմացնել ժապավենը, որը կհամապատասխանի ուշացմանը (սպասիր); // Դադար մի պահ}}} // Թատրոն-շերտի ոճով հետապնդող լույսեր: Անցիր գույնով (32-բիթանոց արժեք, // a la շերտ. Գույն (r, g, b), ինչպես նշվեց վերևում), և հետաձգման ժամանակ (ms) // շրջանակների միջև: void theaterChase (uint32_t գույն, int սպասել) {for (int a = 0; a <10; a ++) {// կրկնել 10 անգամ… (int b = 0; համար) b <3; b ++) {// 'b' հաշվում է 0 -ից 2… strip.clear (); // RAM- ում բոլոր պիքսելները սահմանել 0 -ի վրա (անջատված է) // 'c' հաշվում է 'b' - ից մինչև վերջ շերտագիծ 3 քայլերով… for (int c = b; c strip.setPixelColor (c, color); // pixel 'c' արժեքը սահմանել 'color'} strip.show (); // Թարմացնել շերտը նոր բովանդակության հետաձգմամբ (սպասել); // Մի պահ դադարեցնել}}} // ainիածանի շրջանառություն ամբողջ շերտի երկայնքով: Անցնել հետաձգման ժամանակը (ms) շրջանակների միջև: անվավեր ծիածան (int սպասել) {// Առաջին պիքսելի երանգը անցնում է 5 ամբողջական հանգույց գունավոր անիվ: // Գունավոր անիվն ունի 65536 միջակայք, բայց դա Լավ, եթե մենք գլորում ենք, այնպես որ // պարզապես հաշվեք 0 -ից մինչև 5*65536: Ամեն անգամ 256 ավելացնել firstPixelHue- ին // նշանակում է, որ մենք կկատարենք 5*65536/256 = 1280 անցում այս արտաքին օղակով. For (long firstPixelHue = 0; firstPixelHue <5*65536; firstPixelHue += 256) {համար (int i = 0; I. i * 65536L / strip.numPixels ()); // strip. ColorHSV () կարող է վերցնել 1 կամ 3 արգումենտ `երանգ (0 -ից 65535) կամ // ըստ ցանկության ավելացնել հագեցվածություն և արժեք (պայծառություն) (յուրաքանչյուրը 0 -ից 255): // Այստեղ մենք օգտագործում ենք միայն մեկ փաստարկի երանգի տարբերակը: Արդյունքը // անցնում է strip.gamma32 () միջով `« ավելի ճշմարիտ »գույներ ապահովելու համար // նախքան յուրաքանչյուր պիքսելին նշանակելը ՝ strip.setPixelColor (i, strip.gamma32 (strip. ColorHSV (pixelHue)));} strip.show (); // Թարմացրեք շերտը նոր բովանդակությամբ ուշացումով (սպասել); // Մի պահ դադար տալ}} // ainիածանով հարստացված թատրոնի ծածկը: Անցեք հետաձգման ժամանակը (ներ ms) շրջանակների միջև: void theaterChaseRainbow (int wait) {i nt առաջինPixelHue = 0; // Առաջին պիքսելն սկսվում է կարմիրից (երանգ 0) ՝ (int a = 0; a <30; a ++) {// Կրկնել 30 անգամ… (int b = 0; b RGB շերտ. SetPixelColor (գ, գույն); / / Սահմանել «c» պիքսելը «գույն» արժեքը} 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, գույնըՀագեցվածություն); RgbColor սպիտակ (գույնի հագեցվածություն); 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 (); // սա վերականգնում է բոլոր նեոպիքսելները անջատված վիճակի մեջ: Սկսել (); շերտ. howուցադրել (); Serial.println (); Serial.println («Վազում է …»); } void loop () {հետաձգում (100); Serial.println ("Գույներ R, G, B, W …"); for (int i = 0; i <= 499; i ++) {// սահմանել գույները, // եթե դրանք չեն համընկնում, դուք պետք է օգտագործեք NeoGrbFeature գործառույթի ժապավենը: SetPixelColor (i, կարմիր); շերտագիծ: howուցադրել (); ուշացում (100); շերտ. SetPixelColor (i, hslRed); շերտ. howուցադրել (); ուշացում (100); }}

Քայլ 15. Կոդի վերբեռնում ESP32- ում

Կարևոր:

Microանկացած միկրոհսկիչին կոդ վերբեռնելու համար այն պետք է լինի ծրագրավորման ռեժիմում: Շատերը դա անում են ինքնաբերաբար, և մնում է միայն ծրագրաշարում սեղմել բեռնումը:

Մեր ESP32- ը պահանջում է ձեզ պահել ծրագրավորման կոճակը, երբ կոդը ուղարկվում է: Դուք նաև պետք է այն վերակայեք ծածկագիրը վերբեռնելուց հետո ՝ մեկ անգամ սեղմելով վերակայման կոճակը:

Մեր ESP32- ի ծրագրավորման կոճակը տեղակայված է ձախ կողմում, իսկ վերակայման կոճակը ՝ աջ կողմում: Խնդրում ենք անդրադառնալ ձեր ձեռնարկին, եթե ունեք մեկ այլ միկրոկարգավորիչ:

Քայլ 16: Մեջբերումներ

Այս հրահանգը պատրաստվել է հետևյալ ձեռնարկների օգնությամբ.

randomnerdtutorials.com/installing-the-esp…

Օգտագործվում է ESP32- ը Arduino IDE- ում տեղադրելու համար:

Հեղինակներ:

Նաթանիել Բարոն Գաբրիել Կաստրո

Խմբագիր:

Սեդրիկ Բլեյմլինգ

Խորհուրդ ենք տալիս: