Найти тему
Genervis

Как управлять роботом через портал устройств Умного Дома

Вы можете сколько угодно много знать о различных серверах IoT и Умного дома, быть гением по работе с Blink + ESP32. Но вот Вы купили первого мобильного робота с Ali Express, поставили на него камеру на манипуляторе, даже разобрались с тем, как все хорошенько собрать да подкрутить.

А как можно вообще с компьютера поуправлять таким роботом?

Первое решение, которое обладает интуитивно-понятным интерфейсом и которое обязательно стоит попробовать – Robocam. Это программа на телефон, которая ставится на него как сервер. Телефон и компьютер, с которого планируется управления, для начала должны быть подключены к одной WiFi сети. Можно вообще раздать точку доступа с телефона, и подключиться к ней с ноутбука.

Но здесь глубже узнаем именно про возможность управления роботом через портал http://iot.tfeya.ru

В браузере у Вас есть адресная строка, куда можно вбивать не только названия сайтов, но и параметры, которые нужно передать на эти сайты. Так, вы можете не просто переходить на ресурс к конкретной странице http://iot.tfeya.ru/sensorData.php, но и после знака вопроса прописать некоторые параметры:

http://iot.tfeya.ru/sensorData.php?parameter1=0&parameter2=8915

Куда уйдут эти параметры? Они поступят на сервер, который у Вас находится по указанному доменному имени. С сервера их может подхватить любое другое устройство, взаимодействующее с этим сервером. Например, мобильный телефон или микроконтроллерная плата ESP32. Удобнее держать связь через микроконтроллер. ESP32, так как он управляет всем на борту робота, а телефон просто используется для видеотрансляции.

Сначала стоит абстрагироваться до уровня того, что у вас нет колес или камеры вообще. Мы сами начали вот с такой установки, закрепленной на рабочем столе.

-2

На манипуляторе, который показан слева на рисунке, есть несколько сервоприводов. Управляя ими, мы регулируем положение телефона в пространстве. Таким образом, если нужно посмотреть влево, нужно повернуть соответствующий сервопривод.

Значение для сервопривода на портале можно задать ползунком, который находится снизу, в диапазоне от 0 до 180 градусов. Для каждого сервопривода, получается, необходимо посылать свой GET-запрос на сервер.

Движение головы ВВЕРХ-ВНИЗ – это нижеследующий GET-запрос:

http://iot.tfeya.ru/sensorData.php?login=kras&sensor_id=1&secret=12345678&val=160

Движение головы ВЛЕВО-ВПРАВО:

http://iot.tfeya.ru/sensorData.php?login=kras&sensor_id=2&secret=12345678&val=160

То есть сервоприводы для сервера – в текущей версии продукта ничем не отличаются от сенсоров. За исключением того, что с сенсора получают значения, а в продукте сущность сенсора пока немного искажена – это в целом любая сущность, подключенная к микроконтроллер ESP32, в частности – сервопривод.

В переменной val передается угол поворота сервопривода, sensor_id - номер датчика (устройства, подключенного к микроконтроллерной плате), также видно логин и API-ключ пользователя. Для примера даже показан конкретный ключ, использовавшийся ранее.

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