Mục lục:

Đồng hồ nhị phân đích thực với NTP Sync: 4 bước
Đồng hồ nhị phân đích thực với NTP Sync: 4 bước

Video: Đồng hồ nhị phân đích thực với NTP Sync: 4 bước

Video: Đồng hồ nhị phân đích thực với NTP Sync: 4 bước
Video: THỊ TRƯỜNG CHỨNG KHOÁN NHỊP TĂNG SẼ KÉO DÀI BAO LÂU? KHI NÀO NÊN CHỐT LỜI? 2024, Tháng mười một
Anonim
Đồng hồ nhị phân đích thực với NTP Sync
Đồng hồ nhị phân đích thực với NTP Sync
Đồng hồ nhị phân đích thực với NTP Sync
Đồng hồ nhị phân đích thực với NTP Sync

Đồng hồ nhị phân thực sự hiển thị thời gian trong ngày dưới dạng tổng các phân số nhị phân của cả ngày, trái ngược với "đồng hồ nhị phân" truyền thống hiển thị thời gian dưới dạng các chữ số thập phân được mã hóa nhị phân tương ứng với giờ / phút / giây. "Đồng hồ nhị phân" truyền thống thực sự đang sử dụng hệ thập phân được mã hóa nhị phân-mã hóa-thập phân-mã hóa-giới tính. Thật là một mớ hỗn độn! Đồng hồ nhị phân thực sự đơn giản hóa mọi thứ vô cùng.

Trong đồng hồ nhị phân thực sự, chữ số đầu tiên cho bạn biết là nửa ngày, chữ số thứ hai là một phần tư ngày, chữ số thứ ba là một phần tám của một ngày, v.v. Nó có thể được đọc đến bất kỳ độ phân giải nào rất nhanh chóng (tất nhiên là có thực hành). Chữ số đầu tiên mã hóa AM so với PM một cách hiệu quả, chữ số thứ hai mã hóa cho dù đó là AM / PM sớm hay AM / PM muộn, v.v.

Khi thiết kế đồng hồ nhị phân thực sự của mình, tôi đã sử dụng mười hai chữ số độ phân giải, vì vậy ngày được chia thành 2 ^ 12 = 4096 phần (mỗi phần tăng khoảng 20 giây). Thay vì giữ tất cả các chữ số trong một dòng, 12 chữ số được tách thành 3 hàng gồm 4 chữ số. Mặc dù các chữ số nhị phân thực tế không thay đổi, điều này cho phép đồng hồ được đọc dưới dạng 3 chữ số hex được mã hóa nhị phân, dòng đầu tiên hiển thị 16 phần ngày trong ngày (1,5 giờ), dòng thứ hai hiển thị 256 phần ngày (~ 5 phút) và dòng thứ ba hiển thị 4096 giây trong ngày (~ 20 giây).

Đồng hồ được đồng bộ hóa với NTP (Giao thức thời gian mạng) bằng ESP8266. ESP8266 được cấu hình để khi khởi động, nhấn một nút trên đồng hồ sẽ đưa nó vào chế độ cài đặt. Trong chế độ cài đặt, đồng hồ sẽ tạo một mạng WiFi cung cấp một trang web có thể được sử dụng để nhập cài đặt Wi-Fi, máy chủ NTP và múi giờ của riêng bạn. Thông tin này được lưu trữ trong EEPROM của ESP8266 và được đọc khi đồng hồ khởi động ở chế độ đồng hồ để nó có thể kết nối với internet và truy xuất thời gian.

Quân nhu:

  • NodeMCU ESP8266
  • Dải đèn LED WS2812B
  • Nút bấm
  • Điện trở 470 Ohm
  • Điện trở 10K Ohm
  • Tụ điện 470 uF
  • Que kem
  • Viên bi
  • Gỗ (hoặc tấm vật liệu khác) cho vỏ máy

Bước 1: Mạch

Mạch điện
Mạch điện
Mạch điện
Mạch điện
Mạch điện
Mạch điện
Mạch điện
Mạch điện

Để có màn hình hiển thị, dự án này sử dụng dải đèn LED RGB được đặt thành 3 hàng. Tôi cắt 3 dải 8 led từ dải led WS2812B và hàn chúng lại với nhau. (Chúng dễ vỡ và việc hàn các miếng đệm nhỏ có thể khó khăn. Tôi quấn các đầu hàn bằng băng dính điện để cách điện chúng khỏi bất kỳ sự uốn cong nào.) Mặc dù tôi chỉ cần 4 đèn led cho mỗi hàng, tôi đã cắt ra 8 dải để tôi có thể có khoảng cách giữa các đèn lớn hơn bằng cách chỉ sử dụng mỗi đèn LED khác. Các dải này sau đó được dán vào một đế phẳng làm bằng que kem. Ở giữa mỗi hàng, một lớp que kem kép tạo độ nghiêng để mặt trước có thể được dán vào mặt trong của vỏ đồng hồ (xem ảnh).

Dải dẫn được cấp nguồn từ VU và GND của NodeMCU. VU là nguồn điện đến (gần như) trực tiếp từ USB, vì vậy nó cung cấp 5V cho các đèn LED WS2812B mặc dù ESP8266 hoạt động ở 3.3V. Tôi đã đặt một tụ điện 470 uF trên nguồn cho dải WS2812B để bảo vệ các đèn led. Dữ liệu cho dải led được kết nối với chân D3 của NodeMCU thông qua điện trở 470 Ohm. Tham khảo hướng dẫn này để biết thêm thông tin về cách điều khiển đèn LED WS2812B với ESP8266. Mạch được hàn vào bảng mạch proto với một số tiêu đề từ nam sang nữ cho NodeMCU.

Một nút bấm cũng được gắn vào D6 của NodeMCU. Có thể nhấn nút này trong khi đồng hồ đang khởi động để đưa nó vào chế độ cài đặt (trong đó cài đặt wifi, máy chủ NTP và tùy chọn múi giờ có thể được sửa đổi). Ở một đầu nút bấm được kết nối với D6 và cũng với GND thông qua một điện trở 10K Ohm và ở đầu kia nó được kết nối với nguồn điện. Khi không nhấn nút, D6 đọc ở mức thấp; khi nó được nhấn, D6 đọc cao.

Bước 2: Phần mềm

Phần mềm
Phần mềm

Phần mềm cho ESP8266 được viết bằng mã Arduino. Các đèn LED được xử lý bằng thư viện FastLED và đồng bộ hóa NTP được thực hiện bởi thư viện NTPClient. Thời gian được đồng bộ hóa bởi NTP mỗi giờ.

Khi bắt đầu chức năng cài đặt, chương trình sẽ kiểm tra xem nút kết nối với D6 có được nhấn hay không. Nếu đúng như vậy, ESP8266 sẽ tạo một mạng wifi (SSID và mật khẩu có thể được thay đổi trong mã, SSID mặc định là "TrueBinary" và mật khẩu là "thepoweroftwo"). Kết nối với mạng này từ bất kỳ thiết bị nào và điều hướng đến 192.168.1.1. ESP8266 sẽ cung cấp một trang web với các biểu mẫu mà bạn có thể nhập SSID wifi và mật khẩu của mình, máy chủ NTP ưa thích và chênh lệch múi giờ từ UTC. Sau khi các biểu mẫu này được gửi tới ESP8266, nó sẽ lưu thông tin vào bộ nhớ EEPROM bên trong.

Nếu không nhấn nút, đồng hồ khởi động bình thường, đọc cài đặt từ EEPROM, kết nối wifi để sử dụng NTP và bắt đầu hiển thị thời gian.

LƯU Ý: hàm setDisplay (int index) lấy số chữ số từ 0-11 trong đó 0 là chữ số đầu tiên (nửa ngày) và 11 là chữ số cuối cùng (1/4096 của một ngày) và bật đèn LED tương ứng bằng cách sử dụng " led "mảng. Chức năng này phải được điền tùy theo cách bạn định cấu hình màn hình. Ví dụ đã nhận xét của tôi tương ứng với cách tôi hàn các hàng theo kiểu zig-zag thay vì kết thúc và bỏ qua mọi đèn LED khác.

Bước 3: Nhà ở

Nhà ở
Nhà ở
Nhà ở
Nhà ở
Nhà ở
Nhà ở

Để đặt đồng hồ, tôi đã sử dụng một góc của gỗ sơn mà tôi tình cờ có được. Trên một mặt ngoài, tôi khoan 12 lỗ trên lưới tương ứng với vị trí của các đèn LED. Sau đó, tôi dán các đèn LED vào bên trong góc bằng cách dán các mặt nhô lên của que kem ở giữa các hàng vào gỗ (như hình minh họa). Để khuếch tán ánh sáng từ đèn LED, tôi đã dán các viên bi thủy tinh lên trên các lỗ. Tôi đã hoàn thành điều này bằng cách nhúng nửa dưới của mỗi viên bi vào nhựa epoxy và sau đó đặt chúng vào các lỗ. NodeMCU và proto-board được vặn vào mặt trong khác của góc. Các mặt bên được che bằng cách sử dụng các hình tam giác nhỏ bằng gỗ, gắn bằng keo dán gỗ. Một trong hai bên có một lỗ cho cổng micro USB của NodeMCU và một vết cắt ở góc cho nút bấm.

Bước 4: Đã xong

Xong!
Xong!
Xong!
Xong!

Đồng hồ nhị phân thực sự của chúng ta đã hoàn thành! Để thiết lập nó, hãy nhấn giữ nút trong khi cắm nó vào để đặt nó ở chế độ cài đặt và sau đó nhập thông tin đăng nhập WiFi trên trang web của nó. Sau khi thiết lập, đồng hồ có thể được cắm ở bất kỳ đâu và sẽ tự động kết nối với internet và bắt đầu hiển thị thời gian ở dạng nhị phân.

Việc đọc thời gian ở định dạng nhị phân thực sự cần một chút thời gian, nhưng đó là một bài tập thú vị và sau một thời gian, nó trở thành một cách nhanh chóng để có được thời gian chỉ trong nháy mắt!

Đề xuất: