Оглавление:

MQTT на платах Armtronix: 3 шага
MQTT на платах Armtronix: 3 шага

Видео: MQTT на платах Armtronix: 3 шага

Видео: MQTT на платах Armtronix: 3 шага
Видео: WittyCloud ESP8266 MQTT Demo 2024, Ноябрь
Anonim
MQTT на платах Armtronix
MQTT на платах Armtronix

В этом руководстве мы хотели бы сначала показать вам, как вы можете использовать систему на основе Linux (Debian или Ubuntu) и установить на нее Mosquitto (Mqtt Broker), а также покажем вам, как использовать клиент Mqtt на вашем телефоне (Android) / на базе Linux. система, отправляющая и получающая сообщения через Mqtt. Ознакомившись с этим, мы хотели бы показать вам, как вы можете настроить и подключить нашу плату к этому установленному брокеру Mqtt. Также хотел бы показать вам, как можно добавить аутентификацию к брокеру Mqtt и несколько основных советов и приемов для отладки. Итак, приступим ………..

Шаг 1: Установка Mqtt Broker:

Установка Mqtt Broker
Установка Mqtt Broker
Установка Mqtt Broker
Установка Mqtt Broker
Установка Mqtt Broker
Установка Mqtt Broker
Установка Mqtt Broker
Установка Mqtt Broker

Вы можете установить несколько брокеров Mqtt. Некоторые известные из них указаны ниже. Некоторые из них являются облачными сервисами.

  • HiveMQ
  • МоскитОблако
  • MQTT
  • Adafruit.io

Мы покажем вам, как установить Mosquitto в системе на базе Linux (Ubuntu 18.04). Для этого сначала добавьте Mosquitto в список источников Ubuntu. Как только Mosquitto станет доступным в репозиториях Ubuntu, вы сможете установить его с помощью apt-get.

Просто откройте Терминал. Чтобы открыть терминал, перейдите в левый нижний угол рабочего стола Ubuntu, нажмите «Показать приложение» (сетка Doted 3x3). Откроется окно. Там вы ищите Терминал. Нажмите на терминал, вы должны увидеть открытое окно, как показано на следующих изображениях.

  • Показать приложение (Изображение 1).
  • Найдите терминал (изображение 2).
  • Окно терминала (Изображение 3).

После открытия Терминала введите следующие команды.

sudo apt-add-repository ppa: mosquitto-dev / mosquitto-ppa

sudo apt-get update

sudo apt-get install mosquitto

Вы также можете установить клиент Mqtt. Команда сделать это будет

sudo apt-get install mosquitto-clients

Некоторые изображения для справки

  • Добавление ppa (Изображение 4).
  • Обновление репо (Изображение 5).
  • Установка Mosquitto (Изображение 6).
  • Установка клиента Mosquitto (Изображение 7).

Шаг 2: Тестирование MQTT (Mosquitto)

Тестирование MQTT (Mosquitto)
Тестирование MQTT (Mosquitto)
Тестирование MQTT (Mosquitto)
Тестирование MQTT (Mosquitto)
Тестирование MQTT (Mosquitto)
Тестирование MQTT (Mosquitto)

Чтобы протестировать mqtt через ubuntu (та же система или другая система), вам необходимо установить клиент mqtt, который был установлен ранее командой sudo apt-get install mosquitto-clients. Если вы хотите протестировать его с помощью мобильного телефона (Android), вы можете установить приложение MyMqtt из игрового магазина.

Mqtt работает над тем, что называется Темами. Для простоты понимания рассмотрите эти темы как папку на жестком диске компьютера. Давайте рассматривать этот компьютер как компьютерный сервер (который в мире mqtt является брокером Mqtt). На этом сервере давайте рассмотрим наличие одной папки.

Имя папки: / Folder_one /

Теперь давайте рассмотрим двух человек из двух разных систем (ПК / ноутбук), обращающихся к этому серверу либо для чтения файлов, либо для отправки / дампа файлов, либо для выполнения обеих операций.

Мы назовем двух людей / систему System X, System Y (это клиенты Mqtt в мире Mqtt).

Теперь предположим, что System X отправляет / выгружает некоторый файл (имя файла: температура) в папку «/ Folder_one /». В мире mqtt мы можем назвать это публикацией (мы отправляем какое-то сообщение / полезную нагрузку вместо файла).

Теперь, допустим, система Y хочет получить / прочитать этот файл или любой новый файл или обновить в этой папке, первое, что ей нужно, это знать имя папки и путь, который в нашем случае - «/ Folder_one /». Итак, теперь он перейдет в эту папку и прочитает / получит этот файл (имя файла: температура). Знание пути / темы и проверка изменений в файле / новых файлах в мире Mqtt - это подписка на эту тему.

Рассматривая приведенный выше пример, Система X публикуется в «/ Folder_one», а система Y подписывается на «/ Folder_one»

Также обратите внимание, что System X также может подписаться на «/ Folder_one», а система Y также может публиковать в «/ Folder_one». Точно так же даже серверная система (брокер Mqtt) может публиковать / подписываться на «/ Folder_one», установив на нее клиент Mqtt, как мы это сделали сейчас. Еще нужно помнить, что для публикации или подписки на тему вам необходимо знать IP-адрес Mqtt Broker.

Сначала мы протестируем его через клиент ubuntu, который установлен в той же системе, что и брокер. Мы откроем два окна терминала, одно из них опубликует, а другое подпишется на него. Для примера мы будем использовать / Folder_one в качестве темы. Перед публикацией / подпиской в теме вам нужно будет найти IP-адрес ubuntu. Для этого щелкните в правом верхнем углу экрана, выберите настройку Wi-Fi, оттуда вы сможете найти IP-адрес системы ubuntu (в настоящее время IP-адрес брокера). Снимок экрана предоставлен для справки (Изображение 8).

Или, чтобы найти IP-адрес брокера, вы можете найти IP-адрес, установив сетевые инструменты, используя следующую команду в терминале

sudo apt install net-tools

Установка net-tools (Изображение 9). После этого просто введите команду ipconfig, и вы получите список сетевых интерфейсов с Mac и IP-адресом.

sudo ipconfig

IP-адрес моей системы 192.168.1.67 (Изображение 10)

Чтобы публиковать

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m pub_to_folderone

Здесь mosquitto_pub - это команда, за которой следует элемент идентификатора параметра -h, который представляет собой IP-адрес хоста / брокера (в нашем случае 192.168.1.67), за которым следует -t, которое является названием темы для издателя (в нашем случае / Folder_one), за которым следует -m, что означает отправляемое сообщение / полезную нагрузку (в нашем случае это pub_to_folderone).

Подписываться

mosquitto_sub -h 192.168.1.67 -t / Folder_one

Сообщение, отправленное издателем: pub_to_folderone

Пример для публикации

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m «привет тест mqtt»

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m «mqtt работает»

Пример ответа, полученного при подписке на тему

mosquitto_sub -h 192.168.1.67 -t / Folder_one

Сообщение, отправленное издателем:

  • pub_to_folderone
  • привет тест mqtt
  • mqtt работает

Pub Sub в двух отдельных окнах терминала бок о бок (Изображение 11)

Тестирование Mqtt на android (мой mqtt)

Установите приложение mymqtt из магазина воспроизведения на свой телефон с Android (Изображение 12)

Откройте приложение и щелкните в левом верхнем углу (изображение 13, изображение 14).

Нажмите «Настройки» и введите IP-адрес брокера, порт по умолчанию - 1883. В настоящее время мы не используем аутентифицированного брокера mqtt, поэтому имя пользователя и пароль будут пустыми. Просто сохраните его и снова щелкните в левом верхнем углу приложения (<Настройки), ящик снова откроется (Изображение 15).

В верхней части ящика будет показан IP-адрес брокера и порт, к которому подключено приложение (Изображение 16).

Теперь добавьте тему, на которую хотите подписаться, нажав «Подписаться». Здесь мы будем добавлять тему как / Folder_one (Изображение 17, Изображение 18).

После этого из системы ubuntu с помощью терминала мы опубликуем в теме. При публикации вы должны опубликовать полезную нагрузку / сообщение в этом мобильном приложении. Например, публикация полезной нагрузки как «ARM -Automation Robotics & Mechatronics». Команда, как упоминалось ранее.

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m «ARM - автоматизация робототехники и мехатроники»

публикация из системы ubuntu (Изображение 19).

Получено опубликованное сообщение на панели управления (Изображение 20).

Теперь давайте публиковать с телефона Android (My mqtt) и подписываться в системе ubuntu. В этом примере мы используем тему «/ mymqtt_to_pub».

Для этого сначала откройте терминал в вашей системе ubuntu и подпишитесь на тему «/ mymqtt_to_pub», используя следующую команду (Изображение 21)

mosquitto_sub -h 192.168.1.67 -t / mymqtt_to_pub

Теперь перейдите в ящик приложения mymqtt и нажмите «Опубликовать». Добавьте тему публикации (в нашем случае это «/ mymqtt_to_pub») и отправьте какое-нибудь сообщение, как будто мы отправим «привет, Ubuntu», нажмите кнопку отправки (Изображение 22, Изображение 23).

Сообщение должно появиться в окне вашего терминала системы ubuntu (Изображение 24).

Обратите внимание, что и система ubuntu, и телефон Android должны быть в одной сети или должен быть открыт порт 1883, и вы должны знать IP-адрес вашего маршрутизатора / шлюза для работы mqtt. Если вы хотите добавить аутентификацию к своему mqtt-брокеру, вы можете сделать это, перейдя по указанной ниже ссылке в блоге https://medium.com/@eranda/setting-up-authenticat… Следуйте инструкциям из второго шага этого блога. Мы включили аутентификацию нашего брокера и будем использовать аутентифицированного брокера для наших досок.

Шаг 3: Работа с Armtronix Board и Mqtt

Работа с Armtronix Board и Mqtt
Работа с Armtronix Board и Mqtt
Работа с Armtronix Board и Mqtt
Работа с Armtronix Board и Mqtt
Работа с Armtronix Board и Mqtt
Работа с Armtronix Board и Mqtt

В настоящее время для этого мы используем нашу плату Wifi Single Dimmer Board, которая использует симистор для обрезки синусоидальной волны и, в свою очередь, затемняет лампочку или контролирует скорость вентилятора. Также мы подключили его через тип аутентификации mqtt.

Изначально мы настроили плату. Шаги по настройке указаны ниже.

Включите плату, и она начнет размещать точку доступа Wi-Fi.

Подключитесь к этой точке доступа с помощью телефона или ноутбука на базе Android (Изображение 25).

После подключения к этой точке доступа введите 192.168.4.1, открыв браузер (chrome / firefox) из системы / телефона, подключенной к точке доступа. Убедитесь, что вы не используете подключение для передачи данных (3G / 4G).

При вводе IP-адреса откроется веб-страница, на которой необходимо ввести следующее (Изображение 26).

  • SSID: имя точки доступа Wi-Fi.
  • Пароль: пароль SSID.
  • Режим IoT Mqtt или Http (выберите Mqtt).
  • IP-адрес Mqtt Broker (в нашем случае 192.168.1.67).
  • Имя пользователя и пароль Mqtt, поскольку мы используем тип аутентификации, мы использовали Naren, xxxx
  • Тема публикации Mqtt: это будет тема, по которой также публикуется доска, мы использовали / testpub.
  • Тема подписки на Mqtt: это будет тема, которую плата прослушивает для команд, запускающих симистор, мы использовали / testsub.
  • Имя устройства: это имя, которое вы вызываете у alexa для запуска платы, мы использовали corvi.

После ввода данных нажмите кнопку отправки, при этом вы получите экран, как показано на рисунке 27, подождите некоторое время, пока плата не перестанет размещать точку доступа.

Обратите внимание, что мы подключили нашу плату через Uart к последовательному монитору Arduino IDE. Таким образом, с левой стороны вы увидите сообщения отладки, которые он печатает через Uart (это только для справки).

Как только это будет сделано, вы сможете просмотреть экран отладки. Там будет видно большинство деталей. После этого он успешно подключится к брокеру на экране отладки (серийный номер), вы можете это увидеть.

Подключен к брокеру MQTT с аутентификацией. Подписан на тему 1.

После того, как он напечатает это, вы можете начать отправлять ему команды через mqtt в теме, на которую он подписан, то есть / testsub /

Для этой платы есть следующие команды:

  • R13_ON: включить симистор на 100%.
  • R13_OFF: выключить симистор до 0%.
  • Диммер: xx: Где xx - это значение затемнения, которое может варьироваться от 0 до 99.
  • Сброс: очистить конфигурацию платы.
  • Статус: Распечатайте статус диммера платы в теме публикации платы.

Чтобы отправить эту команду из системы на основе ubuntu, в которой установлен клиент mqtt, просто введите ее, как показано ниже. Сюда добавляются два дополнительных параметра из-за аутентификации - то есть -u - имя пользователя и -P - пароль, обратите внимание, что они чувствительны к регистру.

mosquitto_pub -h 192.168.1.67 -u Нарен -P xxxx -t / testsub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Нарен -P xxxx -t / testsub -m R13_OFF

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testsub -m Диммер: 50

Примечание: 50 - это значение диммера.

mosquitto_pub -h 192.168.1.67 -u Нарен -P xxxx -t / testsub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testsub -m Статус

Для последнего статуса статус печатается в теме публикации доски, которая в нашем случае - / testpub. На нашей доске любое изменение в устройстве печатается в теме публикации доски. Например, если мы передаем Dimmer: 50 в теме, на которую подписана доска, а не при ее физическом выполнении, доска отправит сообщение с указанием уровня затемнения в теме публикации. Пример показан ниже, Чтобы подписаться из вашей системы ubuntu на тему публикации форума, введите следующую команду

mosquitto_sub -h 192.168.1.67 -u Нарен -P xxxx -t / testpub

сообщение, которое мы получаем

ДиммерIS50

несколько снимков экрана с такими же изображениями ниже (Изображение 28, Изображение 29)

Рекомендуемые: