Satura rādītājs:

Apgaismo mani! reāllaika pārrobežu platformas LED sloksnes vadība: 5 soļi (ar attēliem)
Apgaismo mani! reāllaika pārrobežu platformas LED sloksnes vadība: 5 soļi (ar attēliem)

Video: Apgaismo mani! reāllaika pārrobežu platformas LED sloksnes vadība: 5 soļi (ar attēliem)

Video: Apgaismo mani! reāllaika pārrobežu platformas LED sloksnes vadība: 5 soļi (ar attēliem)
Video: 10 Best PRODUCTS for Importing from CHINA in 2024 | How to Import from China Successfully 2024, Novembris
Anonim
Apgaismo mani! reāllaika pārrobežu platformas LED sloksnes vadība
Apgaismo mani! reāllaika pārrobežu platformas LED sloksnes vadība
Apgaismo mani! reāllaika pārrobežu platformas LED sloksnes vadība
Apgaismo mani! reāllaika pārrobežu platformas LED sloksnes vadība
Apgaismo mani! reāllaika pārrobežu platformas LED sloksnes vadība
Apgaismo mani! reāllaika pārrobežu platformas LED sloksnes vadība

Apgaismo mani! ir sistēma, kuru es izgudroju, lai reāllaikā kontrolētu RGB LED sloksni, vienlaikus saglabājot zemas izmaksas un augstu veiktspēju.

Serveris ir rakstīts Node.js, un tāpēc tas ir savstarpēji platformējams.

Manā piemērā es izmantoju Raspberry Pi 3B ilgstošai lietošanai, bet savu Windows datoru demonstrācijas un atkļūdošanas labad.

Četru kontaktu joslu kontrolē Arduino Nano tipa plāksne, kas izpilda sērijveidā dotas komandas, lai nosūtītu PWM signālus uz trim tranzistoriem, pārslēdzot +12VDC uz atbilstošo sloksnes krāsu tapu.

LightMeUp! sistēma arī pārbauda savu temperatūru, kad tā ir virs 60 ° C (140 ° F), tā ieslēdz divus korpusā iebūvētus 12 V līdzstrāvas datoru ventilatorus, lai atdzesētu, lai uzlabotu ķēdes kalpošanas laiku.

Vēl viena LightMeUp iezīme! ir izgaismot Bombay-Sapphire Gin pudeli, bet tas nav šīs pamācības uzmanības centrā.

Patīk lasīt:)

Piegādes

  • Arduino Nano (vai jebkurš cits ATmega328 / augstāka līmeņa mikrokontrolleris)
  • Raspberry Pi 3 modelis B ar instalētu Node.js (vai jebkuru citu datoru)
  • 12V RGB 4-pin LED sloksne
  • 12V 3A Barošanas avots
  • Džempera kabeļi (protams, vīrietis-vīrietis, ja izmantojat maizes dēli)
  • Maizes dēlis (pēc izvēles)
  • 2 12 V līdzstrāvas datoru ventilatori (pēc izvēles)
  • 3x TIP120 Darlington tranzistors ar radiatoru (4, ja vēlaties iekļaut dzesēšanas ventilatorus)
  • 2 statusa gaismas diodes sarkanas un zaļas (pēc izvēles)
  • 6, 7K NTC temperatūras rezistors + 6, 7K rezistors (pēc izvēles)
  • USB-Mini līdz USB 2.0 datu kabelis (lai Raspberry Pi sazinātos ar Arduino)
  • Ārēji darbināms USB centrmezgls (pēc izvēles, tikai Raspberry Pi)

1. darbība. Izprotiet sistēmu

Izprotiet Sistēmu
Izprotiet Sistēmu

Apgaismo mani! pamatā ir ļoti vienkārša elektroniskā shēma.

Mums ir sava veida dators (šajā gadījumā Raspberry Pi), kas sērijveidā sazinās ar mūsu mikrokontrollera plati. Pēc tam šī tāfele izpilda īpašas sērijas komandas, piemēram, "RGB (255, 255, 255)", kas mūsu LED sloksni padarītu baltu.

Tiklīdz esam ieguvuši trīs vērtības SARKANA, ZAĻA un ZILA, kas nepieciešamas mūsu 4-pin LED sloksnei, mēs izpildām analogWrite (tapu, vērtību), lai piegādātu mūsu TIP120 tranzistoru ar PWM signālu.

Šis PWM signāls ļauj tranzistoram noteiktā pakāpē vai pilnībā ieslēgt / izslēgt atbilstošo krāsu tapu, kurai kolektors ir pievienots. Jā, daudz "uz":)

Sajaucot trīs tranzistoru izejas ar LED sloksņu krāsu tapām, mēs varam izveidot būtībā jebkuru vēlamo krāsu!

Tagad ar šo izpratni mēs varam uzbrukt šī projekta lielākajam izaicinājumam - websocketserver un tā sērijas savienojumam ar mūsu Arduino.

2. darbība. WebSocketServer rakstīšana

WebSocketServer rakstīšana
WebSocketServer rakstīšana

Tagad mums ir jāizveido īpaša veida tīmekļa serveris, kas ļauj mums pārsūtīt datus uz priekšu un atpakaļ, vienreiz neatsvaidzinot, lai panāktu reāllaika LED sloksnes vadību.

Lūdzu, ņemiet vērā, ka reāllaika saziņa, protams, nav iespējama, vienmēr būs vismaz dažas milisekundes kavēšanās, bet cilvēka acīm tas ir ievērojams kā reālā laikā.

To var viegli sasniegt, izmantojot bibliotēku socket.io, ja izmantojat Node.js tāpat kā es. Tomēr, protams, jūs vienmēr varat pieturēties pie savas iecienītākās programmēšanas valodas.

Mēs strādāsim ar interneta kontaktligzdas savienojumu, kas ļauj mums pārsūtīt ievades datus, piemēram, to, kurai krāsai vēlaties iestatīt LED sloksni, vai statusa datus, piemēram, "LED IESLĒGTS" divvirzienu režīmā bez atsvaidzināšanas.

Vēl viena ļoti svarīga funkcija, kas serverim vajadzētu būt, bet tai nav nepieciešama, ir vienkārša pieteikšanās. Es pamatoju savu pieteikšanos, izmantojot vienkāršu lietotājvārda un paroles lauku. Pēc tam šī informācija tiek ievietota servera /pieteikšanās maršrutā, kas pēc tam salīdzina lietotājvārdu ar lietotāju sarakstu (.txt fails) un atbilstošo paroli SHA256 šifrētā formā. Jūs nevēlaties, lai jūsu kaimiņi sajauktos ar jūsu LED sloksni, kamēr jūs baudāt savu iecienītāko dzērienu uz visērtākā sēdekļa, vai ne?

Tagad nāk servera sirds, seriālā komunikācija.

Jūsu serverim jāspēj sazināties sērijveidā - vietnē Node.js to var panākt, atverot portu, izmantojot "serialport" bibliotēku. Bet vispirms nosakiet sava arduino porta nosaukumu datorā, kurā atrodas serveris. Atkarībā no jūsu operētājsistēmas portiem būs dažādi nosaukumi, t.i. operētājsistēmā Windows šie porti ir nosaukti par "COMx" portiem, savukārt Linux - ar nosaukumu "/dev/ttyUSBx", kur x ir USB porta numurs.

3. darbība: izveidojiet sērijas komandu protokolu

Izveidojiet sērijas komandu protokolu
Izveidojiet sērijas komandu protokolu

Augšējā attēlā redzat faktisko Arduino IDE kodu, kas ir atbildīgs par RGB vadību. Šī soļa mērķis ir panākt, lai jūsu pašrakstītais serveris un Arduino tāfele veiksmīgi sarunātos savā starpā.

Kad esat veiksmīgi atvēris seriālo portu, jums jāspēj nosūtīt komandas tāfelei, kas rūpējas par jūsu vēlmēm. Piemēram, ja mēs izvelkam pirkstu virs krāsu atlasītāja HTML lapā, RGB kods jānosūta uz serveri, kurš pēc tam nosūta to jūsu Arduino, lai tā apstrādā iestatītās vērtības.

Es izmantoju jscolor, tajos ir lieliski ieviests augstas kvalitātes krāsu atlases elements, kuram pieder notikums ar nosaukumu "onFineChange", kas ļauj apstrādāt datus no krāsu atlasītāja, tiklīdz mainās to vērtības.

Ieteicams: