Съдържание:

Истински двоичен часовник с NTP синхронизация: 4 стъпки
Истински двоичен часовник с NTP синхронизация: 4 стъпки

Видео: Истински двоичен часовник с NTP синхронизация: 4 стъпки

Видео: Истински двоичен часовник с NTP синхронизация: 4 стъпки
Видео: Водоустойчив LED часовник с оригинален дизайн 2024, Ноември
Anonim
Истински двоичен часовник с NTP синхронизация
Истински двоичен часовник с NTP синхронизация
Истински двоичен часовник с NTP синхронизация
Истински двоичен часовник с NTP синхронизация

Истинският двоичен часовник показва часа на деня като сума от двоични части от цял ден, за разлика от традиционния "двоичен часовник", който показва времето като двоично кодирани десетични цифри, съответстващи на часовете/минутите/секундите. Традиционните "двоични часовници" наистина използват двоично-кодирано-десетично-кодирано-шестнадесетично. Каква бъркотия! Истинските двоични часовници опростяват нещата изключително.

В истински двоичен часовник първата цифра ви казва, че е половин ден, втората цифра е четвърт ден, третата цифра е осма от деня и т. Н. Тя може да бъде прочетена до всяка резолюция много бързо (с практика разбира се). Първата цифра ефективно кодира AM срещу PM, втората цифра кодира дали е рано AM/PM или късно AM/PM и т.н.

При проектирането на моя истински двоичен часовник използвах дванадесет цифри на разделителна способност, така че денят е разделен на 2^12 = 4096 части (всяко увеличение е приблизително 20 секунди). Вместо да съхраняват всички цифри в ред, 12 -те цифри бяха разделени на 3 реда по 4 цифри. Въпреки че действителните двоични цифри са непроменени, това позволява часовникът да се чете като 3 двоично кодирани шестнадесетични цифри, като първият ред показва 16-и от деня (1,5 часа), вторият ред показва 256-ия ден (~ 5 минути) и третият ред показва 4096 -и от деня (~ 20 секунди).

Часовникът се синхронизира с NTP (Network Time Protocol) с помощта на ESP8266. ESP8266 е конфигуриран така, че при стартиране, натискането на бутон на часовника ще го изпрати в режим на настройки. В режим на настройки часовникът ще създаде WiFi мрежа, която обслужва уеб страница, която може да се използва за въвеждане на вашите собствени настройки за wifi, NTP сървър и часова зона. Тази информация се съхранява в EEPROM на ESP8266 и се чете, когато часовникът стартира в часовник, така че да може да се свърже с интернет и да извлече часа.

Консумативи:

  • NodeMCU ESP8266
  • WS2812B LED лента
  • Натисни бутона
  • Резистор 470 ома
  • Резистор 10K Ohm
  • 470 uF кондензатор
  • Елементни пръчици
  • Мрамори
  • Дърво (или друг лист материал) за кутията

Стъпка 1: Схема

Верига
Верига
Верига
Верига
Верига
Верига
Верига
Верига

За да има дисплей, този проект използва RGB LED лента, поставена в 3 реда. Изрязах 3 ленти от 8 светодиода от лентата на светодиодите WS2812B и ги запоявах заедно. (Те са крехки и запояването на малките подложки може да бъде трудно. Увих запоените краища в електрическа лента, за да ги изолирам от всяко огъване.) Въпреки че имах нужда само от 4 светодиода на ред, изрязах ленти от 8, така че да може да има по -голямо разстояние между светлините, като използва само всеки друг светодиод. След това тези ленти бяха залепени за плоска основа, изработена от пръчици от сладкиши. Между всеки ред, двоен слой пръчици за лайсни осигурява профила, така че предната страна да може да бъде залепена към вътрешността на корпуса на часовника (вижте снимката).

Светодиодната лента се захранва от VU и GND на NodeMCU. VU се захранва (почти) директно от USB, така че осигурява 5V към светодиодите WS2812B, въпреки че ESP8266 работи при 3.3V. Поставих 470 uF кондензатор на захранването за лентата WS2812B, за да защитя светодиодите. Данните за LED лентата са свързани към D3 извода на NodeMCU чрез резистор 470 Ohm. Вижте тази инструкция за повече информация как да управлявате светодиодите WS2812B с ESP8266. Веригата беше запоена върху прото-платка с някои заглавия от мъжки към женски за NodeMCU.

Бутон също беше прикрепен към D6 на NodeMCU. Този бутон може да бъде натиснат, докато часовникът се стартира, за да го изпрати в режим на настройки (в който настройките за wifi, NTP сървъра и предпочитанията за часовата зона могат да бъдат променени). От единия край бутонът е свързан към D6, а също и към GND чрез 10K Ohm резистор, а от другия край е свързан към захранването. Когато бутонът не е натиснат, D6 чете ниско; когато се натисне, D6 чете високо.

Стъпка 2: Софтуер

Софтуер
Софтуер

Софтуерът за ESP8266 е написан с код Arduino. Светодиодите се обработват с помощта на библиотеката 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 index) приема цифровото число от 0-11, където 0 е първата цифра (половин ден), а 11 е последната (1/4096 от деня) и включва съответния светодиод, като използва " LED "масив. Тази функция трябва да бъде попълнена според начина, по който сте конфигурирали дисплея. Моят коментиран пример съответства на това как запоявах редовете по зиг-заг, а не от край до край и пропуснах всеки друг светодиод.

Стъпка 3: Жилища

Жилища
Жилища
Жилища
Жилища
Жилища
Жилища

За да поместя часовника, използвах ъгъл от боядисано дърво, който случайно имах. На една външна страна пробих 12 дупки в решетка, съответстваща на позициите на светодиодите. След това залепих светодиодите във вътрешността на ъгъла, като залепих повдигнатите повърхности на пръчките за сладкиши между редовете към дървото (както е показано). За да разсея светлината от светодиодите, залепих стъклени мрамори върху дупките. Постигнах това, като потопих долната половина на всеки мрамор в епоксидна смола и след това ги поставих в дупките. NodeMCU и прото-платката бяха завинтени в другата вътрешна страна на ъгъла. Страните бяха покрити с малки триъгълници от дърво, прикрепени с лепило за дърво. Едната от страните има отвор за микро USB порта на NodeMCU и разрез в ъгъла за бутона.

Стъпка 4: Готово

Свършен!
Свършен!
Свършен!
Свършен!

Нашият истински двоичен часовник приключи! За да го настроите, задръжте бутона натиснат, докато го включвате, за да го поставите в режим на настройки и след това въведете идентификационните данни за WiFi на уеб страницата му. След като бъде настроен, часовникът може да бъде включен навсякъде и автоматично ще се свърже с интернет и ще започне да показва времето в двоичен формат.

Отнема малко практика, за да се чете времето в истински двоичен формат, но това е забавно упражнение и след известно време се превръща в бърз начин да получите време само с един поглед!

Препоръчано: