• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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.
 
Сверху Снизу