diff --git a/docs/ru/nti2019.md b/docs/ru/nti2019.md index 15027d38..8b496bfa 100644 --- a/docs/ru/nti2019.md +++ b/docs/ru/nti2019.md @@ -12,6 +12,47 @@ hbmqtt_pub --url mqtt://192.168.0.1:1883 -t /copters/copter1 -m 'сообщен Где `192.168.0.1` – IP-адрес MQTT-брокера, `сообщение` – сообщение для публикации, `/copters/copter1` – необходимый топик для публикации. +### Работа с MQTT + +В образе Клевера предустановлена библиотека `paho-mqtt` для Python. Пример работы с этой библиотекой описан ниже: + +```python +import paho.mqtt.client as mqtt # Импортирование библиотеки mqtt + +# Callback, вызываемый при получении от сервера подтверждения о подключении +def on_connect(client, userdata, flags, rc): + print ("Connected with result code "+str(rc)) + + # Если подписываться на топик в on_connect, то при обрыве соединения + # и повторном подключении произойдёт автоматическое переподписание + client.subscribe("/copters/copter1") + +# Callback, вызываемый при появлении сообщения в одном из топиков, на который +# подписан клиент +def on_message(client, userdata, msg): + # В объекте msg хранится топик, в который пришло сообщение (в поле topic) + # и само сообщение (в поле payload) + print (msg.topic+" "+str(msg.payload)) + +# Инициализация клиента MQTT +client = mqtt.Client() +# Здесь указываются callback'и, вызываемые при подключении и получении сообщения +client.on_connect = on_connect +client.on_message = on_message + +# Подключение к MQTT-брокеру. Первый параметр - имя или адрес брокера, второй - порт +# (по умолчанию 1883), третий - максимальное время между сообщениями в секундах +# (по умолчанию 60). +client.connect("192.168.11.162", 1883, 60) + +# Метод loop_start создаёт поток, в котором будет производиться опрос сервера и +# вызов callback'ов. +client.loop_start() +# Далее продолжается ваша программа +``` + +Более подробная документация доступна на [странице библиотеки в PyPI](https://pypi.org/project/paho-mqtt/). + ## Работа с Клевером Для выполнения команд на Клевере: