LINUX.ORG.RU

Arduino + wifi = (слишком) много боли

 , , ,


0

1

TL;DR; Я что-то делаю не так и это на самом деле просто?

Я новичок, но несколько простых проектов делал. И вот сейчас решил попробовать добавить коммуникацию с компьютером через WiFi и столкнулся с огромным количеством трудностей.

Я выбрал плату esp-01 (я так понимаю это самое популярное решение),

  1. и она работает от 3.3V (почему для ардуино нет 5V аналога?), для коммуникации через UART применил резистивный делитель в направлении от arduino до esp.

  2. Питание дал от 3.3V выхода ардуино (которая в данный момент запитана от USB для дебага через serialMonitor, в будущем от блока питания напрямую на 5v порт), и это не заработало, просадка напряжения и вместо 3.3v я получаю что-то около 1.8, (хотя в интернете были именно такие схемы, WTF?), погуглил и в теории схемы из интернета вообще работать не должны, 3.3v на ардуино может выдавать в районе 100мА, а esp потребляет ~300 а в пике и еще больше mA

  3. Достаточно сложно гуглить потому что эта плата используется в трех разных сценариях (коммуникация через UARD с ардуиной, заливка прошивки сразу на esp, и некий модуль для работы с под javaScript под esp NodeMCU)

  4. Собственно все туториалы заканчиваются на отправке базовой AT команды и получения ответа OK, Но как собственно коммуницировать с сервером?

На данном этапе моя плата вообще не завелась (пункт 2), заказал стабилизатор с 5 на 3.3Вольт на 1 ампер, жду.

★★★

Возьми ESP32, там сразу всё есть.

mv ★★★★★
()
Ответ на: комментарий от sigurd

или NodeMCU (т.к. она гораздо мощнее и имеет больше памяти).

неть?

izzholtik ★★★
()
Ответ на: комментарий от COKPOWEHEU

без особого геморроя запустится на esp

Под ESP есть ардуйнячий фреймворк, за счёт многократно большей производительности камня оно даже работает более-менее сносно. Так что да.

izzholtik ★★★
()
Ответ на: комментарий от izzholtik

Под ESP есть ардуйнячий фреймворк, за счёт многократно большей производительности камня оно даже работает более-менее сносно. Так что да.

А вы готовы гарантировать что ТС не воспользовался ничем AVR-специфичным? Все-таки в Ардуине никто не запрещает писать напрямую в регистры. А если хочется мало-мальски вменяемого кода, это необходимость.

COKPOWEHEU
()
Ответ на: комментарий от COKPOWEHEU

Честно говоря, я вообще сомневаюсь, что код ТСа существует ._.

И, ну, как бы сказать. Если программа сложнее хелло ворлда и имеет хоть какую-то практическую ценность, необходимость поменять имена регистров при переносе на другую архитектуру - это и есть «без проблем».

izzholtik ★★★
()
Ответ на: комментарий от abs

Если у вас уже есть ардуино, то в нее встроен usb- uart преобразователь.

kolpakchi
()
Ответ на: комментарий от izzholtik

«поменять имена регистров»? А вы, простите, с какими контроллерами работали? Напомню, мы сейчас говорим о портировании с AVR на Xtensa.

COKPOWEHEU
()
Ответ на: комментарий от COKPOWEHEU

Мы сейчас говорим про новичка, что-то откуда-то скопипастившего. Вангую, что там классическая мешанина из абстракций вида digitalWrite и avr-специфик банальщины вроде настроек предделителей, для которых авторы «мануалов» не знали соответствующих обёрток.

Не, серьёзно, несложная ардуйня с AVR на ESP портируется тупо заменой имён портов, софтовые реализации отсутствующей периферии работают довольно неплохо просто за счёт более мощного процессора, а большего хомячкам обычно и не надо. Оно, ну, реально простое.

izzholtik ★★★
()
Ответ на: комментарий от izzholtik

Мы сейчас говорим про новичка, что-то откуда-то скопипастившего.

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

Не, серьёзно, несложная ардуйня с AVR на ESP портируется тупо заменой имён портов

Да банальных прерываний, сколько помню, в ардуйне не завезли. Соответственно, привет, платформо-специфичный код. А там заменой имен регистров дело не обойдется.

COKPOWEHEU
()

На данном этапе моя плата вообще не завелась (пункт 2)

А потом не заведется, потому что нужно ещё несколько ног подтянуть к VCC и GND для того чтобы она включилась в нужном режиме.

Я новичок, но несколько простых проектов делал. И вот сейчас решил попробовать добавить коммуникацию с компьютером через WiFi и столкнулся с огромным количеством трудностей.

Тебе тогда какой-нибудь WeMos D1-mini нужен (на том же esp8266). И стабилизатор на 3.3v в комплекте и подтянуто всё что нужно. +программатор в плате.

Но для uart согласование уровней вроде таки нужно будет делать.

Tanger ★★★★★
()
Ответ на: комментарий от COKPOWEHEU

Ни разу не видел ардуинщика, умеющего в прерывания)

izzholtik ★★★
()
Ответ на: комментарий от izzholtik

Честно говоря, я вообще сомневаюсь, что код ТСа существует ._.

Он существует, но там ничего интересного, получить данные по usb, отдать их на rgb ленту через #include <FastLED.h> и все.

В принципе могу переписать на любую другую платформу.

abs ★★★
() автор топика
Ответ на: комментарий от abs

Ну и славненько - эта либа есть под ESP8266. Ставишь PlatformIO, можно даже консольную, генерируешь проект про свою ESP-01, подрубаешь библиотеку, пишешь всякое, заливаешь, профит. Или вообще прошить NodeMCU и набросать на Lua, соответствующая библиотека для ленточек тоже есть.

izzholtik ★★★
()
Ответ на: комментарий от izzholtik

Хотя мя не уверен, что на ESP-01 нужные NodeMCU'шной либе контакты выведены. Незадача, мдя, на скриптухе гораздо быстрее было бы написать.

izzholtik ★★★
()

Вася, у тебя же из кампектера прямо 3.3 вольта вылазят! Чего ты ждёшь? Там мощности точно хватит и защита от КЗ есть.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.