MQTT (Message Queuing Telemetry Transport) to lekki protokół przesyłania wiadomości powszechnie używanych w aplikacjach IoT (Internet of Things) do niezawodnej i wydajnej komunikacji między urządzeniami. Hostowanie serwera MQTT na Raspberry Pi umożliwia stworzenie lokalnego centrum przesyłania wiadomości dla projektów IoT. Ten przewodnik prowadzi do konfigurowania i uruchamiania serwera MQTT na Raspberry Pi.
Czego będziesz potrzebować
- Raspberry Pi (Każdy model z obsługą GPIO, np. PI 3, PI 4)
- Karta microSD (co najmniej 8 GB, klasa 10 lub lepsza)
- Zasilacz (5 V, minimum 2,5A dla PI 3; 5 V, 3A dla PI 4)
- Raspberry Pi OS (Wersja lite lub komputerów stacjonarnych)
- Połączenie internetowe
- Klienci MQTT (np. ESP8266, ESP32 lub narzędzia programowe MQTT)
Krok 1: Zaktualizuj Raspberry Pi
- Upewnij się, że twoje Raspberry Pi jest aktualne:
Krok 2: Zainstaluj broker Mosquitto MQTT
Mosquitto jest lekkim i szeroko stosowanym brokerem MQTT.
-
Zainstaluj Mosquitto i jego narzędzia klienta:
-
Włącz Mosquitto, aby zacząć od rozruchu:
-
Rozpocznij usługę Mosquitto:
Krok 3: Przetestuj brokera MQTT
-
Otwórz dwa terminal Windows lub SSH Sessions na Raspberry Pi.
-
W pierwszym terminalu zasubskrybuj temat testowy:
-
W drugim terminalu opublikuj wiadomość testową:
-
Powinieneś zobaczyć wiadomość „Witaj, MQTT!” w pierwszym terminalu.
Krok 4: Skonfiguruj Mosquitto dla połączeń zewnętrznych
-
Otwórz plik konfiguracyjny Mosquitto:
-
Dodaj następujące wiersze, aby umożliwić połączenia zewnętrzne:
listener 1883 allow_anonymous true
Notatka: W środowiskach produkcyjnych skonfiguruj uwierzytelnianie użytkownika zamiast umożliwienia anonimowego dostępu.
-
Uruchom ponownie usługę Mosquitto, aby zastosować zmiany:
-
Przetestuj połączenie z innego urządzenia w tej samej sieci za pomocą narzędzia klienta MQTT (np. MQTT.FX lub MQTT Explorer).
Krok 5: Zabezpiecz broker MQTT (opcjonalnie)
-
Włącz uwierzytelnianie hasła:
- Wprowadź i potwierdź hasło dla użytkownika.
-
Zaktualizuj plik konfiguracyjny Mosquitto, aby użyć pliku hasła:
allow_anonymous false password_file /etc/mosquitto/passwd
-
Uruchom ponownie usługę Mosquitto:
-
Przetestuj połączenie za pomocą nazwy użytkownika i hasła.
Krok 6: Podłącz urządzenia IoT z brokerem MQTT
-
Dla ESP8266/ESP32: Użyj Arduino IDE, aby zaprogramować urządzenia IoT, aby publikować/subskrybować tematy w brokerze Raspberry PI MQTT.
-
Dla klientów oprogramowania: Użyj MQTT.FX, MQTT Explorer lub Python z
paho-mqtt
biblioteka.
Rozwiązywanie problemów
-
Nie można połączyć się z brokerem MQTT:
- Upewnij się, że Mosquitto działa:
sudo systemctl status mosquitto
- Sprawdź ustawienia zapory na Raspberry Pi.
- Upewnij się, że Mosquitto działa:
-
Błędy uwierzytelniania:
- Sprawdź nazwę użytkownika i hasło w konfiguracji Mosquitto i konfiguracji klienta.
-
Połączenie odmówiono:
- Upewnij się, że urządzenie znajduje się w tej samej sieci, co Raspberry Pi.
- Sprawdź, czy port 1883 jest otwarty.
Zastosowania MQTT
- Komunikacja urządzenia IoT
- Domowe systemy automatyzacji
- Streaming danych w czasie rzeczywistym
- Zdalne monitorowanie i kontrola
Wniosek
Hostowanie serwera MQTT na Raspberry Pi to doskonały sposób na umożliwienie lekkiej i niezawodnej komunikacji dla twoich projektów IoT. Postępując zgodnie z tym przewodnikiem, możesz skonfigurować i zabezpieczyć brokera Mosquitto MQTT, podłączyć urządzenia IoT i rozpocząć budowanie potężnych aplikacji. Eksperymentuj z różnymi konfiguracjami, aby zbadać pełny potencjał MQTT!