Sisukord:

Anna mulle tuld! reaalajas ristplatvormitud LED-riba juhtimine: 5 sammu (piltidega)
Anna mulle tuld! reaalajas ristplatvormitud LED-riba juhtimine: 5 sammu (piltidega)

Video: Anna mulle tuld! reaalajas ristplatvormitud LED-riba juhtimine: 5 sammu (piltidega)

Video: Anna mulle tuld! reaalajas ristplatvormitud LED-riba juhtimine: 5 sammu (piltidega)
Video: IBADAH DOA PENYEMBAHAN, 22 MARET 2022 - Pdt. Daniel U. Sitohang 2024, November
Anonim
Anna mulle tuld! reaalajas ristplatvormitud LED-riba juhtimine
Anna mulle tuld! reaalajas ristplatvormitud LED-riba juhtimine
Anna mulle tuld! reaalajas ristplatvormitud LED-riba juhtimine
Anna mulle tuld! reaalajas ristplatvormitud LED-riba juhtimine
Anna mulle tuld! reaalajas ristplatvormitud LED-riba juhtimine
Anna mulle tuld! reaalajas ristplatvormitud LED-riba juhtimine

Anna mulle tuld! on süsteem, mille leiutasin RGB LED-riba reaalajas juhtimiseks, hoides samal ajal kulud madalad ja jõudluse kõrge.

Server on kirjutatud Node.js ja seetõttu platvormidevaheline.

Minu näites kasutan Raspberry Pi 3B -d pikaajaliseks kasutamiseks, kuid oma Windowsi arvutit demonstreerimise ja silumise huvides.

4-pin riba juhib Arduino Nano tüüpi plaat, mis täidab järjestikku antud käske PWM-signaalide saatmiseks kolmele transistorile, mis lülitavad +12 V alalisvoolu riba vastavasse värvi-tihvti.

LightMeUp! süsteem kontrollib ka enda temperatuuri, kui see on üle 60 ° C (140 ° F), lülitab see sisse kaks korpusesse ehitatud 12 V alalisvoolu arvuti ventilaatorit, et jahutada, et parandada vooluahela eluiga.

Veel üks LightMeUpi funktsioon! on valgustada Bombay-Sapphire Gin pudelit, kuid see ei ole selle juhendi keskmes.

Nautige lugemist:)

Tarvikud

  • Arduino Nano (või mõni muu ATmega328 / kõrgema kvaliteediga mikrokontroller)
  • Raspberry Pi 3 mudel B, millele on installitud Node.js (või mõni muu arvuti)
  • 12V RGB 4-pin LED-riba
  • 12V 3A toide
  • Jumperkaablid (muidugi mees-mees, kui kasutate leivaplaati)
  • Leivalaud (valikuline)
  • 2 12V alalisvoolu arvuti ventilaatorit (valikuline)
  • 3x TIP120 Darlingtoni transistor koos jahutiga (4, kui soovite lisada jahutusventilaatoreid)
  • 2 oleku LED -i punane ja roheline (valikuline)
  • 6, 7K NTC temperatuuripõhine takisti + 6, 7K takisti (valikuline)
  • USB-Mini-USB 2.0 andmekaabel (Raspberry Pi jaoks Arduinoga suhtlemiseks)
  • Välise toitega USB-jaotur (valikuline, ainult Raspberry Pi jaoks)

Samm: mõistke süsteemi

Mõista Süsteemi
Mõista Süsteemi

Anna mulle tuld! põhineb väga lihtsal elektroonilisel vooluringil.

Meil on mingi arvuti (antud juhul Raspberry Pi), mis suhtleb järjestikku meie mikrokontrolleri plaadiga. See plaat täidab seejärel konkreetseid jadakäske nagu "RGB (255, 255, 255)", mis muudaksid meie LED-riba valgeks.

Kui oleme saanud oma 4-pin LED-riba jaoks vajalikud kolm punast, rohelist ja sinist väärtust, käivitame analogWrite (tihvt, väärtus), et anda meie TIP120 transistorile PWM-signaal.

See PWM -signaal võimaldab transistoril lülitada vastava värvi tihvti, millega kollektor on maandusega ühendatud, teatud määral või täielikult sisse / välja. Jah, palju "to":)

Segades kolm transistori väljundit LED -ribade värvipulkadega, saame luua põhimõtteliselt mis tahes värvi!

Nüüd saame selle arusaamaga rünnata selle projekti suurimat väljakutset, veebipõhist serverit ja selle jadaühendust meie Arduinoga.

2. samm: WebSocketServeri kirjutamine

WebSocketServeri kirjutamine
WebSocketServeri kirjutamine

Nüüd peame looma spetsiifilise veebiserveri, mis võimaldab meil reaalajas LED -riba juhtimise saavutamiseks andmeid edasi -tagasi üle kanda ilma värskendamata.

Pange tähele, et reaalajas suhtlemine on muidugi võimatu, sellega kaasneb alati vähemalt paar millisekundit viivitust, kuid inimsilma jaoks on see reaalajas märkimisväärne.

Seda saab hõlpsasti saavutada, kasutades teeki socket.io, kui kasutate Node.js -i nagu mina. Loomulikult võite alati jääda oma lemmikprogrammeerimiskeele juurde.

Tegeleme veebipistikühendusega, mis võimaldab meil edastada sisendandmeid, näiteks millisele värvile soovite LED-riba määrata, või olekuandmeid, nagu "LED ON", kahesuunaliselt ilma värskendamiseta.

Teine väga oluline funktsioon, mis serveril peaks olema, kuid ei pea seda tegema, on lihtne sisselogimine. Ma lähtusin oma sisselogimisest lihtsa kasutajanime ja parooli väljalt. Need andmed postitatakse seejärel serveri /sisselogimisteele, mis seejärel võrdleb kasutajanime kasutajate loendiga (.txt-fail) ja sellele vastava parooliga SHA256-krüptitud kujul. Te ei taha, et teie naabrid teie LED -ribaga segi ajaksid, kui naudite oma lemmikjooki oma kõige mugavamal istmel, eks?

Nüüd tuleb serveri süda, jadaühendus.

Teie server peab suutma suhelda järjestikku - Node.js -s on seda võimalik saavutada, avades pordi, kasutades "jadaporti". Kuid kõigepealt määrake oma arduino pordi nimi arvutis, mis serverit majutab. Sõltuvalt teie operatsioonisüsteemist on pordidel erinevad nimed, nt. Windowsis on nende portide nimi "COMx", linuxis aga "/dev/ttyUSBx", kus x on USB -pordi number.

3. samm: looge jadakäskude protokoll

Koostage seeriakäskude protokoll
Koostage seeriakäskude protokoll

Ülaltoodud pildil näete tegelikku Arduino IDE koodi, mis vastutab RGB juhtimise eest. Selle sammu eesmärk on panna teie ise kirjutatud server ja Arduino plaat üksteisega edukalt rääkima.

Kui olete oma jadaporti edukalt avanud, peate suutma saata käske tahvlile, mis hoolitseb teie soovide eest. Näiteks kui tõmbame sõrme HTML -i veebilehel värvivalija kohale, tuleks RGB -kood saata serverisse, mis seejärel saadab selle teie Arduinole, et see töötleks määratud väärtusi.

Ma kasutasin jscolori, neil on suurepärane kvaliteetse värvivaliku elemendi juurutus, millele kuulub sündmus nimega "onFineChange", mis võimaldab teie värvianduri protsessiandmeid kohe, kui selle väärtused muutuvad.

Soovitan: