Përmbajtje:

Mur 500 LED me ESP32: 16 hapa
Mur 500 LED me ESP32: 16 hapa

Video: Mur 500 LED me ESP32: 16 hapa

Video: Mur 500 LED me ESP32: 16 hapa
Video: ESP32 Tutorial 54 - Set WS2812 LED Strip Color over Wifi | SunFounder's ESP32 IoT Learnig kit 2024, Nëntor
Anonim
500 mure LED me ESP32
500 mure LED me ESP32

Pershendetje te gjitheve! Deri në fund të këtij mësimi do të dini se si të krijoni murin tuaj LED.

Ky tutorial bazohet në një program veror të ofruar në Universitetin e Zemrës së Shenjtë.

Argëtohu!

Furnizimet

Furnizimet e listuara më poshtë.

Hapi 1: Furnizimet

Furnizimet
Furnizimet

Le të fillojmë duke mbledhur gjithçka që na nevojitet për të përfunduar Murin tonë Led:

(Lidhjet u krijuan më 7/10/2019)

Softueri Arduino IDE

Mikrokontrolluesi ESP32

Drita Pixel LED

Furnizimi me energji elektrike

Kabllo të energjisë

Mjet për heqjen e telave

Kabllot e kërcyesit të bukës

Tela elektrike

Hapi 2: Përcaktimi i furnizimit me energji të duhur për LedWall tuaj

Ekziston një mënyrë e thjeshtë matematikore për të gjetur se cili furnizim me energji elektrike është më i miri për ju.

Ne po përdorim ligjin e fuqisë së Ohmit: P = IxV (Fuqia = Intensiteti x Tensioni)

Tensioni përcaktohet nga llambat tanë: në këtë rast 5V.

Intensiteti varet nga hardueri, një Led i vetëm konsumon 30mA.

Prandaj, çdo shirit prej 50 Leds konsumon 50 x 30mA = 1250mA = 1.25A.

Muri ynë 500 Led konsumon 10 herë më shumë se (10 shirita): 12.5A.

Përdorimi i energjisë është 5V x 12.5A = 62.5W për Leds.

Sigurisht, në krye të Leds ju duhet të llogaritni për ESP dhe çdo artikull tjetër të qarkut tuaj.

Ne kemi një furnizim me energji 60A, kemi shumë më tepër sesa kemi nevojë.

Hapi 3: Kordoni i energjisë

Image
Image

Furnizimi ynë me energji vjen me lidhje teli. Ne duhet të përshtatim një kabllo të energjisë për ta lidhur atë me një prizë 110V.

- Pritini lidhësin femëror nga kordoni i energjisë. Ne do të mbajmë pjesën mashkullore, përndryshe e njohur si NEMA 5-15P.

- Hiqeni kabllon që të ketë rreth 3mm bakër të dukshëm në të gjitha telat.

Këtu keni një video mësimore të shpejtë se si të hiqni telat:

Hapi 4: Instalimi i furnizimit me energji elektrike

Furnizimi me energji ESP32S
Furnizimi me energji ESP32S

Tani jemi gati të lidhim furnizimin me energji elektrike!

Gjithmonë shkëputni furnizimin me energji elektrike kur punoni në të.

Instalime elektrike

  • Teli i zi (Faza) lidhet me kunjin 'L' të furnizimit me energji elektrike
  • Teli i bardhë (Neutral) lidhet me kunjin 'N' të furnizimit me energji elektrike
  • Teli jeshil lidhet me kunjin 'Ground' të furnizimit me energji elektrike

(Nëse telat e brendshëm të kordonit tuaj të energjisë nuk janë me të njëjtat ngjyra si tonat, jini të sigurt dhe shikoni skemat në internet.)

Duke testuar

Lidheni kordonin elektrik të kompjuterit në çdo prizë të mundësuar. LED i gjelbër në furnizimin me energji duhet të ndizet.

Hapi 5: Aktivizimi në ESP32S

Duke parë ESP -në tuaj, duhet të ketë etiketa pranë secilës kunj. Nëse nuk është etiketuar, mund të kërkoni 'pinout' të ESP -së tuaj individuale në internet.

Duke përdorur një tel kërcyes mashkull në femër ose një tel elektrik, lidhni:

  • Kunja '5V' ESP32S në '+V' të furnizimit me energji (portokalli në foton më sipër)
  • Kunja 'GND' ESP32S në pjesën '-V' të furnizimit me energji (e zezë në foton më sipër)

(Në disa ESP, kunja '5V' etiketohet si 'VCC', në vend të kësaj, të dy nënkuptojnë të njëjtën gjë.)

Ju lutemi vini re se ESP juaj mund të ketë një 'pinout' të ndryshëm nga ai që ne po përdorim. Si i tillë ju mund të lidhni telat tuaj në vendndodhje të ndryshme sesa në foton e mësipërme. Për sa kohë që jeni duke u lidhur me kunjat e duhur (5V & GND), vendndodhja fizike në tabelë nuk ka rëndësi.

TestingPlidhni sërish furnizimin tuaj me energji, dhe nëse ESP juaj ka një tregues LED (shumica e kanë), ai do të ndizet për të treguar që energjia po dërgohet në ESP. Urime!

Hapi 6: Ndizni shiritat e dritës LED

Fuqizimi i shiritave të dritës LED
Fuqizimi i shiritave të dritës LED

Përdorimi i telave elektrikë:

- Lidhni telin e kuq të Rripit të dritës LED në V+ në furnizimin me energji elektrike.

- Lidhni telin blu të Rripit të Dritës LED me V- në furnizimin me energji elektrike.

Hapi 7: Lidhja e ESP32 me shiritat e dritës LED

ESP32 -ja jonë udhëzon drejtuesin WS2811 të lidhur me secilën led me ngjyrën dhe shkëlqimin që duhet të jenë. Për ta bërë këtë, ESP32 -i ynë ka nevojë për një kabllo "të dhënash" në shirita.

Shiritat Leds vijnë me një lidhës me 3 tela:

- E kuqe: Fuqia- Blu: neutrale- E bardhë: Të dhëna

Le ta lidhim kabllon e shiritit White Led me një kunj dixhital në ESP. Ju lutemi mbani mend numrin PIN të zgjedhur pasi do të na duhet ta zgjedhim në kod më vonë. Ne e lidhëm tonën në pin 13.

Hapi 8: Përgatitja e kompjuterit: Shoferi C2102

Tani që pajisja jonë është e lidhur, ne duam të ngarkojmë kodin tonë të parë për ta testuar atë. Si parazgjedhje, Windows ose MacO nuk mund të komunikojnë me ESP32 -in tonë. Për ta bërë këtë, ne duhet të shkarkojmë një "shofer" për çipin e komunikimit USB ESP: C2102.

Ky drejtues duhet të shkarkohet dhe instalohet:

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

(Lidhjet që nga 7/10/2019)

Hapi 9: Arduino Software - Shtimi i Mbështetjes ESP32 - Hapi 1

Softueri Arduino - Shtimi i Mbështetjes ESP32 - Hapi 1
Softueri Arduino - Shtimi i Mbështetjes ESP32 - Hapi 1
Softueri Arduino - Shtimi i Mbështetjes ESP32 - Hapi 1
Softueri Arduino - Shtimi i Mbështetjes ESP32 - Hapi 1

Para se të mund të përdorim ESP32 -in tonë me programin Arduino, duhet të sigurohemi që ai të njihet. Si parazgjedhje, softueri Arduino nuk mund të përpilojë kodin për ESP32 -in tonë, le ta rregullojmë atë:

Hapi 1: Shtimi i bordeve tek menaxheri

1 - Klikoni në Arduino opsionin File >> Preferencat

2- Në fushën "URL-të e Menaxherit të Bordeve shtesë", kopjoni lidhjen e mëposhtme:

Hapi 10: Arduino Software - Shtimi i Mbështetjes ESP32 - Hapi 2

Softueri Arduino - Shtimi i Mbështetjes ESP32 - Hapi 2
Softueri Arduino - Shtimi i Mbështetjes ESP32 - Hapi 2
Softueri Arduino - Shtimi i Mbështetjes ESP32 - Hapi 2
Softueri Arduino - Shtimi i Mbështetjes ESP32 - Hapi 2

Tani që softueri Arduino "njeh" më shumë borde, le të instalojmë mbështetjen tonë ESP32

Hapi 2: Instalimi i mbështetjes ESP32

1 - Në menunë e sipërme, zgjidhni: Tools >> Board >> Boards Manager

2 - Do të shfaqet një dritare. Përdorni kutinë e kërkimit, të vendosur në këndin e sipërm të djathtë, për të gjetur "ESP32".

3 - Gjeni atë të bërë nga espressif. Instalojeni atë. (Shih imazhin)

Hapi 11: Softueri Arduino - Shtimi i Mbështetjes ESP32 - Hapi 3

Softueri Arduino - Shtimi i Mbështetjes ESP32 - Hapi 3
Softueri Arduino - Shtimi i Mbështetjes ESP32 - Hapi 3

Tani që softueri Arduino mund të komunikojë me ESP32 -in tonë, le ta lidhim atë me kompjuterin dhe të verifikojmë që gjithçka funksionon.

1 - Le të sigurohemi që ne punojmë në platformën ESP32:

Klikoni në Veglat >> Bordi >> Moduli ESP32 Dev

1- Le të sigurohemi që softueri Arduino di të komunikojë me ESP-në tonë:

Klikoni në Tools >> Port dhe zgjidhni atë që shfaqet nga kyçja e këtij kablli.

E rëndësishme:

Nëse keni ndonjë problem me ngarkimin e kodit në ESP -në tuaj, kontrolloni së pari ato dy meny. Nëse porta nuk zgjidhet me një shenjë kontrolli, atëherë softueri Arduino nuk do të komunikojë me të.

Hapi 12: Shtimi i Bibliotekave në Arduino IDE

Shtimi i Bibliotekave në Arduino IDE
Shtimi i Bibliotekave në Arduino IDE

Tani do të shtojmë një bibliotekë që do të na lejojë të testojmë Murin tonë Led!

1- Klikoni në Veglat >> Menaxhoni Bibliotekat.

2- Në këndin e sipërm të djathtë, kërkoni NeoPixelBus. Gjeni "NeoPixelBus by Makuna", instalojeni (shiko imazhin)

Biblioteka të tjera të mundshme interesante: (Nuk kërkohet për këtë tutorial)

- NeoMatrix

- FastLed

- Artnet

- GFX

Hapi 13: Kodi i parë: Strand Test

Kodi ynë i parë është një shembull nga Biblioteka.

Ju ose mund të kopjoni / ngjisni kodin më poshtë ose të klikoni në:

Skedari >> Shembuj >> Adafruit NeoPixelBus >> Strandtest

Ju lutemi sigurohuni që të ndryshoni LED_PIN -in tuaj në atë që keni përdorur për të lidhur fizikisht led -et tuaj. Ne përdorëm 13 gjatë këtij tutoriali.

Gjithashtu sigurohuni që të përshtatni madhësinë e fillesë me ndryshoren LED_COUNT.

// Një program bazë i përditshëm LED Striptest.

#përfshijnë #ifdef _AVR_ #include // Kërkohet për 16 MHz Adafruit Trinket #endif // Cila pin në Arduino është e lidhur me NeoPixels? #përcaktoni LED_PIN 13 // Sa NeoPixel janë bashkangjitur në Arduino? #përcaktoni LED_COUNT 500 // Shpallni objektin tonë të shiritit NeoPixel: Rripin Adafruit_NeoPixel (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Argumenti 1 = Numri i pikselave në shiritin NeoPixel // Argumenti 2 = Numri i kunjit Arduino (shumica janë të vlefshme) // Argumenti 3 - Flamujt e tipit Pixel, shtoni së bashku sipas nevojës: // NEO_KHZ800 800 KHz bitstream (shumica e produkteve NeoPixel w/ WS2812 LED) // NEO_KHZ400 400 KHz (klasike 'v1' (jo v2) pixel FLORA, drejtues WS2811) // Pixel NEO_GRB janë të lidhur për bitstream GRB (shumica e produkteve NeoPixel) // Pixel NEO_RGB janë të lidhur për bitstream RGB (v1 pixel FLORA, jo v2) // NEO_RGBW Pixel-et janë të lidhur për bitstream RGBW (produktet NeoPixel RGBW) // funksioni setup ()-funksionon një herë gjatë fillimit -------------------- ------------ void setup () {// Këto linja janë posaçërisht për të mbështetur Adafruit Trinket 5V 16 MHz. // Çdo tabelë tjetër, ju mund ta hiqni këtë pjesë (por nuk ka dëm duke e lënë atë): #nëse është përcaktuar (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // FUND i kodit specifik të xhingël. strip.filloj (); // INITIALIZOJNi objektin e shiritit NeoPixel (KQRKOHET) shirit.shfaq (); // Çaktivizo të gjitha pikselat ASAP strip.setBrightness (50); // Vendosni BRIGHTNESS në rreth 1/5 (max = 255)} // funksioni loop ()-funksionon në mënyrë të përsëritur për aq kohë sa bordi është në --------------- loop void () {// Plotësoni përgjatë gjatësisë së shiritit me ngjyra të ndryshme … colorWipe (shirit. Ngjyra (255, 0, 0), 50); // Fshij ngjyrë të kuqe (shirit. Ngjyra (0, 255, 0), 50); // Green colorWipe (shirit. Ngjyra (0, 0, 255), 50); // Blu // Bëni një efekt teatri në ngjyra të ndryshme… theaterChase (strip. Color (127, 127, 127), 50); // Teatri i bardhë, me gjysmë shkëlqimi Chase (shirit. Ngjyra (127, 0, 0), 50); // Teatri i kuq, me gjysmë shkëlqimi Chase (shirit. Ngjyra (0, 0, 127), 50); // Blu, ylber me gjysmë shkëlqimi (10); // Rrjedha e ciklit të ylberit përgjatë gjithë teatrit të shiritaveChaseRainbow (50); // Varianti i teatrit i përmirësuar me ylber me varg} // Disa funksione tona për krijimin e efekteve të animuara ----------------- // Plotësoni piksele shiritash njëra pas tjetrës me një ngjyrë. Shiriti NUK është pastruar // së pari; çdo gjë atje do të mbulohet pixel me pixel. Kaloni me ngjyra // (si një vlerë e vetme "e paketuar" 32-bit, të cilën mund ta merrni duke telefonuar // shirit. Ngjyra (e kuqe, jeshile, blu) siç tregohet në funksionin e lakut () më sipër), // dhe a koha e vonesës (në milisekonda) midis pikselëve. ngjyra e pavlefshme Fshij (ngjyra uint32_t, prisni) {për (int i = 0; i strip.setPixelColor (i, ngjyra); // Vendosni ngjyrën e pikselit (në RAM) strip.show (); // Përditësoni shiritin që të përputhet me vonesën (prisni); // Ndaloni për një moment}} // Dritat e ndjekjes në stilin e teatrit-marquee. Kaloni në një ngjyrë (vlerë 32-bit, // shirit a la. Ngjyra (r, g, b) siç u përmend më lart), dhe një kohë vonesë (në ms) // midis kornizave. void theaterChase (uint32_t ngjyra, int prisni) {për (int a = 0; a <10; a ++) {// Përsëriteni 10 herë … për (int b = 0; b <3; b ++) {// 'b' numëron nga 0 në 2… strip.clear (); // Vendosni të gjitha pikselët në RAM në 0 (off) // 'c' numëron nga 'b' në fund të shirit në hapa prej 3… për (int c = b; c strip.setPixelColor (c, ngjyra); // Vendos pikselin 'c' në vlerën 'color'} strip.show (); // Përditëso shiritin me vonesë të përmbajtjes së re (prit); // Ndalo për një moment}}} // Cikli i ylberit përgjatë gjithë brezit. Kalo kohën e vonesës (në ms) midis kornizave. zbraz ylberin (pritja int) {// Ngjyra e pikselit të parë kalon 5 sythe të plota përmes rrota me ngjyra. // Rrota me ngjyra ka një gamë prej 65536, por është OK nëse rrokullisemi, kështu që // thjesht numëroni nga 0 në 5*65536. Shtimi i 256 në firstPixelHue çdo herë // do të thotë që ne do të bëjmë 5*65536/256 = 1280 kalon nëpër këtë lak të jashtëm: për (gjatë firstPixelHue = 0; firstPixelHue <5*65536; firstPixelHue += 256) {për (int i = 0; I // Ngjyra e pikselit të kompensuar me një sasi për të bërë një rrotullim të plotë të // rrotës së ngjyrave (diapazoni prej 65536) përgjatë gjatësisë së shiritit // (hapa strip.numPixels ()): int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels ()); // strip. ColorHSV () mund të marrë 1 ose 3 argumente: një nuancë (0 në 65535) ose // shtoni sipas dëshirës ngopjen dhe vlerën (shkëlqimin) (secila 0 në 255). // Këtu po përdorim vetëm variantin e nuancës me një argument të vetëm. Rezultati // kalohet përmes strip.gamma32 () për të siguruar ngjyra 'më të vërteta' // para se t'i caktojmë secilës pixel: strip.setPixelColor (i, strip.gamma32 (strip. ColorHSV (pixelHue)));} strip.show (); // Përditëso shiritin me vonesë të përmbajtjes së re (prit); // Pusho për një moment}} // Marquee teatri e rritur me Ylber. Kalo kohën e vonesës (në ms) midis kornizave. teatër i zbrazëtChaseRainbow (int prisni) {i nt parëPixelHue = 0; // Pikseli i parë fillon me të kuqe (nuanca 0) për (int a = 0; a <30; a ++) {// Përsëriteni 30 herë… për (int b = 0; b RGB strip.setPixelColor (c, ngjyra); / / Vendosni pikselin 'c' në vlerën 'ngjyra'} strip.show (); // Përditësoni shiritin me vonesë të përmbajtjes së re (prisni); // Ndaloni për një moment së pariPixelHue += 65536 /90; // Një cikël i rrotës me ngjyra mbi 90 korniza}}}

Hapi 14: Kodi i Shembullit SHU

Image
Image

Kodi ynë ndez të gjitha Ledet një nga një për t'u siguruar që funksionojnë:

// Ky shembull do të qarkullojë midis shfaqjes së 500 pikselave me ngjyrë të kuqe

#includeconst uint16_t PixelCount = 500; // ky shembull merr 4 piksele, duke e bërë atë më të vogël do të shkaktojë një dështim const uint8_t PixelPin = 13; // sigurohuni që ta vendosni këtë në kunjin e duhur, i injoruar për Esp8266

#përcaktoni ngjyrënSaturimi 128 // pixel me tre elementë, në rend dhe shpejtësi të ndryshme

Rrip NeoPixelBus (PixelCount, PixelPin);

// Rrip NeoPixelBus (PixelCount, PixelPin); Rgb Ngjyra e kuqe (0, ngjyraSaturation, 0); RgbColor jeshile (ngjyraSaturation, 0, 0); RgbColor blu (0, 0, ngjyraSaturation); Rgb Ngjyra e bardhë (ngjyra Ngopja); RgbColor zi (0); HslColor hslRed (e kuqe); HslColor hslGreen (jeshile); HslColor hslBlue (blu); HslColor hslBjardhë (e bardhë); HslColor hslBlack (e zezë); void setup () {Serial.begin (115200) ndërsa (! Serial); // prisni bashkangjitjen serike Serial.println (); Serial.println ("Fillimi …"); Serial.flush (); // kjo rivendos të gjitha neopixelët në një shirit jashtë gjendjes. Fillo (); shirit. Shfaq (); Serial.println (); Serial.println ("Po vrapon …"); } void loop () {vonesë (100); Serial.println ("Ngjyrat R, G, B, W …"); për (int i = 0; i <= 499; i ++) {// vendosni ngjyrat, // nëse ato nuk përputhen në rregull, duhet të përdorni shiritin e veçorive NeoGrbFeature. SetPixelColor (i, e kuqe); shirit. Shfaq (); vonesë (100); shirit. SetPixelColor (i, hslRed); shirit. Shfaq (); vonesë (100); }}

Hapi 15: Ngarkimi i Kodit në ESP32

E rëndësishme:

Për të qenë në gjendje të ngarkoni kodin në çdo mikro kontrollues, duhet të jetë në modalitetin e programimit. Shumica e bëni këtë automatikisht dhe gjithçka që duhet të bëni është të klikoni ngarkimin në program.

ESP32 ynë kërkon që ju të mbani butonin e programimit ndërsa kodi po dërgohet. Ju gjithashtu duhet ta rivendosni atë pasi kodi të jetë ngarkuar duke shtypur një herë butonin e rivendosjes.

Butoni ynë i programimit ESP32 ndodhet në të majtë, butoni i rivendosjes në të djathtë. Ju lutemi referojuni manualit tuaj nëse keni një mikrokontrollues tjetër.

Hapi 16: Citimet

Ky udhëzues u bë me ndihmën e mësimeve të mëposhtme:

randomnerdtutorials.com/installing-the-esp…

Përdoret për të instaluar ESP32 në Arduino IDE.

Autorët:

Nathaniel BaroneGabriel Castro

Redaktor:

Cedric Bleimling

Recommended: