Talaan ng mga Nilalaman:

MQTT sa Armtronix Boards: 3 Hakbang
MQTT sa Armtronix Boards: 3 Hakbang

Video: MQTT sa Armtronix Boards: 3 Hakbang

Video: MQTT sa Armtronix Boards: 3 Hakbang
Video: Zigbee USB стик Sonoff ZBDongle-E на EFR32MG21, сравнение с ZBDongle-P на CC2652P 2024, Hulyo
Anonim
MQTT sa Armtronix Boards
MQTT sa Armtronix Boards

Sa itinuturo na ito nais naming unang ipakita sa iyo kung paano mo magagamit ang isang sistemang nakabatay sa Linux (Debian o Ubuntu) at mai-install dito ang Mosquitto (Mqtt Broker), ipakita din sa iyo kung paano gamitin ang Mqtt client sa iyong Telepono (Android) / Linux Batay system, pagpapadala at pagtanggap ng mga mensahe sa pamamagitan ng Mqtt. Matapos pamilyar dito, nais naming ipakita sa iyo kung paano mo mai-configure at ikonekta ang aming board sa naka-install na Mqtt broker na ito. Nais ding ipakita sa iyo kung paano ka maaaring magdagdag ng pagpapatotoo sa Mqtt broker at ilang pangunahing mga tip at trick sa pag-debug. Kaya't magsimula tayo ………..

Hakbang 1: Pag-install ng Mqtt Broker:

Pag-install ng Mqtt Broker
Pag-install ng Mqtt Broker
Pag-install ng Mqtt Broker
Pag-install ng Mqtt Broker
Pag-install ng Mqtt Broker
Pag-install ng Mqtt Broker
Pag-install ng Mqtt Broker
Pag-install ng Mqtt Broker

Mayroong maraming mga Mqtt broker na maaari mong mai-install. Ang ilang mga kilala ay tulad ng nabanggit sa ibaba. Ang ilan sa mga ito ay mga serbisyo na nakabatay sa cloud.

  • HiveMQ
  • MosquittoCloud
  • MQTT
  • Adafruit.io

Ipapakita namin sa iyo kung paano i-install ang Mosquitto sa isang Linux based system (Ubuntu 18.04). Upang gawin ito unang idagdag ang Mosquitto sa listahan ng mapagkukunan ng ubuntu. Kapag ang Mosquitto ay magagamit sa mga repository ng Ubuntu magagawa mong i-install ito sa apt-get.

Magbukas lang ng isang Terminal. Upang buksan ang isang Terminal, pumunta sa Kaliwang sulok sa ibaba ng Ubuntu Desktop, Mag-click sa Ipakita ang application (Doted 3X3 grid). Magbubukas ang isang Window. Doon ka naghahanap para sa Terminal. Mag-click sa terminal na dapat mong makita ang isang window na bukas bilang palabas sa mga sumusunod na imahe.

  • Ipakita ang Application (Larawan 1).
  • Maghanap Para sa Terminal (Larawan 2).
  • Terminal Window (Larawan 3).

Ipasok ang mga sumusunod na utos pagkatapos mong buksan ang Terminal

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

sudo apt-get update

sudo apt-get install mosquitto

Maaari mo ring mai-install ang Mqtt client. Ang utos na gawin iyon ay magiging

sudo apt-get install Mosquitto-kliyente

Ang ilang mga imahe para sa iyong sanggunian

  • Pagdaragdag ng ppa (Larawan 4).
  • Ina-update ang repo (Larawan 5).
  • Pag-install ng Mosquitto (Larawan 6).
  • Pag-install ng Mosquitto Client (Larawan 7).

Hakbang 2: Pagsubok sa MQTT (Mosquitto)

Pagsubok sa MQTT (Mosquitto)
Pagsubok sa MQTT (Mosquitto)
Pagsubok sa MQTT (Mosquitto)
Pagsubok sa MQTT (Mosquitto)
Pagsubok sa MQTT (Mosquitto)
Pagsubok sa MQTT (Mosquitto)

Upang subukan ang mqtt sa pamamagitan ng ubuntu (parehong system o iba pang system) kailangan mong i-install ang mqtt client na na-install nang mas maaga ng utos sudo apt-get install mosquitto-kliyente. Kung sakaling nais mong subukan ito gamit ang isang mobile phone (android), maaari mong mai-install ang MyMqtt app mula sa play store.

Gumagana ang Mqtt sa isang bagay na tinatawag na Mga Paksa. Para sa kadalian ng pag-unawa isaalang-alang ang mga paksang ito bilang isang folder sa isang computer hard drive. Tratuhin natin ang computer na ito bilang isang computer server (na sa mundo ng mqtt ay isang Mqtt Broker). Sa server na ito isaalang-alang namin ang pagkakaroon ng isang folder.

Pangalan ng folder: / Folder_one /

Isaalang-alang natin ngayon ang dalawang tao mula sa dalawang magkakaibang mga system (PC / Laptop) na pag-access sa server na ito upang mabasa ang mga file o upang magpadala / magtapon ng mga file o gawin ang parehong operasyon.

Pangalanan namin ang dalawang tao / system bilang System X, System Y (Ito ang Mqtt Clients sa Mqtt World).

Ngayon, sabihin nating nagpapadala ang / System ng X ng ilang file (pangalan ng file: temperatura) sa folder na "/ Folder_one /", ito sa mundo ng mqtt maaari nating tawagan ang pag-publish na ito (nagpapadala kami ng ilang mensahe / kargamento sa halip na file).

Ngayon, sabihin nating nais ng System Y na makuha / mabasa ang file na ito o anumang bagong file o mag-update sa folder na ito, ang unang bagay na kailangan nito ay malaman ang pangalan at landas ng folder, na sa aming kaso ay "/ Folder_one /". Kaya't pupunta ito sa folder na ito at babasahin / tatanggapin ang file na iyon (pangalan ng file: temperatura). Ang pag-alam sa landas / Paksa at pag-check para sa mga pagbabago sa file / mga bagong file sa mundo ng Mqtt ay subscription sa paksang iyon.

Isinasaalang-alang ang halimbawa sa itaas, Nag-publish ang System X sa "/ Folder_one" at ang System Y ay nag-subscribe sa "/ Folder_one"

Tandaan din na ang System X ay maaari ring mag-subscribe sa "/ Folder_one" at ang System Y ay maaari ding mai-publish sa "/ Folder_one". Tulad ng matalino kahit na ang sistema ng Server (Ang Mqtt Broker) ay maaaring mag-publish / mag-subscribe sa "/ Folder_one" sa pamamagitan ng pag-install ng Mqtt client dito tulad ng nagawa namin sa kasalukuyan. Ang iba pang bagay na dapat tandaan ay upang mai-publish o mag-subscribe sa isang paksa na kakailanganin mong malaman ang IP address ng Mqtt Broker.

Una ay susubukan namin ito sa pamamagitan ng client ng ubuntu na naka-install sa parehong system tulad ng broker. Magbubukas kami ng dalawang mga terminal windows na isa sa mga ito ay mai-publish at ang iba pa ay mag-subscribe dito. Para sa halimbawa Gagamitin namin / Folder_one bilang paksa. Bago ang pub / sub sa isang paksa kailangan mong hanapin ang IP address ng ubuntu. Upang gawin ang pag-click na ito sa kanang sulok sa tuktok ng screen, piliin ang setting ng wifi, mula roon ay mahahanap mo ang IP address ng ubuntu system (kasalukuyang ang broker IP). Ibinahagi ang Screenshort para sa sanggunian (Larawan 8).

O upang makahanap ng IP address ng broker maaari kang makahanap ng IP address sa pamamagitan ng pag-install ng mga net tool gamit ang sumusunod na utos sa terminal

sudo apt mag-install ng mga net-tool

Pag-install ng mga net-tool (Larawan 9). Pagkatapos nito i-type lamang ang utos ipconfig makakakuha ka ng isang listahan ng interface ng network sa mac at IP address

sudo ipconfig

Ang IP address ng aking system ay 192.168.1.67 (Larawan 10)

Upang mai-publish

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m pub_to_folderone

Dito, ang mosquitto_pub ay ang utos, na sinusundan ng elemento ng pagkakakilala ng parameter -h na host / broker IP address (Sa aming kaso 192.168.1.67), na sinusundan ng -t na kung saan ay pangalan ng paksa sa publisher (Sa aming kaso / Folder_one), na sinusundan ng -m na nangangahulugang ipapadala ang mensahe / payload na (Sa aming kaso ay pub_to_folderone).

Para mag-subscribe

mosquitto_sub -h 192.168.1.67 -t / Folder_one

Ipinadala ang mensahe ng publisher: pub_to_folderone

Halimbawa para sa pag-publish

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"

Halimbawa para sa natanggap na tugon sa pag-subscribe sa paksa

mosquitto_sub -h 192.168.1.67 -t / Folder_one

Ipinadala ang mensahe ng publisher:

  • pub_to_folderone
  • hi test mqtt
  • mqtt nagtatrabaho

Pub Sub sa dalawang magkakahiwalay na window ng terminal na magkakatabi (Larawan 11)

Pagsubok Mqtt sa android (my mqtt)

I-install ang mymqtt app mula sa play store sa iyong Android phone (Larawan 12)

Buksan ang app at mag-click sa kaliwang tuktok na sulok (Larawan 13, Larawan 14).

Mag-click sa Mga Setting at ipasok ang address ng broker IP, ang port sa pamamagitan ng default ay magiging 1883. Sa kasalukuyan hindi kami gumagamit ng napatunayan na mqtt broker kaya't ang pangalan ng gumagamit at password ay magiging blangko. I-save lamang ito at muling mag-click sa kaliwang tuktok na sulok ng app (<Mga Setting) ang drawer ay muling bubuksan (Larawan 15).

Sa tuktok ng drawer ipapakita nito sa iyo ang broker IP address at i-port ang app na konektado sa (Larawan 16).

Idagdag ngayon ang paksang nais mong mag-subscribe sa pamamagitan ng pag-click sa Mag-subscribe. Dito ay idaragdag namin ang paksa bilang / Folder_one (Larawan 17, Larawan 18).

Matapos gawin ito, mula sa system ng ubuntu sa pamamagitan ng paggamit ng terminal ay mai-publish namin ang paksa. Sa pag-publish dapat mong makuha ang payload / mensahe na nai-publish sa mobile app na ito. Halimbawa ng paglalathala ng kargamento bilang "ARM -Automation Robotics & Mechatronics". Ang utos ay tulad ng nabanggit nang mas maaga.

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m "ARM -Automation Robotics & Mechatronics"

pag-publish mula sa ubuntu system (Larawan 19).

Natanggap ang nai-publish na mensahe sa dashboard (Larawan 20).

Ngayon ay i-publish natin mula sa android phone (Aking mqtt) at mag-subscribe sa ubuntu system. Para sa halimbawang ito ginagamit namin ang paksang "/ mymqtt_to_pub".

Upang magawa ito, buksan muna ang isang terminal mula sa iyong ubuntu system at mag-subscribe sa paksang "/ mymqtt_to_pub" gamit ang sumusunod na utos (Larawan 21)

mosquitto_sub -h 192.168.1.67 -t / mymqtt_to_pub

Pumunta ngayon sa drawer ng mymqtt app at mag-click sa i-publish. Idagdag ang paksa sa pag-publish (Sa aming kaso ito ay "/ mymqtt_to_pub") at magpadala ng ilang mensahe tulad ng ipadala namin ang "hi Ubuntu", pindutin ang send button (Larawan 22, Larawan 23).

Dapat lumitaw ang mensahe sa iyong terminal window ng ubuntu system (Larawan 24).

Tandaan na ang parehong sistema ng ubuntu at ang android phone ay dapat na nasa parehong network o port 1883 ay dapat na mailantad at dapat mong malaman ang IP address ng iyong router / gateway para gumana ang mqtt. Kung nais mong magdagdag ng pagpapatotoo sa iyong mqtt broker magagawa mo ito sa pamamagitan ng pagsunod sa nabanggit na link sa blog na https:// Medium.com/@eranda/setting-up-authenticat… Sundin mula sa hakbang sa dalawang blog na ito. Pinapagana namin ang pagpapatotoo ng aming broker at gagamitin ang napatunayan na broker para sa aming mga board.

Hakbang 3: Paggawa Sa Armtronix Board & Mqtt

Nagtatrabaho Sa Armtronix Board at Mqtt
Nagtatrabaho Sa Armtronix Board at Mqtt
Nagtatrabaho Sa Armtronix Board at Mqtt
Nagtatrabaho Sa Armtronix Board at Mqtt
Nagtatrabaho Sa Armtronix Board at Mqtt
Nagtatrabaho Sa Armtronix Board at Mqtt

Kasalukuyan para sa itinuturo na ito, ginagamit namin ang aming Wifi Single Dimmer Board na gumagamit ng Triac upang i-chop ang sine wave at sa turn dims bombilya o kontrolin ang bilis ng fan. Gayundin nakakonekta namin ito sa pamamagitan ng mqtt uri ng pagpapatotoo.

Sa una ay na-configure namin ang board. Ang mga hakbang upang mai-configure ito ay tulad ng nabanggit sa ibaba.

Power Sa board, magsisimula itong mag-host ng isang Wifi Access Point.

Ang paggamit ng isang android phone o laptop ay kumonekta sa AP na ito (Larawan 25).

Kapag Nakakonekta sa ganitong uri ng AP 192.168.4.1 sa pamamagitan ng pagbubukas ng isang browser (chrome / firefox) mula sa konektadong AP system / Telepono. Tiyaking hindi mo ginagamit ang iyong koneksyon ng data (3G / 4G).

Sa pag-type ng IP, magbubukas ang isang webpage kung saan dapat ipasok ang sumusunod (Larawan 26).

  • SSID: Pangalan ng Wifi AP.
  • Password: SSID Password.
  • IoT mode Mqtt o Http (Piliin ang Mqtt).
  • Mqtt Broker IP (Sa aming kaso ito ay 192.168.1.67).
  • Mqtt pangalan ng gumagamit at password, habang gumagamit kami ng uri ng pagpapatotoo, ginamit namin ang Naren, xxxx
  • Mqtt i-publish ang paksa: Ito ay magiging sa aling paksa ang nai-publish din ng lupon, ginamit namin / testpub.
  • Paksa ng pag-subscribe sa Mqtt: Ito ay magiging sa aling paksa ang pakikinig ng board para sa mga utos na mag-uudyok ng triac, ginamit namin / testub.
  • Pangalan ng aparato: Ito ang pangalan na iyong tinawag upang i-Alexa para sa pag-trigger ng board, gumamit kami ng corvi.

Matapos ipasok ang mga detalye, Pindutin ang pindutan ng isumite, sa paggawa nito makakakuha ka ng isang screen tulad ng ipinakita sa Imahe 27, maghintay ng ilang oras hanggang sa ihinto ng board ang pag-host sa AP.

Mangyaring tandaan na nakakonekta namin ang aming board sa pamamagitan ng Uart sa serial monitor ng Arduino IDE. Kaya sa kaliwang bahagi makikita mo ang mga mensahe ng pag-debug na na-print nito sa pamamagitan ng Uart (para lamang ito sa iyong sanggunian).

Kapag tapos na ito maaari mong tingnan ang screen ng pag-debug. Karamihan sa mga detalye ay makikita doon. Pagkatapos nito, matagumpay itong makakakonekta sa broker sa debug (serial) na screen na makikita mo ito.

Nakakonekta sa MQTT broker na may pagpapatotoo. Naka-subscribe sa paksa 1.

Matapos itong mai-print ito maaari mo na ngayong simulang ipadala ito sa mga utos sa pamamagitan ng mqtt sa paksang nai-subscribe ito sa ibig sabihin / tesub /

Para sa mga utos sa board na ito ay:

  • R13_ON: Upang i-on ang triac sa 100%.
  • R13_OFF: Upang i-off ang triac sa 0%.
  • Dimmer: xx: Kung saan, ang xx ay ang dimming na halaga at maaaring maiiba mula 0 hanggang 99.
  • I-reset: Upang i-clear ang pagsasaayos ng board.
  • Katayuan: I-print ang dimmer status ng board sa paksa ng pag-publish ng board.

Upang maipadala ang utos na ito mula sa isang batay sa system ng ubuntu kung saan naka-install ang mqtt client, i-type lamang ito bilang palabas sa ibaba. Dalawang karagdagang mga parameter ang naidagdag dito dahil sa pagpapatotoo - ibig sabihin - alin ang pangalan ng gumagamit at -P ang password, mangyaring tandaan na ang mga ito ay sensitibo sa kaso.

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

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testub -m R13_OFF

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / tesub -m Dimmer: 50

Tandaan: 50 ang dimmer na halaga

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

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testub -m Katayuan

Para sa pinakabagong katayuan, ang katayuan ay nai-print sa paksa ng pag-publish ng lupon na sa aming kaso ay / testpub. Sa aming board ang anumang pagbabago sa aparato ay nai-print sa paksa ng pag-publish ng lupon. Halimbawa, kung pumasa kami sa Dimmer: 50 sa board na naka-subscribe na paksa kaysa sa pisikal na pagpapatupad nito, magpapadala ang board ng isang mensahe na nagsasaad ng dimmed level sa paksa ng pag-publish. Ang halimbawa ay ipinapakita sa ibaba, Upang mag-subscribe mula sa iyong system ng ubuntu sa paksa ng pag-publish ng board ipasok ang sumusunod na utos

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

mensahe na nakukuha namin ay

DimmerIS50

ang ilang mga shorts na pantay ng pareho ay nasa ibaba (Larawan 28, Larawan 29)

Inirerekumendang: