• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Связь ESP8266 с компьютером

Добрый день, господа! Буквально вчера стал счастливым обладателем нескольких модулей ESP-07 и теперь хочу реализовать следующую задачу: нужно с компьютера управлять пятью светодиодами и принимать состояния с пяти разных кнопок(нажата/не нажата). И светодиоды, и кнопки расположены в одной комнате на некотором расстоянии друг от друга, поэтому по одному модулю на каждый светодиод и по одному на каждую кнопку. На компьютере же планирую написать программу на Delphi, с которой можно будет всем этим добром управлять. Если кому интересно, то все это задумывается для "квест-комнаты", которые сейчас популярны.
Итак, я себе пока только образно представляю общую картину предстоящих работ, и просто хотелось бы, чтобы эксперты прокомментировали следующие положения:
1. Среда разработки - выбрал Arduino IDE, т.к. с Ардуиной уже есть опыт общения, хотя я и не прочь изучить что-то новое)
2. Один из модулей будет выступать сервером, к которому будут подключатся остальные модули и компьютер по wi-fi.
3. Компьютер будет отправлять команды на модули со светодиодами, чтобы их включать/выключать (плавное затухание с помощью ШИМ было бы приятной возможностью, но не обязательно)
4. Модули с кнопками будут отправлять в компьютер команды, когда какая-либо из кнопок будет нажиматься.

И у меня следующие вопросы:
1. Моя затея вообще реальна?)
2. Можно ли будет изначально в скетче Ардуино указать IP адреса для всех модулей? (чтобы программа на компьютере знала, где какой модуль и за что отвечает)
3. Состояние кнопок можно будет снимать привычным analogRead/с помощью прерываний?
4. Могут ли в будущем возникать проблемы с надежностью системы? Читал, что иногда модули "отваливаются" от сети.

Не пинайте сильно, если вопросы слишком простые, я еще только начал разбираться с теорией.
И заранее спасибо!)
 

JustACat

Moderator
Команда форума
прокомментировали следующие положения:
1. OK (можно еще попробовать проект Sming)
2. Не очень понятно, зачем в качестве сервера использовать ESP, если все равно будет присутствовать ПК - лучше на него возложить эту функцию, так будет надежнее (можно для этого применить нечто вроде этого).
3. OK (ШИМ тоже можно попробовать, он есть в общем-то, но нужно экспериментировать, возможно проще будет вашу задачу решить на Lua с прошивкой NodeMCU - в ней ШИМ работает точно, ну а код для мигания светиком и читания кнопки - вообще 2 строки, посмотрите на той же страничке Examples)
4. OK
следующие вопросы:
1. Да
2. В принципе да, статические IP поддерживаются (а можно и на роутере (ПК) задать соответствие MAC адресов IP адресам)
3. Да, только почему analogRead? =) Кнопки же.
4. В случае с ESP от этого никто не застрахован. Так что придется вам попробовать (все равно ж модули уже купили), а дальше решите сами. В конце концов за цену ESP ему много что прощается :-Р

PS: Вопросы хорошие - заданы четко, позволяют коротко ответить - люблю вопросы, заданные именно так.
 
Большое спасибо за ответы!
Да, на счет сервера вы определенно правы, я просто пока не до конца себе представляю работу с виртуальным Wi-Fi на Win8, никогда с ним не работал. А компьютер у меня будет вот такой, поэтому Wi-Fi донгл даже не потребуется. Скоро Почта России мне его доставит, вот и буду эксперементировать=)
На счет кнопок, конечно же, digitalRead, это я гв тот момент не о том думал) Хотя мне больше по душе работать с прерываниями, быстрее и функциональнее.
 

JustACat

Moderator
Команда форума
Вячеслав, а зачем Win8 тем более на таком миниПК? Имхо, андроид будет проще - на андроиде поднять точку доступа вообще как нефиг делать.
У вас задача на модулях: один digitalWrite и один digitalRead - вообще не задача, в общем :) Там хоть на прерываниях, хоть на таймере считывать - пофиг, все просто же совсем :)
 
Вячеслав, а зачем Win8 тем более на таком миниПК? Имхо, андроид будет проще - на андроиде поднять точку доступа вообще как нефиг делать.
У вас задача на модулях: один digitalWrite и один digitalRead - вообще не задача, в общем :) Там хоть на прерываниях, хоть на таймере считывать - пофиг, все просто же совсем :)
Ну так мне еще надо будет в программе на компьютере много другой информации для пользователей выводить, это же будет квест-комната. Для игроков будут разные вопросы, очки и т.д. А с андроидом у меня опыта общения нет, только под винду могу писать)
А Win8 просто идет в комплекте с этим девайсом, лицензия, все дела, вот и не хочется заморачиваться с чем-то другим.
 

JustACat

Moderator
Команда форума
Вячеслав, ну, тогда все ясно. Если вам под 8-ку писать ближе - то конечно можно и под нее. Просто имейте ввиду, что можно еще и андрюшку в крайнем случае заюзать через какой-нить AppInventor под него набросать то же самое. Ну, если с виндой не выйдет.
Будем рады, если вы поделитесь результатами!
 
Сверху Снизу