Mục lục:
Video: Đồng hồ nhị phân đích thực với NTP Sync: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
Đồ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
Để 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 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à ở
Để đặ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
Đồ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:
CPE 133 Dự án cuối cùng từ thập phân sang nhị phân: 5 bước
Dự án cuối cùng CPE 133 Từ thập phân đến nhị phân: Số nhị phân là một trong những điều đầu tiên xuất hiện trong đầu khi nghĩ đến logic kỹ thuật số. Tuy nhiên, Số nhị phân có thể là một khái niệm khó đối với những người mới làm quen với nó. Dự án này sẽ giúp những người mới và có kinh nghiệm về số nhị phân mas
Tự làm đồng hồ báo thức nhị phân Arduino: 14 bước (có hình ảnh)
Tự làm đồng hồ báo thức nhị phân Arduino: Lại là đồng hồ nhị phân cổ điển! Nhưng lần này với nhiều chức năng bổ sung hơn nữa! Trong phần hướng dẫn này, tôi sẽ chỉ cho bạn cách tạo đồng hồ báo thức nhị phân với Arduino có thể hiển thị cho bạn không chỉ thời gian mà còn cả ngày, tháng, thậm chí với bộ đếm thời gian và báo thức vui nhộn
Bộ khuếch đại để bàn với hình ảnh âm thanh, đồng hồ nhị phân & bộ thu FM: 8 bước (có hình ảnh)
Bộ khuếch đại để bàn có hình ảnh hóa âm thanh, đồng hồ nhị phân & bộ thu FM: Tôi thích bộ khuếch đại và hôm nay, tôi sẽ chia sẻ bộ khuếch đại để bàn công suất thấp mà tôi đã sản xuất gần đây. Bộ khuếch đại tôi thiết kế có một số tính năng thú vị. Nó có một đồng hồ nhị phân tích hợp và có thể cung cấp thời gian và ngày tháng và nó có thể trực quan hóa âm thanh thường được gọi là âm thanh
Đồng hồ kỹ thuật số & nhị phân trong 8 chữ số X 7 phân đoạn Màn hình LED: 4 bước (có hình ảnh)
Đồng hồ kỹ thuật số & nhị phân ở 8 chữ số X 7 phân đoạn Màn hình LED: Đây là phiên bản nâng cấp của tôi về Đồng hồ kỹ thuật số & Đồng hồ nhị phân sử dụng Màn hình LED 8 chữ số x 7 đoạn. Tôi muốn cung cấp các tính năng mới cho các thiết bị thông thường, đồng hồ đặc biệt và trong trường hợp này, việc sử dụng màn hình 7 Seg cho Đồng hồ nhị phân là không bình thường và nó
Đồng hồ báo thức nhị phân dựa trên Arduino: 13 bước (có hình ảnh)
Đồng hồ báo thức nhị phân dựa trên Arduino: Này, hôm nay tôi muốn chỉ cho bạn cách xây dựng một trong những dự án mới nhất của tôi, đồng hồ báo thức nhị phân của tôi. Có rất nhiều đồng hồ nhị phân khác nhau trên internet, nhưng đây thực sự có thể là đồng hồ đầu tiên, được làm từ dải đèn LED có thể địa chỉ đầy màu sắc,