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

ESP8266 и ПК/Телефон (связь по WiFi)

Demon

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

JustACat

Moderator
Команда форума
А поконкретнее? Какая делфи, какой МК, через что байты толкать хотите? (что ж все клещами-то вытаскивать приходится :) )
 

Demon

New member
Делфи пробую XE7... очень хочется хоть как то на андроиде поработать :) МК атмеловские, например MEGA8, с ними более менее разобрался... как работать с UARTом разобрался :)
МК принимает по прерыванию UART (через WiFi) запрос в виде набора байт от приложения и в ответ шлет набор байт... как то так я вижу
 
Последнее редактирование:

JustACat

Moderator
Команда форума
Ок, сразу скажу: delphi на свалку. Я сам ее использую, но лишь потому, что давно на ней программировать начинал, и просто по привчке могу на ней что-то быстренько слабать для тестов - не более...
Если же вы начинаете что-то с нуля все равно, тогда лучше сразу плюньте и смотрите куда-то в сторону чего-то более кроссплатформенного.
Чтобы в итоге это все запускалось хоть на виндах, хоть на линуксе (даже если сейчас не надо). Я вот до сих пор жалею, что когда-то вместо паскаля этого не начал Си изучать. Сейчас паскаль этот нафиг никому не нужен, а время потеряно...
Точно сказать - в какую сторону смотреть - не скажу, хотя, думается Python подходит под описания. Ну и Си - безусловно! - на нем и под сами МК пишем.

Вот, если бы у вас была старая 7-ая делфи, я бы сказал, какие компоненты заюзать для работы с ком-портом...
Что еще? Не совсем понятно, если вы хотите общаться по ком-порту из делфи с atmega8 - то причем тут тема "Esp8266 и микроконтроллер"?
 

JustACat

Moderator
Команда форума
Demon, создайте лучше новую тему (только правильно подберите раздел форума, правильно подберите заголовок темы и в самой теме четко опишите - чего вы хотите добиться, и что у вас не получается).
Хотя может я просто вас неправильно понял, тогда извините и постарайтесь объяснить четче и конкретнее :)
 

Demon

New member
Так XE7 вроде и позволяет писать кроссплатформенные приложения ( по крайней мере так декларируют) там в целях выбираешь виндоус, мак или андроид и код компилируется в нужный формат...
Мы с Вами коллеги по несчастью :) ... я когда то очень хотел изучать программирование пришел на курсы, там курс Си билдера и курс Делфи... Билдер уже неделю как идет а делфи только начинается, мне говорят: "какая разница, там даже среда разработки одинаковая" ну я и пошел на делфи... до сих пор жалею. потом все забросил, теперь вот хобби...
А по сути:
у меня есть МК ATMEGA8
у него есть протокол обмена данными с мастером по RS485.
мастером у меня приложение на делфи,
связывается по витой паре/адапетр 485/USB с МК
тут все работает без вопросов, МК опрашивается , данные пишутся в базу...
Хочу:
вместо витой пары поставить ESP8266
как работать с 8266 со стороны МК пока понятно... набор АТ-команд, принять байт, отправить байт.
как работать с ESP8266 со стороны приложения на компьютере или планшете: принять байт, отправить байт???
Indy Client ?
 
Последнее редактирование:

JustACat

Moderator
Команда форума
Вот, теперь вы задали вопрос правильно! По крайней мере все четко и ясно - куда вас направлять.
Вам нужна связь с ESP - ESP - это WiFi - это сети/сокеты. Если конкретнее, то на ESP возможно 4 варианта:
- TCP клиент или сервер
- UDP клиент или сервер
Соответственно, нужно выбрать один из них (есть везде свои плюсы и минусы, почитать, думаю, можно как раз по TCP и по UDP - поймете, что хорошего/плохого).
Далее, если вы, скажем, выбрали, что у вас на ESP будет TCP-сервер, значит со стороны ПК (а так же и со стороны любой другой железки, например, андроид аппарата) вам нужен TCP-клиент.
Теперь если конкретно про делфи (если все таки хочется на ней, хотя еще раз - не советую), то да, ранее на ней был целый набор компонент Indy.
И в частности там как раз были и TCP и UDP и клиенты и серверы.
Я (так как использовал чисто для тестов и для простоты) использовал обычно в 7-ке TServerSocket и TClientSocket - просто потому что они простые, как топор, и позволяют по быстрому сделать клиента или сервера. Но их и в 7-ой-то версии уже нужно было отдельно подключать. А в вашей, думаю, их и вовсе выпилили... Хотя может и есть в какой-то не подключенной библиотеке - поищите.

Далее: mega8 + ESP вариант не очень... Чтобы заставить работать ESP да на AT прошивке нормально - нужно ею всячески рулить и кучу моментов отслеживать. Боюсь, вы весь флеш вашей 8-ой меги займете под это дело.
Какие варианты?
- использовать на ESP некую прошивку, которая позволила бы сформировать прозрачный TCP-UART мост без доп. кода на стороне вашей меги 8 (и такое у нас тут есть, например)
- тупо отказаться от меги 8 и использовать ESP как самостоятельный МК, писать на него совсем не сложно, вам понадобится поставить Unofficial Developer Kit и Sming - все есть у нас на форуме. А так же можно даже попробовать Arduino IDE - тоже есть тема на форуме. И там и там языки: Си/Си++. Но я так понимаю, под вашу мегу 8 вы же пишете на них же? Или на ассемблере?
 

Victor

Administrator
Команда форума
как работать с 8266 со стороны МК
Получается вам 2 ESP8266 нужно, чтобы провода заменить и приложение не переписывать.
Одну ESP8266 (назовем ее Master) через конвертер RS485-TTL подключаете к компьютеру (там как я понимаю порт RS485 сейчас?), где ваше приложение. Для приложения как бы ничего и не изменилось. Этой Master ESP на ArduinoIDE пишите прошивку, которая принимает данные от компьютера через UART и шлет другой ESP (slave) по WiFi. Эта Slave ESP принимает данные по WiFi и шлет их в UART в том виде, в каком и раньше ATMEGA получала (т.е. для ATMEGA тоже ничего не изменилось, как и для компьютера). Разумеется для Slave ESP пишите в Arduino IDE вторую прошивку.
Но, мягко говоря, задачка то не простая будет, хотя и реализуемая вполне вроде.
 

Demon

New member
Огромное спасибо за ответы!
Сервер сокет и Клиент сокет таки есть и в последнем Эмбаркодеро :) только активны они при работе с виндоус приложениями, если выбирать кроссплатформенный проект то только Инди...
Обязательно буду смотреть как использовать возможности мк самое ESP, очень интересно, жду недождусь железок от китайских товарищей... но пока все таки желание использовать атмеловские контроллеры а ESP как мост, это первая задача... спасибо за ссылку буду смотреть....
Viktor, нет так не пойдет.... главная цель это управлять или получать данные от мк на мобильное устройство, андроид например...
пока у меня работает так:
МК подключен по витой паре/485/USB к компьютеру
там стоит небольшое виндоус приложение которое опрашивает и отправляет данные на МК и данные пишет в базу
с мобильного устройства я могу подключится к этой базе через вебстраничку или теперь из приложения делфи и видить эти данные или управлять МК
вот теперь нужно поставить на МК ESP чтоб убрать огромное промежуточное звено...
 

JustACat

Moderator
Команда форума
Demon, вам бы тогда посмотреть в сторону разработки приложений под Андроид. Причем есть сейчас конструкторы, как раз заточенные под всякие такие вещи, там чуть ли не из кубиков приложение собирается. Тут как раз недавно @pvvx писал про appinventor - вроде бы...

Далее: если только у вас не лежит дома стопка из 100 штук atmega8 (запас, имею ввиду, большой), советую сразу от них отказываться, хотя бы в пользу atmega328 причем не голых, а в формате Arduino Pro Mini
На aliexpress так и ищутся: arduino pro mini atmega328 причем есть два варианта - на 5 вольт и на 3.3 вольта. Так вот, для связи с ESP можно брать вариант на 3.3 вольта и тогда даже ничего не нужно развязывать/согласовывать, а можно напрямую подключать к ESP.
Причем, у некоторых продавцов есть arduino pro mini с 1117 в качестве стабилизатора на борту - это очень большой плюс.
Я брал вот такие: http://www.aliexpress.com/item/Free...r-Arduino-Compatible-nano-uno/1735356489.html
И на 3.3 вольта у этого же продавца: http://www.aliexpress.com/store/pro...no-Compatible-nano-uno/721718_1972594178.html
У него есть и в других количествах - по 1 или по 10 штук (чем больше - тем дешевле обычно).
Почему такое советую? Потому что сразу избавляетесь от уймы геморроя с согласованием.
А набортный 1117 способен по мощности запитать и саму ATmega и подключенную к этому модулю ESP, так как рассчитан на 800 mA. Причем, емнип, до 15 вольт на входе позволяет (точно не помню)...
Ну и по сравнению с 8 мегой в 328 флеша в 4 раза больше и оперативки, что очень важно в работе с ESP как с ведомым устройством на AT командах.
 

JustACat

Moderator
Команда форума
Ах да, и последнее: если у вас в дальнейшем разовьется в сторону не 1 ESP, а скажем, 10-ка - скорее всего вы захотите как-то это централизовать. Вот тут на помощь как раз линукс и придет: то есть покупается некий микроПК на linux (под это дело и многие дешевые WiFi-роутеры подходят и более хитрые вещи, типа CubieTruck), на нем как раз пишется вся централизация, все управление всеми ESP в сети (а может и какие-то еще устройствами), а заодно и удобные интерфейсы подключения: будь то Web через браузер или некий хитрый протокол через собственные приложения, ну и может отправка данных куда-то в "мир". Или все сразу :)
Жрут такие МикроПК мало, работают бесшумно. И при этом по мощности спокойно отрабатывают все серверные задачи (можно даже винт подключить и торренты качать, при желании).
 

Demon

New member
Ну да... такая задача стоит.... только линукс что то пугает :) что то типа РАСБЕРИ ?
 

JustACat

Moderator
Команда форума
А чего его бояться? Если есть отлаженная серверная прошивка под ваш конкретный микроПК, то вам останется только над этим сверху наворачивать свои приложения.
На чем? Вариантов масса: Си/Си++ понятное дело, Python, PHP, многие умудряются и чисто на Shell-скриптах написать все.
И фишка в том, что есть куча примеров и статей на эту тему на тех же хабрахабрах, где все расписано обычно вплоть до того, куда мышкой тыкнуть.
У меня для этих целей пока что CubieTruck - и на нем вот эта вот версия linux: http://www.cubieforums.com/index.php/topic,1275.0.html - она отлажена хорошо. Но это всего лишь 1 из вариантов.
Можно конечно и распи взять, но на ней нету многого вкусного, того же WiFi (по крайней мере на старых не было). На кубике WiFi есть - можно на нем поднять точку доступа и подключать ESP прямо к нему, так сказать, отгородив от общей домашней интернет сети. Так душе спокойней :) А еще на нем целая куча просто интерфейсов, даже VGA и SATA есть...
На самом деле сам переживал, что сложно будет, но оказалось все решаемо (я тоже с линуксом на вы).
 

Demon

New member
Спасибо, буду пробовать :) как то на старый ноут поставил убунту.... книгу блин купил с дистрибутивом .... только чудо спасло ноут от удара об стену, ЧУДО.... пытался поставить библиотеку по работе с один вайром...
а подключите еще вот эту библиотеку.... а теперь вот эту.... а теперь вот эту.... и все зависает и не реагирует на действие юзера... и так несколько раз... снес все на фиг и с тех пор туда не смотрю... хотя очень хочется
PHP, Java, CSS, как то сдались без боя, написал веб морду для своего приложения, дошел до аякса, а вот ЛИНУКС.... это страшно :)
 

JustACat

Moderator
Команда форума
PHP, Java, CSS, как то сдались без боя
Вот! Это ключевой момент! Объясняю: я когда поставил линь, стал думать - "а на чем же под тебя писать?"...
Но так как я по профессии - Web-программист, то, понятное дело: PHP и иже с ним - наше все. Поковырял чутка в эту сторону: оказалось, на PHP преспокойно пишутся нативные родные приложения под linux! Profit!
То есть, если у вас реально есть навыки на PHP, то, еще раз повторюсь: вам нужна лишь отлаженная (до вас) сборка linux под вашу железку. И чтобы на этой сборке стоял полный Web-пакет (включая, конечно же PHP) - тогда мы просто:
- заходим на нашу железку по SSH/FTP
- в какой-то папочке преспокойно пишем что нам надо на PHP
- и так же спокойной по SSH это запускаем
- причем, в отличие от компилируемых ЯП, PHP - скриптовый же, а значит все программы всегда в исходниках, а значит в любой момент можно подправить быстренько что-то да хоть простым Notepad++
И я имею ввиду именно программы, те же демоны (аналог служб в виндах) пишутся на PHP - то есть за пределами Web-сервера.
И весь доступ к железу из под PHP вполне себе получается. Как-то так.
 

Victor

Administrator
Команда форума
а вот ЛИНУКС.... это страшно :)
Если свою рабочую систему заменить, где куча всяких программ понаставлена, то да, тут торопится не стоит.
А под конкретную задачу использовать, то многие вещи там намного лучше делать. И потом уже можно и дальше идти.
 

Demon

New member
Заинтересовали... а можно начальную ссылку в этом направлении? куда посмотреть?
 

JustACat

Moderator
Команда форума
Demon, а поконкретнее? Начальную ссылку на что? На PHP? Или на сборку линукса? Если на PHP - то php.net. Если на сборки - то тут от железки все зависит, я вам кинул пример для CubieTruck - какой я для него пользуюсь сборкой - там все отлажено и работает как часики, все подтягивается apt-get'ом прекрасно само. В общем, я очень доволен.
Если свою рабочую систему заменить
Ой, не-не-не, это да - совсем другая весовая категория :) Это надо и морально и материально времени потратить много...
Я сразу решил, что для начала я сервер осваиваю - на отдельной какой-то железке, не трогая основной ПК, на котором, увы, давненько уже обосновалась и крепко прописалась винда...
 
Сверху Снизу