Სარჩევი:

ჭეშმარიტი ორობითი საათი NTP სინქრონიზაციით: 4 ნაბიჯი
ჭეშმარიტი ორობითი საათი NTP სინქრონიზაციით: 4 ნაბიჯი

ვიდეო: ჭეშმარიტი ორობითი საათი NTP სინქრონიზაციით: 4 ნაბიჯი

ვიდეო: ჭეშმარიტი ორობითი საათი NTP სინქრონიზაციით: 4 ნაბიჯი
ვიდეო: რა არის ორობითი სისტემა და როგორ მუშაობს ის? 2024, ივლისი
Anonim
ნამდვილი ორობითი საათი NTP სინქრონიზაციით
ნამდვილი ორობითი საათი NTP სინქრონიზაციით
ნამდვილი ორობითი საათი NTP სინქრონიზაციით
ნამდვილი ორობითი საათი NTP სინქრონიზაციით

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

ნამდვილ ბინარულ საათში პირველი ციფრი გეუბნებათ ნახევარი დღე, მეორე ციფრი არის მეოთხედი დღე, მესამე ციფრი არის მერვე დღე და სხვა). პირველი ციფრი ეფექტურად აკოდირებს AM– ს PM– ის წინააღმდეგ, მეორე ციფრი აკოდირებს ადრეულ საღამოს/საღამოს თუ გვიან ამ/საღამოს და ა.შ.

ჩემი ნამდვილი ორობითი საათის შექმნისას მე გამოვიყენე რეზოლუციის თორმეტი ციფრი, ასე რომ დღე დაყოფილია 2^12 = 4096 ნაწილად (თითოეული ნამატი დაახლოებით 20 წამია). იმის ნაცვლად, რომ ყველა ციფრი იყოს ხაზში, 12 ციფრი იყოფა 3 რიგად, 4 ციფრით. მიუხედავად იმისა, რომ ფაქტობრივი ორობითი ციფრები უცვლელია, ეს საშუალებას აძლევს საათს წაიკითხოს როგორც ორობითი კოდირებული 3 ექვსნიშნა რიცხვი, პირველი სტრიქონი აჩვენებს დღის მე -16 ნაწილს (1.5 სთ), მეორე სტრიქონი აჩვენებს დღის 256 მეათედს (minutes 5 წუთი) და მესამე სტრიქონი გვიჩვენებს 4096 -ე დღეს (20 ფუნტი).

საათი სინქრონიზებულია NTP– თან (ქსელის დროის პროტოკოლი) ESP8266– ის გამოყენებით. ESP8266 კონფიგურირებულია ისე, რომ გაშვებისას საათის ღილაკზე დაჭერით ის გადადის პარამეტრების რეჟიმში. პარამეტრების რეჟიმში, საათი შექმნის WiFi ქსელს, რომელიც ემსახურება ვებ გვერდს, რომლის გამოყენებაც შესაძლებელია თქვენი საკუთარი wifi პარამეტრების, NTP სერვერისა და დროის ზონის შესასვლელად. ეს ინფორმაცია ინახება ESP8266– ის EEPROM– ში და იკითხება, როდესაც საათი იწყება საათის რეჟიმში, რათა მას შეეძლოს ინტერნეტთან დაკავშირება და დროის მოპოვება.

მასალები:

  • NodeMCU ESP8266
  • WS2812B LED ზოლები
  • Pushbutton
  • 470 Ohm რეზისტორი
  • 10K Ohm რეზისტორი
  • 470 uF კონდენსატორი
  • Popsicle ჩხირები
  • მარმარილოები
  • ხე (ან მასალის სხვა ფურცელი) საქმისთვის

ნაბიჯი 1: წრე

წრე
წრე
წრე
წრე
წრე
წრე
წრე
წრე

