Вай фай часы своими руками

Вай фай часы своими руками

�� � ��������

Очень простые часы с WiFi Автор: himikat123
Опубликовано 14.05.2019
Создано при помощи КотоРед.
Простейшие часы с WiFi на ESP8266 и TM1637 Недавно я вдруг обнаружил, что у меня в спальне совершенно нет часов, а так же их нет в коридоре и в ванной. Пойти в магазин и купить часы — слишком просто. К тому же, такие часы нужно иногда подстраивать, переводить на летнее время.. Пришлось собрать свои часы, которые всегда ходят правильно, без моего вмешательства. Итак, основные требования к проектируемым часам:

  • Часы должны быть очень простыми.
  • Часы должны быть очень дешевыми.
  • Часы должны очень точно ходить.
  • Часы должны сами знать время, даже после отключения питания.
  • Часы не должны мешать спать по ночам.
  • У часов должны быть интуитивно понятные настройки.

На итог получились такие часы:

  • Минимум деталей. 2 модуля и 7 SMD деталей.
  • Прошивка без программатора и без необходимости что-то компилировать.
  • Точный ход часов, при наличии доступа в интернет. Благодаря синхронизации с NTP сервером.
  • Автоматический переход на летнее время, только если нужно.
  • Пониженая яркость дисплея в ночном режиме.
  • Возможность задания времени и яркости ночного и дневного режима.
  • Отображение температуры и влажности в доме.
  • Возможность коррекции показаний температуры и влажности.
  • Автоподключение к одной из 10-и сохраненных в памяти часов WiFi сетей.
  • Дистанционный доступ к настройкам часов.
  • Простые и понятные даже неподготовленному человеку настройки.
  • Возможность обновления прошивки по воздуху.

Схема получилась неприлично простой. Сердцем часов является модуль Wemos D1 mini — U1, это модуль на микросхеме ESP8266 со всей необходимой обвязкой, к тому же в данный модуль встроен преобразователь USB->UART и стабилизатор на 3,3V.

Дисплей U3 — светодиодный семисегментный дисплейный модуль, 0.56 дюймов, со встроенной микросхемой управления дисплеем TM1637. Конечно, можно применить дисплей и меньшего размера, но плата сделана под этот размер.

Резисторы R1, R2, а так же диод D1 служат для защиты выводов ESP8266 от перегрузки, можно заменить перемычками, но нежелательно. Фильтрующие конденсаторы C1-C4 можно не устанавливать, но тогда возможна нестабильная работа часов, зависания, сбои. Кнопки S1, S2 нужны сответственно для сброса и ввода часов в режим настроек. Кнопки, как вы уже догадались тоже можно не устанавливать.. Разъем J1 предназначен для подключения датчика (датчиков) температуры и влажности. Датчик(и) нужно расположить на расстоянии хотя бы 10 см от часов, так как часы в работе немного нагреваются, а датчики очень чувствительные. Если показания температуры и/или влажности вам не нужны, то датчики можно не устанавливать, соответственно разъем J1 тоже не будет нужен.

Читайте также:  Пропала опция вай фай виндовс 10

Питать часы можно например зарядкой от телефона, напряжением 5В, током 500 мА, с разъмом USB-micro.

Часы поддерживают следующие датчики: DS18B20, BME280 и SHT21 (HTU21D). Можно подключить один, а можно и сразу все датчики. В настройках можно выбрать каким датчиком что измерять. Датчик(и) подключае(ю)тся к разъему J1, назначение выводов указано на схеме. Можно подключить все поддерживаемые датчики параллельно и одновременно.

Плата изготовлена на заводе в Китае, заказывал ее на сайте http://jlcpcb.com, не реклама. С «лазерным утюгом» возиться не стал, так как нужно было сделать сразу много плат. К тому же платы обошлись совсем не дорого, 2$ за изготовление и 5$ за доставку. За эти деньги я получил 10 высококачественных плат, с паяльной маской и шелкографией.

После сборки, часы необходимо прошить. Воспользуйтесь инструкцией по прошивке http://esp8266.atwebpages.com/?p=flashing

Или посмотрите видеоролик о сборке и прошивке часов.

После сборки и прошивки часы нуждаются в настройке. При первом включении они сами входят в режим настроек. В дальнейшем, чтоб войти в настройки, нажмите и удерживайте кнопку SETTINGS, пока на дисплее не появится надпись «SEtt». Далее подключите Ваш ноутбук или телефон к сети «Clock» пароль «1234567890» и в браузере перейдите по адресу http://192.168.4.1
Имя пользователя по умолчанию «admin», пароль «1111».

Страница настроек имеет максимально дружественный интерфейс, все настройки поделены на категории, каждая категория снабжена справкой.

Ну и на последок несколько фоток получившегося гаджета

Источник

Интернет часы на NodeMCU ESP8266 и OLED дисплее с определением времени по протоколу NTP

Модули часов реального времени (Real Time Clock, RTC) находят широкое применение в современной электронике для определения текущего времени и даты. Но недостатком данных модулей является то, что они не всегда обеспечивают требуемую точность определения даты и времени. При этом они могут определять только время на локальном устройстве. В данном случае использование решений, основанных на получении точного времени с серверов NTP, обеспечивает большую точность измерения времени и позволяет производить определение точного времени в любой точке земного шара.

Внешний вид интернет часов на NodeMCU ESP8266 и OLED дисплее

Для реализации этой идеи можно использовать Wi-Fi модуль, который будет подключаться к сети интернет и определять время в любой точке Земли с помощью серверов NTP. В данной статье мы рассмотрим использование платы NodeMCU ESP8266 (будет выполнять роль Wi-Fi модуля) для считывания текущего времени и даты с серверов NTP и их отображения на экране OLED дисплея.

Читайте также:  Realtek rtl8102e wifi драйвер

Также на нашем сайте вы можете посмотреть все проекты с использованием систем реального времени.

Необходимые компоненты

  1. NodeMCU ESP8266 (купить на AliExpress).
  2. SSD1306 0.96” OLED дисплей с 7 контактами (купить на AliExpress).
  3. Кабель micro USB.
  4. Макетная плата.
  5. Соединительные провода «папа-папа».

Протокол NTP

Протокол сетевого времени (Network Time Protocol, NTP) – это самый старый протокол, который появился в IP сетях для синхронизации времени между компьютерными сетями. Он был разработан ученым David L. Mills в университете Delaware в 1981 году. Данный протокол может быть использован для синхронизации времени различных сетей к всеобщему скоординированному времени (Coordinated Universal Time, UTC) с точностью до нескольких миллисекунд. UTC – это основной стандарт времени в современном мире, который регулирует время и дату. Протокол NTP использует UTC в качестве системного времени и обеспечивает точное синхронизированное время во всей сети Интернет.

Протокол NTP работает на основе иерархической модели клиент-сервер. На самом верхнем уровне этой модели используются системные часы известные как “stratum0”, в качестве которых могут использоваться атомные часы, радиоволны, GPS, GSM, которые получают сигналы времени от спутника. Серверы, которые получают сигналы времени от stratum0, называются “stratum1”, а серверы, которые получают сигналы времени от stratum1, называются “stratum2” и т.д. Это приводит к тому, что точность времени уменьшается при переходе вниз по уровням модели. При этом протокол NTP автоматически выбирает самый лучший из доступных серверов времени для синхронизации, что обеспечивает хорошую отказоустойчивость данного протокола.

Принцип работы протокола NTP

В данном проекте мы будем получать точное время от сервера NTP с помощью платы NodeMCU ESP8266 и показывать его на экране OLED дисплея. Также на нашем сайте вы можете прочитать статью о подключении OLED дисплея к NodeMCU ESP8266.

Модуль ESP8266 может получать доступ к серверам NTP для считывания с них точного времени используя доступ к сети интернет. В нашем случае мы будем использовать протокол NTP в режиме клиент-сервер. NodeMCU ESP8266 будет работать в качестве клиентского устройства и соединяться с серверами NTP с помощью протокола UDP (User Datagram Protocol – протокол передачи дейтаграмм пользователя). Клиент передает пакет запроса на сервер NTP, который в ответ передает ему пакет с временной меткой, содержащий информацию о точности, временной зоне, временной метке UNIX и т.д. Затем клиент выделяет из этой совокупности информации необходимую ему дату и время и далее использует эту информацию по своему усмотрению (в нашем случае отображает на экране OLED дисплея).

Читайте также:  Радар fujida karma duos wifi

Схема проекта

Схема интернет часов на NodeMCU ESP8266 и OLED дисплее представлена на следующем рисунке.

Схема интернет часов на NodeMCU ESP8266 и OLED дисплее

OLED дисплей в нашем проекте подключается к NodeMCU ESP8266 по протоколу SPI. Полная схема соединений между NodeMCU ESP8266 и OLED дисплеем представлена в следующей таблице.

OLED дисплей NodeMCU ESP8266
GND GND
VDD 3.3V
SCK D5
MOSI (SPI) или SDA (I2C) D7
RESET D3
DC D2
CS D8

Более подробно о подключении OLED дисплея к NodeMCU ESP8266 можно прочитать в этой статье.

Объяснение программы для модуля ESP8266

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Сначала в программе нам необходимо скачать и установить библиотеку NTP для модуля ESP8266 – таких библиотек достаточно много, вы можете использовать любую из них. Мы в данном проекте использовали библиотеку NTPClient от разработчика Taranais (скачать ее можно по этой ссылке) – она достаточно проста в использовании и содержит функции для получения времени и даты с серверов NTP. Плату ESP8266 NodeMCU мы будем программировать с помощью Arduino IDE.

Библиотеки для работы с протоколом NTP в Arduino IDE

Для установки библиотеки NTPClient скачайте ее по вышеприведенной ссылке, затем в Arduino IDE откройте пункт меню to Sketch > Include Library > Add .ZIP Library и укажите путь к папке, куда вы скачали Zip архив библиотеки. После этого перезагрузите Arduino IDE.

Скачивание библиотеки NTPClient с github

Добавление библиотеки NTPClient в Arduino IDE

Библиотека NTPClient содержит примеры, открыть которые можно в пункте меню Examples > NTPClient > Advanced. Код в скетче данного примера позволяет считывать время с NTP сервера и отображать его в окне монитора последовательной связи. Мы возьмем код этого скетча за основу программы для нашего проекта и будем отображать текущее время и дату на OLED дисплее.

Примеры программ из библиотеки NTPClient

Библиотека ESP8266WiFi содержит Wi-Fi функции, позволяющие модулю ESP8266 подключаться к сети интернет. WiFiUDP.h содержит функции для передачи и приема UDP пакетов. Поскольку OLED дисплей мы подключаем к нашей плате NodeMCU ESP8266 по интерфейсу SPI, то нам необходимо в программе подключить библиотеку “SPI.h”. Библиотеки “Adafruit_GFX.h” и “Adafruit_SSD1306.h” будут использоваться для взаимодействия с OLED дисплеем.

Источник

Оцените статью
Adblock
detector