Скетч для Uno на esp8266

Links
Offline
Зарегистрирован: 19.02.2021

Здравствуйте товарищи. Собственно вопрос от нуба. У меня есть проект котороый я делал для arduino uno с ethernet shield. Работает прекрасно. Но в эру беспроводных сетей захотелось перенести его в даль от проводов, для чего был избран nodeMCU с ESP8266. Так вот, в скетче используются достаточно библиотек, и одна не хочет компилироваться, выдает ошибки типа "неизвестная функция...". Так вот собственно вопрос. Можно ли подключить к ESP8266 какую-то библиотеку, которая автоматом подтянет все функции доступные для UNO, и скетч заработает. Или таки надо будет перекраивать проект/библиотеку в исправлении косяка?

rkit
Offline
Зарегистрирован: 23.11.2016

надо будет

nik182
Offline
Зарегистрирован: 04.05.2015

Или найти такую же библиотеку, но заточеную на 8266.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Links пишет:
Можно ли подключить к ESP8266 какую-то библиотеку, которая автоматом подтянет все функции доступные для UNO, и скетч заработает.

Links, то, что Вы хотите, принципиально невозможно.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Насколько я понял задачу, имеется ХЗ какой скетч, использующий ХЗ какие библиотеки. Можно ли как-то малой кровью скомпилировать его на ЕСП? Правильно? Ответ сами угадаете? Или сказать? В общем, ответ: ХЗ2!

Links
Offline
Зарегистрирован: 19.02.2021

Всем спасибо! Пошел перепиливать (но заточенную библиотеку поищу). Всем добра!

b707
Offline
Зарегистрирован: 26.05.2017

Никакую " заточенную библиотеку" вы не найдете. Сами подумайте, на уно вы общались с инетом через езернет-шилд, на есп вайфай контроллер. То есть мало того что платы разные, так еще и драйверы инета разные и даже поинципы разные - на одном проводной инет, на другом радио.
Придется переписывать и переписывать кардинально.

b707
Offline
Зарегистрирован: 26.05.2017

Интересно за что мне минусов наставили?

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

b707 пишет:
Интересно за что мне минусов наставили?

И главное - кто?! ))

Лично я плюсанул.

Хотя, с точки зрения синтаксиса логики программы, разница будет (в основном) только в инициализации интерфейса. Дальше только работа с протоколами/стеками. А большинство известных мне либ работают с ними очень одинаково. Поправить скетч с Ардуино-езернет на ESP-Wifi дело получаса от силы. 

sadman41
Offline
Зарегистрирован: 19.10.2016

Полчаса - это если ранее недели полторы потрахался.

Конечно, если там отслеживания коннекта, реинита и пр. нет, а только пара client.read(), то быстрее канеш.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Ни программы, ни библиотек - чего обсуждаете.

У ТС - Маниловщина проглядывает...

Links
Offline
Зарегистрирован: 19.02.2021

Ого! Поблагодарил всех, отошел, а тут вон какие страсти разыгрались))) Правда тут полностью соглашусь, некорректно поставленная задача не то что к решению не приведет, а еще и вон каких дров наламает))

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

Собственно по теме. Таки оставлю тут, может пригодится кому. Проблема выглядела следующим образом - компилятор выдавал ошибку: "error: no matching function for call to 'min(size_t, const uint8_t&)". Поиск по гуглу дал подсказку. В библиотеке функция "min" была заменена переменной __min, с обьявлением вот так: 

#define __min(a,b) ((a)<(b)?(a):(b));

В итоге библиотека заработала. 

Так что еще раз спасибо всем собравшимся, вопрос уже решен. 

negavoid2
negavoid2 аватар
Offline
Зарегистрирован: 06.05.2020

Ы ) съели, гуро? )) чувак заменил функцию на тернарный define __min и всё заалёкало :) Чуваку пять, гурам двойка, садитесь :)

b707
Offline
Зарегистрирован: 26.05.2017

negavoid2 пишет:

Ы ) съели, гуро? )) чувак заменил функцию на тернарный define __min и всё заалёкало :) Чуваку пять, гурам двойка, садитесь :)

круто

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

А я все равно так и не понял - причём тут esp / uno? Что за неведомая «либа» и какую ошибку давала. 
Воистину, правильно заданный вопрос - это половина ответа. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

negavoid2 пишет:

Ы ) съели, гуро? )) чувак заменил функцию на тернарный define __min и всё заалёкало :) Чуваку пять, гурам двойка, садитесь :)

Это точно! не в бровь а в глаз!

ВОПРОС: Мужики у меня что-то не так с электропроводкой. Как-то неправильно работает. Спасибо за помощь!
....
КОММЕНТАРИЙ: что никто из гур не может помочь? Сам, без вас, разобрался.  Тоже мне гуры - знаний ноль, понты одни! "Таки оставлю тут, может пригодится кому" - я просто свет забыл включить, потому и темно было!

:-)

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Links пишет:

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

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

Т.е. требуется библиотека, которая заставит работать на esp любую программу, написанную для uno.

Цитата:

#define __min(a,b) ((a)<(b)?(a):(b));

И что - эта строчка решает поставленную задачу, т.е. позволяет любой программе, написанной для uno, работать на esp?

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

«Я же говорю - мозоли» (с) к/ф Факультет )))