INHOUDSOPGAWE:
- Voorrade
- Stap 1: Verstaan die stelsel
- Stap 2: Skryf die WebSocketServer
- Stap 3: Stel 'n protokol vir reeksopdragte op
Video: LightMeUp! 'n Realtime Cross-platformed LED Strip Control: 5 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
LightMeUp! is 'n stelsel wat ek uitgevind het om 'n RGB LED-strook intyds te beheer, terwyl die koste laag en die prestasie hoog gehou word.
Die bediener is in Node.js geskryf en daarom kruisplatformeerbaar.
In my voorbeeld gebruik ek 'n Raspberry Pi 3B vir langtermyn gebruik, maar my Windows -rekenaar om demonstrasie en ontfouting.
Die 4-pins-strook word beheer deur 'n Arduino Nano-tipe bord, wat opdragte in serie uitvoer om PWM-seine na drie transistors te stuur, wat die +12VDC in die ooreenstemmende kleurpen van die strook skakel.
Die LightMeUp! Die stelsel kontroleer ook sy eie temperatuur, sodra dit bo 60 ° C (140 ° F) is, skakel dit twee 12VDC -rekenaarwaaiers aan wat in die omhulsel ingebou is om homself af te koel om die lewensduur van die kring te verbeter.
Nog 'n kenmerk van LightMeUp! is om 'n Bombay-Sapphire Gin-bottel te verlig, maar dit is nie die fokus van hierdie Instructable nie.
Lees lekker:)
Voorrade
- Arduino Nano (of enige ander ATmega328 / hoër-gebaseerde mikrobeheerder)
- Raspberry Pi 3 Model B met Node.js geïnstalleer (of enige ander rekenaar)
- 12V RGB 4-pins LED-strook
- 12V 3A Kragtoevoer
- Springkabels (manlik-manlik as u natuurlik 'n broodbord gebruik)
- Broodbord (opsioneel)
- 2 12V DC rekenaarwaaiers (opsioneel)
- 3x TIP120 Darlington Transistor w/ heatsink (4 as u koelwaaiers wil insluit)
- 2 status -LED's rooi en groen (opsioneel)
- 6, 7K NTC temperatuurgebaseerde weerstand + 6, 7K weerstand (opsioneel)
- USB-Mini na USB 2.0 datakabel (vir die Raspberry Pi om met die Arduino te kommunikeer)
- Ekstern aangedrewe USB-hub (opsioneel, slegs vir Raspberry Pi)
Stap 1: Verstaan die stelsel
LightMeUp! is gebaseer op 'n baie eenvoudige elektroniese stroombaan.
Ons het 'n soort rekenaar (in hierdie geval 'n Raspberry Pi) wat in serie met ons mikrokontrollerbord kommunikeer. Hierdie bord voer dan spesifieke reeksopdragte uit, soos 'RGB (255, 255, 255)', wat ons LED-strook wit sal maak.
Nadat ons ons drie waardes vir ROOI, GROEN en BLOU nodig gehad het vir ons 4-pins LED-strook, voer ons analogWrite (pen, waarde) uit om ons TIP120-transistor van 'n PWM-sein te voorsien.
Met hierdie PWM -sein kan die transistor die ooreenstemmende kleurpen waarmee die versamelaar gekoppel is, in 'n spesifieke mate of heeltemal aan / uit skakel. Ja, baie "to" s:)
Deur die drie transistors -uitsette te meng met die kleurpenne van die LED -stroke, kan ons basies enige kleur skep wat ons wil!
Met hierdie begrip kan ons die grootste uitdaging van hierdie projek, die websocketserver en die seriële verbinding met ons Arduino, aanval.
Stap 2: Skryf die WebSocketServer
Nou moet ons 'n spesifieke soort webbediener skep waarmee ons data heen en weer kan oordra sonder om een keer te verfris om 'n realtime LED -strookbeheer te verkry.
Let daarop dat kommunikasie intyds natuurlik onmoontlik is; daar sal altyd ten minste 'n paar millisekondes vertraging betrokke wees, maar vir die menslike oog is dit aansienlik meer as intyds.
Dit kan maklik bereik word deur die socket.io -biblioteek te gebruik as u Node.js gebruik soos ek. U kan egter altyd by u gunsteling programmeertaal bly.
Ons het te doen met 'n websocket-verbinding wat ons toelaat om invoerdata soos die kleur waarop u die LED-strook wil stel, of statusdata soos "LED ON" in twee rigtings oor te dra sonder om te verfris.
'N Ander baie belangrike funksie wat die bediener behoort te hê, maar nie nodig het nie, is 'n eenvoudige aanmelding. Ek het my aanmelding gebaseer op 'n eenvoudige gebruikersnaam en wagwoordveld. Hierdie inligting word dan op die /login-roete van die bediener geplaas, wat die gebruikersnaam dan vergelyk met 'n lys gebruikers (.txt-lêer) en die ooreenstemmende wagwoord in die SHA256-geïnkripteer vorm. U wil nie hê dat u bure met u LED -strook moet mors nie, terwyl u van u gunsteling drankie op u gemaklikste sitplek geniet?
Nou kom die hart van die bediener, die seriële kommunikasie.
U bediener moet in staat wees om serieel te kommunikeer - in Node.js kan dit bereik word deur 'n poort oop te maak met die 'serialport' -biblioteek. Maar bepaal eers die naam van u arduino -poort op u rekenaar wat die bediener huisves. Afhangende van u bedryfstelsel, sal die poorte verskillende name hê, bv. Op Windows word hierdie poorte 'COMx' -poorte genoem, terwyl hulle op Linux'/dev/ttyUSBx 'genoem word, waar x die nommer van die USB -poort is.
Stap 3: Stel 'n protokol vir reeksopdragte op
Op die foto hierbo sien u die werklike Arduino IDE -kode wat verantwoordelik is vir die RGB -beheer. Die doel van hierdie stap is om u selfgeskrewe bediener en Arduino-bord suksesvol met mekaar te laat praat.
Sodra u u seriële poort suksesvol oopgemaak het, moet u opdragte na die bord kan stuur wat aan u wense voldoen. As ons byvoorbeeld 'n vinger bo die kleurkieser op die HTML -webblad trek, moet die RGB -kode na die bediener gestuur word, wat dit dan na u Arduino stuur sodat dit die ingestelde waardes verwerk.
Ek het jscolor gebruik; hulle het 'n uitstekende implementering van 'n kleurkeuse -element van hoë gehalte, wat 'n gebeurtenis besit met die naam 'onFineChange', waarmee u die verwerkingsdata van die kleurkieser kan toelaat sodra die waardes daarvan verander.
Aanbeveel:
RGB Led Strip Bluetooth Controller V3 + Music Sync + Ambient Light Control: 6 stappe (met foto's)
RGB Led Strip Bluetooth Controller V3 + Music Sync + Ambient Light Control: Hierdie projek gebruik arduino om 'n RGB led strip met u telefoon via bluetooth te beheer. U kan kleur verander, ligte met musiek laat sinkroniseer of dit outomaties laat aanpas vir die omringende beligting
DIY LED Strip: hoe om LED Strip te sny, aan te sluit, te soldeer en te voed: 3 stappe (met foto's)
DIY LED Strip: Hoe om LED Strip te sny, aan te sluit, te soldeer en aan te dryf: Beginnersgids vir die maak van u eie ligprojekte met LED strip. die basiese beginsels vir die installering van 'n eenvoudige binne 60 LED's/m LED -strook, maar die in
ESP8266 RGB LED STRIP WIFI Control - NODEMCU As 'n IR -afstandsbediening vir LED -strook wat via wifi bestuur word - RGB LED STRIP -slimfoonbeheer: 4 stappe
ESP8266 RGB LED STRIP WIFI Control | NODEMCU As 'n IR -afstandsbediening vir LED -strook wat via wifi bestuur word | RGB LED STRIP -slimfoonbeheer: Hallo ouens, in hierdie tutoriaal leer ons hoe om nodemcu of esp8266 as 'n IR -afstandsbediening te gebruik om 'n RGB LED -strook te beheer, en Nodemcu word deur 'n slimfoon oor wifi beheer. U kan dus die RGB LED STRIP met u slimfoon beheer
Wifi -beheerde 12v Led Strip met Raspberry Pi Met Tasker, Ifttt -integrasie: 15 stappe (met foto's)
Wifi -beheerde 12v Led Strip met Raspberry Pi Met Tasker, Ifttt Integration .: In hierdie projek sal ek jou wys hoe om 'n eenvoudige 12v analoge led strip oor wifi te beheer met 'n framboos pi. Vir hierdie projek benodig jy: 1x Raspberry Pi (I gebruik 'n Raspberry Pi 1 Model B+) 1x RGB 12v Le
Realtime gebeurteniskennisgewings met behulp van NodeMCU (Arduino), Google Firebase en Laravel: 4 stappe (met foto's)
Realtime -kennisgewings met behulp van NodeMCU (Arduino), Google Firebase en Laravel: wou u ooit in kennis gestel word as daar 'n aksie op u webwerf is, maar e -pos pas nie? Wil u 'n geluid of 'n klokkie hoor elke keer as u 'n uitverkoping doen? Of is u onmiddellike aandag nodig as gevolg van 'n noodgeval