1

Тема: Интернет часы ESP8266 + TM1637

Основная статья - http://rcl-radio.ru/?p=67569

#include <NTPClient.h>
#include <ESP8266WiFi.h> 
#include <WiFiUdp.h> 
#include <Wire.h> 
#include <TM1637Display.h>
 TM1637Display display(D4, D3);// CLK,DIO
 WiFiUDP ntpUDP;
 NTPClient timeClient(ntpUDP, "pool.ntp.org", 21600,60000);
 const char *ssid     = "Redmi Note 3";
 const char *password = "32481975";
 int times,x;
 unsigned long t;

void setup(){
  Serial.begin(9600);
  WiFi.begin(ssid, password);
  while ( WiFi.status() != WL_CONNECTED ) {
    delay(500);Serial.print(".");
    timeClient.begin();}
    display.setBrightness(3);// ЯРКОСТЬ    
}

void loop(){
  timeClient.update();
  int hh = timeClient.getHours();
  int mm = timeClient.getMinutes();
 // int ss = timeClient.getSeconds();
  if(millis()-t<500){x=0x00;}
  if(millis()-t>500){x=0x40;}
  if(millis()-t>999){t=millis();}
  times=hh*100+mm;
  display.showNumberDecEx(times,x,true); // вывод информации на индикатор TM1637
  }

  

2

Re: Интернет часы ESP8266 + TM1637

Автор, теперь Вам надо поменять у себя пароль, а то соседи будут пользоваться smile
const char *ssid     = "Redmi Note 3";
const char *password = "32481975";

3

Re: Интернет часы ESP8266 + TM1637

Это мобильный интернет и не думаю что мои соседи посещают этот сайт.

4

Re: Интернет часы ESP8266 + TM1637

Часы простые, но точные. Яркость дисплея: 0-"min", если 7, то будет "max".
Автор!
Просьба к Вам-можно сделать так, чтобы использовать фоторезистор китайский 10 кОм и например: ночью яркость была "min", а когда средне-средне, а когда очень ярко, то "max".
P.S.: паять могу, а вот в программировании полный нуль sad

5

Re: Интернет часы ESP8266 + TM1637

Вам нужно собрать делитель напряжения на фото резисторе, что бы максимальное напряжение было 1В, затем напишите какое напряжение у Вас получилось при затемнении фото резистора и при дневном свете. Можно все упростить сделав изменяющуюся яркость в зависимости от времени суток.

6

Re: Интернет часы ESP8266 + TM1637

Данные часы работают. Проблем нет.

7 (2019-12-13 00:01:15 отредактировано rn3qkp)

Re: Интернет часы ESP8266 + TM1637

Было бы отлично .Если в эти часы добавить модуль точного времени на случай отключения питания.Жду скетч
Да ,и что бы работали при отключении питания часов .

8

Re: Интернет часы ESP8266 + TM1637

Тогда теряется смысл интернет часов, при сбое питания интернет часы считывают время с сервера и время показывается верно.

9

Re: Интернет часы ESP8266 + TM1637

Во время работы от сети часы работают от wi fi и корректируют модуль точного времени, в случае пропадания (отвала wi-fi) часы работают от модуля точного времени .

10

Re: Интернет часы ESP8266 + TM1637

Модуль точного времени не нужен, время продолжает свой ход без интернета, как только появится интернет, часы будут синхронизированы, в скетче указано что часы опрашивают время раз в 60 минут

11 (2021-09-29 23:01:27 отредактировано GREII)

Re: Интернет часы ESP8266 + TM1637

Спасибо за работу.
, ребята подскажите , как исправить  часовой пояс тк 3
часа в +... еще раз спасибо и благодарен.
  "дошурупил "сам внимательно посмотрев скетч изменил сдвиг времени на свой .Класс спасибо...
p'.s -круто будет ,если добавить дату и температуру воздуха, ждем дополнений спасибо...

12

Re: Интернет часы ESP8266 + TM1637

Часы работают, спасибо.
Если сравнивать с сигналами точного времени по радио ,
интернет часы у меня идут на 3 сек вперёд.
Эти 3 секунды я отношу к задержкам в каналах радиовещания -
радиосигнал к нам в город попадает через спутник.

Попробовал подключить RDA 5807 и ИК приёмник к этому скетчу.
D1- SCL ,D2- SDA ,D5- ИК вход.
Приёмник включается после нажатия любой кнопки на пульте.
Пока работает только одна станция - подключить к кнопкам
пульта фиксированные настройки не получилось.

#include <NTPClient.h>
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#include <Wire.h>
#include <TM1637Display.h>
#include <IRremoteESP8266.h>
#include <IRutils.h>
#include <radio.h>
#include <RDA5807M.h>
#define FIX_BAND    RADIO_BAND_FM   
RDA5807M radio;

const uint16_t kRecvPin = 14; // D5, ПИН ИК приемника
IRrecv irrecv(kRecvPin);
decode_results results;
TM1637Display display(D4, D3);// CLK,DIO
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", 25200,60000);
const char *ssid     = "ASUS";
const char *password = "37349403kn";
int times,x;
unsigned long t;

void setup(){
  Serial.begin(9600);
  irrecv.enableIRIn();  // Инициализируем ИК приемник
  WiFi.begin(ssid, password);
  while ( WiFi.status() != WL_CONNECTED ) {
  delay(500);Serial.print(".");
  timeClient.begin();}
  display.setBrightness(3);// ЯРКОСТЬ     
}

void loop(){ 
  timeClient.update();
  int hh = timeClient.getHours();
  int mm = timeClient.getMinutes();
// int ss = timeClient.getSeconds();
  if(millis()-t<500){x=0x00;}
  if(millis()-t>500){x=0x40;}
  if(millis()-t>999){t=millis();}
  times=hh*100+mm;
  display.showNumberDecEx(times,x,true); // вывод информации на индикатор TM1637 
  if (irrecv.decode(&results)) { // Если данные пришли, то выполняем код ниже
  serialPrintUint64(results.value, HEX); // Вывод в консоль
  Serial.println("");
  irrecv.resume(); // Принимаем следующий сигнал от приемника
  radio.init();
  radio.debugEnable();
  //radio.setMono(1);
  radio.setBandFrequency(FIX_BAND, 9870);// 9870 === 98.70 MHz
  radio.setVolume(7);// 0...15 
  }
   delay(50);
}