• Система автоматизации с открытым исходным кодом на базе 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 под него набросать то же самое. Ну, если с виндой не выйдет.
Будем рады, если вы поделитесь результатами!
 
Сверху Снизу