Spisu treści:

MQTT na płytach Armtronix: 3 kroki
MQTT na płytach Armtronix: 3 kroki

Wideo: MQTT na płytach Armtronix: 3 kroki

Wideo: MQTT na płytach Armtronix: 3 kroki
Wideo: Edge Computing - co zyskasz dzięki protokołowi MQTT? 2024, Lipiec
Anonim
MQTT na płytach Armtronix
MQTT na płytach Armtronix

W tej instrukcji chcielibyśmy najpierw pokazać, jak korzystać z systemu opartego na Linuksie (Debian lub Ubuntu) i zainstalować na nim Mosquitto (Mqtt Broker), a także pokazać, jak korzystać z klienta Mqtt na telefonie (Android) / opartym na Linuksie system, wysyłanie i odbieranie wiadomości za pośrednictwem Mqtt. Po zapoznaniu się z tym, chcielibyśmy pokazać, jak możesz skonfigurować i połączyć naszą płytę z tym zainstalowanym brokerem Mqtt. Chciałbym również pokazać, jak można dodać uwierzytelnianie do brokera Mqtt oraz kilka podstawowych wskazówek i trików dotyczących debugowania. Więc zacznijmy ………..

Krok 1: Instalacja brokera Mqtt:

Instalowanie brokera Mqtt
Instalowanie brokera Mqtt
Instalowanie brokera Mqtt
Instalowanie brokera Mqtt
Instalowanie brokera Mqtt
Instalowanie brokera Mqtt
Instalowanie brokera Mqtt
Instalowanie brokera Mqtt

Istnieje wiele brokerów Mqtt, których możesz zainstalować. Niektóre znane są wymienione poniżej. Niektóre z nich to usługi oparte na chmurze.

  • HiveMQ
  • MosquittoChmura
  • MQTT
  • Adafruit.io

Pokażemy Ci, jak zainstalować Mosquitto na systemie opartym na Linuksie (Ubuntu 18.04). Aby to zrobić, najpierw dodaj Mosquitto do listy źródeł Ubuntu. Gdy Mosquitto będzie dostępne w repozytoriach Ubuntu, będziesz mógł go zainstalować za pomocą apt-get.

Po prostu otwórz Terminal. Aby otworzyć terminal, przejdź do lewego dolnego rogu pulpitu Ubuntu, kliknij Pokaż aplikację (siatka Doted 3X3). Otworzy się okno. Tam szukasz Terminala. Kliknij terminal, powinieneś zobaczyć otwarte okno, jak pokazano na poniższych obrazach.

  • Pokaż aplikację (zdjęcie 1).
  • Wyszukaj terminal (zdjęcie 2).
  • Okno terminala (zdjęcie 3).

Wprowadź następujące polecenia po otwarciu Terminala

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

aktualizacja sudo apt-get

sudo apt-get install mosquitto

Możesz także zainstalować klienta Mqtt. Polecenie, aby to zrobić, będzie

sudo apt-get install mosquitto-clients

Niektóre obrazy w celach informacyjnych

  • Dodawanie ppa (zdjęcie 4).
  • Aktualizacja repozytorium (zdjęcie 5).
  • Instalowanie Mosquitto (zdjęcie 6).
  • Instalowanie klienta Mosquitto (zdjęcie 7).

Krok 2: Testowanie MQTT (Mosquitto)

Testowanie MQTT (Mosquitto)
Testowanie MQTT (Mosquitto)
Testowanie MQTT (Mosquitto)
Testowanie MQTT (Mosquitto)
Testowanie MQTT (Mosquitto)
Testowanie MQTT (Mosquitto)

Aby przetestować mqtt przez ubuntu (ten sam system lub inny system), musisz zainstalować klienta mqtt, który został zainstalowany wcześniej za pomocą polecenia sudo apt-get install mosquitto-clients. Jeśli chcesz przetestować go za pomocą telefonu komórkowego (Android), możesz zainstalować aplikację MyMqtt ze sklepu Play.

Mqtt pracuje nad czymś, co nazywa się Tematami. Aby ułatwić zrozumienie, rozważ te tematy jako foldery na dysku twardym komputera. Potraktujmy ten komputer jako serwer komputerowy (który w świecie mqtt jest brokerem Mqtt). Na tym serwerze rozważmy posiadanie jednego foldera.

Nazwa folderu: /Folder_jeden/

Rozważmy teraz dwie osoby z dwóch różnych systemów (PC/Laptop) uzyskujące dostęp do tego serwera w celu odczytania plików lub wysłania/zrzucenia plików lub wykonania obu operacji.

Nazwiemy dwie osoby/system jako System X, System Y (Są to klienci Mqtt w świecie Mqtt).

Teraz powiedzmy, że System X wysyła/zrzuca jakiś plik (nazwa pliku: temperatura) do folderu „/Folder_one/”, to w świecie mqtt możemy nazwać tym publikowaniem (wysyłamy wiadomość/ładunek zamiast pliku).

Teraz powiedzmy, że System Y chce pobrać/odczytać ten plik lub dowolny nowy plik lub zaktualizować ten folder, pierwszą rzeczą, jakiej potrzebuje, jest znajomość nazwy folderu i ścieżki, która w naszym przypadku to „/Folder_one/”. Więc teraz przejdzie do tego folderu i odczyta/odbierze ten plik (nazwa pliku: temperatura). Znajomość ścieżki/tematu i sprawdzanie zmian w pliku/nowych plikach w świecie Mqtt jest subskrypcją tego tematu.

Biorąc pod uwagę powyższy przykład, System X publikuje w „/Folder_one”, a System Y subskrybuje „/Folder_one”

Należy również pamiętać, że System X może również subskrybować „/ Folder_one”, a System Y może również publikować w „/ Folder_one”. Mądrze, nawet system serwera (The Mqtt Broker) może publikować/subskrybować „/Folder_one”, instalując na nim klienta Mqtt, tak jak robiliśmy to obecnie. Inną rzeczą do zapamiętania jest opublikowanie lub zasubskrybowanie tematu, w którym musisz znać adres IP brokera Mqtt.

Najpierw przetestujemy go za pomocą klienta ubuntu, który jest zainstalowany w tym samym systemie, co broker. Otworzymy dwa okna terminala, z których jedno opublikuje, a drugie zasubskrybuje. Na przykład użyjemy /Folder_one jako tematu. Zanim publikujesz/subskrybujesz temat, musisz znaleźć adres IP ubuntu. Aby to zrobić, kliknij w prawym górnym rogu ekranu, wybierz ustawienia wifi, stamtąd będziesz mógł znaleźć adres IP systemu ubuntu (obecnie IP brokera). Zrzut ekranu udostępniony w celach informacyjnych (zdjęcie 8).

Lub, aby znaleźć adres IP brokera, możesz znaleźć adres IP, instalując narzędzia sieciowe za pomocą następującego polecenia w terminalu

sudo apt install net-tools

Instalowanie narzędzi sieciowych (zdjęcie 9). Następnie wpisz polecenie ipconfig, a otrzymasz listę interfejsów sieciowych z adresem mac i adresem IP

sudo ipconfig

Adres IP mojego systemu to 192.168.1.67 (zdjęcie 10)

Opublikować

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m pub_to_folderone

W tym przypadku mosquitto_pub to polecenie, po którym następuje element identyfikatora parametru -h, który jest adresem IP hosta/brokera (w naszym przypadku 192.168.1.67), po którym następuje -t, czyli nazwa tematu do wydawcy (w naszym przypadku /Folder_one), po którym następuje -m co oznacza wiadomość/ładunek do wysłania (w naszym przypadku jest to pub_to_folderone).

Subskrybować

mosquitto_sub -h 192.168.1.67 -t /Folder_one

Wiadomość wysłana przez wydawcę: pub_to_folderone

Przykład do publikacji

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m „cześć test mqtt”

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m „mqtt działa”

Przykład odpowiedzi otrzymanej po zapisaniu się do tematu

mosquitto_sub -h 192.168.1.67 -t /Folder_one

Wiadomość wysłana przez wydawcę:

  • pub_to_folderone
  • cześć test mqtt
  • mqtt działa

Pub Sub w dwóch oddzielnych oknach terminala obok siebie (zdjęcie 11)

Testowanie Mqtt na Androidzie (mój mqtt)

Zainstaluj aplikację mymqtt ze sklepu Play na telefonie z Androidem (zdjęcie 12)

Otwórz aplikację i kliknij w lewym górnym rogu (zdjęcie 13, zdjęcie 14).

Kliknij Ustawienia i wprowadź adres IP brokera, domyślnie port to 1883. Obecnie nie używamy uwierzytelnionego brokera mqtt, więc nazwa użytkownika i hasło będą puste. Wystarczy go zapisać i ponownie kliknąć w lewym górnym rogu aplikacji (< Ustawienia) szuflada otworzy się ponownie (zdjęcie 15).

W górnej części szuflady pokaże adres IP brokera i port, do którego jest podłączona aplikacja (zdjęcie 16).

Teraz dodaj temat, który chcesz subskrybować, klikając Subskrybuj. Tutaj dodamy temat jako /Folder_one (Obraz 17, Obraz 18).

Po wykonaniu tej czynności z systemu ubuntu za pomocą terminala opublikujemy w temacie. Po opublikowaniu powinieneś otrzymać ładunek/wiadomość opublikowaną w tej aplikacji mobilnej. Na przykład publikowanie ładunku jako „ARM -Automation Robotics & Mechatronics”. Dowództwo jest jak wspomniano wcześniej.

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m „ARM -Automatyka Robotyka i Mechatronika”

publikowanie z systemu Ubuntu (zdjęcie 19).

Otrzymano opublikowaną wiadomość na desce rozdzielczej (zdjęcie 20).

Teraz opublikujmy z telefonu z Androidem (Mój mqtt) i zasubskrybujmy w systemie ubuntu. W tym przykładzie używamy tematu „/mymqtt_to_pub”.

Aby to zrobić, najpierw otwórz terminal z systemu ubuntu i zasubskrybuj temat „/ mymqtt_to_pub” za pomocą następującego polecenia (Obraz 21)

mosquitto_sub -h 192.168.1.67 -t /mymqtt_to_pub

Teraz przejdź do szuflady aplikacji mymqtt i kliknij publikuj. Dodaj temat publikacji (w naszym przypadku jest to „/mymqtt_to_pub”) i wyślij wiadomość, że wyślemy „hi Ubuntu”, naciśnij przycisk wysyłania (obrazek 22, obrazek 23).

Wiadomość powinna pojawić się w oknie terminala systemu ubuntu (zdjęcie 24).

Zwróć uwagę, że zarówno system ubuntu, jak i telefon z Androidem powinny znajdować się w tej samej sieci lub port 1883 powinien być ujawniony i powinieneś znać adres IP routera/bramy, aby mqtt działał. Jeśli chcesz dodać uwierzytelnianie do swojego brokera mqtt, możesz to zrobić, klikając poniższy link do bloga https://medium.com/@eranda/setting-up-authenticat… Postępuj zgodnie z drugim krokiem tego bloga. Włączyliśmy uwierzytelnianie naszego brokera i będziemy używać uwierzytelnionego brokera dla naszych tablic.

Krok 3: Praca z płytą Armtronix i Mqtt

Praca z płytą Armtronix i Mqtt
Praca z płytą Armtronix i Mqtt
Praca z płytą Armtronix i Mqtt
Praca z płytą Armtronix i Mqtt
Praca z płytą Armtronix i Mqtt
Praca z płytą Armtronix i Mqtt

Obecnie do tego instruktażu używamy naszej Wifi Single Dimmer Board, która używa triaka do cięcia fali sinusoidalnej, a z kolei ściemnia żarówkę lub kontroluje prędkość wentylatora. Połączyliśmy go również poprzez typ uwierzytelniania mqtt.

Wstępnie skonfigurowaliśmy płytkę. Kroki konfiguracji są wymienione poniżej.

Włącz na płycie, rozpocznie się hostowanie punktu dostępu Wi-Fi.

Za pomocą telefonu z systemem Android lub laptopa połącz się z tym punktem dostępowym (zdjęcie 25).

Po połączeniu z tym AP wpisz 192.168.4.1, otwierając przeglądarkę (chrome/firefox) z podłączonego systemu/telefonu. Upewnij się, że nie korzystasz z połączenia danych (3G/4G).

Po wpisaniu adresu IP otworzy się strona internetowa, na której należy wprowadzić następujące informacje (zdjęcie 26).

  • SSID: nazwa AP Wi-Fi.
  • Hasło: Hasło SSID.
  • Tryb IoT Mqtt lub Http (wybierz Mqtt).
  • Adres IP brokera Mqtt (w naszym przypadku jest to 192.168.1.67).
  • Nazwa użytkownika i hasło Mqtt, ponieważ używamy typu uwierzytelniania, użyliśmy Naren, xxxx
  • Temat publikacji Mqtt: To będzie temat publikowany przez forum, użyliśmy /testpub.
  • Mqtt subscribe temat: To będzie temat, którego płyta nasłuchuje w celu wyzwolenia triaka, użyliśmy /testsub.
  • Nazwa urządzenia: jest to nazwa, którą wołasz do alexy, aby uruchomić kartę, użyliśmy corvi.

Po wprowadzeniu szczegółów naciśnij przycisk przesyłania, po wykonaniu tej czynności otrzymasz ekran, jak pokazano na obrazku 27, poczekaj chwilę, aż płyta przestanie obsługiwać AP.

Należy pamiętać, że połączyliśmy naszą płytkę poprzez Uart z szeregowym monitorem Arduino IDE. Tak więc po lewej stronie zobaczysz komunikaty debugowania, które są drukowane przez Uart (to tylko w celach informacyjnych).

Po wykonaniu tej czynności możesz wyświetlić ekran debugowania. Większość szczegółów będzie tam widoczna. Następnie pomyślnie połączy się z brokerem na ekranie debugowania (szeregowym), który możesz to zobaczyć.

Połączony z brokerem MQTT z uwierzytelnianiem. Subskrybowany do tematu 1.

Po wydrukowaniu tego możesz teraz zacząć wysyłać polecenia przez mqtt w temacie, który subskrybował, tj. /testsub/

Dla tej płyty komendy to:

  • R13_ON: Aby włączyć triak na 100%.
  • R13_OFF: Aby wyłączyć triak na 0%.
  • Dimmer:xx: Gdzie, xx jest wartością ściemniania i można ją zmieniać w zakresie od 0 do 99.
  • Reset: Aby wyczyścić konfigurację płyty.
  • Status: Wydrukuj status dimmera tablicy w temacie publikacji tablicy.

Aby wysłać to polecenie z systemu opartego na ubuntu, w którym zainstalowany jest klient mqtt, wpisz je w sposób pokazany poniżej. W związku z uwierzytelnianiem dodawane są tutaj dwa dodatkowe parametry - tj. -u, które jest nazwą użytkownika, a -P jest hasłem, należy pamiętać, że rozróżniana jest wielkość liter.

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 Ściemniacz:50

Uwaga: 50 to wartość ściemniacza

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

Dla najnowszego statusu status jest drukowany w temacie wydawniczym forum, którym w naszym przypadku jest /testpub. Na naszym forum każda zmiana urządzenia jest drukowana w temacie publikacji forum. Na przykład, jeśli przekażemy Dimmer:50 na subskrybowany temat forum, to po fizycznym wykonaniu tego, forum wyśle wiadomość informującą o poziomie wygaszania w temacie publikacji. Przykład pokazano poniżej, Aby zasubskrybować z systemu ubuntu temat publikowania na forum, wpisz następujące polecenie

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

wiadomość, którą otrzymujemy to

ŚciemniaczIS50

kilka zrzutów ekranowych tego samego znajduje się poniżej (zdjęcie 28, zdjęcie 29)

Zalecana: