Во-первых, всех причисляющих себя к семейству радиокошачих - с наступившими\наступающими праздниками!!
Во-вторых - нижайше прошу уважаемого автора прокомментировать (по-русски) файл clock.h и выложить его тут. Выше уже тема комментариев обсуждалась, комментировать весь скетч - нереально трудоёмко, но, если будут объяснены хотя бы все переменные - желающие разберутся и в скетче.
_________________ "... я вежливо сообщил рядовому Петрову, что расплавленный припой начал капать мне за шиворот. И отпустил стремянку..." (из объяснительной)
abomin, Во первых спасибо, во вторых и вас с наступившими\наступающими праздниками!!!
Прокомментировал часть файла, оставшуюся часть попытаюсь доделать завтра.
String fw = "3.2"; // Версия прошивки String vers = "BIM v" + fw; // Версия прошивки int rssi = 0; // Уровень WiFi сигнала File fsUploadFile; // переменная для принятия файла прошивки (по воздуху) char text_buf[255] = ""; // вспомогательная переменная для формирования строк разных
struct{ // группа переменных конфигурации часов char ssid[40] = ""; // Имя сети WiFi char pass[40] = ""; // Пароль сети char apssid[40] = "Clock"; // Имя сети в режиме точки доступа char appass[40] = "1234567890"; // Пароль точки доступа char apip[16] = "192.168.4.1"; // IP адрес в режиме точки доступа char apmask[16] = "255.255.255.0"; // Маска подсети в режиме точки доступа uint8_t chnl = 1; // Номер канала WiFi в режиме точки доступа int8_t utc = 0; // Часовой пояс uint8_t daylight = 0; // Надобность перехода на летнее время bool time_format = false; // Формат часов: 12 или 24 часовой uint8_t day_bright = 0; // Дневная яркость дисплея 1 uint8_t day_bright2 = 0; // Дневная яркость дисплея 2 uint8_t night_bright = 0; // Ночная яркость дисплея 1 uint8_t night_bright2 = 0; // Ночная яркость дисплея 2 bool type = 0; // Тип получения IP адреса: статический или динамический IP char ip[16] = ""; // IP адрес в режиме статического IP char mask[16] = ""; // Маска подсети в режиме статического IP char gw[16] = ""; // Шлюз в режиме статического IP char dns1[16] = ""; // Предпочитаемый DNS адрес в режиме статического IP char dns2[16] = ""; // Альтернативный DNS адрес в режиме статического IP int hd = 0; // Время перехода дисплея 1 в дневной режим (часы) int hd2 = 0; // Время перехода дисплея 2 в дневной режим (часы) int md = 0; // Время перехода дисплея 1 в дневной режим (минуты) int md2 = 0; // Время перехода дисплея 2 в дневной режим (минуты) int hn = 0; // Время перехода дисплея 1 в ночной режим (часы) int hn2 = 0; // Время перехода дисплея 2 в ночной режим (часы) int mn = 0; // Время перехода дисплея 1 в ночной режим (минуты) int mn2 = 0; // Время перехода дисплея 2 в ночной режим (минуты) char ntp[40] = "time.nist.gov"; // Адрес NTP сервера uint32_t chid = 0; // Channel ID для сервиса thingspeak.com uint8_t disp = 1; // Тип дисплея 1: tm1637 или max7219 uint8_t disp2 = 2; // Тип дисплея 2: tm1637 или max7219 uint32_t ntp_period = 300; // Период обновления NTP uint8_t tupd = 5; // Неактуально bool thngsend = false; // Нужно ли отправлять данные на thingspeak bool thngrcv = false; // Нужно ли принимать данные с thingspeak uint8_t tf1 = 0; // Что отправлять в поле 1 thingspeak uint8_t tf2 = 0; // Что отправлять в поле 2 thingspeak uint8_t tf3 = 0; // Что отправлять в поле 3 thingspeak uint8_t tf4 = 0; // Что отправлять в поле 4 thingspeak uint8_t tf5 = 0; // Что отправлять в поле 5 thingspeak uint8_t tf6 = 0; // Что отправлять в поле 6 thingspeak uint8_t tf7 = 0; // Что отправлять в поле 7 thingspeak uint8_t tf8 = 0; // Что отправлять в поле 8 thingspeak char rdkey[40] = ""; // Write API key для thingspeak char wrkey[40] = ""; // Read API key для thingspeak uint8_t dp[6] = {6, 2, 0, 0, 0, 0}; // Периоды отображения данных на дисплее 1 uint8_t d2p[6] = {6, 2, 0, 0, 0, 0}; // Периоды отображения данных на дисплее 2 uint8_t dt[6] = {1, 1, 1, 1, 1, 1}; // Типы датчиков для отображения на дисплее 1 uint8_t d2t[6] = {1, 1, 1, 1, 1, 1}; // Типы датчиков для отображения на дисплее 1 char dc[6][5] = {"#FFF", "#FFF", "#FFF", "#FFF", "#FFF", "#FFF"}; // Неактуально char d2c[6][5] = {"#FFF", "#FFF", "#FFF", "#FFF", "#FFF", "#FFF"}; // Неактуально char ds[6][4] = {"C", "C", "C", "C", "C", "C"}; // Типы данных (температура, давление, влажность, время, дата) для отображения на дисплее 1 char d2s[6][4] = {"C", "C", "C", "C", "C", "C"}; // Типы данных для отображения на дисплее 2 char username[40] = "admin"; // Имя пользователя (для веб интерфейса) char password[40] = "1111"; // Пароль (для веб интерфейса) uint8_t provider = 0; // Источник прогноза погоды uint8_t citysearch = 0; // Способ поиска города для прогноза char city[40] = ""; // Название города для прогноза char lat[32] = ""; // Широта города для прогноза char lon[32] = ""; // Долгота города для прогноза char cityid[12] = ""; // ИД номер города для прогноза char appid[40] = ""; // API ключ openweathermap char appkey[40] = ""; // API ключ weatherbit uint8_t bme_plc = 0; // Расположение датчика BME280 (в доме, на улице или не указано) для дисплея 1 uint8_t bmp_plc = 0; // Расположение датчика BMP180 для дисплея 1 uint8_t sht_plc = 0; // Расположение датчика SHT21 для дисплея 1 uint8_t dht_plc = 0; // Расположение датчика DHT22 для дисплея 1 uint8_t ds18_plc = 0; // Расположение датчика DS18B20 для дисплея 1 uint8_t ds32_plc = 0; // Расположение датчика DS3231 для дисплея 1 uint8_t ths_plc = 0; // Расположение датчика thingspeak для дисплея 1 uint8_t wet_plc = 0; // Расположение датчика "прогноз погоды" для дисплея 1 uint8_t bme_plc2 = 0; // Расположение датчика BME280 (в доме, на улице или не указано) для дисплея 2 uint8_t bmp_plc2 = 0; // Расположение датчика BMP180 для дисплея 2 uint8_t sht_plc2 = 0; // Расположение датчика SHT21 для дисплея 2 uint8_t dht_plc2 = 0; // Расположение датчика DHT22 для дисплея 2 uint8_t ds18_plc2 = 0; // Расположение датчика DS18B20 для дисплея 2 uint8_t ds32_plc2 = 0; // Расположение датчика DS3231 для дисплея 2 uint8_t ths_plc2 = 0; // Расположение датчика thingspeak для дисплея 2 uint8_t wet_plc2 = 0; // Расположение датчика "прогноз погоды" для дисплея 2 } config;
_________________ "... я вежливо сообщил рядовому Петрову, что расплавленный припой начал капать мне за шиворот. И отпустил стремянку..." (из объяснительной)
Заголовок сообщения: Re: Очень простые часы с WiFi
Добавлено: Пн фев 07, 2022 09:26:02
Родился
Зарегистрирован: Вс мар 28, 2021 15:26:41 Сообщений: 9
Рейтинг сообщения:0
himikat123, добрый день! Часы отличные! И спасибо за реализацию вывода разной информации на разные дисплеи! (Правда tm1637 у меня оказались не рабочие, даже с примером из библиотеки, микросхема не выдает напряжение на сегменты...) Есть пара вопросов: - возможно ли отключить мигание точками (тире)? хотел попробовать отключить в файле clock.h, но с любыми библиотеками куча ошибок компиляции, а после обновления всех - ошибки в процедурах... -возможно ли сделать вывод времени (на дисплее max7219) только в 4 сегмента, опять же чтоб не было лишних миганий секунд?
Я для "баловства" с часами переношу папку libraries куда-нибудь, а вместо нее вставляю папку с библиотеками, подобранными специально для данной конструкции. По окончании все возвращаю взад. https://wdfiles.ru/cac957
Заголовок сообщения: Re: Очень простые часы с WiFi
Добавлено: Пн фев 07, 2022 14:26:10
Родился
Зарегистрирован: Вс мар 28, 2021 15:26:41 Сообщений: 9
Рейтинг сообщения:0
Mizetsky, к сожалению смена версий не помогла. пробовал даже версией 2.0, там правда другие ошибки на функции, которые еще не поддерживались. А с версии 2.6 уже та же ошибка на xtensa
_________________ "... я вежливо сообщил рядовому Петрову, что расплавленный припой начал капать мне за шиворот. И отпустил стремянку..." (из объяснительной)
Заголовок сообщения: Re: Очень простые часы с WiFi
Добавлено: Пн фев 07, 2022 19:41:58
Родился
Зарегистрирован: Вс мар 28, 2021 15:26:41 Сообщений: 9
Рейтинг сообщения:0
Mizetsky, тьфу, точно, спасибо, теперь заработало. По началу их 5 и было, правда о папке дата не подумал, и тоже были ошибки, в ходе экспериментов 2 и оставил... Всем спасибо за помощь!
Заголовок сообщения: Re: Очень простые часы с WiFi
Добавлено: Сб мар 05, 2022 14:20:09
Родился
Зарегистрирован: Вс мар 28, 2021 15:26:41 Сообщений: 9
Рейтинг сообщения:0
И все таки что-то делаю не так...прошивается все без ошибок (с библиотеками от Mizetsky), clock.h clock.ino cloud.ino web.ino languages.h и папка data все в папке clock, но после подключения к его wi-fi, HTTP 404 - File Not Found, как будто папка дата не записывается... При прошивке бинарником никаких проблем нет, но есть необходимость в отключении мигания точек и скорей всего нужно будет убрать знак С после градусов, поэтому и пытаюсь прошить через ардуино...
но есть необходимость в отключении мигания точеи скорей всего нужно будет убрать знак С после градусов, поэтому и пытаюсь прошить через ардуино...
В библиотеке для дисплея пошаманьте, можно с бубном TM1637_6D.cpp static int8_t TubeTab[] И, наверное, в скетче, void tm1637_fill(uint8_t type, uint8_t disp) Но здесь не уверен, точнее Автор подскажет.
Несколько нескромный вопрос - а на ..УЯ отключать моргание - часы должны "тИкать"
Добавить бы "тикалку" на какой-нибудь ГПИО, ну очень коротенький щелчок, с выводом на какую-нибудь пищалку - ......
Символ"С" - чем помешал? Сделайте Фаренгейты или Кельвины - всего-то пару строк в скетч добавить. Но буковку "К" (Кельвин) Х его З как изобразить
Заголовок сообщения: Re: Очень простые часы с WiFi
Добавлено: Сб мар 12, 2022 04:53:02
Родился
Зарегистрирован: Вс мар 28, 2021 15:26:41 Сообщений: 9
Рейтинг сообщения:0
Mizetsky, по поводу тиканья поддерживаю. Но супругу всегда раздражало тиканье часов, которые, вдобавок, были в каждой комнате. Постепенно заменили на часы с плавным ходом стрелок Но это мы найдем, где мигание отключается... А вот С хотел отключить, т.к. дисплей 4-х значный, и - будет теряться при большом холоде, но тоже уже догадываюсь, где... Вот только так и не могу победить вебморду, после загрузки папки дата, так же ошибка - отсутствие файлов...Раньше только с PICами имел дело, там свои конечно нюансы, но решение найти попроще было
Вот, делюсь допилингом... Прикручиваю статику на HC595.
Первое видео - плата на 4 разряда. На ней пришлось ключ управления разделительной точкой допаивать. Спойлер Второе видео - плата на 6 разрядов, но в настройках выбрано 4 разряда. Спойлер Третье видео - плата на 6 разрядов, в настройках выбрано 6 разрядов. Спойлер Платы с индикаторами покупал здесь, у камрада zenner (за что ему спасибки). У него ещё есть.
Прикладываю пропатченный скетч, там вывод на ТМ1637 заменён на вывод в НС595. Поэтому в вебморде выбирать ТМ1637 с 4-мя или 6-ю разрядами. Другие файлы не менял, доп.либы не нужны. Подключение пинов смотрите в скетче. Яркость пока не реализовывал, но это возможно: надо от всех НС595 выводить сигнал ОЕ и подавать на него ШИМ.
_________________ "... я вежливо сообщил рядовому Петрову, что расплавленный припой начал капать мне за шиворот. И отпустил стремянку..." (из объяснительной)
Давненько я на Радиокот не заходил. Всех приветствую!
abomin, класс, как допилите управление яркостью - выкладывайте сюда, с вашего позволения добавлю в проект новый дисплей.
strangle, прошейтесь бинарником, а затем шейте свои изменения из-под Ардуино. Прошивка (только скетча) из-под Ардуино не стирает всю память ESP8266, в частности файловую систему, так что, это способ, если не шьётся файловая система.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения