Przejdź do treści

Instalacja i konfiguracja oprogramowania dla roli companion

Info

Poradnik zakłada, że na serwerze masz już zainstalowany system Linux. W tym poradniku będzie wykorzystywany system Debian 13 na Raspberry Pi.

Instalacja i konfiguracja oprogramowania

  1. Jeśli chcesz podłączyć płytkę z oprogramowaniem MeshCore do portu USB, to zrób to teraz.

  2. Jeżeli chcesz podłączyć płytkę z oprogramowaniem MeshCore po Bluetooth, to wpisz polecenie:

    rfkill unblock all
    

    Spowoduje to odblokowanie modułu Bluetooth. Jeśli tego nie zrobisz, to oprogramowanie podczas konfiguracji może zwrócić błąd, że nie można uruchomić skanowania w poszukiwaniu urządzeń Bluetooth.

  3. Upewnij się, że masz zainstalowane oprogramowanie curl w systemie.

  4. Wpis poniższe polecenie w terminalu, które pobierze i uruchomi skrypt instalacyjny oprogramowania nvm:

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
    
  5. Aby nie musieć wylogowywać się z terminala w celu możliwości wpisania polecenia nvm wklej poniższy kod:

    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
    [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
    
  6. Teraz wpisz polecenie instalujące Node Version Manager.

    nvm install --lts
    
  7. Wpisz poniższe polecenie, aby zainstalować program MeshCore Decoder. To oprogramowanie zajmuje się dekodowaniem otrzymanych pakietów z sieci LoRa.

    npm install -g @michaelhart/meshcore-decoder
    

    I czekaj, aż wymagane oprogramowanie zostanie zainstalowane.

  8. Pobierz i uruchom skrypt do instalacji programu MeshCore Packet Capture, które służy jako most połączeniowy pomiędzy płytką LoRa a serwerem. Wklej poniższe polecenie i wciśnij Enter. Uruchomi się proces instalacji.

    bash <(curl -fsSL https://raw.githubusercontent.com/agessaman/meshcore-packet-capture/main/install.sh)
    
  9. Pojawi się komunikat:

    Installation directory [/home/administrator/.meshcore-packet-capture]: 
    

    Informuje on, w jakiej lokalizacji zostanie zainstalowane oprogramowanie. Wciskając Enter pozostawisz domyślną ścieżkę. Możesz również ręcznie podać inną lokalizację. Po wciśnięciu przycisk Enter rozpocznie się instalacja wymaganych zależności. Po ich instalacji wybierz sekcję, która odpowiada twojej sytuacji.

    Konfiguracja klienta po USB

  10. Otrzymasz następujący komunikat:

    ℹ How would you like to connect to your MeshCore device?
    
      1) Bluetooth Low Energy (BLE) - Recommended for T1000 devices
        • Wireless connection
        • Works with MeshCore T1000e and compatible devices
    
      2) Serial Connection - For devices with USB/serial interface
        • Direct USB or serial cable connection
        • More reliable for continuous operation
    
      3) TCP Connection - For network-connected devices
        • Connect to your node over the network
        • Works with ser2net or other TCP-to-serial bridges
    

    W tym omawianym przypadku płytka z oprogramowaniem MeshCore będzie podłączona do serwera po USB. Wpisz zatem 2 i wciśnij przycisk Enter.

  11. Jeśli masz podłączoną płytkę do serwera, to zostanie ona wykryta.

    ℹ Found 1 serial device:
    
      1) /dev/serial/by-id/usb-Seeed_Studio_XIAO_nRF52840_37BEC92CA7479A89-if00 -> /dev/ttyACM0
      2) Enter path manually
    

    Wpisujemy zatem 1 i wciskamy Enter.

    Konfiguracja urządzenia po Bluetooth

  12. Otrzymasz następujący komunikat:

      ℹ How would you like to connect to your MeshCore device?
    
    1) Bluetooth Low Energy (BLE) - Recommended for T1000 devices
      • Wireless connection
      • Works with MeshCore T1000e and compatible devices
    
    2) Serial Connection - For devices with USB/serial interface
      • Direct USB or serial cable connection
      • More reliable for continuous operation
    
    3) TCP Connection - For network-connected devices
      • Connect to your node over the network
      • Works with ser2net or other TCP-to-serial bridges
    

    W tym omawianym przypadku łączysz się z płytką po Bluetooth, zatem wybierz opcję 1 i wciśnij przycisk Enter.

  13. Na pytanie:

    Would you like to scan for nearby BLE devices? [Y/n]: 
    

    Czy chcesz przeskanować sieć w poszukiwaniu urządzeń Bluetooth odpowiadasz twierdząco, wpisując Y.

  14. Kiedy urządzenie zostanie znalezione, otrzymasz taki komunikat:

    ℹ Scanning for BLE devices...
    This may take 10-15 seconds...
    
    ✓ Found 1 MeshCore BLE device(s):
    
      1) MeshCore-44E48A0C ()
      2) Enter device manually
      3) Scan again
    
    Select device [0-2] [1]: 
    

    Płytka znajduje się pod pierwszą pozycją, więc wpisz 1 i wciśnij przycisk Enter.

  15. Gdy pojawi się prośba o PIN, to dla płytek bez ekranu wpisz 123456, zaś dla płytek z ekranem PIN pojawi się na wyświetlaczu.

    Dalsza konfiguracja...

  16. Po konfiguracji sposobu podłączenia płytki należy skonfigurować region.

    ℹ IATA code is a 3-letter airport code identifying your geographic region
    ℹ Example: SEA (Seattle), LAX (Los Angeles), NYC (New York), LON (London)
    
    Enter your IATA code (3 letters): 
    

    Kod IATA to trzyliterowy kod alfanumeryczny służący do oznaczania portów lotniczych na całym świecie. Twórcy oprogramowania proszą, aby ustawić prawidłowy kod z następującego powodu:

    You must set a valid IATA code for your region. Invalid IATA codes will be corrected, and using incorrect settings may result in loss of your ability to configure the IATA code for your observer. Please verify your IATA code with a quick Google search, as IATA codes are not ICAO codes or similar identifiers

    Jednym słowem, kody IATA wprowadzono w tym systemie po to, aby był porządek i aby można było łatwo filtrować obserwatorów po regionach.

  17. Wejdź na tę stronę i w wyszukiwarce Search Airport Codes wpisz nazwę większego miasta, obok którego mieszkasz. W moim przypadku będzie to Kraków.

    Po kliknięciu na Search Now otrzymasz wynik wyszukiwania. Oznaczenie, które wykorzystasz znajduje się w kolumnie 3-letter location code, czyli dla Krakowa jest to KRK. Wpisz zatem w konsoli odpowiedni dla Ciebie kod IATA i wciśnij przycisk Enter. (zachowaj wielkość liter).

  18. Kolejny krok to konfiguracja JWT Token.

    You can optionally configure owner information for Let's Mesh Analyzer:
    
    1. Owner Public Key: The public key of the owner of the MQTT observer
    (64 hex characters, same length as repeater public key)
    
    1. Owner Email: Email address of the observer owner
    
    Would you like to configure an owner public key? [y/N]:
    
    Jest to krok całkowicie opcjonalny, ale wytłumacze, o co w nim chodzi. Owner Public Key umożliwia ustawienie innego klucza publicznego niż klucz publiczny wygenerowany na płytce. Ten klucz jest wyświetlany na stronie. Opcja Owner Email umożliwia podanie adresu e-mail, który nie jest wyświetlany na stronie, ale dzięki niemu system dopisze płytki do konta i będziesz mogli nimi w pewien sposób zarządzań. Aby to działało, konieczne jest utworzenie konta na stronie z tym samym adresem e-mail.

    Jest to ktok całkowicie opcjonalny i możesz go pominąć wpisując n, lub skonfigurować wybierając Y.

  19. Kolejne pytanie dotyczy tego, czy chcemy przesyłać dane do serwerów MQTT w sposób redundantny.

    ℹ Enable the LetsMesh.net Packet Analyzer (US + EU servers) for redundancy?
      • Real-time packet analysis and visualization
      • Network health monitoring
      • Redundant servers: mqtt-us-v1.letsmesh.net + mqtt-eu-v1.letsmesh.net
      • Requires meshcore-decoder for authentication
    
    Enable LetsMesh Packet Analyzer with redundancy? [Y/n]: 
    
    Wpisz Y i wciśnij Enter.

  20. Kolejny krok to wybór sposobu prezentowania zebranych danych.

    ℹ MQTT topics define where different types of data are published.
    ℹ You can use template variables: {IATA}, {IATA_lower}, {PUBLIC_KEY}
    
    Choose topic configuration:
      1) Default pattern (meshcore/{IATA}/{PUBLIC_KEY}/status, meshcore/{IATA}/{PUBLIC_KEY}/packets)
      2) Classic pattern (meshcore/status, meshcore/packets, meshcore/raw)
      3) Custom topics (enter your own)
    

    Aby zabrane dane wyświetlały się na stronie MeshCore Packet Analyzer musisz wybrać opcje 1. W przeciwnym wypadku system będzie odrzucał wysyłane przez Ciebie dane. Ta informacja pochodzi prosto od dewelopera tego narzędzia.

  21. Kolejne pytanie dotyczy dodatkowych brokerów MQTT.

    Would you like to configure additional MQTT brokers? [y/N]: 
    

    Odpowiedz negatywnie wpisując n.

  22. Teraz musisz wybrać w jaki sposób chcesz zainstalować konfigurowane oprogramowanie.

    Choose your preferred installation method:
    
      1) System Service (recommended for production)
        • Runs automatically on boot
        • Managed by systemd (Linux) or launchd (macOS)
        • Automatic restart on failure
    
      2) Docker Container (recommended for development/testing)
        • Isolated environment
        • Easy to update and manage
        • Works on Linux, macOS, and Windows
    
      3) Manual installation only
        • No automatic startup
        • Run manually when needed
    

    Twórcy zalecają wybranie opcji 1 dla serwera produkcyjnego. W takim przypadku oprogramowanie zostanie zainstalowane bezpośrednie w systemie i będzie działać jako usługa systemowa.

  23. Czy chcesz, aby usługa startowała wraz ze starem systemu?

    Enable service to start on boot? [Y/n]: 
    
    Jeśli tak, wpisz Y, jeśli nie, wpisz n.

  24. Czy chcesz teraz uruchomić usługę?

    Start service now? [Y/n]: 
    

    W przypadku odpowiedzi twierdzącej wpisz Y, w przypadku negatywnej wpisz n.

  25. Po uruchomieniu usługi otrzymasz podsumowanie wraz z komendami do obsługi programu:

      Service management:
      Start:   sudo systemctl start meshcore-capture
      Stop:    sudo systemctl stop meshcore-capture
      Status:  sudo systemctl status meshcore-capture
      Logs:    sudo journalctl -u meshcore-capture -f
    
    Resource monitoring:
      CPU usage:  sudo systemctl show meshcore-capture --property=CPUUsageNSec
      Memory:     sudo systemctl show meshcore-capture --property=MemoryCurrent
      Tasks:      sudo systemctl show meshcore-capture --property=TasksCurrent
    

    Zapisz sobie te polecenia, ponieważ w przyszłości mogą okazać się przydatne.