Spisu treści:

Komunikacja bezprzewodowa SmartHome: ekstremalne podstawy MQTT: 3 kroki
Komunikacja bezprzewodowa SmartHome: ekstremalne podstawy MQTT: 3 kroki

Wideo: Komunikacja bezprzewodowa SmartHome: ekstremalne podstawy MQTT: 3 kroki

Wideo: Komunikacja bezprzewodowa SmartHome: ekstremalne podstawy MQTT: 3 kroki
Wideo: Nowości w portfolio Gigaset Pro czyli nie tylko DECT 2024, Listopad
Anonim
Komunikacja bezprzewodowa SmartHome: ekstremalne podstawy MQTT
Komunikacja bezprzewodowa SmartHome: ekstremalne podstawy MQTT
Komunikacja bezprzewodowa SmartHome: ekstremalne podstawy MQTT
Komunikacja bezprzewodowa SmartHome: ekstremalne podstawy MQTT

Podstawy MQTT:

**Będę robił serię Home Automation, będę przechodził przez kroki, które podjąłem, aby nauczyć się wszystkiego, co robiłem w przyszłości. Ten Instructable jest podstawą konfiguracji MQTT do użytku w moich przyszłych Instructables. Jednak nauki zawarte w tej treści będą miały zastosowanie do każdego projektu, który chciałbyś podjąć.**

Internet przedmiotów:

Internet rzeczy przejmuje świat, a zwłaszcza w społecznościach takich jak nasza w Instructables. Odkąd dołączyłem do tej społeczności, jest ona zakorzeniona w budowaniu ludzi

Urządzenia podłączone i kontrolowane przez internet. Przy pracy z Internetem Rzeczy trudno nie spotkać się z protokołem MQTT. Jest to protokół komunikacyjny, podobnie jak inne używane obecnie w Internecie, takie jak HTTP lub FTP, jednak sposób jego działania jest inny, co czyni go idealnym do zastosowań Internetu rzeczy.

Co to jest MQTT:

MQTT (Message Queuing Telemetry Transport to lekki protokół komunikacyjny wykorzystujący architekturę publikowania/subskrybowania. HTTP, z którego korzysta większość Internetu, jest zbudowany na systemie żądania/odpowiedzi. Oznacza to, że otrzymuje żądanie od klienta i wysyła odpowiedzi na tego klienta. MQTT posiada również serwer (tzw. broker) oraz wielu klientów. W przeciwieństwie do HTTP, MQTT pozwala klientom na publikowanie lub subskrypcję określonych „tematów”. Pozwala to na szerszą komunikację poprzez punkt scentralizowany, broker. Każdy węzeł może publikować w temacie w brokerze, a każdy węzeł zasubskrybowany do tego tematu otrzyma wiadomość. Klienci mogą również subskrybować wiele tematów, a następnie mogą otrzymywać wiele dyrektyw lub aktualizacji.

Cały system jest sterowany zdarzeniami i umożliwia przekazywanie komunikatów od brokera do każdego subskrybowanego klienta. Tak więc zamiast HTTP, gdzie klient żąda informacji, klient jest przesyłany bezpośrednio od brokera po otrzymaniu. Wbudowane są również usługi pozwalające na różne zabezpieczenia, takie jak specyfikacje QOS. Specyfikacja QOS pozwala brokerowi określić, czy wiadomość musi zostać dostarczona co najwyżej raz, co najmniej raz lub dokładnie raz. Gwarantuje to, że dane są dostarczane w wymagany sposób do każdego klienta. Klienci mogą również zażądać, aby opublikowane wiadomości dotyczące ich tematu były buforowane w brokerze w przypadku, gdy z jakiegokolwiek powodu zostaną od niego odłączeni. Gdy wróci do trybu online, dane zostaną przesłane do klienta.

Temat nie jest niczym specjalnym, to po prostu różne ciągi, które są połączone i oddzielone ukośnikami. Format w przykładzie, który zostanie użyty poniżej, jest następujący: dom/sypialnia/oświetlenie_sufitu. Każdy ukośnik jest umieszczany po temacie, aby wskazać podtemat. Tak więc wiadomość mogłaby zostać opublikowana w domu, gdzie wszystkie urządzenia w domu ją otrzymają. Można go opublikować bezpośrednio w domu/sypialni, gdzie wszystkie urządzenia w sypialni otrzymają wiadomość. I może zejść do konkretnego urządzenia, jak pokazano po raz pierwszy w domu/sypialni/oświetleniu sufitu, gdzie tylko światło sufitowe w sypialni otrzyma wiadomość. Sposób, w jaki możemy wyodrębnić pojedyncze urządzenia, aż do całego ekosystemu, jest niezwykle przydatny, zwłaszcza jeśli chodzi o automatykę domową. Istnieją dalsze sposoby dzielenia tematów i omówię je dalej w przyszłych Instructables, w których aplikacja ma największy sens.

Kieszonkowe dzieci

Potrzebne jest tylko jedno z poniższych:

Ubuntu:

Podsystem Windows dla systemu Linux: https://ubuntu.com/wsl (Tylko jeśli nie masz systemu Linux/MacOS)

MacOS: wymaga MacBooka

Jest to wymagane:

Mosquitto MQTT Broker - Pobrane za pomocą apt-get (dokumentacja:

Krok 1: Konfiguracja wstępna (w zależności od systemu operacyjnego)

MacOS/Linux:

Konfiguracja nie jest konieczna, wystarczy otworzyć terminal i przejść do konfiguracji Mosquitto!

Okna:

Jeśli korzystasz z systemu Windows, musisz zainstalować podsystem Windows dla systemu Linux. Jest to bardzo łatwe w użyciu i niezwykle cenne narzędzie, które pozwala uruchomić terminal Ubuntu w systemie Windows. Nie ma potrzeby instalowania i podwójnego uruchamiania Ubuntu tylko po to, aby przetestować programowanie w terminalu!

Kroki instalacji:

1. Przejdź do Sklepu Windows i wyszukaj ubuntu

2. Pobierz i zainstaluj podsystem Windows dla systemu Linux

3. Otwórz aplikację i postępuj zgodnie z instrukcjami, aby zakończyć konfigurację i możesz kontynuować!

Krok 2: Konfiguracja Mosquitto:

Konfiguracja komara
Konfiguracja komara
Konfiguracja komara
Konfiguracja komara
Konfiguracja komara
Konfiguracja komara

Tak jak omówiono we wstępie o MQTT, protokół wymaga brokera (serwera). Ten broker jest punktem bazowym wszystkich nawiązanych połączeń z każdym klientem. Wszystkie komunikaty są przekazywane i umieszczane w kolejce w tym brokerze. Istnieje wiele opcji do wyboru dla brokera i można je znaleźć w Internecie, ale ta, z której będziemy korzystać, jest prawdopodobnie najbardziej popularna: Mosquitto.

Mosquitto to oparty na Linuksie broker MQTT z mnóstwem funkcjonalności. Nie będę teraz zagłębiał się w szczegóły tej funkcjonalności, ale kilka podstawowych wymagań, które spełnia, to uwierzytelnianie użytkownika/hasła i obsługa szyfrowania TLS, z których wszystkie są przydatne w rozwoju urządzeń Internetu Rzeczy.

Kroki:

Wszystkie te kroki należy wykonać w oknie terminala.

1. Zainstaluj klientów Mosquitto i MQTT

sudo apt-get install mosquitto mosquitto-klienci

2. Subskrybuj temat

mosquitto_sub -t "test"

To, co robi, to subskrybowanie tematu. Ten temat jest oznaczony przez „-t”, a wartość tematu to „test”. Ta wartość po „-t” może być dowolną wartością, z wyjątkiem kilku specjalnych rezerwacji.

3. Otwórz nowe okno terminala i opublikuj wiadomość w temacie "test"

mosquitto_pub -t "test" -m "Witaj świecie z MQTT!"

Spowoduje to opublikowanie komunikatu w temacie „test”, umożliwiając naszej drugiej instancji terminala odebranie komunikatu po stronie subskrypcji. Opublikowana wiadomość jest oznaczona „-m”, a wartość wiadomości to „Hello World With MQTT”. Ta wiadomość, podobnie jak temat, może zostać zmieniona na co tylko zechcesz!

4. Przejdź do pierwszego okna terminala, aby zobaczyć swoje wyniki! Powinieneś otrzymać komunikat „Hello World With MQTT”. Jeśli tego nie widzisz, upewnij się, że wpisałeś właściwy temat. Jeśli udało Ci się to zrobić, baw się dalej. Wypróbuj różne tematy, z podtematami i różnymi wiadomościami!

Krok 3: Podsumuj

Otóż to! Kiedy już to wszystko skończysz, zrozumiesz podstawy działania MQTT. Jest to bardzo podstawowy samouczek, który pokazuje jedynie minimum protokołu MQTT. Future Instructables omówi bardziej szczegółowo, jak protokół działa w praktyce z Internetem Rzeczy, w szczególności z modułami ESP8266 z Arduino. Moim pierwszym praktycznym zastosowaniem będzie inteligentny ekspres do kawy, który aktualnie mam w swoim pokoju. Jeśli chcesz dowiedzieć się, jak zrobić ekspres do kawy, którym można sterować zarówno za pomocą telefonu, jak i Alexy, śledź mnie, aby uzyskać więcej samouczków.

Zalecana: