Zainstaluj serwer MQTT i Node-RED na Raspberry Pi dla automatyki domowej

Zainstaluj serwer MQTT i Node-RED na Raspberry Pi dla automatyki domowej

Messaging Queuing Telemetry Protocol (MQTT) to lekki protokół przesyłania wiadomości zaprojektowany dla urządzeń i środowisk o niskiej przepustowości. Jest to szybkie, łatwe do wdrożenia i energooszczędne rozwiązanie do łączenia i wymiany informacji między wieloma urządzeniami IoT. Wymaga brokera/serwera MQTT oraz tematu, do którego wiadomości są publikowane i subskrybowane przez urządzenia lub użytkowników, aby wysyłać lub odbierać informacje.





W tym przewodniku wdrożymy brokera MQTT i narzędzie Node-RED na Raspberry Pi, aby połączyć inteligentne urządzenia IoT z obsługą MQTT i wykorzystać je do automatyzacji domu.





Rzeczy, których będziesz potrzebować

Aby zbudować i wdrożyć serwer MQTT z Node-RED, będziesz potrzebować:





  • Raspberry Pi Zero W lub lepszy. Zalecamy użycie Raspberry Pi 3 lub 4 (jeśli jest dostępny).
  • Karta microSD (8 GB lub większa).
  • Czytnik kart microSD.
  • Komputer z systemem Linux, Mac lub komputer z systemem Windows.
  • Połączenie internetowe (Wi-Fi).

Krok 1: Zainstaluj Raspberry Pi OS Lite (64-bit)

Będziesz potrzebować 64-bitowej wersji Lite systemu Raspberry Pi. w Raspberry Pi Imager na innym komputerze, kliknij Wybierz system operacyjny > System operacyjny Raspberry Pi (inny) , a następnie wybierz Raspberry Pi OS Lite (64-bitowy) . Ponadto będziesz chciał użyć zaawansowanych ustawień Imager, aby włączyć SSH (użyliśmy Liczba Pi oraz malina jako nazwę użytkownika i hasło dla tego przewodnika) i skonfiguruj połączenie Wi-Fi. Więcej informacji znajdziesz w naszym poradniku jak zainstalować system operacyjny na Raspberry Pi . Po zapisaniu systemu operacyjnego na karcie wysuń go i włóż do Raspberry Pi.

Krok 2: Połącz się przez SSH i zaktualizuj pakiety

Możesz połączyć się z Raspberry Pi przez SSH za pomocą PuTTY w systemie Windows lub Terminal na macOS i Linux. Powinieneś jednak znać adres IP Raspberry Pi, aby połączyć się przez SSH. Aby to sprawdzić, możesz otworzyć ustawienia DHCP routera bezprzewodowego lub użyć Fing aplikację na smartfonie.



  znajdź adres IP swojej maliny za pomocą ustawień routera dhcp

Wpisz adres IP w Kit i kliknij Łączyć . Wpisz swoją nazwę użytkownika i hasło, aby się zalogować.

  połącz się z raspberry pi przez ssh

W terminalu Linux lub macOS wpisz TwojaNazwaUżytkownikaPi@Adres IP a następnie wpisz hasło, aby się zalogować. Po połączeniu przez SSH uruchom następujące polecenie, aby zaktualizować listę pakietów i uaktualnić pakiety.





co oznacza połączenie bez internetu?
sudo apt update && sudo apt upgrade y

Krok 3: Zainstaluj brokera MQTT

Aby zainstalować i włączyć brokera MQTT (Mosquitto), wykonaj następujące kroki.

  1. Zainstaluj Mosquitto, uruchamiając następujące polecenie w oknie terminala.
    sudo apt install mosquitto mosquitto-clients -y
      zainstaluj serwer mosquitto mqtt Spowoduje to rozpoczęcie instalacji Mosquitto (brokera MQTT) i usług klienckich.
  2. Po instalacji włącz usługę Mosquitto i sprawdź wersję MQTT za pomocą następujących poleceń.
    sudo systemctl enable mosquitto.service 
    mosquitto -v
      włącz usługę komarów
  3. Utwórz konto użytkownika, aby umożliwić uwierzytelniony dostęp zdalny za pomocą następującego polecenia.
    sudo mosquitto_passwd -c /etc/mosquitto/passwd ravi
    Tutaj leczenie to nazwa użytkownika (możesz użyć tego, co chcesz). Po wyświetleniu monitu wprowadź hasło. Zanotuj tę nazwę użytkownika i hasło do późniejszego wykorzystania.
  4. Otworzyć mosquitto.conf plik w edytorze nano za pomocą następującego polecenia.
    sudo nano /etc/mosquitto.conf
    Wklej następujący kod w edytorze nano.
    per_listener_settings true 
    pid_file /run/mosquitto/mosquitto.pid
    persistence true
    persistence_location /var/lib/mosquitto/
    log_dest file /var/log/mosquitto/mosquitto.log
    include_dir /etc/mosquitto/conf.d
    allow_anonymous false
    listener 1883
    password_file /etc/mosquitto/passwd
      edytuj plik konfiguracyjny Mosquitto Naciskać CTRL+X śledzony przez Tak oraz Wchodzić aby zapisać zmiany.
  5. Uruchom ponownie brokera MQTT, uruchamiając następujące polecenie.
    sudo systemctl restart mosquitto
  6. Sprawdź status brokera MQTT, aby zobaczyć, czy usługa MQTT jest uruchomiona.
    sudo systemctl status mosquitto
      sprawdź stan serwera mqtt Jeśli widzisz powyższe dane wyjściowe, MQTT jest uruchomiony.

Krok 4: Przetestuj brokera MQTT

Aby sprawdzić, czy broker MQTT działa, czy nie, zainstaluj Obiekty MQTTL lub podobną aplikację MQTT w Chrome lub dowolnej innej przeglądarce internetowej i uruchom ją. Wprowadź adres IP Raspberry Pi oraz nazwę użytkownika/hasło MQTT. Kliknij Utwórz połączenie .





  połącz się z serwerem mqtt i wyślij wiadomość do tematu testowego, aby sprawdzić, czy broker mqtt działa

Wpisz dowolny temat w Subskrybuj pole i ten sam temat w Publikować pole. Wpisz „Cześć” lub cokolwiek w polu wiadomości i kliknij Publikować .

  wiadomości opublikowane pomyślnie wskazujące, że mqtt działa

Jeśli zobaczysz komunikat pod subskrypcjami, broker MQTT działa poprawnie.

Krok 5: Zainstaluj Node-RED

Dzięki Node-RED możesz publikować wiadomości lub wysyłać i odbierać ładunki do lub z urządzeń inteligentnych. Ten ładunek może być używany do uruchamiania inteligentnych urządzeń w celu włączania/wyłączania lub odbierania danych (takich jak temperatura) z czujnika. Możesz użyć przeglądarki internetowej, aby utworzyć takie przepływy w Node-RED i sterować urządzeniami inteligentnymi.

Aby zainstalować Node-RED, wykonaj następujące polecenie w oknie Terminala.

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
  zainstaluj węzeł czerwony

Spowoduje to pobranie i zainstalowanie Node-RED na twoim Raspberry Pi. Może to trochę potrwać. Po zainstalowaniu Node-RED musisz utworzyć plik ustawień Node-RED, uruchamiając następujące polecenie.

jak naprawić pilota Roku
node-red admin init

Następnie wykonaj następujące kroki:

  1. wciśnij Wchodzić klucz.
  2. Czy chcesz skonfigurować zabezpieczenia użytkownika? Wybierz TAk . Wprowadź nazwę użytkownika i hasło. Dbaj o bezpieczeństwo, ponieważ będzie on używany do logowania i zarządzania Node-RED za pośrednictwem interfejsu internetowego.
  3. Wybierać Pełny dostęp .
  4. Możesz dodać innego użytkownika lub wybrać Nie kontynuować.
  5. Wybierz Nie gdy zostaniesz poproszony o włączenie funkcji projektu.
  6. Naciskać Wchodzić .
  7. Wpisz hasło i zachowaj je w bezpiecznym miejscu.
  8. Wybierz domyślny motyw > Monako (domyślnie) .
  9. Wybierz Nie gdy zostaniesz poproszony o załadowanie zewnętrznych węzłów.
  skonfigurować czerwoną instalację węzła

Gdy to zrobisz, uruchom ponownie Node-RED.

node-red restart

Możesz teraz odwiedzić Twój-Malina-Pi-IP:1880 w przeglądarce internetowej, aby otworzyć i zalogować się do panelu administracyjnego Node-RED.

  czerwony węzeł dostępowy na raspberry pi ip na porcie 1880

Możesz teraz tworzyć przepływy w Node-RED. Poniżej znajduje się przykład przepływu Node-RED, którego używamy do uruchomienia naszego wyświetlacza matrycowego WS2812B 8x32, który pokazuje w czasie rzeczywistym różne informacje z czujników zainstalowanych w naszym domu.

  czerwony przepływ węzła próbki, aby wyświetlić różne wartości czujników na wyświetlaczu matrycowym 8x32

Na początek możesz też zbuduj inteligentny zegar DIY za pomocą matrycy punktowej MAX7219 i połącz go z serwerem MQTT, aby wyświetlać na nim tekst lub wiadomości.

Włącz automatykę domową za pomocą MQTT i Node-RED

Możesz teraz tworzyć przepływy, aby kontrolować lub monitorować inteligentne urządzenia domowe z obsługą MQTT. Możesz także budować inteligentne przełączniki Tasmota DIY lub inteligentne czujniki oparte na Arduino oraz inne inteligentne urządzenia ze sterowaniem MQTT i używać ich z tym serwerem MQTT i Node-RED. Możesz tworzyć przepływy dla automatyki domowej na podstawie zdarzeń, czasu lub ładunku otrzymanego od klienta MQTT smartfona.

Na smartfonie z systemem Android możesz zainstalować MQTT Dash, aby połączyć się z brokerem MQTT i wysyłać lub odbierać ładunki do lub z różnych tematów, które subskrybują lub publikują Twoje urządzenia inteligentne.