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

На ESP-01s не запускается скетч (из COM4 ничего не видно)

iGureev

New member
Имеется ESP-01S в паре с DHT22 (брал для мониторинга погоды за бортом и дома для narodmon.ru) :
Wifi-ESP8266-DHT11-DHT22.jpg_640x640.png
и готовый программатор на основе CH340G :
USB-3-3-ESP8266-Wi-Fi-CH340G-USB-TTL.pngUSB-3-3-ESP8266-Wi-Fi-CH340G-USB-TTL (1).png

Подключил ESP-01S к программатору, установил под 7ку дровишки на программатор и подключил к компу.
Arduino IDE 1.8.15 увидела COM4, но ничего с него я так и не увидел (перебрал 9600, 57600, 115200, 256000, 921600).

Подружил IDE с esp8266: http://arduino.esp8266.com/stable/package_esp8266com_index.json
Для установки выбрал esp8266 Community версии 2.5.0
Программатор не определяется, но скетч заливается со следующим настройками:
Безымянный 3.png
Попытался залить скетч (на скрине показана удачная сборка, перед загрузкой):
Безымянный 4.png
Но светодиод не замигал.
Скачал рекомендованную прошивку ESP-01s: https://wiki.aprbrother.com/en/Firmware_For_ESP8266.html#v1-1-1 (файл ai-thinker-0.9.5.2.bin)
Залил с помощью Nodemcu Firmware Programmer (NFP) с настройками:
  • Baudrate: 115200
  • Flash size: 1MByte
  • Flash speed: 40 MHz
  • SPI Mode: DIO
Ничего не изменилось - в COM4 ничего не вижу, скетч залитый через Arduino IDE или NFP не отрабатывает - светодиод не мигает.

Подскажите, что я делаю не так?
 

iGureev

New member
Хм, вчера пробовал, но с последней версией SDK 3.0.2 - не завелось :(
А сегодня, с указанной в посте версией 2.5.0 и указанными параметрами светодиод замигал! 🤪 Ура!
Безымянный 5.png
А я уже стал думать, что или плата бракованная или я её своими экспериментами спалил...
Спасибо!

Теперь попробую прошить скетч сбора данных для народного мониторинга.
Кстати, правильно ли у меня указаны параметры на скриншоте?
И как увидеть вывод в serial порт, если это возможно через указанный программатор (нужно переключатель ставить в uart или prog)?

Какую версию SDK лучше использовать?
 

esp340

Active member
И как увидеть вывод в serial порт, если это возможно через указанный программатор (нужно переключатель ставить в uart или prog)?
Чтобы что-то увидеть - нужно сначала что-то отправить. Без этого модуль плюется только при старте отладочной информацией на скорости 74880. И все.
Кстати, правильно ли у меня указаны параметры на скриншоте?
Можно и так, но лучше "no SPIFFS", если вам, конечно, не нужна файловая система.
Какую версию SDK лучше использовать?
Пользуюсь 2.7.4. Не жалуюсь. С 3-й были проблемы, пока не спешу переходить.
 

iGureev

New member
Прошил ESP-01s с датчиком DHT22 - данные в narodmon пошли. :)(y)
Хотя температура выше, чем у других датчиков в городе - не понятно в чем причина: то потому что коробка в датчиком на улице плохо вентилируется, то потому что он висит сразу за окном балкона, где, возможно, нагревается.

Ну и в Serial я так ничего не вижу...
Иногда через какое-то время данные начинают идти, когда программатор в режиме UART, но почему не всегда, и не с самого начала, а через рандомную задержку - непонятно :(
 

iGureev

New member
Что бы не плодить темы, спрошу здесь)

Как я уже сказал, у меня имеется ESP-01s + DHT22.
Кроме того, у меня имеются (с интерфейсом I2C):
  • PCF8563 Real Time Clock RTC
  • RadSens (от climateguard)
И где-то валяются (с интерфейсом UART):
  • Nova PM SDS011 (датчик пыли)
  • CO2 MH-Z19B
В описании ESP-01s сказано, что он поддерживает оба эти интерфейса - I2C и UART, помимо собственного протокола DHT22...
Но контактов как-то маловато на платы, а с пайкой я пока дела не имел что бы лесть сразу к такому мелкому чипу ((

Подскажите что из перечисленного можно подключить одновременно с DHT22 и как это может выглядеть, хотя бы для макетки?
Просто я не понимаю, как переключаться между протоколами для последовательной работы со всеми датчиками...
 

iGureev

New member
Подключить DHT22 одновременно RadSense мне ещё удалось, и даже прицепить DS18B20 на оставшийся свободный пин, аналогично схеме:
esp_sensors2.jpg и есть надежда, что и такая схема заведется: 7c0f0ae4a1f3b59fcb736389e56a8160.png

Правда как прицепить больше устройств на I2C я не понял из схемы:
2014110111B_.jpg
Просто непонятно, что там делает конденсатор...
Да и если у RadSense есть подтяжка pull-up, то нужно ли её делать для устройств у которых её нет, или хватит той что у RadSense?..

А вот UART видимо в этом случае становится недоступен - не нашел способа как отключить устройства, что бы достучаться до UART...
Пинов выведено слишком мало, а подлазить с паяльником к такому мелкому чипу я не рискну ((
Нужен либо второй ESP-01, либо ESP-03/07 - которых у меня нет, но видимо придётся взять.

Помимо того как подключить больше устройство к I2C (я про необходимость pull-up) остался актуальным вопрос нормальной отладки через Serial...
Если я подключу устройства как показано на этих схемах, то уже в любом случае не смогу читать из serial, верно?
А вообще как мне с данной платы получить вывод serial, имея указанный в первом посте программатор?
 

iGureev

New member
Да, замечательная штука) Но когда она ещё с алика приедет, а хочется уже сейчас.
И есть спортивный интерес на самом маленьком из ESP что-то хорошее сделать, а не только проектики на час собирать.

PS Неужели ни кто не пользовался тем же программатором? Или у всех Serial порт работает без дополнительных телодвижений?
 

iGureev

New member
Заливаться заливается, но как я не пытался увидеть вывод Serial - он начинает ловить в Arduino IDE только спустя несколько секунд, а то и вообще не принимается, и я не могу понять причину.
 

esp340

Active member
вывод Serial - он начинает ловить в Arduino IDE только спустя несколько секунд, а то и вообще не принимается, и я не могу понять причину.
Чтобы понять причину - неплохо было увидеть ваш скетч. А то, знаете ли, хрустальные шары сдали на техобслуживание, к зиме готовимся.
 

iGureev

New member
Да простейший же скетч не работает:
int count = 0;

void setup() {
Serial.begin( 9600 );
while ( !Serial ) {}

Serial.println( "start" );
}

void loop() {
Serial.println( "loop " + String( ++count ) );
}

Я ничего не вижу в мониторе порта, пока не изменю скорость - тогда вывод появляется... в начале мусор, т.к. скорость не та, а после выбора правильной скорости идут данные
Но это уже loop, а из setup я, получается, не вижу вывода совсем...

У меня есть сенсор SDS011 с uard интерфейсом - с него так же не получается считать данные, а если подключить к компу или Arduino Nano v3 то данные считываются...
Пробовал на разные ESP-01s - результат один, глюк с мониторингом порта и невозможность считать данные с сенсора.
 

esp340

Active member
ничего не вижу в мониторе порта, пока не изменю скорость - тогда вывод появляется... в начале мусор, т.к. скорость не та,
т.е. вы открываете arduino ide, запускаете монитор порта с выбранной скоростью 9600, подключаете ESP, жмете reset и у вас постоянно идут кракозябры пока вы еще раз не переключите скорость в мониторе, я правильно понял?
из setup я, получается, не вижу вывода совсем...
а чего вы ждете из setup кроме "start"?
И зачем у вас прописана строка ?
while ( !Serial ) {}
 

iGureev

New member
т.е. вы открываете arduino ide, запускаете монитор порта с выбранной скоростью 9600, подключаете ESP, жмете reset и у вас постоянно идут кракозябры пока вы еще раз не переключите скорость в мониторе, я правильно понял?
На программаторе нет кнопки reset, как и на ESP-01 - поэтому, я переключаю программатор в режим UART и перевтыкаю его в USB, вместо reset.
Если можно обойтись без этого, то подскажите как?
Кроме ESP-01 у меня есть Arduino Nano v3 и Arduino Uno, но с ними я ещё не игрался, так как только на этих выходных пришли посылки.

а чего вы ждете из setup кроме "start"?
В данном скетче этот код для теста, а в дальнейшем мне хотелось бы использовать это для отладки.

И зачем у вас прописана строка ?
while ( !Serial ) {}
Где-то на форуме так советовали ждать подключения по Serial, т.е. подключение клиента для считывания из Serial.
Я уже много чего перепробовал, что бы нормально что-то увидеть из setup, даже такие бредовые предложения - пока всё грустно.
 

esp340

Active member
нет кнопки reset, как и на ESP-01
reset выведен на разъем модуля. Подпаяйте туда кнопку или просто проводок и замыкайте его на gnd после перевода адаптера в режим uart.
Ну, или просто сначала подключаете адаптер без вставленного esp, запускаете монитор, а потом вставляете еспэшку
 

esp340

Active member
Вариант №2
нет кнопки reset, как и на ESP-01
у вас на первом фото модуль с dht22 на котором есть кнопка reset. Берете 3 проводка, припаиваете их к Rx, Tx, GND и после прошивки собираете бутерброд, эти проводки втыкаете в соответствующие гнезда на разъеме переходника usb-uart. И у вас уже есть кнопка.
 

CodeNameHawk

Moderator
Команда форума
Попробуйте поправить так:
Код:
void setup() {
Serial.begin( 115200 );
while ( !Serial );

Serial.println( "start" );
}
и не забудьте выставить частоту 115200, это не обязательно, но есп на ней нормально работает.
 

esp340

Active member
Попробуйте поправить так:
думаю что дело не в скорости, а в адаптере. Точнее его переключателе режима - прошивка/uart. Еще в arduino ide есть такая особенность что если закрыть/открыть окно монитора порта, модуль уходит в сброс(по крайней мере ардуино точно, за есп не скажу, не помню). И когда ТС переключает скорость(или что он там делает) модуль перезагружается и начинает уже нормально работать.
 

CodeNameHawk

Moderator
Команда форума
думаю что дело не в скорости, а в адаптере
Для начала нужен скетч без ошибок. После while ( !Serial ) {} нет ;

В ардуино так работает.
Запускается монитор порта, выставляется нужная скорость.
Не закрывая монитор, заливается скетч.

Но проще поставить прогу HTERM, в ней есть кнопка Rst, которая делает ресет есп и не надо ничего паять.
 
Сверху Снизу