Мазмұны:
- Жабдықтар
- 1 -қадам: Жүйені түсіну
- 2 -қадам: WebSocketServer жазу
- 3 -қадам: Сериялық командалар хаттамасын құру
Бейне: LightMeUp! Нақты уақытта кросс-платформалы жарықдиодты жолақты басқару: 5 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
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 жазу
Енді біз нақты уақыт режимінде жарықдиодты жолақты басқаруға қол жеткізу үшін бір рет жаңартусыз деректерді алға -артқа жіберуге мүмкіндік беретін белгілі бір веб -серверді құруымыз керек.
Назар аударыңыз, нақты уақыттағы байланыс, әрине, мүмкін емес, әрқашан кем дегенде бірнеше миллисекунд кідіріс болады, бірақ адам көзіне бұл нақты уақыт сияқты маңызды.
Егер мен сияқты 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» деп аталатын оқиғаға ие жоғары сапалы түс таңдау элементінің керемет орындалуы бар, ол сіздің мәндер өзгерген кезде түс таңдауыштан сіздің процесс деректеріңізге мүмкіндік береді.
Ұсынылған:
Постширт: нақты уақытта киюге болатын қалыпты анықтау: 9 қадам
Постширт: Нақты уақытта киінетін қалыпты анықтау: Postshirt - бұл Adafruit қауырсынынан акселерометрлік деректерді Bluetooth арқылы Android қосымшасына жіберетін және жіктейтін нақты уақыттағы сымсыз қалыпты анықтау жүйесі. Толық жүйе нақты уақытта анықтай алады, егер пайдаланушының жағдайы нашар болса және
EM іздерінің көмегімен құрылғыны нақты уақытта тану: 6 қадам
EM іздерін қолдану арқылы құрылғыны нақты уақытта тану: Бұл құрылғы әр түрлі электрондық құрылғыларды олардың EM сигналдарына сәйкес жіктеуге арналған. Әр түрлі құрылғылар үшін олар шығаратын әр түрлі ЭМ сигналдары бар. Біз бөлшектерді қолдана отырып электрондық құрылғыларды анықтау үшін IoT шешімін әзірледік
MicroPython бағдарламасы: Коронавирустық аурудың (COVID-19) деректерін нақты уақытта жаңарту: 10 қадам (суреттермен)
MicroPython бағдарламасы: Коронавирустық аурудың (COVID-19) деректерін нақты уақыт режимінде жаңартыңыз: Соңғы бірнеше аптада бүкіл әлемде коронавирустық аурудың (COVID 19) расталған жағдайларының саны 100,000-нан асты, ал Дүниежүзілік денсаулық сақтау ұйымы (ДДҰ) бұл туралы мәлімдеді. Коронавирустық пневмонияның жаңа өршуі жаһандық пандемияға айналады. Мен өте
Микроскоптарға арналған жарықдиодты жарықдиодты жарықдиодты жарықдиодты тақта!: 6 қадам (суреттермен)
Микроскоптар үшін DIY жарықдиодты жарықдиодты PCB! Мен электрониканы қолдануға арналған екінші микроскопты сатып алдым және сіз
ESP01 көңіл күйі Firebase көмегімен нақты уақытта + OTA: 7 қадам
ESP01 көңіл күйі Firebase көмегімен Realtime + OTA режимінде: Ол R-G-B режимі мен Fade әсерін қолдайды. Сонымен қатар жарықтылықты басқаруға қолдау бар. OTA жаңартуын қолдау