Мазмұны:

LightMeUp! Нақты уақытта кросс-платформалы жарықдиодты жолақты басқару: 5 қадам (суреттермен)
LightMeUp! Нақты уақытта кросс-платформалы жарықдиодты жолақты басқару: 5 қадам (суреттермен)

Бейне: LightMeUp! Нақты уақытта кросс-платформалы жарықдиодты жолақты басқару: 5 қадам (суреттермен)

Бейне: LightMeUp! Нақты уақытта кросс-платформалы жарықдиодты жолақты басқару: 5 қадам (суреттермен)
Бейне: Bitcoin (BTC) - Análise de hoje, 08/07/2023! #BTC #bitcoin #XRP #ripple #ETH #Ethereum #BNB 2024, Қараша
Anonim
LightMeUp! нақты уақытта кросс-платформалы жарықдиодты жолақты басқару
LightMeUp! нақты уақытта кросс-платформалы жарықдиодты жолақты басқару
LightMeUp! нақты уақытта кросс-платформалы жарықдиодты жолақты басқару
LightMeUp! нақты уақытта кросс-платформалы жарықдиодты жолақты басқару
LightMeUp! нақты уақытта кросс-платформалы жарықдиодты жолақты басқару
LightMeUp! нақты уақытта кросс-платформалы жарықдиодты жолақты басқару

LightMeUp! Мен RGB LED-Strip-ті нақты уақыт режимінде басқару үшін ойлап тапқан жүйе, сонымен бірге шығындарды төмендетіп, өнімділікті жоғарылатамын.

Сервер Node.js-те жазылған және сол себепті кросс-платформалық болып табылады.

Менің мысалда мен ұзақ уақыт пайдалану үшін Raspberry Pi 3B қолданамын, бірақ демонстрация мен жөндеу үшін менің Windows компьютерім.

4 істікшелі жолақты Arduino Nano типті тақтасы басқарады, ол PWM сигналдарын +12ВДК жолақтың сәйкес түсті түйреуішіне ауыстыратын үш транзисторға жіберу үшін берілген командаларды орындайды.

LightMeUp! Сондай -ақ, жүйе өзінің температурасын тексереді, егер ол 60 ° C (140 ° F) жоғары болса, контурдың қызмет ету мерзімін жақсарту үшін салқындату үшін корпусқа салынған 12 ВДС компьютердің екі желдеткішін қосады.

LightMeUp тағы бір ерекшелігі! Bombay-Sapphire Gin бөтелкесін жарықтандыру керек, бірақ бұл нұсқаулықтың басты мақсаты емес.

Оқудан ләззат алыңыз:)

Жабдықтар

  • Arduino Nano (немесе кез келген басқа ATmega328 / жоғары деңгейлі микроконтроллер)
  • Node.js орнатылған Raspberry Pi 3 Model B (немесе кез келген басқа компьютер)
  • 12 В RGB 4 істікшелі жарықдиодты жолақ
  • 12 В 3А Қуат көзі
  • Өткізгіш кабельдер (егер сіз тақтаны қолдансаңыз, еркек-еркек)
  • Нан тақтасы (міндетті емес)
  • 2 12В тұрақты компьютерлік желдеткіштер (міндетті емес)
  • 3x TIP120 Дарлингтон транзисторы жылытқышсыз (егер сіз салқындатқыш желдеткіштерді қосқыңыз келсе 4)
  • 2 күй диодтары қызыл және жасыл (міндетті емес)
  • 6, 7K NTC температураға негізделген резистор + 6, 7K резисторы (міндетті емес)
  • USB-Mini-USB 2.0 деректер кабелі (Raspberry Pi Arduino-мен байланысуы үшін)
  • Сыртқы қоректендірілген USB-хаб (міндетті емес, тек Raspberry Pi үшін)

1 -қадам: Жүйені түсіну

Жүйені түсіну
Жүйені түсіну

LightMeUp! өте қарапайым электронды схемаға негізделген.

Бізде микроконтроллер тақтасымен сериялы түрде байланысатын қандай да бір компьютер бар (бұл жағдайда Raspberry Pi). Бұл тақта «RGB (255, 255, 255)» сияқты арнайы сериялық командаларды орындайды, бұл біздің LED-жолағымызды ақ түске айналдырады.

Біз 4 істікшелі жарық диодты жолаққа қажет ҚЫЗЫЛ, ЖАСЫЛ және КӨК үшін үш мәнді алғаннан кейін, PWM сигналымен TIP120 транзисторын қамтамасыз ету үшін analogWrite (түйреуіш, мән) орындаймыз.

Бұл PWM сигналы транзисторға оның коллекторы жерге қосылған белгілі бір түсті түйреуішті белгілі бір дәрежеде немесе толық қосуға / өшіруге мүмкіндік береді. Иә, көптеген «to» лар:)

Жарықдиодты жолақтардың түсті түйреуіштеріне үш транзистордың шығуын араластыру арқылы біз негізінен кез келген түсті жасай аламыз!

Енді осы түсінікті қолдана отырып, біз бұл жобаның ең үлкен қиындықына - веб -серверге және оның Arduino -мен сериялық байланысына шабуыл жасай аламыз.

2 -қадам: WebSocketServer жазу

WebSocketServer жазу
WebSocketServer жазу

Енді біз нақты уақыт режимінде жарықдиодты жолақты басқаруға қол жеткізу үшін бір рет жаңартусыз деректерді алға -артқа жіберуге мүмкіндік беретін белгілі бір веб -серверді құруымыз керек.

Назар аударыңыз, нақты уақыттағы байланыс, әрине, мүмкін емес, әрқашан кем дегенде бірнеше миллисекунд кідіріс болады, бірақ адам көзіне бұл нақты уақыт сияқты маңызды.

Егер мен сияқты Node.js қолдансаңыз, бұған socket.io кітапханасын пайдалану арқылы оңай қол жеткізуге болады. Дегенмен, сіз әрқашан сүйікті бағдарламалау тілін ұстануға болады, әрине.

Біз жарықдиодты жолақты қай түске орнатқыңыз келетіні туралы кіріс деректерін немесе «LED ON» сияқты күй деректерін жаңартусыз екі жақты беруге мүмкіндік беретін веб-розетка қосылымымен айналысатын боламыз.

Серверде болуы керек, бірақ қажет емес тағы бір маңызды функция - қарапайым кіру. Мен логин мен қарапайым пайдаланушы аты мен құпия сөз өрісіне негізделгенмін. Бұл ақпарат бөліктері сервердің /кіру маршрутына орналастырылады, содан кейін пайдаланушы аты пайдаланушылар тізімімен салыстырылады (.txt файлы) және оған сәйкес құпия сөз SHA256 шифрланған түрінде. Сіз өзіңіздің ең ыңғайлы орындықта сүйікті сусыныңызды ішіп отырғанда көршілеріңіздің жарықдиодты жолағымен шатасқанын қаламайсыз ба?

Енді сервердің жүрегі, сериялық байланыс келеді.

Сіздің сервер дәйекті түрде байланыса алуы керек - Node.js -те «сериялық порт» кітапханасы арқылы портты ашу арқылы қол жеткізуге болады. Бірақ алдымен сервер орналасқан компьютердегі arduino портының атауын анықтаңыз. Операциялық жүйеге байланысты порттардың әр түрлі атаулары болады, мысалы. Windows -те бұл порттар «COMx» порттары деп аталады, ал linux -та «/dev/ttyUSBx» деп аталады, мұнда x - USB портының саны.

3 -қадам: Сериялық командалар хаттамасын құру

Сериялық командалар хаттамасын құру
Сериялық командалар хаттамасын құру

Жоғарыдағы суретте сіз RGB басқару үшін жауап беретін нақты Arduino IDE кодын көресіз. Бұл қадамның мақсаты-өздігінен жазылған сервер мен Arduino тақтасының бір-бірімен сәтті сөйлесуін қамтамасыз ету.

Сериялық портты сәтті ашқаннан кейін, сіздің қалауыңызды ескеретін тақтаға пәрмендер жіберу қажет. Мысалы, егер біз HTML веб -бетіндегі түс таңдағыштың үстінен саусағымызды салсақ, RGB коды серверге жіберілуі керек, содан кейін ол оны Arduino -ға жібереді, осылайша ол мәндерді өңдейді.

Мен jscolor -ды қолдандым, оларда «onFineChange» деп аталатын оқиғаға ие жоғары сапалы түс таңдау элементінің керемет орындалуы бар, ол сіздің мәндер өзгерген кезде түс таңдауыштан сіздің процесс деректеріңізге мүмкіндік береді.

Ұсынылған: