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

Arduino 5v и правильное подключение?

TRO

Member
Кстати сегодня после суток работы модуля (с подключенными TX и RX) я его перезагрузил и он словил клина. После танцев с бубнами выяснилось что он при запуске выплевывает в порт на скорости 115200 длинную строку мусора в конце которой МЕМ CHECK FAIL! Прошить же его снова удалось только на скорости 9600 и то не с первого раза.
 

Past

New member
Еще более глупый вопрос, зачем Вам ардуино?
Почему не подцепите датчик напрямую к пинам есп?
 

kobaltd

New member
Еще более глупый вопрос, зачем Вам ардуино?
Почему не подцепите датчик напрямую к пинам есп?
Я так и хотел изначально, даже начал писать прошивку - но есть 2 не решенных вопроса - 1) Watchdog 2) хранение данных в энергонезависимой памяти - использование МК решает эти вопросы, если у Вы знаете функции/алгоритмы SDK с помощью которых можно решить эти вопросы - поделитесь - напишу прошивку и уберу МК из схемы.
 

Past

New member
Nodemcu + десяток строк на lua.
Опишите, какие датчики Вы хотите опрашивать.
 

kobaltd

New member
Nodemcu + десяток строк на lua.
Опишите, какие датчики Вы хотите опрашивать.
1) и самое главное - есть такой закон - чем "больше" и "универсальней" программа - тем она потенциально более "глючная" и "нестабильная", мне не нужен навороченный "монстр" для решение 1 простой задачи, тем более "монстр", с которым придется в случаии проблем со "стабильностью" и "глюкавостю" очень долго разбирать или ждать пока "автор" поправит
2) в Nodemcu есть Watchdog? - если есть то значит им как то можно управлять и из "собственной" прошивки - вопрос только как?, если нет то он и не решает поставленной задачи

з.ы. я привык такие простые (с точки зрения программирования) вещи решать сам - т.к. я получаю "полное понимание кода", "заточенность" только под "нужные" задачи - как следствие, даже если обнаружиться "баг" - исправить его быстро, а не днями "копать" чужой код или неделями ждать решения от автора. пока МК + esp решает мои задачи - но есть несколько моментов которые меня не устраивают 1) это стоимость общей схемы 2) неподконтрольность AT прошивки - если найти ответы на оба вопроса (главное на первый, так как второй скорее всего решаем), то я решу обе проблемы и будет все пучком.
 

kobaltd

New member
1)Решение только на есп примерно в два раза проще чем на есп плюс ардуино :)
2) да, там есть вотчдог и им можно рулить.

Посмотрите, там есть примеры для dht22 и ds18d20. https://github.com/nodemcu/nodemcu-firmware/tree/master/lua_examples
1) проще - не факт - писать прошивку под ардуино на порядок проще - больше и полнее документировано + в случаи написания прошивки под esp можно организовать более отказоустойчивою схему - при одном девайсе только Watchdog - при двух девайсах это в идеале Watchdog на каждом + перекрестный "мониторинг/логирование","рэсет", оповещение. Может и сложнее - скорее всего в итоге да, но при этом и больше возможностей организации отказоустойчивой схемы :)
2) я не сомневаюсь что в esp есть watchdog, в конце концов в AT 0.92 были даже команды для него - но примеры управления им из под "сторонней" прошивки, абсолютно не открывают как включить такой функционал в свою прошивку, а речь именно об этом.

И еще раз - кому то нравиться "конструлятор", а кто то по другому и не может/не хочет - взял девайсик, залил "фиг знает что", скопипастил из разных примеров - получил что то свое - может будет работать стабильно, может нет - это лотерея с кучей неизвестных, а кто то хочет сделать 1 раз и на долго (пока не перегорит :)) - и пишет свою прошивку - узко специализированную, только под ту задачу что ему надо решить - таким способом вопрос "правильности кода" - решается только своими "прямыми/кривыми" руками, но ты не зависишь от "прямоты рук" других, и остается не подконтрольный тебе вопрос - разработчик железа и API для него - но с таким подходом - все что ты смог сделать для стабильности своего девайса, ты сделал - на остальное "воля божья".
 
Задачи согласования уровней для Rxd и Txd пинов esp - две большие разницы.
В одном случае (Rxd esp, и Txd Ардуины) требуется снизить уровень 5 вольт с Ардуины до 3,3 вольт, нужных модулю. Решается просто - резистивным делителем, с соотношением ~ 3/5 (10 ком / 15 ком). Вход esp получает желаемые 3 вольта.
Во втором случае (Txd esp, и Rxd Ардуины) требуется поднять трехвольтовый уровень esp до требуемых пяти вольт для входа Ардуины. Решается немного сложнее - n-p-n транзистор, лучше - "цифровой" (со встроенными резисторами в цепи базы), базовым пином прибивается к esp, а с его коллектрора, нагруженного на резистор 5-10 ком, идущим к 5 вольтам Vcc Ардуины, сигнал отдается на Rxd Ардуины. В итоге теперь уже вход Ардуины получает все 5 вольт, нужные ему для полного счастья.
Проблема, скорее всего, у вас кроется во второй цепи - с поднятием уровня. Начните рыть от туда.
 

kobaltd

New member
Задачи согласования уровней для Rxd и Txd пинов esp - две большие разницы.
В одном случае (Rxd esp, и Txd Ардуины) требуется снизить уровень 5 вольт с Ардуины до 3,3 вольт, нужных модулю. Решается просто - резистивным делителем, с соотношением ~ 3/5 (10 ком / 15 ком). Вход esp получает желаемые 3 вольта.
Во втором случае (Txd esp, и Rxd Ардуины) требуется поднять трехвольтовый уровень esp до требуемых пяти вольт для входа Ардуины. Решается немного сложнее - n-p-n транзистор, лучше - "цифровой" (со встроенными резисторами в цепи базы), базовым пином прибивается к esp, а с его коллектрора, нагруженного на резистор 5-10 ком, идущим к 5 вольтам Vcc Ардуины, сигнал отдается на Rxd Ардуины. В итоге теперь уже вход Ардуины получает все 5 вольт, нужные ему для полного счастья.
Проблема, скорее всего, у вас кроется во второй цепи - с поднятием уровня. Начните рыть от туда.
Вы невнимательно читали пост - я писал что все что ESP отдает - МК воспринимает на ура - 3.3 подтягивать до 5 нет никакой нужды.
Да я уже и решил вопрос согласования - просто и изящно - просто купил - готовую сборку - цена 3 копейки - на первое время сойдет - в дальнейшем - когда решу вопрос прошивки esp (читать выше) - нужды в согласовании вообще не будет.
 

pvvx

Активный участник сообщества
1) проще - не факт - писать прошивку под ардуино на порядок проще - больше и полнее документировано + в случаи написания прошивки под esp можно организовать более отказоустойчивою схему - при одном девайсе только Watchdog - при двух девайсах это в идеале Watchdog на каждом + перекрестный "мониторинг/логирование","рэсет", оповещение. Может и сложнее - скорее всего в итоге да, но при этом и больше возможностей организации отказоустойчивой схемы :)
2) я не сомневаюсь что в esp есть watchdog, в конце концов в AT 0.92 были даже команды для него - но примеры управления им из под "сторонней" прошивки, абсолютно не открывают как включить такой функционал в свою прошивку, а речь именно об этом.
В качестве WDT ставится внешний 6 pin SOT-23 (его цена не превышает 25 рупь и он влезет между выводами разъема модуля ESP-01 :) ):

+ Получаете ещё пару простеньких ADC и т.д..
WDT в SDK не работает как положено - связано с питанием памяти RTC и прочими ошибками SDK в закрытых частях кода.
 

kobaltd

New member
В качестве WDT ставится внешний 6 pin SOT-23 (его цена не превышает 25 рупь и он влезет между выводами разъема модуля ESP-01 :) ):

+ Получаете ещё пару простеньких ADC и т.д..
WDT в SDK не работает как положено - связано с питанием памяти RTC и прочими ошибками SDK в закрытых частях кода.
Цена конечно хорошо - но я не вижу принципиальной разницы между использование этого чипа и другого МК -я так понимаю его также надо прошивать - или я чего то не понимаю?, + чтобы использовать его надо переписывать прошивку ESP - т.е. принципиальное это тот же "МК", только более "тупой" + еще схема не работает без переписывания прошивки esp - смысл ? - с экономить несколько сот деревянных и усложнить себе жизнь сделав систему более "геморройную " с точки зрения программирования - или я опят все не так понял?
 

pvvx

Активный участник сообщества
Цена конечно хорошо - но я не вижу принципиальной разницы между использование этого чипа и другого МК -я так понимаю его также надо прошивать - или я чего то не понимаю?, + чтобы использовать его надо переписывать прошивку ESP - т.е. принципиальное это тот же "МК", только более "тупой" + еще схема не работает без переписывания прошивки esp - смысл ? - с экономить несколько сот деревянных и усложнить себе жизнь сделав систему более "геморройную " с точки зрения программирования - или я опят все не так понял?
А без этого - гарантирован "висняк"из ESP8266, если она будет использоваться в реальном мире, а не в баночке на столе.
Система на макетках не собирается - макетирование и игра не есть "Работающая Система", а есть "Система игры в кубики".
Абы какой микроконтроллер для WDT не используют. Он должен удовлетворять определенный список фич, который всегда отсутствует у производителей не знакомых с выпуском микрух под военную приемку. Там просто нет специалистов с данной практикой и знаниями для разработки правильной топологии кристаллов MCU. Ar-Дурина в основном сделана из бытовушных дизайнов MCU и виснет от любого чиха.
PIC10 тоже может виснуть при хитром включении питания :) Но это решается. Главное - у него ног ровно столько, чтобы их подключить к модулю ESP-01 для контроля его состояния :)
А на WDT надо "тупой" MCU - чтобы вы не смогли ему задать множество задач, т.к. чем их больше - тем глючнее код.
 
Последнее редактирование:

JustACat

Moderator
Команда форума
А я вот тоже поглядываю на написание своей прошивки под ESP, но пока только поглядываю.
Все же при этом склоняюсь к варианту ESP + сторонний МК (в моем случае это AVR - просто потому что к ним привык. Уважаемый pvvx вот предлагает PIC, а я вот их не люблю, но это уже бантик сбоку и тема для холивара, коий разводить совсем не хочется - не суть). Так что соглашусь с мнением kobaltd.

На что я опираюсь:
1) в реализации со сторонним МК действительно повышается в данном случае отказоустойчивость, т.к. на ESP в этом плане как-то надеяться пока сложновато. Даже если свою прошивку полностью написать по чистому. А уж про прошивки AT и lua и говорить нечего...
2) само время жизни железки скорее всего увеличится, т.к. что будет дальше с ESP - пока не ясно, может и правда сгинут скоро, но будут другие. И в варианте со вторым МК потребуется просто переписать в этом самом МК часть, которая отвечает за инициализацию и управление ESP, а все остальные наработки оставить прежними.
3) планирую прошивку AVR через ESP использовать. В итоге конечное устройство можно будет запихать куда-нибудь глубоко-далеко, но все равно иметь возможность изменить логику его работы.
Стоимость увеличивается конечного устройства? Ну, тут не поспоришь. Деталей ведь больше. Но значительно ли? Не сказал бы. Что AVR'ки, что PIC, что STM простенькие в конце концов стоят сейчас копейки (все относительно конечно). Особенно если не стоит задача выпускать конечное устройство в больших партиях.
Я все делаю для себя, не более, так что мне на это вообще пофиг и вариант с ESP + сторонний МК не кажется мне сильно дорогим.

Конечно все нужно решать от задачи. И нет 100% решения для всех задач. Если бы у меня были какие-то другие входные требования, то может и путь выбрал бы другой.
Но пока что решил действовать именно так: ESP + AVR в связке и управление на стороне AVR, а ESP чисто как модуль связи - не более.


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

А по теме, сам пока что использую 3.3 вольтовое включение AVRок. При 5 вольтах, почему-то мне кажется, что согласования в сторону ESP (то есть опускание 5 до 3.3 на линии от Arduino до ESP) должно быть достаточно. Поднимать 3.3 до 5 для Arduino по идее нет смысла, т.к. 3.3 она должна воспринимать как единицу. Нужно только обеспечить питание на ESP качественное, чтобы не просаживались эти самые 3.3 еще ниже.
 

pvvx

Активный участник сообщества
А я вот тоже поглядываю на написание своей прошивки под ESP, но пока только поглядываю.
Все же при этом склоняюсь к варианту ESP + сторонний МК (в моем случае это AVR - просто потому что к ним привык. Уважаемый pvvx вот предлагает PIC, а я вот их не люблю, но это уже бантик сбоку и тема для холивара, коий разводить совсем не хочется - не суть). Так что соглашусь с мнением kobaltd.
Для работы с ESP нужен любой MCU у которого много RAM (свободных от 128 кило). Примитивные PIC, AVR и STM не сгодятся. Иначе не построить никакого нормального интернет сервиса. По тому холивара не будет :)
Есть готовые сразу всё в одном с несколькими мега байтами памяти, хоть на основе роутеров c OpenWRT. Они и меньше жрут, да всё там отлажено, когда WiFi работает в пределе :)
 
Последнее редактирование:

JustACat

Moderator
Команда форума
Иначе не построить никакого нормального интернет сервиса.
Это если требуется как раз этот самый сервис. Все же нужно плясать от задачи.
Потому я и написал, что в моем случае это не требуется. AVR-ки выступают чисто как исполнительные устройства и через ESP просто общаются с мастером (который и вовсе полноценный миниПК на Linux) - вот на мастере там полноценный сервис: и веб, и БД, и все остальное там. А от конечных модулей требуется лишь исполнять команды с мастера да реализовывать некую простейшую временную автономность в случае недоступности мастера (что, кстати, случай крайний, скажем так, аварийный). Короче для меня ESP стали просто неким способом простой (без проводов) и недорогой (относительно) реализации связи заместо RS485 и/или nRF-ок...

Если бы пришлось реализовывать что-то более сложное, тем более сервисы. То скорее всего взял бы какую-нибудь пожирнее STM'ку. Их тоже есть у меня в загашнике :)
Вот, да или, как вы говорите, вообще готовый модуль или даже роутер разобрать из дешевых :) OpenWRT туда и вперед!

И да, холиваров нам тут и не надо, поддерживаю! Я очень против их...
 
Последнее редактирование:

pvvx

Активный участник сообщества
Смотрите минимум RAM для LwIP при организации простейшего TCP-IP :) LwIP не прожорливый, таковы стандарты. По этому ESP8266 с TCP - это чисто игрушка. Максимум по стандарту там потянет UDP и всё.
Окно стека TCP на каждое соединение у Хрома или Эксплорера = 256 килобайт :)
 

kobaltd

New member
Для работы с ESP нужен любой MCU у которого много RAM (свободных от 128 кило). Примитивные PIC, AVR и STM не сгодятся. Иначе не построить никакого нормального интернет сервиса. По тому холивара не будет :)
Есть готовые сразу всё в одном с несколькими мега байтами памяти, хоть на основе роутеров c OpenWRT. Они и меньше жрут, да всё там отлажено, когда WiFi работает в пределе :)
Так вопрос и не стоит сервиса онлайн - да и не имеет смысла - у меня дома 2 стояка, разнесенных в разные концы квартиры - лазить на веб морды двух устройств чтобы снимать показания? а смысл если проще - эти показания скидывать на централизованный комп, а на нем уже хоть толстый клиент, хоть отправка по инету, хоть веб морда или для желающих проговаривание голосом - и не надо никаких "толстых" МК. Зачем усложнять и добавлять дополнительные "точки отказа" в виде "тяжелого" кода для МК. Вы же не покупаете для КАЖДОГО девайся в доме ПДУ c LCD экраном, веб мордой, подключением в телефону и программированием через usb? :) Вы если и купите такой ПДУ - то ОДНИ на ВСЕ устройства сразу - правильно? Так и тут - если делать - то универсальную и легко масштабируемую схему.
 
Сверху Снизу