იმისათვის, რომ ეკრანი იყოს, ეს პროექტი იყენებს 3 რიგად დაყენებულ RGB led ზოლს. WS2812B ლიდერების ზოლიდან 8 ზოლის 3 ზოლი დავჭრა და ერთად შევაერთე. (ისინი მყიფეა და პატარა ბალიშების შედუღება შეიძლება იყოს რთული. მე შემოხვეული ბოლოები შევიკარი ელექტრული ლენტით ისე, რომ ისინი იზოლირებული ყოფილიყო ნებისმიერი მოსახვევისგან.) მიუხედავად იმისა, რომ მე მჭირდებოდა მხოლოდ 4 ლიდერი თითო რიგში, მე 8 -ის ზოლები ამოვიღე ისე, რომ მე შეეძლო უფრო დიდი მანძილი ჰქონოდა შუქებს შორის მხოლოდ ყველა სხვა led- ის გამოყენებით. ეს ზოლები შემდეგ მიმაგრებული იყო ყურძნის ჩხირებისგან დამზადებულ ბრტყელ ბაზაზე. თითოეულ სტრიქონს შორის, ყურძნის ჩხირების ორმაგი ფენა უზრუნველყოფს პროფილს ისე, რომ წინა სახე შეიძლება იყოს შეკრული საათის კორპუსის შიდა მხარეს (იხ. ფოტო).

Led ზოლი იკვებება NodeMCU– ის VU და GND– დან. VU არის ენერგია (თითქმის) პირდაპირ USB– დან, ამიტომ უზრუნველყოფს 5V– ს WS2812B LED– ებთან, მიუხედავად იმისა, რომ ESP8266 მუშაობს 3.3 V– ზე. მე განათავსე 470 uF კონდენსატორი სიმძლავრის გასწვრივ WS2812B ზოლისთვის, რათა დავიცვათ ლიდერები. მონაცემები led ზოლისთვის უკავშირდება NodeMCU- ს D3 პინს 470 Ohm რეზისტორის საშუალებით. იხილეთ ეს ინსტრუქცია დამატებითი ინფორმაციისთვის, თუ როგორ გააკონტროლოთ WS2812B leds ESP8266– ით. წრე გაერთიანდა პროტო დაფაზე, NodeMCU– სთვის მამრობითი სქესის რამდენიმე თავით.

ღილაკი ასევე დაერთო NodeMCU- ს D6- ს. ამ ღილაკზე დაჭერა შესაძლებელია საათის დაწყებისთანავე პარამეტრების რეჟიმში გასაგზავნად (რომელშიც შეიძლება შეიცვალოს wifi პარამეტრები, NTP სერვერი და დროის ზონის პარამეტრები). ერთი ბოლო ღილაკი უკავშირდება D6- ს და ასევე GND- ს 10K Ohm რეზისტორის საშუალებით, ხოლო მეორე ბოლოში იგი დაკავშირებულია დენთან. როდესაც ღილაკი არ არის დაჭერილი, D6 დაბალია; როდესაც ის დაჭერილია, D6 კითხულობს მაღალს.

ნაბიჯი 2: პროგრამული უზრუნველყოფა

პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა

ESP8266 პროგრამული უზრუნველყოფა დაიწერა Arduino კოდის გამოყენებით. LED- ები დამუშავებულია FastLED ბიბლიოთეკის გამოყენებით და NTP სინქრონიზაცია ხდება NTPClient ბიბლიოთეკის მიერ. დრო სინქრონიზებულია NTP– ით ყოველ საათში.

დაყენების ფუნქციის დაწყებისას პროგრამა ამოწმებს, არის თუ არა დაჭერილი D6– თან დაკავშირებული ღილაკი. თუ ასეა, ESP8266 ქმნის wifi ქსელს (SSID და პაროლი შეიძლება შეიცვალოს კოდში, ნაგულისხმევი SSID არის "TrueBinary" და პაროლი არის "thepoweroftwo"). დაუკავშირდით ამ ქსელს ნებისმიერი მოწყობილობიდან და გადადით 192.168.1.1. ESP8266 მოგაწვდით ვებ გვერდს იმ ფორმებით, სადაც შეგიძლიათ შეიყვანოთ თქვენი wifi SSID და პაროლი, სასურველი NTP სერვერი და დროის სარტყელი ოფსეტირებული UTC– დან. მას შემდეგ, რაც ეს ფორმები გადაეცემა ESP8266, ის შეინახავს ინფორმაციას მის შიდა EEPROM საცავში.

თუ ღილაკი არ არის დაჭერილი, საათი იწყება ნორმალურად, კითხულობს პარამეტრებს EEPROM– დან, უერთდება wifi– ს NTP– ის გამოსაყენებლად და იწყებს დროის ჩვენებას.

შენიშვნა: ფუნქცია setDisplay (int ინდექსი) იღებს ციფრულ რიცხვს 0-11-დან, სადაც 0 არის პირველი ციფრი (ნახევარი დღე) და 11 არის ბოლო (დღის 1/4096) და ჩართავს შესაბამის LED- ს "" leds "მასივი. ეს ფუნქცია უნდა შეავსოთ იმის მიხედვით, თუ როგორ დააკონფიგურირეთ ჩვენება. ჩემი გამოთქმული მაგალითი შეესაბამება იმას, თუ როგორ შევაჯამე რიგები ზიგ-ზაგში და არა ბოლომდე და გამოვტოვე ყველა სხვა LED.

ნაბიჯი 3: საცხოვრებელი

საცხოვრებელი
საცხოვრებელი
საცხოვრებელი
საცხოვრებელი
საცხოვრებელი
საცხოვრებელი

საათის დასაყენებლად მე ვიყენებ შეღებილი ხის კუთხეს, რაც მე მქონდა. ერთ გარე სახეზე, მე 12 ხვრელი გავაღე ქსელში, რომელიც შეესაბამება LED- ების პოზიციებს. მე შემდეგ LED- ები კუთხის შიგნიდან ჩავამაგრე პოპულაციის ჩხირების ამობურცულ სახეებს შორის მწკრივებს შორის ხეზე (როგორც ნაჩვენებია). LED- ების სინათლის გასავრცელებლად, ხვრელების თავზე შუშის მარმარილო დავრჩი. მე ეს შევძელი თითოეული მარმარილოს ქვედა ნახევრის ეპოქსიდურ ფისაში ჩაძირვით და შემდეგ ხვრელებში მოთავსებით. NodeMCU და პროტო დაფა ხრახნიან კუთხის მეორე შიდა მხარეს. მხარეები დაფარული იყო ხის პატარა სამკუთხედების გამოყენებით, მიმაგრებული ხის წებოთი. ერთ მხარეს აქვს ხვრელი NodeMCU მიკრო USB პორტისთვის და კუთხეში დაჭრილი ღილაკზე.

ნაბიჯი 4: შესრულებულია

Შესრულებულია!
Შესრულებულია!
Შესრულებულია!
Შესრულებულია!

ჩვენი ნამდვილი ორობითი საათი დასრულდა! მისი დასაყენებლად, ჩართვისას დააჭირეთ ღილაკს მისი ჩართვისას, რათა დააყენოთ ის პარამეტრების რეჟიმში და შემდეგ შეიყვანოთ WiFi სერთიფიკატები მის ვებგვერდზე. დაყენების შემდეგ, საათის ჩართვა შესაძლებელია ნებისმიერ ადგილას და ავტომატურად შეუერთდება ინტერნეტს და დაიწყებს დროის ჩვენებას ორობითი სახით.

დრო სჭირდება ჭეშმარიტი ორობითი ფორმატის წაკითხვას, მაგრამ ეს სახალისო სავარჯიშოა და გარკვეული პერიოდის შემდეგ ის ხდება სწრაფი გზა დროის გასაზრდელად!

გირჩევთ: