Სარჩევი:

LightMeUp! Realtime Cross-platformed LED Strip Control: 5 ნაბიჯი (სურათებით)
LightMeUp! Realtime Cross-platformed LED Strip Control: 5 ნაბიჯი (სურათებით)

ვიდეო: LightMeUp! Realtime Cross-platformed LED Strip Control: 5 ნაბიჯი (სურათებით)

ვიდეო: LightMeUp! Realtime Cross-platformed LED Strip Control: 5 ნაბიჯი (სურათებით)
ვიდეო: Immediate steps to counter fever in children- Dr. Varsha Saxena 2024, ივლისი
Anonim
LightMeUp! Realtime Cross-platformed LED Strip Control
LightMeUp! Realtime Cross-platformed LED Strip Control
LightMeUp! Realtime Cross-platformed LED Strip Control
LightMeUp! Realtime Cross-platformed LED Strip Control
LightMeUp! Realtime Cross-platformed LED Strip Control
LightMeUp! Realtime Cross-platformed LED Strip Control

LightMeUp! არის სისტემა, რომელიც მე გამოვიგონე RGB LED- ზოლის რეალურ დროში გასაკონტროლებლად, ხოლო დაბალი ღირებულება და მაღალი შესრულება.

სერვერი დაწერილია Node.js და შესაბამისად cross-platformable.

ჩემს მაგალითში, მე ვიყენებ Raspberry Pi 3B- ს გრძელვადიანი გამოყენებისთვის, მაგრამ ჩემს Windows PC- ს დემონსტრაციისა და გამართვის მიზნით.

4 პინიანი ზოლი აკონტროლებს Arduino Nano ტიპის დაფას, რომელიც ასრულებს სერიულად მოცემულ ბრძანებებს, რომ გააგზავნოს PWM სიგნალები სამ ტრანზისტორზე, რომლებიც +12VDC- ს გადააქცევს ზოლის შესაბამის ფერს.

LightMeUp! სისტემა ასევე ამოწმებს საკუთარ ტემპერატურას, როდესაც ის 60 ° C- ს ზემოთ (140 ° F) აღწევს, ის ჩართავს 12 12VDC კომპიუტერის გულშემატკივარს, რომელიც ჩამონტაჟებულია კორპუსში, რათა გაგრილდეს და გააუმჯობესოს წრის სიცოცხლე.

LightMeUp– ის კიდევ ერთი მახასიათებელი! არის ბომბეი-საფირონის ჯინის ბოთლის განათება, მაგრამ ეს არ არის ამ ინსტრუქციის ყურადღების ცენტრში.

ისიამოვნეთ კითხვით:)

მარაგები

  • არდუინო ნანო (ან ნებისმიერი სხვა ATmega328 / უფრო მაღალი დონის მიკროკონტროლერი)
  • Raspberry Pi 3 Model B Node.js დაინსტალირებული (ან ნებისმიერი სხვა კომპიუტერი)
  • 12V RGB 4 პინიანი LED ზოლები
  • 12V 3A კვების ბლოკი
  • Jumper კაბელები (რა თქმა უნდა, თუ თქვენ იყენებთ breadboard– ს კაცი – კაცი)
  • პურის დაფა (სურვილისამებრ)
  • 2 12V DC კომპიუტერის გულშემატკივარი (სურვილისამებრ)
  • 3x TIP120 დარლინგტონის ტრანზისტორი გამათბობელთან ერთად (4 თუ გსურთ გაგრილების ვენტილატორების ჩართვა)
  • 2 სტატუსის ები წითელი და მწვანე (სურვილისამებრ)
  • 6, 7K NTC ტემპერატურაზე დაფუძნებული რეზისტორი + 6, 7K რეზისტორი (სურვილისამებრ)
  • USB-Mini to USB 2.0 მონაცემთა კაბელი (Raspberry Pi– სთვის Arduino– სთან კომუნიკაციისთვის)
  • გარეგანი კვების USB-Hub (სურვილისამებრ, მხოლოდ Raspberry Pi- სთვის)

ნაბიჯი 1: სისტემის გაგება

გაიგე სისტემა
გაიგე სისტემა

LightMeUp! ემყარება ძალიან მარტივ ელექტრონულ სქემას.

ჩვენ გვაქვს რაიმე სახის კომპიუტერი (ამ შემთხვევაში Raspberry Pi), რომელიც სერიულად დაუკავშირდება ჩვენს მიკროკონტროლერის დაფს. ეს დაფა ასრულებს კონკრეტულ სერიულ ბრძანებებს, როგორიცაა "RGB (255, 255, 255)", რომელიც გახდის ჩვენს LED- სტრიპს თეთრს.

მას შემდეგ რაც მივიღეთ ჩვენი სამი მნიშვნელობა RED, GREEN და BLUE, რომელიც აუცილებელია ჩვენი 4pin LED- ზოლისთვის, ჩვენ ვასრულებთ analogWrite (pin, მნიშვნელობა), რათა მივაწოდოთ ჩვენი TIP120 ტრანზისტორი PWM სიგნალით.

ეს PWM სიგნალი ტრანზისტორს საშუალებას აძლევს შეცვალოს შესაბამისი ფერის პინი, რომლის კოლექტორიც დაკავშირებულია მიწასთან, კონკრეტული ხარისხით ან მთლიანად ჩართვა / გამორთვით. დიახ, ბევრი "to":)

შერევით სამი ტრანზისტორი შედეგები LED ზოლები 'ფერი ქინძისთავები ჩვენ შეგვიძლია შევქმნათ ძირითადად ნებისმიერი ფერი გვსურს!

ახლა ამ გაგებით, ჩვენ შეგვიძლია შევაჩეროთ ამ პროექტის ყველაზე დიდი გამოწვევა, ვებსაიტის სერვერი და მისი სერიული კავშირი ჩვენს არდუინოსთან.

ნაბიჯი 2: წერა WebSocketServer

წერა WebSocketServer
წერა WebSocketServer

ახლა, ჩვენ უნდა შევქმნათ კონკრეტული სახის ვებ სერვერი, რომელიც საშუალებას გვაძლევს გადავიტანოთ მონაცემები წინ და უკან განახლების გარეშე ერთხელ, რათა მივაღწიოთ რეალურ დროში LED ზოლების კონტროლს.

გთხოვთ გაითვალისწინოთ, რომ რეალურ დროში კომუნიკაცია, რა თქმა უნდა, შეუძლებელია, ყოველთვის იქნება სულ მცირე რამოდენიმე მილიწამი დაგვიანებით, მაგრამ ადამიანის თვალით ეს მნიშვნელოვანია რეალურ დროში.

ამის მარტივად მიღწევა შესაძლებელია socket.io ბიბლიოთეკის გამოყენებით, თუ თქვენ იყენებთ Node.js- ს, როგორც მე. თუმცა, თქვენ ყოველთვის შეგიძლიათ დაიცვათ თქვენი საყვარელი პროგრამირების ენა, რა თქმა უნდა.

ჩვენ გვექნება საქმე ქსელურ კავშირთან, რომელიც საშუალებას გვაძლევს გადავიტანოთ შეყვანილი მონაცემები, როგორი ფერით გსურთ LED ზოლის დაყენება, ან სტატუსის მონაცემები, როგორიცაა "LED ON" ორმხრივად განახლების გარეშე.

კიდევ ერთი ძალიან მნიშვნელოვანი თვისება სერვერს უნდა ჰქონდეს, მაგრამ არ სჭირდება ეს არის მარტივი შესვლა. მე დავამყარე ჩემი შესვლა მარტივი მომხმარებლის სახელისა და პაროლის ველიდან. ეს ინფორმაცია იგზავნება სერვერის /შესვლის მარშრუტზე, რომელიც ადარებს მომხმარებლის სახელს მომხმარებლების სიას (.txt ფაილი) და მის შესაბამის პაროლს SHA256 დაშიფრული ფორმით. თქვენ არ გინდათ, რომ თქვენი მეზობლები არეულობდნენ თქვენს LED ზოლს, სანამ თქვენ მიირთმევთ თქვენს საყვარელ სასმელს თქვენს ყველაზე კომფორტულ სავარძელზე, არა?

ახლა მოდის სერვერის გული, სერიული კომუნიკაცია.

თქვენს სერვერს უნდა შეეძლოს სერიული კომუნიკაცია - Node.js– ში ამის მიღწევა შესაძლებელია პორტის გახსნით „სერიული პორტის“ბიბლიოთეკის გამოყენებით. მაგრამ ჯერ განსაზღვრეთ თქვენი arduino პორტის სახელი თქვენს კომპიუტერში, რომელიც სერვერს მასპინძლობს. თქვენი ოპერაციული სისტემიდან გამომდინარე, პორტებს ექნებათ განსხვავებული სახელები, ა. Windows- ზე ამ პორტებს ეწოდება "COMx" პორტები, ხოლო linux– ზე - "/dev/ttyUSBx", სადაც x არის USB პორტის ნომერი.

ნაბიჯი 3: შექმენით სერიული ბრძანებების ოქმი

ჩამოაყალიბოს სერიული ბრძანებების ოქმი
ჩამოაყალიბოს სერიული ბრძანებების ოქმი

ზემოთ მოცემულ სურათზე ხედავთ Arduino IDE კოდს, რომელიც პასუხისმგებელია RGB კონტროლზე. ამ ნაბიჯის მიზანი არის ის, რომ თქვენი ხელით დაწერილი სერვერი და Arduino დაფა წარმატებით ესაუბრონ ერთმანეთს.

მას შემდეგ რაც წარმატებით გახსენით თქვენი სერიული პორტი, თქვენ უნდა შეძლოთ ბრძანებების გაგზავნა დაფაზე, რომელიც ზრუნავს თქვენს სურვილებზე. მაგალითად, თუ ჩვენ ვხატავთ თითს HTML ვებგვერდზე ფერის ამომრჩევლის ზემოთ, RGB კოდი უნდა გაიგზავნოს სერვერზე, რომელიც შემდეგ აგზავნის მას თქვენს Arduino– ში, რათა დამუშავდეს დადგენილი მნიშვნელობები.

მე გამოვიყენე jscolor, მათ აქვთ მაღალი ხარისხის ფერების შერჩევის ელემენტის დიდი განხორციელება, რომელიც ფლობს ღონისძიებას სახელწოდებით "onFineChange", რომელიც საშუალებას გაძლევთ თქვენი პროცესის მონაცემები ფერის ამომრჩევიდან, როგორც კი მისი ღირებულებები შეიცვლება.

გირჩევთ: