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

Делюсь опытом ESP8266, ARDUINO IDE,Примеры

Чем преимущественно пользуетесь для общения с MCU?

  • Arduino IDE

    Голосов: 39 86.7%
  • LUA

    Голосов: 1 2.2%
  • Пользуюсь готовыми прошивками(кроме LUA)

    Голосов: 2 4.4%
  • Си, SDK и т. п.

    Голосов: 2 4.4%
  • Другое

    Голосов: 1 2.2%

  • Всего проголосовало
    45

kab

New member
Тут много слов про то, что я начинающий и т.д. и т.п.
Конкретнее - столкнулся с тем, что примеры SUBJ не все понятны - к чему и зачем. Поэтому предлагаю в данной теме объединить знания тех, кто уже может донести до других, в чем же суть и ценность предлагаемых примеров.
О себе: в принципе - программист, но не на МК и не WEB - (Прикладное ПО на ORACLE и т.п. Ну, типа, бухгалтерия :) ). В английском тоже достаточно слаб. Но в последнее время заинтересовала тема SUBJ в качестве хобби. В руки попала Node MCU v.09. С LUA и др. что-то не сложилось, а с ARDUINO IDE более менее наладилось. Лампочки кое-где заморгали. Решил целенаправленно проработать имеющиеся в IDE примеры, но столкнулся с тем, что в большинстве случаев просто не могу понять, чего же эти примеры демонстрируют. Поэтому и вношу предложение - объединёнными усилиями создадим более подробное описание примеров по русски. Наверняка будет полезно многим начинающим. Пока четкой структуры раздела не предлагаю. А дальше - как пойдет... Обещаю в ближайшие дни описать в пределах своего понимания то, с чем смог разобраться. А к сообществу пока следующий вопрос:
- Что демонстрирует пример SSDP? Скетч запустился нормально. А что дальше-то с ним делать?
 

tretyakov_sa

Moderator
Команда форума
- Что демонстрирует пример SSDP? Скетч запустился нормально. А что дальше-то с ним делать?
Простой протокол обнаружения сервисов
Если у вас включен протокол SSDP, то модуль способен ответить на специальный запрос посланный по UDP протоколу на адрес 239, 255, 255, 250 порт 1900.
И модуль ответит.
Самый простой способ увидеть действия этого кода, зайти в папку Сеть на компьютере с Windows.
SSDP.jpg
С помощью этого протокола (например), можно заставить модули видеть друг друга при подключении их к роутеру.
 
  • Like
Реакции: kab

kab

New member
@tretyakov_sa,
да, спасибо, примерно так я это и представлял.
Но на компьютере(WIN`10) новое устройство не появляется, хотя скетч рапортует в монитор "...Ready...". Вечером попытаюсь глубже копнуть настройки роутера и компа на предмет прохождения/употребления UDP. Также интересная тема - "заставить модули видеть друг друга". Но тут тоже "но" - второй ESP у меня нет. Даже не решил - употреблять слово "пока" или нет... Хотя, наверно, можно попытаться с ESP "обнаружить" по SSDP роутер, к которому ESP подключился. Такого примера в IDE нет (не вижу).
 

kab

New member
@tretyakov_sa
Да, фокус не удался:
- служба SSDP на компе была уже запущена, а нового устройства так и не видно...

картинка удалена
 

Вложения

Последнее редактирование:

kab

New member
Установил Wireshark. Нашел среди UDP пакетов пакет c информацией:

SERVER: Arduino/1.0 UPNP/1.1 Philips hue bridge 2012/929000226503\r\n

Но в винде нового устройства так и нет
 

kab

New member
А это SSDP.schema(...) из примера. Может здесь имеется какая-либо неправильность?
<?xml version="1.0"?>
<root xmlns="urn:schemas-upnp-org:device-1-0"><specVersion><device><deviceType>urn:schemas-upnp-org:device:Basic:1</deviceType><friendlyName>Philips hue clone</friendlyName><presentationURL>index.html</presentationURL><serialNumber>001788102201</serialNumber><modelName>Philips hue bridge 2012</modelName><modelNumber>929000226503</modelNumber><modelURL>http://www.meethue.com</modelURL><manufacturer>Royal Philips Electronics</manufacturer><manufacturerURL>Philips - представительство в России</manufacturerURL><UDN>uuid:38323636-4558-4dda-9188-cda0e6118596</UDN></device></root>
 
Последнее редактирование:

kab

New member
Посмотрел видео №3. В соответствие с видео в текст примера добавил строчку:

SSDP.setDeviceType("upnp:rootdevice");

после этого на компе новое устройство появилось.
Правда, его свойства посмотреть не удалось.

upload_2017-9-8_22-6-57.png

(
 
Последнее редактирование:

tretyakov_sa

Moderator
Команда форума
@tretyakov_sa
Да, фокус не удался:
- служба SSDP на компе была уже запущена, а нового устройства так и не видно...
картинка удалена
Там на видео фокус в том, что она была запущена и он ее остановил и запустил. К сожалению не могу проверить, так как нет у меня десятки.
Вот программка для тестов. http://esp8266-arduinoide.ru/wp-content/uploads/2017/09/SSDP-test.zip
 
  • Like
Реакции: kab

kab

New member
@tretyakov_sa
Сергей, на самом деле, т. к. процесс идет в развитии, мои посты до №9 актуальность потеряли. В 9-ом описано как всё исправилось. Правда, с мелкой нехорошестью, но особо на ней заострять внимание не буду.
 
Последнее редактирование:

kab

New member
Попытаюсь резюмировать FOR ALL своё понимание текущей ситуации и предложения. Итак:
- В предыдущих топиках обсуждался пример SSDP из Arduino IDE.

- Этот пример демонстрирует, как настроить устройство на основе ESP, чтобы оно автоматически (через UDP, PnP) появлялось в сетевом окружении локальной сети компьютера, при подключении устройства ESP к этой сети. Это удобно, т. к., чтобы зайти в устройство - не требуется знание IP адреса - достаточно кликнуть мышкой на иконку устройства.

- Это всё подробно объяснено и показано в серии видеоуроков Сергея Третьякова - @tretyakov_sa . Начинающим - настоятельно рекомендую. Это уже не только про SSDP, но и про всё остальное :). Кстати, имеются предложения по тематике продолжения уроков. Но это тема отдельного обсуждения...

- Теперь о плохом:
- у меня пример сразу не запустился. Оказывается, среди строчек установки свойств устройства в дистрибутивном примере не хватало строчки
SSDP.setDeviceType("upnp:rootdevice");

- после добавления указанной выше строчки устройство в сетевом окружении появилось, но его свойства оказались недоступны. Этот момент я победить не смог, возможно - это связано с моей ОС Windows`10. Но этот момент не очень существенен.

Кроме SSDP, в отдельной теме
https://esp8266.ru/forum/threads/web-server-nuzhna-avtorizacija.2746/
(на основе примеров) был представлен способ простого добавления системы аутентификации в скетч. Основные моменты изложу в отдельном посте.

Как обещал UPD: ESP8266, ARDUINO IDE,Примеры

Теперь о предложении - ALL, пишите, какие примеры Arduino IDE для Вас интересны, но вызывают какие-либо трудности. Будем вместе разбираться, привлекая "мастодонтов" (в хорошем смысле этого слова :D ) этого форума.

Успехов всем!
 
Последнее редактирование:

CodeNameHawk

Moderator
Команда форума
после этого на компе новое устройство появилось.
Правда, его свойства посмотреть не удалось.
Добавил SSDP.setDeviceType("upnp:rootdevice"); в SSDP пример
Код:
    Serial.printf("Starting SSDP...\n");
    SSDP.setDeviceType("upnp:rootdevice");
    SSDP.setSchemaURL("description.xml");
    SSDP.setHTTPPort(80);
    SSDP.setName("Philips hue clone");
и пример заработал.
upload_2017-9-14_20-57-52.png
 

kab

New member
@CodeNameHawk
Да я и не спорю, что, скорее всего, неправильность связана с какими-то особенностями установки ОС моего компа.
 

CodeNameHawk

Moderator
Команда форума
У Вас сообщение от рабочего стола, как так, вроде должно быть в Network.
 

kab

New member
У Вас сообщение от рабочего стола, как так, вроде должно быть в Network.
Сейчас полный скрин показать не могу - нахожусь на работе :).

А в общем, Windows'10, русифицированный, обновленный автоматически в ту компанию от MS.
Захожу в "Мой компьютер" - "Сеть" - правой кнопкой мыши на новое устройство (Name - правильный) - нажимаю "Свойства" - получаю сообщение об ошибке. Права пользователя - административные. Правда, сразу после апгрейда на W'10 мне попались какие-то рекомендации по отключению "лишних" сервисов на компе (для ускорения работы). Возможно, я что-то и поотключал, сейчас следы утеряны. Но службу SSDP проверил, она была включена.
 

kab

New member
IP/description.xml что показывает.
А это как смотреть? Это адресная строка браузера?

Если речь идет об аналоге SSDP.schema(), то вот:
Код:
<?xml version="1.0"?>
<root xmlns="urn:schemas-upnp-org:device-1-0"><specVersion><device><deviceType>urn:schemas-upnp-org:device:Basic:1</deviceType><friendlyName>Philips hue clone</friendlyName><presentationURL>index.html</presentationURL><serialNumber>001788102201</serialNumber><modelName>Philips hue bridge 2012</modelName><modelNumber>929000226503</modelNumber><modelURL>http://www.meethue.com</modelURL><manufacturer>Royal Philips Electronics</manufacturer><manufacturerURL>Philips - представительство в России</manufacturerURL><UDN>uuid:38323636-4558-4dda-9188-cda0e6118596</UDN></device></root>
правда, это ещё пока не вставил строчку SSDP.setDeviceType("upnp:rootdevice");

Если надо посмотреть именно в браузере, то это до вечера, когда доберусь домой
 
Сверху Снизу