Как internet of things си говорят чрез mqtt и софтуер с отворен...
TRANSCRIPT
![Page 1: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/1.jpg)
Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?Леон Анави[email protected] [email protected]
![Page 2: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/2.jpg)
Меню за деня
Общи приказки за Internet of Things
Суха теория за протокола MQTT
Open source MQTT брокери и клиенти
Неуспешни демонстрации
За десерт: трудни въпроси
![Page 3: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/3.jpg)
Internet of Things (IoT)
Вградени устройства, свързани към Интернeт
![Page 4: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/4.jpg)
Предизвикателства за IoT
Комуникация в реално време
Консумация и работа на батерии
Ниска цена за производство
Софтуер, който да е съвместим с устройства с ограничен хардуер
![Page 5: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/5.jpg)
Комуникация
![Page 6: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/6.jpg)
MQTT
MQTT е съкращение от MQ Telemetry Transport
Съществува от 1999г
От 2013г започва процедура по създаване на стандарт към международния консорциум с нестопанска дейност OASIS
![Page 7: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/7.jpg)
MQTT
Лек протокол от типа publish/subscribe за комуникация между машини, изграден върху TCP/IP
Комуникация в реално време
Брокер, който да разпределя съобщенията между клиентите
Лесна имплементация и съществуващи open source библиотеки на много програмни езици
![Page 8: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/8.jpg)
OSI Модел
7. Приложен слойMQTT, HTTP, SMTP, SSH, Telnet и други
6. Представителен слойTSL, SSL и други
5. Сесиен слой
4. Транспортен слойTCP, UDP и други
3. Мрежов слойIP, ICMP, IGPM и други
2. Канален слой
1. Физически слой
![Page 9: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/9.jpg)
MQTT TCP/IP портове
Порт 1883 е резервиран за MQTT
Порт 8883 е резервиран за MQTT върху SSL
![Page 10: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/10.jpg)
MQTT
MQTT клиенти – софтуерни приложения, които се свързват към MQTT брокер. Могат да изпращат и да получават съобщения.
MQTT брокер – софтуер, които се изпълнява като демон и се грижи за разпределянето на съобщенията между клиентите.
![Page 11: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/11.jpg)
MQTT операции
Connect
Disconnect
Subscribe
Unsubscribe
Publish
![Page 12: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/12.jpg)
Пример
MQTTBroker
PC(MQTT client)
Smart Phone(MQTT client)
Sensor(MQTT client)
Publish
Subscribe
PublishPublish
Subscribe
MQTT клиент се свързва с брокер и се абонира за дадена тема
Данни от сензор се изпращат по MQTT и брокерът ги доставя до заинтересуваните клиенти
![Page 13: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/13.jpg)
MQTT Publish
Topic
Payload
QoS
Retain
"hello/1"
{ "temperature": 20 }
2
false
Пример
![Page 14: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/14.jpg)
MQTT Quality of Service (QoS)
0 – съобщението ще бъде доставено най-много веднъж
1 – съобщението ще бъде доставено поне веднъж
2 – съобщението ще бъде доставено точно един единствен път
![Page 15: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/15.jpg)
MQTT заглавия
Примерно заглавие
home / kitchen / temperature Wildcards на едно ниво
home / + / temperature Wildcards на много нива
home / #
![Page 16: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/16.jpg)
Last Will & Testament (LWT)
Завещание от МQTT клиент, което другите заинтересувани MQTT клиенти получават, ако връзката със завещаващия бъде прекъсната неочаквано.
![Page 17: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/17.jpg)
MQTT Сигурност
Възможност за криптиране на предаваните данни с TLS/SSL
Автентификация с потребителско име и парола
Авторизация с Access Control Lists (ACL)
![Page 18: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/18.jpg)
Free and Open Source Software
![Page 19: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/19.jpg)
MQTT брокери с отворен код
Mosquitto
HiveMQ
Mosca
emqttd
VerneMQ
ActiveMQ
![Page 20: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/20.jpg)
Mosquitto
MQTT брокер с отворен код, написан на програмния език C
Поддържа версии на MQTT протокола 3.1 и 3.1.1
Наличен за всички популярни GNU/Linux дистрибуции: Debian,Ubuntu, Fedora, RedHat Enterprise Linux, openSUSE, CentOS, ArchLinux, Slackware и други
Наличен също за Windows, FreeBSD и Mac
Проект на iot.eclipse.com
![Page 21: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/21.jpg)
Web Socket
Функционалност, която позволява всеки модерен уеб браузър да се свързва към MQTT брокер чрез web socket
Web socket се поддържат от Mosquitto (след v1.4), HiveMQ (след v1.4), Mosca (след v0.13.0)
JavaScript имплементация на MQTT клиент с WebSocket се предоставя от open source проекта Paho:
https://www.eclipse.org/paho/clients/js/
![Page 22: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/22.jpg)
Скалиране на MQTT брокери
При високи натоварвания се използва стратегия за създаване на мостове (bridges) между няколко MQTT брокера
По този начин може да се намали броя клиенти свързани към един брокер
![Page 23: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/23.jpg)
Публични MQTT брокери
Server Broker Port Websocket
iot.eclipse.org Mosquitto 1883 / 8883 80 / 443
test.mosquitto.org Mosquitto 1883 / 8883 / 8884 8080 / 8081
test.mosca.io Mosca 1883 80
broker.hivemq.com HiveMQ 1883 8000
broker.mqttdashboard.com HiveMQ 1883 8000
cloudmqtt.com Mosquitto 1xxxx 3xxxx
![Page 24: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/24.jpg)
MQTT клиенти
Paho предоставя имплементации на MQTT клиенти на C/C++, Java, JavaScript, Python and C#
http://www.eclipse.org/paho/
Node.js библиотека за MQTT клиенти:
https://www.npmjs.com/package/mqtt
MQTT библиотека за Arduino:
http://pubsubclient.knolleary.net/
![Page 25: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/25.jpg)
Java
Python
JavaScript
GoLang
C
.Net (C#)
Android service
Embedded C/C++
![Page 26: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/26.jpg)
За JavaScript и Node.js феновете...
Инсталация:
npm install mqtt --save
Пример:
![Page 27: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/27.jpg)
Демо
![Page 28: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/28.jpg)
Demo 1: Total game changer forInternet of Things ;)
![Page 29: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/29.jpg)
Демо 2: Проклятието на демото
Не работи точно, когато ти трябва!
![Page 30: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/30.jpg)
Демо 3: Терминалът
![Page 31: Как Internet of Things си говорят чрез MQTT и софтуер с отворен код?](https://reader034.vdocuments.site/reader034/viewer/2022042619/587bdcc31a28ab834d8b69ff/html5/thumbnails/31.jpg)
Въпроси?