• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Стоит ли? программирование ESP8266 в Arduino IDE

abdurino

New member
В Arduino всё более-менее ясно - вот тебе девайс, вот к нему куча модулей с библиотеками.

В ESP8266 всё очень странно. Девайс вроде мощный ES12 аж с 4М памяти, хотя почти пустой скетч заливается на 200к.
В теории можно подключить кое-какие модули, но программинг через заднее место - странный питон - чем си не угодил, скриптовое извращение lua.

То есть если я захочу подключить время типа DS3231,
ясен перец не ясно по каким пинам распихивать контакты чтобы заюзать стандартные библиотеки, если они вообще заработают.
А если я напрямую ищу библиотеку для 8266, то имею убогий lua, который мне мало чем поможет.

Итого в чем прелесть девайса, Леды через файфай зажигать? Остальное в необозримом будущем?
 

aleknest

New member
Извините за оффтоп, на зачем прикручивать RTC-часы имея реализации ntp-клиента?
 

sav-13

Member
В Arduino всё более-менее ясно - вот тебе девайс, вот к нему куча модулей с библиотеками.

В ESP8266 всё очень странно. Девайс вроде мощный ES12 аж с 4М памяти, хотя почти пустой скетч заливается на 200к.
Там же все целиком заливается вместе с WiFi функциями. Называется ESP8266 core for Arduino IDE

То есть если я захочу подключить время типа DS3231,
ясен перец не ясно по каким пинам распихивать контакты чтобы заюзать стандартные библиотеки, если они вообще заработают.
А если я напрямую ищу библиотеку для 8266, то имею убогий lua, который мне мало чем поможет.

Итого в чем прелесть девайса, Леды через файфай зажигать? Остальное в необозримом будущем?
I2C у ESP-шки реализуется на любых пинах. Поэтому при инициализации Wire необходимо указывать SGA, SCK
Wire.begin(4,5);

Не понимаю, почему вы мешаете в кучу Arduino IDE и LUA. Первый - это компилятор, создающий новую прошивку, второй - интерпретатор
 

sav-13

Member
Извините за оффтоп, на зачем прикручивать RTC-часы имея реализации ntp-клиента?
Хотя бы потому что WiFi и интернет имеет более низкую надежность по сравнению с автономными системами управления. То есть если у меня модуль перезагружается при отсутствии интернета/WiFi, то времени он не получает. А если у меня система управления завязана на время (даже часы), то это плохо.
Поэтому в критических к времени проектах хорошо работает модуль DS3231 или менее точный DS1307 с его периодической синхронизацией по NTP
 

aleknest

New member
То есть если у меня модуль перезагружается при отсутствии интернета/WiFi, то времени он не получает.
Решается ntp-серверами в локальной сети (как вариант, на роутере).
Хотя вцелом да, вариант менее надёжный, но более дешёвый.
Собственно это я больше к предложению "Итого в чем прелесть девайса, Леды через файфай зажигать?" - прелесть в том числе и в том, что часть функций можно реализовать с помощью удалённых устройств и эта возможность уже на борту.
 

abdurino

New member
,
Извините за оффтоп, на зачем прикручивать RTC-часы имея реализации ntp-клиента?
В теории к нему подойдут любые датчики,
пусть даже через сдвиговый регистр или ещё как. Ведь можно же как-то расширить количество пинов?

Там же все целиком заливается вместе с WiFi функциями. Называется ESP8266 core for Arduino IDE
Понятно. Зря конечно, если рассматривать отдельное программирование ESP то wifi будет как опция, часто не нужная. Не то чтобы я жадный... хотя )

I2C у ESP-шки реализуется на любых пинах. Поэтому при инициализации Wire необходимо указывать SGA, SCK
Wire.begin(4,5);
Не понимаю, почему вы мешаете в кучу Arduino IDE и LUA. Первый - это компилятор, создающий новую прошивку, второй - интерпретатор
При наличии нормального компилятора Си, использовать такие-то LUA и питоны грешно.
Вот смотрю сейчас на библиотеку LUA под время DS3231 - ну и для кого это всё?

Подскажите, если я надумаю таки переделывать библиотеки на ESP, куда податься? С цифровыми пинами вроде всё ясно, максимум PIND заменить на digital, а с аналоговыми где примеры посмотреть?
Хочется победить хотя бы время.

Код:
#define DS1307_CTRL_ID 0x68 
// 0110 1000

// Aquire data from the RTC chip in BCD format
bool DS1307RTC::read(tmElements_t &tm)
{
  uint8_t sec;
  Wire.beginTransmission(DS1307_CTRL_ID);
#if ARDUINO >= 100 
  Wire.write((uint8_t)0x00);
#else
  Wire.send(0x00);
#endif 
  if (Wire.endTransmission() != 0) {
    exists = false;
    return false;
  }
  exists = true;

  // request the 7 data fields   (secs, min, hr, dow, date, mth, yr)
  Wire.requestFrom(DS1307_CTRL_ID, tmNbrFields);
  if (Wire.available() < tmNbrFields) return false;
#if ARDUINO >= 100
  sec = Wire.read();
  tm.Second = bcd2dec(sec & 0x7f);  
  tm.Minute = bcd2dec(Wire.read() );
  tm.Hour =   bcd2dec(Wire.read() & 0x3f);  // mask assumes 24hr clock
  tm.Wday = bcd2dec(Wire.read() );
  tm.Day = bcd2dec(Wire.read() );
  tm.Month = bcd2dec(Wire.read() );
  tm.Year = y2kYearToTm((bcd2dec(Wire.read())));
#else
  sec = Wire.receive();
  tm.Second = bcd2dec(sec & 0x7f);  
  tm.Minute = bcd2dec(Wire.receive() );
  tm.Hour =   bcd2dec(Wire.receive() & 0x3f);  // mask assumes 24hr clock
  tm.Wday = bcd2dec(Wire.receive() );
  tm.Day = bcd2dec(Wire.receive() );
  tm.Month = bcd2dec(Wire.receive() );
  tm.Year = y2kYearToTm((bcd2dec(Wire.receive())));
#endif
  if (sec & 0x80) return false; // clock is halted
  return true;
}
 

aleknest

New member
,
В теории к нему подойдут любые датчики, пусть даже через сдвиговый регистр или ещё как.
Да напрямую подключаются. Ессно, если речь идёт, например, о ESP-12, а не о ESP-01.

,
Ведь можно же как-то расширить количество пинов?
В той же ESP-12 их больше 10-ка. Ну сдвиговым регистром да, можно всякими релюхами поуправлять.
Но зачем так масштабировать? При цене в 2 доллара можно раскидывать функции по устройствам, увязав это всё на одну точку доступа, или объявив одну из ESP-х точкой доступа.
 

abdurino

New member
имею е-12,
итого 4,5,2,16,14,12,13 итого 7 свободных пинов. Особо не разгуляешься )

По времени вопрос решил. Следующий DS18B20, посмотрим как пойдёт )
 
Последнее редактирование:

ElizarovDmitry

New member
Добрый день! Скажите, а для esp можно использовать библиотеки от ардуино или свои имеются? В общем, я пока разобраться не могу с чего начать. необходимо подцепить ir и rf передатчики. в ардумно это библиотеки IRremote и RemoteSwitch вроде. Чтобы реализовать все это проще работать через IDE?
 

abdurino

New member
Добрый день! Скажите, а для esp можно использовать библиотеки от ардуино или свои имеются? В общем, я пока разобраться не могу с чего начать. необходимо подцепить ir и rf передатчики. в ардумно это библиотеки IRremote и RemoteSwitch вроде. Чтобы реализовать все это проще работать через IDE?
если вы меня спрашиваете, то надо пробовать.
я пока доволен чипом, всё работат. и сколько не пишешь всё 200к заливается ) ещё минимум 300к, максимум 3300к свободно )
надо бы ещё затестить девайс на скорость... вот
 

sav-13

Member
Добрый день! Скажите, а для esp можно использовать библиотеки от ардуино или свои имеются? В общем, я пока разобраться не могу с чего начать. необходимо подцепить ir и rf передатчики. в ардумно это библиотеки IRremote и RemoteSwitch вроде. Чтобы реализовать все это проще работать через IDE?
Проще воспользоваться готовой прошивкой, где это уже реализовано. Например, как здесь
Использование Ардуино IDE и прочие SDK дают гибкость решения
 
Сверху Снизу