Kazalo:
- Zaloge
- 1. korak: Razumeti sistem
- 2. korak: Pisanje WebSocketServerja
- 3. korak: Vzpostavite protokol zaporednih ukazov
Video: Prižgi me! nadzor v realnem času z navzkrižno ploščatimi LED trakovi: 5 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
Prižgi me! je sistem, ki sem ga izumil za nadzor RGB LED traku v realnem času, hkrati pa ohranja nizke stroške in visoko zmogljivost.
Strežnik je napisan v Node.js in ga je zato mogoče medoblikovati.
V mojem primeru uporabljam Raspberry Pi 3B za dolgotrajno uporabo, računalnik z operacijskim sistemom Windows pa zaradi demonstracije in odpravljanja napak.
4-pinski trak nadzira tipska plošča Arduino Nano, ki izvaja zaporedno podane ukaze za pošiljanje PWM signalov na tri tranzistorje, ki preklopijo +12VDC v ustrezno barvno iglo traku.
LightMeUp! sistem preveri tudi svojo temperaturo, ko je nad 60 ° C (140 ° F), vklopi dva računalniška ventilatorja 12VDC, vgrajena v ohišje, da se ohladi in tako izboljša življenjsko dobo vezja.
Druga značilnost programa LightMeUp! je osvetliti steklenico Bombay-Sapphire Gin, vendar to ni v središču tega navodila.
Uživajte v branju:)
Zaloge
- Arduino Nano (ali kateri koli drug mikrokrmilnik na osnovi ATmega328 / višje)
- Raspberry Pi 3 Model B z nameščenim Node.js (ali katerim koli drugim računalnikom)
- 12V RGB 4-pinski LED trak
- 12V 3A Napajanje
- Mostični kabli (moški-moški, če uporabljate mizo, seveda)
- Ogledna plošča (neobvezno)
- 2 računalniška ventilatorja 12V DC (neobvezno)
- 3x TIP120 Darlington tranzistor s hladilnikom (4, če želite vključiti hladilne ventilatorje)
- 2 LED -lučki stanja rdeča in zelena (neobvezno)
- 6, 7K temperaturni upor NTC + 6, 7K upor (neobvezno)
- Podatkovni kabel USB-Mini do USB 2.0 (za komunikacijo Raspberry Pi z Arduinom)
- USB-zvezdišče z zunanjim napajanjem (neobvezno, samo za Raspberry Pi)
1. korak: Razumeti sistem
Prižgi me! temelji na zelo preprostem elektronskem vezju.
Imamo nekakšen računalnik (v tem primeru Raspberry Pi), ki serijsko komunicira z našo mikrokrmilno ploščo. Ta plošča nato izvede posebne serijske ukaze, kot je "RGB (255, 255, 255)", ki bi naš trak LED obarvali belo.
Ko dobimo tri vrednosti za RDEČO, ZELENO in MODRO, ki so potrebne za naš 4pin LED-trak, izvedemo analogWrite (pin, vrednost), da napajamo naš tranzistor TIP120 s PWM signalom.
Ta signal PWM omogoča tranzistorju, da v določeni meri ali popolnoma vklopi / izklopi ustrezen barvni pin, na katerega je kolektor priključen. Ja, veliko "za":)
Z mešanjem treh izhodov tranzistorjev na barvne zatiče LED trakov lahko v bistvu ustvarimo poljubno barvo!
S tem razumevanjem lahko napadnemo največji izziv tega projekta, spletni strežnik in njegovo serijsko povezavo z našim Arduinom.
2. korak: Pisanje WebSocketServerja
Zdaj moramo ustvariti posebno vrsto spletnega strežnika, ki nam omogoča prenos podatkov naprej in nazaj brez enkratnega osveževanja, da dosežemo nadzor LED traku v realnem času.
Upoštevajte, da komunikacija v realnem času seveda ni mogoča, vedno bo prišlo vsaj do nekaj milisekund zamude, a za človeško oko je to precej kot v realnem času.
To lahko preprosto dosežete z uporabo knjižnice socket.io, če uporabljate Node.js tako kot jaz. Seveda pa se lahko vedno držite svojega najljubšega programskega jezika.
Ukvarjali se bomo s povezavo websocket, ki nam omogoča dvosmerno prenašanje vhodnih podatkov, na primer za katero barvo želite nastaviti LED-trak, ali podatkov o stanju, kot je »LED ON«, brez osveževanja.
Druga zelo pomembna lastnost, ki bi jo moral imeti strežnik, ni pa nujna, je preprosta prijava. Svojo prijavo sem temeljil na preprostem polju za uporabniško ime in geslo. Ti podatki se nato objavijo na poti /login strežnika, ki nato primerja uporabniško ime s seznamom uporabnikov (datoteka.txt) in ustreznim geslom v šifrirani obliki SHA256. Ne želite, da se vaši sosedje zapletajo z vašim LED trakom, medtem ko uživate v svoji najljubši pijači na svojem najbolj udobnem sedežu, kajne?
Zdaj prihaja srce strežnika, serijska komunikacija.
Vaš strežnik mora imeti možnost serijske komunikacije - v Node.js je to mogoče doseči z odpiranjem vrat z uporabo knjižnice "serialport". Najprej pa določite ime svojih vrat arduino v računalniku, ki gosti strežnik. Odvisno od vašega operacijskega sistema bodo vrata imela različna imena, npr. v operacijskem sistemu Windows se ta vrata imenujejo "COMx" vrata, v linuxu pa "/dev/ttyUSBx", kjer je x številka vrat USB.
3. korak: Vzpostavite protokol zaporednih ukazov
Na zgornji sliki vidite dejansko kodo Arduino IDE, odgovorno za nadzor RGB. Cilj tega koraka je, da se vaš samostojno napisani strežnik in plošča Arduino uspešno pogovarjata.
Ko uspešno odprete serijska vrata, morate biti sposobni pošiljati ukaze na ploščo, ki skrbi za vaše želje. Če na primer potegnemo prst nad izbirnikom barv na spletni strani HTML, je treba kodo RGB poslati strežniku, ki jo nato pošlje v vaš Arduino, da obdeluje nastavljene vrednosti.
Uporabil sem jscolor, imajo odlično izvedbo visokokakovostnega elementa izbire barv, ki ima v lasti dogodek, imenovan "onFineChange", ki omogoča, da se vaši podatki o postopku izbirnika barv takoj, ko se spremenijo vrednosti.
Priporočena:
Merilnik vodostaja v realnem času: 6 korakov (s slikami)
Merilnik vodostaja v realnem času: Ta navodila opisujejo, kako zgraditi poceni merilnik nivoja vode v realnem času za uporabo v izkopanih vodnjakih. Merilnik nivoja vode je zasnovan tako, da visi v izkopanem vodnjaku, izmeri nivo vode enkrat na dan in podatke pošlje prek WiFi ali mobilne povezave
Merilnik temperature vode, prevodnosti in nivoja vode v vodnjaku v realnem času: 6 korakov (s slikami)
Merilnik temperature vode, prevodnosti in nivoja vode v vodnjaku v realnem času: Ta navodila opisujejo, kako sestaviti poceni merilnik vode v realnem času za spremljanje temperature, električne prevodnosti (EC) in nivoja vode v izkopanih vodnjakih. Merilnik je zasnovan tako, da visi v izkopanem vodnjaku, meri temperaturo vode, EC in
Program MicroPython: posodobite podatke o koronavirusni bolezni (COVID-19) v realnem času: 10 korakov (s slikami)
Program MicroPython: Posodobitev podatkov o koronavirusni bolezni (COVID-19) v realnem času: V zadnjih nekaj tednih je število potrjenih primerov koronavirusne bolezni (COVID 19) po vsem svetu preseglo 100.000, Svetovna zdravstvena organizacija (WHO) pa je razglasila nova epidemija koronavirusne pljučnice je svetovna pandemija. Bil sem zelo
Robot SCARA: Spoznavanje napredne in obratne kinematike !!! (Plot Twist Naučite se ustvariti vmesnik v realnem času v ARDUINU z OBDELAVO !!!!): 5 korakov (s slikami)
Robot SCARA: Spoznavanje napredne in obratne kinematike !!! (Plot Twist Naučite se ustvariti vmesnik v realnem času v ARDUINU z OBDELAVO !!!!): Robot SCARA je zelo priljubljen stroj v svetu industrije. Ime pomeni tako selektivno skladno roko za montažo robotov kot selektivno skladno zgibno roko roko. To je v bistvu robot treh stopenj svobode, prva dva displ
Odkrivanje obrazov v realnem času na RaspberryPi-4: 6 korakov (s slikami)
Odkrivanje obrazov v realnem času na RaspberryPi-4: V tem navodilu bomo izvajali zaznavanje obrazov v realnem času na Raspberry Pi 4 s Shunya O/S z uporabo knjižnice Shunyaface. S pomočjo te vadnice lahko dosežete hitrost zaznavanja sličic 15-17 na RaspberryPi-4