• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Общие вопросы по Arduino IDE для ESP8266

pvvx

Активный участник сообщества
Там появились и SCL регистры :) Но это просить запользовать - бесполезно :)
К I2S подключается множество устройств, в основном audio ADC/DAC (они дешевле других ADC/DAC, т.к. серии их выпуска больше, но их можно пользовать и как обычные ADC/DAC с 16 и более бит - до 32 :) ).
К "малинке" есть платы расширения с ES9023...
На STM32F4-Discovery стоит DAC/ADC с усилителем CS43L22 (у него управление конфигом по I2C).
Библиотек и примеров работы с ними для других чипов много...
А в "АрДурине" я не знаю, есть ли вообще что с audio и с I2S, т.к. не использую "АрДурине" нигде и никогда.
 
Последнее редактирование:

Lstt

Member
Извиняюсь за ламерский вопрос, но как корректно работать со временем в ESP? Как правильно получить время с ntp сервера, а потом синхронизировать его с регистрами RTC в самой ESP, как потом преобразовать время в 24 ч формат? Здесь нашёл описание функций, но как поступить дальше, знаний не хватает...(( - https://github.com/esp8266/Arduino/...e/esp8266com/esp8266/tools/sdk/include/sntp.h
 

Victor

Administrator
Команда форума
Извиняюсь за ламерский вопрос
да не ламерский, а очень интересный :)
Попробуйте это https://www.arduino.cc/en/Tutorial.UdpNtpClient
должно работать с минимальными правками
а с RTC сложнее, и кстати, во всех известных модулях на RTC не разведено питание (если кто знает обратное - киньте ссылочку)
 

Lstt

Member
да не ламерский, а очень интересный :)
Попробуйте это https://www.arduino.cc/en/Tutorial.UdpNtpClient
должно работать с минимальными правками
а с RTC сложнее, и кстати, во всех известных модулях на RTC не разведено питание (если кто знает обратное - киньте ссылочку)
Появились ещё вопросы..код, наверное не подойдёт, так как всё в цикле с огромными задержками...А если просто один раз синхронизировать при включении с сервера внутрений RTC (пусть без сохранения времени после отключения, интернет есть всегда)?
 

jmms

Moderator
Команда форума

Andy Korg

Moderator
Команда форума
Как правильно получить время с ntp сервера
У pvvx в свалке есть модули sntp отуда можно надергать. В ресурсах лежит моя прошивка там получается время по протоколу TIME.
как потом преобразовать время в 24 ч формат?
В этой же прошивке есть функция преобразования.
 

mischaka

New member
Как изменить MAC-Address в ESP. Есть ли команда в библиотеке к Arduino. Желательно пример кода.
 

AndreyHeaven

New member
вопрос по EEPROM
всем привет. подскажите как лучше реализовать такую ситуацию.
у меня есть настройки, типа там ssid и пароль и подсохраняется состояния gpio и еще есть два байта флага чтоб не ситать какойто мусор при сохранении настроек
в setup вызываеться один раз EEPROM.begin(EEPROM_SIZE); EEPROM_SIZE равен общему обьему всех данных
так вот сейчас почему-то при чтении настроек флаги не могут прочитаться. до внедрения сохранения настроек gpio все было нормально, но там были EEPROM.begin в самих функциях
Код:
void loadConfig() {
    // try to find magic
    if (EEPROM.read(PREAMBULE_START+0) != 'S' || EEPROM.read(PREAMBULE_START+1) != 'H')
    return;
    // To make sure there are settings, and they are YOURS!
    // If nothing is found it will use the default settings.
    for (unsigned int t = 0; t < sizeof(storage); t++)
    *((char*)&storage + t) = EEPROM.read(CONFIG_START + t);
    EEPROM.commit();
    PRINTLNDEBUG("LOAD config");
}
void saveConfig() {
    EEPROM.write(PREAMBULE_START+0, 'S');
    EEPROM.write(PREAMBULE_START+1, 'H');
    for (unsigned int t = 0; t < sizeof(storage); t++) {
        EEPROM.write(CONFIG_START + t, *((char*)&storage + t));
    }
    EEPROM.commit();
    PRINTLNDEBUG("SAVE config");
}
void saveState(uint8_t pos, uint8_t value) {
    if (loadState(pos) != value) {
        EEPROM.write(EEPROM_STATE_CONFIG_ADDRESS+pos, value);
        } 
    EEPROM.commit();
}
uint8_t loadState(uint8_t pos) {
    uint8_t value = EEPROM.read(EEPROM_STATE_CONFIG_ADDRESS+pos);
    EEPROM.commit();
    return value;
}
 

mischaka

New member
Вопросик,
Как добавить дополнительную запись в header сервера.
Так правилно?

server.sendHeader("Cache-Control", "no-cache");
server.send(200, "text/html",html1);

Без этой записи Интернет Эксплорер не показывает изменения в HTML-странице.
 

Smosia

New member
Добрый день. Первый раз разбираюсь с ESP. Подскажите пожалуйста.
Реализован ли перевод микроконтроллера в режим пониженного энергопотребления (low power mode) в IDE? Или есть сторонняя библиотека?
Собираюсь запитывать устройство от 2х батареек ААА и будить по внешнему прерыванию около 20 раз в месяц.
Ток в режиме сна очень низкий, что положительно скажется на времени работы устройства.
 

mischaka

New member
Добрый день. Первый раз разбираюсь с ESP. Подскажите пожалуйста.
Реализован ли перевод микроконтроллера в режим пониженного энергопотребления (low power mode) в IDE? Или есть сторонняя библиотека?
Собираюсь запитывать устройство от 2х батареек ААА и будить по внешнему прерыванию около 20 раз в месяц.
Ток в режиме сна очень низкий, что положительно скажется на времени работы устройства.
Да есть команда в Aruino ESPm.deepSleep(300, WAKE_RFCAL); но у меня на ESP-01 она не работает. Есть вариант сделать прерывание через железо. соединить ножки CH_PD и GPIO2 при подаче 3.3В на эти ножки модуль включается выполняет программу потом выдаём на GPIO2 Low-сигнал и модуль выключается.
 

Smosia

New member
Да есть команда в Aruino ESPm.deepSleep(300, WAKE_RFCAL); но у меня на ESP-01 она не работает. Есть вариант сделать прерывание через железо. соединить ножки CH_PD и GPIO2 при подаче 3.3В на эти ножки модуль включается выполняет программу потом выдаём на GPIO2 Low-сигнал и модуль выключается.
Отличная идея с ножкой CH_PD!! Спасибо.
 

pvvx

Активный участник сообщества
Да есть команда в Aruino ESPm.deepSleep(300, WAKE_RFCAL); но у меня на ESP-01 она не работает. Есть вариант сделать прерывание через железо. соединить ножки CH_PD и GPIO2 при подаче 3.3В на эти ножки модуль включается выполняет программу потом выдаём на GPIO2 Low-сигнал и модуль выключается.
Нет сигналов только на RX/GPIO3. На остальных ножках i/o у ESP-01 ROM-BIOS выводит всякие сигналы при старте, без возможности их отключения.
Сброс через CH_PD сбрасывает и данные в EEPROM. Используйте RESET.
Стандартный deepSleep перезагружает модуль, а это время немалое. Обычно от 0.3 секунд до входа в программу пользователя, после инициализации SDK.
 
Сверху Снизу