Мазмуну:

Armtronix такталарында MQTT: 3 кадам
Armtronix такталарында MQTT: 3 кадам

Video: Armtronix такталарында MQTT: 3 кадам

Video: Armtronix такталарында MQTT: 3 кадам
Video: Диммер на Tiny85 Управляем из приложений 2024, Июль
Anonim
Armtronix такталарында MQTT
Armtronix такталарында MQTT

Бул көрсөтмөдө биз башында Linux (Debian же Ubuntu) негизделген системаны кантип колдоно алаарыңызды жана ага Mosquitto (Mqtt Broker) орнотууну, ошондой эле Mqtt кардарын телефонуңузда (Android)/ Linux негизинде кантип колдонууну көрсөтүүнү каалайбыз. системасы, Mqtt аркылуу билдирүүлөрдү жөнөтүү жана алуу. Бул менен таанышкандан кийин, биз бул орнотулган Mqtt брокери менен биздин тактаны кантип конфигурациялап, туташтыра алаарыңызды көрсөткүбүз келет. Ошондой эле сиз Mqtt брокерине аутентификацияны кантип кошо алаарыңызды жана мүчүлүштүктөрдү оңдоонун негизги кеңештерин жана ыкмаларын көрсөткүм келет. Андыктан баштайлы ………

1 -кадам: Mqtt Брокерин орнотуу:

Mqtt Broker орнотуу
Mqtt Broker орнотуу
Mqtt Broker орнотуу
Mqtt Broker орнотуу
Mqtt Broker орнотуу
Mqtt Broker орнотуу
Mqtt Broker орнотуу
Mqtt Broker орнотуу

Сиз орното турган бир нече Mqtt брокерлери бар. Кээ бирлери төмөндө айтылгандай. Алардын айрымдары булутка негизделген кызматтар.

  • HiveMQ
  • MosquittoCloud
  • MQTT
  • Adafruit.io

Биз сизге Mosquitto -ны Linux негизиндеги системага (Ubuntu 18.04) кантип орнотууну көрсөтөбүз. Бул үчүн адегенде Mosquitto ubuntu булактарынын тизмесине кошулат. Mosquitto Ubuntu репозиторийлеринде болгондон кийин, сиз аны apt-get менен орното аласыз.

Терминалды ачыңыз. Терминалды ачуу үчүн, Ubuntu Desktopтун сол жактагы төмөнкү бурчуна өтүңүз, Колдонмону көрсөтүүнү басыңыз (3X3 чекиттүү чекит). Терезе ачылат. Ал жерден сиз Терминалды издейсиз. Терминалды чыкылдатыңыз, сиз төмөнкү сүрөттөрдө ачылган терезени көрө аласыз.

  • Колдонмону көрсөтүү (1 -сүрөт).
  • Терминалды издөө (2 -сүрөт).
  • Терминал терезеси (3 -сүрөт).

Терминалды ачкандан кийин төмөнкү буйруктарды киргизиңиз

sudo apt-add-repository ppa: чиркей-dev/mosquitto-ppa

sudo apt-get update

sudo apt-get чиркейди орнотуңуз

Сиз ошондой эле Mqtt кардарын орното аласыз. Буга буйрук болот

sudo apt-get чиркей-кардарларды орнотуңуз

Маалымат үчүн кээ бир сүрөттөр

  • Ppa кошуу (Image 4).
  • Репо жаңыртылууда (5 -сүрөт).
  • Mosquitto орнотуу (6 -сүрөт).
  • Mosquitto Кардарын орнотуу (Image 7).

2 -кадам: MQTT (Mosquitto) тестирлөө

MQTT (Mosquitto) тестирлөө
MQTT (Mosquitto) тестирлөө
MQTT (Mosquitto) тестирлөө
MQTT (Mosquitto) тестирлөө
MQTT (Mosquitto) тестирлөө
MQTT (Mosquitto) тестирлөө

Mqttти ubuntu (ошол эле система же башка система) аркылуу текшерүү үчүн мурда sudo apt-get install mosquitto-clients буйругу менен орнотулган mqtt клиентин орнотушуңуз керек. Эгерде сиз аны уюлдук телефондун (андроид) жардамы менен сынап көргүңүз келсе, MyMqtt тиркемесин оюн дүкөнүнөн орнотсоңуз болот.

Mqtt Темалар деп аталган нерсенин үстүндө иштейт. Түшүнүүнүн оңой болушу үчүн бул темаларды компьютердин катуу дискиндеги папка катары карап көрүңүз. Келгиле, бул компьютерге компьютердик сервер катары мамиле кылалы (mqtt дүйнөсүндө Mqtt брокери). Бул серверде бир папкага ээ болууну карап көрөлү.

Папканын аты: /Folder_one /

Эми келгиле, бул серверге кирген эки башка системадан (PC/ноутбук) эки адамды карап көрөлү же файлдарды окуу үчүн, же файлдарды жөнөтүү/төгүү үчүн же экөөнү тең иштетүү үчүн.

Биз эки кишини/системаны System X, System Y деп атайбыз (Бул Mqtt дүйнөсүндөгү Mqtt кардарлары).

Эми, айталы, System X кандайдыр бир файлды (файлдын аталышы: температурасы) “/Folder_one/” папкасына жөнөтөт/төгөт, бул mqtt дүйнөсүндө биз бул жарыялоону атай алабыз (биз файлдын ордуна кээ бир билдирүүлөрдү/жүктөрдү жөнөтөбүз).

Эми, Y системасы бул файлды же кандайдыр бир жаңы файлды алууну/окууну же бул папкада жаңыртууну каалайт дейли, биринчи кезекте папканын атын жана жолун билүү керек, ал биздин учурда "/Folder_one/". Ошентип, азыр ал бул папкага барып, ошол файлды окуйт/алат (файлдын аталышы: температура). Жол/Теманы билүү жана Mqtt дүйнөсүндөгү файлдын/жаңы файлдардын өзгөрүшүн текшерүү - бул темага жазылуу.

Жогорудагы мисалды эске алып, Система X "/Folder_one" га жарыяланууда жана Y системасы "/Folder_one" га жазылды

Ошондой эле X системасы "/Folder_one" га жазыла алат, ал эми System Y дагы "/Folder_one" га жарыялай алат. Акылдуу болгондой эле, Server системасы да (The Mqtt Broker) Mqtt кардарын ага орнотуу аркылуу "/Folder_one" га жарыялай алат/жазыла алат. Эстен чыгарбоо керек болгон нерсе - Mqtt Brokerдин IP дарегин билишиңиз керек болгон теманы жарыялоо же жазылуу.

Биринчиден, биз аны брокер сыяктуу эле системада орнотулган ubuntu кардары аркылуу текшеребиз. Биз эки терминалдык терезени ачабыз, бири жарыялайт, экинчиси ага жазылат. Мисалы үчүн биз /Folder_one темасын колдонобуз. Пабга/темага кирүүдөн мурун ubuntuнун IP дарегин табышыңыз керек болот. Бул үчүн, экрандын жогорку оң бурчуна чыкылдатыңыз, wifi орнотуусун тандаңыз, ал жерден ubuntu системасынын IP дарегин таба аласыз (учурда брокер IP). Screenshort маалымдама үчүн бөлүшүлгөн (8 -сүрөт).

Же брокердин IP дарегин табуу үчүн терминалда төмөнкү буйрукту колдонуу менен таза инструменттерди орнотуу менен IP дарегин таба аласыз

sudo apt 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 -буйрук, андан кийин -хосттун /брокердин 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 “hi test mqtt”

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m “mqtt working”

Темага жазылуу боюнча алынган жооптордун мисалы

mosquitto_sub -h 192.168.1.67 -t /Folder_one

Басмакана жөнөткөн билдирүү:

  • pub_to_folderone
  • салам тест mqtt
  • mqtt иштеп жатат

Pub Sub эки башка терминал терезесинде жанаша (Image 11)

Androidде Mqttти тестирлөө (менин mqtt)

Mymqtt колдонмосун андроид телефонуңузга Play Storeдон орнотуңуз (Сүрөт 12)

Колдонмону ачыңыз жана жогорку сол бурчун басыңыз (Сүрөт 13, Сүрөт 14).

Орнотууларды чыкылдатыңыз жана брокердин IP дарегин киргизиңиз, порт демейки боюнча 1883 болот. Учурда биз аутентификацияланган mqtt брокерин колдонбойбуз, андыктан колдонуучунун аты жана сырсөзү бош калат. Жөн гана аны сактап, кайра колдонмонун жогорку сол бурчун чыкылдатыңыз (<Орнотуулар), тартма кайра ачылат (Сүрөт 15).

Тартманын үстүндө ал сизге брокердин IP дарегин жана колдонмонун туташкан портун көрсөтөт (Сүрөт 16).

Эми жазылууну каалаган теманы жазылууну басыңыз. Бул жерде биз теманы /Folder_one катары кошобуз (Image 17, Image 18).

Муну аткаргандан кийин, ubuntu системасынан терминалды колдонуу менен биз темага жарыялайбыз. Жарыялоодо сиз бул мобилдик колдонмодо жарыяланган пайдалуу жүктү/билдирүүнү алышыңыз керек. Мисалы, жүктү "ARM -Automation Robotics & Mechatronics" деп жарыялоо. Команда мурда айтылгандай.

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m “ARM -Автоматтык робототехника жана мехатроника”

ubuntu системасынан жарыялоо (Сүрөт 19).

Панелде жарыяланган билдирүү алынды (Image 20).

Эми андроид телефондон (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 системасы да, андроид телефону да бир тармакта болушу керек же 1883 портунда ачык болушу керек жана mqtt иштеши үчүн роутериңиздин/шлюзуңуздун IP дарегин билишиңиз керек. Эгерде сиз 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 тактасын колдонобуз, ал синус толкунун кесүү үчүн Триакты колдонот жана өз кезегинде лампочканы өчүрөт же желдеткичтин ылдамдыгын көзөмөлдөйт. Ошондой эле биз аны mqtt аутентификация түрү аркылуу байланыштырдык.

Башында биз тактаны конфигурацияладык. Аны конфигурациялоо кадамдары төмөндө айтылгандай.

Тактада Wifi кирүү чекити башталат.

Android телефонун же ноутбугун колдонуу менен бул APге туташыңыз (25 -сүрөт).

Бул APга 192.168.4.1 түрүнө туташкандан кийин, AP туташкан тутумдан/Телефондон браузерди (chrome/firefox) ачуу менен. Маалымат байланышыңызды колдонбогонуңузду текшериңиз (3G/4G).

IP терип жатканда, төмөнкү киргизилиши керек болгон веб -баракча ачылат (Сүрөт 26).

  • SSID: Wifi AP аты.
  • Сырсөз: SSID сырсөзү.
  • IoT режими Mqtt же Http (Mqtt тандоо).
  • Mqtt Broker IP (Биздин учурда бул 192.168.1.67).
  • Mqtt колдонуучунун аты жана сырсөзү, биз аутентификация түрүн колдонуп жаткандыктан, биз Naren, xxxxти колдондук
  • Mqtt жарыялоо темасы: Бул такта кайсы темада чыгат, биз /testpub колдонгон болобуз.
  • Mqtt жазылуу темасы: Бул тактаны иштетүү үчүн буйруктарды такта угуучу кайсы темада болот, биз /testsub колдонгонбуз.
  • Түзмөктүн аты: Бул тактаны иштетүү үчүн alexa'га чакырган ысым, биз corvi колдондук.

Чоо -жайын киргизгенден кийин, тапшыруу баскычын басыңыз, муну менен сиз 27 -сүрөттө көрсөтүлгөндөй экранга ээ болосуз, такта APди кабыл алууну токтотмойунча бир аз күтө туруңуз.

Белгилей кетсек, биз тактайыбызды Uart аркылуу Arduino IDE сериялык мониторуна туташтырдык. Ошентип, сол жагында сиз Uart аркылуу басып чыгарган мүчүлүштүктөрдү көрө аласыз (бул сиздин маалыматыңыз үчүн).

Бул бүткөндөн кийин сиз мүчүлүштүктөрдү оңдоо экранын көрө аласыз. Деталдардын көбү ошол жерде көрүнөт. Андан кийин, ал брокерге мүчүлүштүктөрдү оңдоо (сериялык) экранында туташат, муну көрө аласыз.

Аутентификация менен MQTT брокерине туташты. 1 -темага жазылдым.

Муну басып чыгаргандан кийин, азыр жазыла турган темада mqtt аркылуу буйруктарды жөнөтө баштасаңыз болот, башкача айтканда /testsub /

Бул үчүн комиссиянын буйруктары:

  • R13_ON: Триакты 100%күйгүзүү үчүн.
  • R13_OFF: триаканы 0%га өчүрүү үчүн.
  • Dimmer: xx: Бул жерде, xx - күңүрт мааниси жана 0дөн 99га чейин өзгөрүшү мүмкүн.
  • Баштапкы абалга келтирүү: тактанын конфигурациясын тазалоо үчүн.
  • Статус: Тактанын жарыялоо темасындагы тактанын күңүрт абалын басып чыгарыңыз.

Бул буйрукту mqtt клиенти орнотулган ubuntu негизделген системадан жөнөтүү үчүн, аны төмөндө көрсөтүлгөндөй териңиз. Аутентификациядан улам бул жерге эки кошумча параметр кошулган -б.а. -колдонуучунун аты жана -P -сырсөз, булар чоң -кичине экенин эске алыңыз.

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Naren -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 Naren -P xxxx -t /testsub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m Status

Акыркы статус үчүн, статус биздин учурда /testpub болгон тактанын жарыялоо темасында басылып чыгат. Биздин тактада түзмөктөгү ар кандай өзгөрүү тактанын жарыялоо темасында басылып чыгат. Мисалы, эгерде биз Dimmer: 50 жазылуу темасында физикалык түрдө аткарууга караганда өтсөк, такта жарыялоо темасынын күңүрт деңгээлин билдирген билдирүү жөнөтөт. Мисал төмөндө көрсөтүлгөн, Ubuntu системаңыздан тактанын жарыялоо темасына жазылуу үчүн төмөнкү буйрукту киргизиңиз

mosquitto_sub -h 192.168.1.67 -u Naren -P xxxx -t /testpub

биз алган кабар

DimmerIS50

ошол эле бир нече экран шорты төмөндө (Сүрөт 28, Сүрөт 29)

Сунушталууда: