voldemar2005
Member
да не любитель я использовать для таких простых операция библиотеки ...библиотекой ntp.h
да не любитель я использовать для таких простых операция библиотеки ...библиотекой ntp.h
//#define INVERT_MATRIX_ORDER // раскомментировать для другого порядка расположения матриц
#ifdef INVERT_MATRIX_ORDER
for ( int addr = 1, addr1 = MAX_USE - 1; addr < MAX_USE; addr++, addr1--)
{
buf_command[addr1 * 2] = row + 1;
buf_command[addr1 * 2 + 1] = value24[addr - 1];
}
#else
for ( int addr = 1; addr < MAX_USE; addr++)
{
buf_command[addr * 2] = row + 1;
buf_command[addr * 2 + 1] = value24[addr - 1];
}
#endif
да, это логично, поменял ...Может стоит поставить false?
в принципе у меня этот код есть (web.ino в районе 350 строки), но он закомментирован, почему то не все точки доступа находятся.и список доступных сетей приделаю
void handleSetWiFi()
{
serv_ms = millis();
//url='/set_wifi?as='+as+'&ap='+ap+'&ss='+ss+'&sp='+sp;
cleanASCIIstrcpy( eeprom_data.ap_ssid, HTTP.arg( 0).c_str());
cleanASCIIstrcpy( eeprom_data.ap_pass, HTTP.arg( 1).c_str());
cleanASCIIstrcpy( eeprom_data.sta_ssid, HTTP.arg( 2).c_str());
cleanASCIIstrcpy( eeprom_data.sta_pass, HTTP.arg( 3).c_str());
strcpy( eeprom_data.test, "ok");
write_settings_ESP();
}
void cleanASCIIstrcpy(char * out, const char * input) {
int i =0;
int j = 0;
while ( input[i] != '\0' ) {
if ( input[i] != '%' && input[i] != '+') {
out[j++] = input[i++];
}
else {
if ( input[i] != '+') {
out[j++] = ' '; i++;
}
else if ( input[i] != '%' ) {
if ( input[i+1] == '2' ) {
if ( input [i+2] >= '1' && input [i+2] <= '9' ) {
out[j++] = '!' + input [i+2] - '1'; i +=3;
}
else if ( input [i+2] >= 'A' && input [i+2] <= 'F' ) {
out[j++] = '!' + input [i+2] - 'A'; i +=3;
}
else { // ignore symbol
i +=3;
}
}
else {
if ( input[i+1] == '3' && input [i+2] >= 'A' && input [i+2] <= 'F' ) {
out[j++] = ':' + input [i+2] - 'A'; i +=3;
}
else if ( input[i+1] == '4' && input [i+2] >= '0' ) {
out[j++] = '@'; i +=3;
}
else if ( input[i+1] == '5' && input [i+2] >= 'B' && input [i+2] <= 'F' ) {
out[j++] = '[' + input [i+2] - 'B'; i +=3;
}
else if ( input[i+1] == '6' && input [i+2] >= '0' ) {
out[j++] = '`'; i +=3;
}
else if ( input[i+1] == '7' && input [i+2] >= 'B' && input [i+2] <= 'F' ) {
out[j++] = '{' + input [i+2] - 'B'; i +=3;
}
else { // ignore symbol
i +=3;
}
}
}
}
}
out[j] = '\0';
}
они на esp8266? Код в студию, пожалуйста.тоже простые и не только часы.
спасибо! добавил в первый пост изменения, только я его чуток подправил )как обещал даю код
для того и дал . Свою версию вести при активном Вашем обновлении бессмысленно.только я его чуток подправил
#ifdef NO_DS3231
sta_init();
#define WAIT_PERIOD 15000UL // ждём 15 секунд
uint32_t waiting = millis();
while ( sta_check() == false && millis()- waiting < WAIT_PERIOD ) {delay(0);}
if ( sta_check() ) {
waiting = millis();
while ( get_ntp_time() == false && millis()- waiting < WAIT_PERIOD ) {delay(0);}
}
#endif
//-------------------------------------------------------------- get_ds3231
void get_ds3231()
{
if ( ds3231_ms == 0 || (cur_ms - ds3231_ms) > SECS_PER_HOUR*1000UL) //3600000UL)
{
ds3231_ms = cur_ms;
#ifdef NO_DS3231
ds3231.Second = second ( cur_time );
ds3231.Minute = minute ( cur_time );
ds3231.Hour = hour ( cur_time );
ds3231.Wday = weekday( cur_time );
ds3231.Day = day ( cur_time );
ds3231.Month = month ( cur_time );
ds3231.Year = year ( cur_time ) -1970;
#else
// Reset the register pointer
и далее как у Вас
добавил, но как всегда чуток по своему ). В режиме без DS3231 сделал синхронизацию NTP каждый час.позволю попросить добавить и этот код
а как это проявляется ?У меня работает неправильно
в HTML нет элемента который позволял бы выбирать из списка и вводить вручную текст, т.ч. никак.Это намного удобнее, чем вводить вручную
это 100% делать не буду. Часы должны показывать время а для погоды должна быть метеостанция и т.д.то и прогноз погоды не помешает
сделал обработку '+' как обычного символа ...однако '+' у Вас обрабатывается некорректно
Вы не смотрели код по ссылке? Там это реализовано. Список сетей с радио-кнопками и текстовое поле для ввода скрытой сети, если нужно.в HTML нет элемента который позволял бы выбирать из списка и вводить вручную текст, т.ч. никак.
.
Прям уж никак...? А джава-скрипт на что?в HTML нет элемента который позволял бы выбирать из списка и вводить вручную текст, т.ч. никак.
for ( int al = 0; al < COUNT_ALARM_CLOCK; al++)
{
if ( (alarm_status[al] & 1) > 0)
{
// если есть вкл будильник - отключаем
digitalWrite( alarm_pin, false);
alarm_status[al] &= 0b11111110;
pr_alarm = true;
}
}
byte alarm_melody[3] = { B00010101, B00001111, B00011011 };
добавил ...web.ino
при срабатывании будильника отключает его кнопкой управлениячто должен делать этот кусок кода?
это число не может быть восьмеричным, ардуино IDE воспринимает его как двоичное. А это строка обнуляет младший бит статуса будильника, который отвечает за признак вкл/выкл будильника.восьмеричное число 0b11111110
не сделаю, мне тестировать негде.Сделайте, пожалуйста, несколько "мелодий" для будильников. Хотя бы, так
Значит тут Целочисленные константы | Аппаратная платформа Arduino неверные данные.это число не может быть восьмеричным, ардуино IDE воспринимает его как двоичное.
Сделал. На выбор три типа сигнала для пищалки типа HYDZ для каждого будильника. Один вывод пищалки подключаем на gpio 13, другой на 0 питания. Громкость вполне достаточная.Мелодии сам сделаю
Заменяем web.ino
Добавляем alarmMelodies.h
В структуру alarm_clock добавляем byte signal = 0;
После определения константы const int alarm_pin = 13; (alarm_pin = PIN_ALARM;) подключаем заголовочный файл #include "alarmMelodyes.h"
Поиском меняем все digitalWrite(alarm_pin, true) на signalStep.attach(0.1, signal_step, eeprom_data.alarm[al].signal)
digitalWrite(alarm_pin, false) на signalStep.detach(); digitalWrite(alarm_pin, false)
За исключение раздела setup там оставляем digitalWrite(alarm_pin, false) без изменений.
я бы не советовал так подключать, насколько я знаю максимальный ток GPIO 12mA, пищалка потребляет скорей всего больше ...Один вывод пищалки подключаем на gpio 13, другой на 0 питания
безусловно, лучше подключить готовый модуль типая бы не советовал так подключать,