Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'Grafana'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino i ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - DIY
    • Projekty - DIY roboty
    • Projekty - DIY (mini)
    • Projekty - DIY (początkujący)
    • Projekty - DIY w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie

Kategorie

  • Quizy o elektronice
  • Quizy do kursu elektroniki I
  • Quizy do kursu elektroniki II
  • Quizy do kursów Arduino
  • Quizy do kursu STM32L4
  • Quizy do pozostałych kursów

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Imię


Strona

Znaleziono 2 wyniki

  1. Istotnym elementem zapewnienia ciągłości działania naszej infrastruktury jest monitoring. Możemy do tematu podejść na wiele sposobów, bo nic nie stoi na przeszkodzie, aby codziennie sprawdzać parametry pracy naszego serwera za pomocą dostępnych w systemie narzędzi diagnostycznych (top, df, fdisk, itp.) oraz przeglądać zapisane logi. Nie jest to jednak idealne rozwiązanie, bo czasami ilość informacji może być zbyt duża. Dlatego warto używać oprogramowania, które zrobi to za nas, a w dodatku wszystko będzie czytelnie przedstawione na wykresach. Narzędzi do monitoringu pracy jest sporo. Niektóre, jak Nagios czy Zabbix są sprawdzone i używane przez wielu, natomiast ich wdrożenie dla osób z małym doświadczeniem pracy z systemem Linux czy sieciami komputerowymi może wydawać się kłopotliwe. Istnieją wygodne w użyciu rozwiązania, jak CloudRadar, ale są płatne. Dlatego dobrą alternatywą wydaje się być połączenie Grafany i Promotheus, bezpłatnych narzędzi (płatne jest jedynie hostowanie rozwiązania na serwerach producenta) stosunkowo prostych w konfiguracji. Ten artykuł bierze udział w naszym konkursie! 🔥 Na zwycięzców czekają karty podarunkowe Allegro, m.in.: 2000 zł, 1000 zł i 500 zł. Potrafisz napisać podobny poradnik? Opublikuj go na forum i zgłoś się do konkursu! Czekamy na ciekawe teksty związane z elektroniką i programowaniem. Sprawdź szczegóły » Grafana oferuje wsparcie dla Windows, macOS i Linux (architektury 64-bit i ARM64). Większość naszych projektów hostujemy najczęściej na systemach z rodziny Linux, więc instalację zaprezentuję na systemie Ubuntu 20.04. Domena nie jest konieczna, jednak wtedy panel Grafany będzie dostępny pod adresem [adres_IP]:3000. W domowych warunkach lokalnej sieci komputerowej możemy także ustawić odpowiednie wartości w pliku hosts, dzięki czemu uzyskamy działającą lokalnie domenę, co dokładniej opisałem w dalszej części. W wymaganiach jest napisane, że nasz serwer musi być wyposażony w minimum 255 MB pamięci operacyjnej, czyli bardzo niewiele. Grafanę zainstaluję na lokalnym serwerze z Ubuntu 20.04, na którym obecnie działa tylko Domoticz (domyślny port 8080), a do połączenia będę używał SSH. SSH Większość osób korzysta z SSH, ale jeśli na naszym lokalnym serwerze nie mamy zainstalowanej tej usługi, to dokonamy tego w prosty sposób: sudo apt update sudo apt install openssh-server Adres IP niezbędny do połączenia uzyskamy natomiast wydając polecenie ip a lub ifconfig . OpenSSH jest już w Windows 10, więc w zależności od systemu otwieramy Terminal lub Wiersz polecenia i wydajemy polecenie ssh [nazwa_użytkownika]@[adres_IP] Mój lokalny serwer ma przypisany adres IP 192.168.1.129, a użytkownik nazywa się michal, więc połączę się poprzez ssh michal@192.168.1.129 Do zainstalowania Grafany możemy użyć Dockera. To rozwiązanie, gdzie w odseparowanych od systemu kontenerach mamy możliwość uruchomienia wiele aplikacji. Uruchomienia Grafany wymaga jednego polecenia: docker run -d --name=grafana -p 3000:3000 grafana/grafana:7.4.0-ubuntu Osobiście uważam, że Docker służący do uruchomienia wyłącznie Grafany jest kiepskim pomysłem. Zajmuje stosunkowo dużo zasobów, które można przeznaczyć na rozwój naszych projektów. Jeśli jednak jesteśmy do Dockera przekonani, to jak najbardziej można z niego skorzystać. Powyższe polecenie uruchomi kontener z Grafaną „w tle” (opcja -d) na porcie 3000 (opcja -p), który jest domyślny. Grafana — instalacja Narzędzie pobierzemy z oficjalnej strony wydawcy, gdzie znajdują się również instrukcje instalacji dla pozostałych systemów operacyjnych. Jak widać, Grafana może być zainstalowana na kilka sposobów. Chcemy ją zainstalować na Ubuntu, więc najszybsza metoda to skorzystanie z pliku DEB, czyli wykonamy polecenia z pierwszego szarego tła. Na początek poleca się zainstalować pakiet adduser oraz bibliotekę libfontconfig1. adduser służy do dodawania do systemu nowego użytkownika i powinien już być zainstalowany. Z kolei libfontconfig1 stosuje się do konfiguracji czcionek. Wykonajmy zatem pierwsze polecenie. Nieco je zmodyfikowałem, ponieważ apt-get jest równoznaczny z apt, a parametr -y powoduje, że libfontconfig1 zostanie zainstalowany bez pytania użytkownika (Do you want to continue?). Teraz za pomocą wget pobierzemy paczkę DEB z Grafaną. Wydajemy drugie polecenie. Rozmiar pliku wynosi 49 MB. Standardowo instalujemy komendą sudo dpkg -i. Istotną informację zaznaczyłem w czerwonej ramce. Należy wydać dwa dodatkowe polecenia, aby usługa wystartowała. Wykonujemy więc sudo systemctl daemon-reload oraz sudo systemctl enable grafana-server Po wydaniu tych poleceń Grafana jest uruchomiona. Wynik sudo systemctl status grafana-server stanowi potwierdzenie. Zobaczmy za pomocą netstat-a, jakie porty są w tej chwili zajęte. Grafana — panel użytkownika Z powodzeniem zainstalowaliśmy i uruchomiliśmy Grafanę na porcie 3000. Teraz jest dobry moment, aby zapoznać się z panelem. Uruchamiamy przeglądarkę i w pasku adresu wpisujemy [adres_IP]:3000, w moim przypadku 192.168.1.129:3000 (w dalszej części ustawimy proxy, aby wystarczyło wpisać tylko domenę). Login i hasło to admin. Nie jest to najlepsze podejście z punktu widzenia bezpieczeństwa, ale już w drugim kroku możemy ustawić nowe hasło. Następnie jesteśmy przenoszeni do głównego panelu. Prometheus i Node Exporter — instalacja oraz konfiguracja Grafana nie jest oprogramowaniem do monitoringu systemu, pełni jedynie funkcję wyświetlania i agregowania zgromadzonych statystyk. Do zbierania metryk wykorzystamy narzędzie Prometheus z Node Exporter, które jest często stosowane razem z Grafaną, dzięki czemu połączenie jest bardzo proste. Najpierw dodamy dwóch użytkowników do systemu. sudo useradd --no-create-home --shell /usr/sbin/nologin prometheus sudo useradd --no-create-home --shell /bin/false node_exporter Ich nazwy to prometheus oraz node_exporter, nie utworzyliśmy im katalogu domowego, prometheus będzie miał blokowane próby logowania, a node_exporter nie ma żadnego dostępu do powłoki. Teraz utwórzmy katalogi na pliki konfiguracyjne i zebrane dane. sudo mkdir /etc/prometheus sudo mkdir /var/lib/prometheus Zmieniamy właściciela tych katalogów na nowego użytkownika prometheus. sudo chown prometheus:prometheus /etc/prometheus sudo chown prometheus:prometheus /var/lib/prometheus Przechodzimy do strony https://github.com/prometheus/node_exporter/releases i pobieramy na lokalny dysk najnowszą wersję Node Explorer odpowiednią do naszej platformy. Na dzień 04.04.2021 jest to node_exporter-1.0.1.linux-amd64.tar.gz. Wysyłamy pobrany plik poprzez WinSCP na serwer, a następnie rozpakowujemy archiwum. Z nowego katalogu przenosimy plik node_exporter do katalogu /usr/local/bin i zmieniamy właściciela na użytkownika node_exporter. Bardzo dobrym pomysłem jest ustawienie, aby Node Exporter uruchamiał się automatycznie po restarcie serwera. W tym celu w /etc/systemd/system tworzymy plik node_exporter.service: sudo nano /etc/systemd/system/node_exporter.service Dodajemy do niego poniższą treść: [Unit] Description=Node Exporter Wants=network-online.target After=network-online.target [Service] User=node_exporter Group=node_exporter Type=simple ExecStart=/usr/local/bin/node_exporter [Install] WantedBy=multi-user.target Tak jak zwykle, po tej operacji wykonujemy trzy polecenia. sudo systemctl daemon-reload sudo systemctl start node_exporter sudo systemctl enable node_exporter Czas na instalację Prometheusa. Pobieramy najnowszą wersję zgodną z naszym środowiskiem (na dzień 04.02.2021 jest to prometheus-2.24.1.linux-amd64.tar.gz). Przesyłamy plik poprzez WinSCP na nasz serwer i wypakowujemy dane z archiwum. Z utworzonego w wyniku działania tar katalogu przenosimy pliki prometheus i promtool do /usr/local/bin oraz katalogi consoles i console_libraries do /etc/prometheus. Ponownie ustawiamy odpowiedniego właściciela. Ostatnią czynnością przed uruchomieniem jest dodanie odpowiednich wpisów do pliku /etc/prometheus/prometheus.yml. To plik YAML, więc wcięcia mają znaczenie. Najlepiej skopiować i wkleić poniższą zawartość: global: scrape_interval: 15s evaluation_interval: 15s rule_files: # - "first.rules" # - "second.rules" scrape_configs: - job_name: 'prometheus' scrape_interval: 5s static_configs: - targets: ['localhost:9090'] - job_name: 'node_exporter' scrape_interval: 5s static_configs: - targets: ['localhost:9100'] Na koniec ustawiamy jeszcze właściciela pliku. sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml Usługę uruchamiamy wykonując polecenie sudo -u prometheus /usr/local/bin/prometheus --config.file /etc/prometheus/prometheus.yml --storage.tsdb.path /var/lib/prometheus/ --web.console.templates=/etc/prometheus/consoles --web.console.libraries=/etc/prometheus/console_libraries Powinniśmy otrzymać komunikat jak na poniższym zrzucie ekranu. W przeglądarce wchodzimy pod [adres_IP]:9090, a w kliencie SSH wykonujemy Ctrl+C. W tym panelu nic nie musimy ustawiać. Utwórzmy jeszcze usługę systemową, aby Prometheus uruchamiał się automatycznie. sudo nano /etc/systemd/system/prometheus.service Do pliku wklejamy: [Unit] Description=Prometheus Monitoring Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus Type=simple ExecStart=/usr/local/bin/prometheus \ --config.file /etc/prometheus/prometheus.yml \ --storage.tsdb.path /var/lib/prometheus/ \ --web.console.templates=/etc/prometheus/consoles \ --web.console.libraries=/etc/prometheus/console_libraries ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target Tradycyjne polecenia: sudo systemctl daemon-reload sudo systemctl enable prometheus sudo systemctl start prometheus Połączenie Prometheusa z Grafaną W Grafanie najeżdżamy kursorem na ikonę koła zębatego, po czym wybieramy Data Sources, a następnie Add data source. Pierwsza opcja (Prometheus) jest odpowiednia. Uzupełniamy jedynie pole URL, wpisując http://localhost:9090. Po naciśnięciu Save & Test powinniśmy zobaczyć poniższy komunikat. Najeżdżamy kursorem na ikonę plusa i wybieramy Import. W pierwszym polu wpisujemy 1860 i wybieramy Source (dostępny jedynie Prometheus). Nazwę możemy ustawić dowolną, Node Exporter Full jest domyślna. Po zaakceptowaniu od razu zobaczymy czytelne wykresy. Wybieramy logo Grafany z menu po lewej stronie. Pojawi się komunikat o niezapisanych zmianach. Oczywiście zapisujemy nasz dashboard. Domena Ustawmy reverse proxy, aby uniknąć w przyszłości wpisywania adresu IP i portu w pasku adresu. Jeśli dysponujemy publicznym serwerem, wystarczy podpiąć do niego naszą domenę. W przypadku lokalnych serwerów najprościej jest ustawić w lokalnym pliku hosts rozwiązywanie adresu IP serwera na dowolnie wybraną domenę. W systemach z rodziny Linux plik hosts znajduje się w katalogu /etc, a w systemie Windows w folderze C:\Windows\Systems32\etc\drivers. Do jego edycji konieczne są uprawnienia administratora. W Menu Start wyszukujemy Notatnik, naciskamy na jego ikonie prawym przyciskiem myszy i wybieramy Uruchom jako administrator. Otwieramy plik hosts z wyżej wymienionej lokalizacji. W dowolnej linii dopisujemy: [adres_IP] [domena] np. 192.168.1.129 grafana.local Reverse proxy Od teraz wystarczy wpisać domenę i port, aby uzyskać dostęp do panelu Grafany. Chcielibyśmy jednak uniknąć podawania portu. Do tego musimy użyć reverse proxy. Najprościej zainstalować serwer WWW NGINX, który często służy właśnie jako proxy. sudo apt install nginx NGINX działa ze swoją domyślną konfiguracją, dlatego musimy ją wyłączyć. sudo unlink /etc/nginx/sites-enabled/default Tworzymy w /etc/nginx/sites-enabled dowolny plik, aczkolwiek najlepiej, aby w nazwie była nasza domena. Rozszerzenie conf jest obowiązkowe. Moja konfiguracja nazywa się grafana.local.conf. Dodajemy następującą zawartość (pod [adres_IP] wstawiamy adres serwera): server { listen 80; location / { proxy_pass http://[adres_IP]:3000 } } I restartujemy NGINX poleceniem sudo systemctl restart nginx Od tej pory mamy dostęp do Grafany wpisując jedynie nazwę domeny. Dowiedzieliśmy się, w jaki sposób monitorować nasz serwer w wygodny i łatwy do wdrożenia sposób. Grafana ma wiele opcji i nie sposób przedstawić ich w jednym artykule. Zachęcam do samodzielnego odkrywania możliwości tego narzędzia.
  2. Stacja pogodowa z użyciem czujnika BME680 Stacja pogodowa to jeden z najpopularniejszych projektów IoT, którym fani elektroniki zaczynają swoją przygodę z Raspberry Pi, sensorami, przesyłaniem danych oraz ich wizualizacją. W tym artykule przyjrzymy się monitorowaniu temperatury, wilgotności, ciśnienia barometrycznego i jakości powietrza za pomocą uniwersalnego czujnika, który łączy się bezpośrednio z Raspberry Pi bez dodatkowych komponentów. Dużym plusem tej aplikacji jest to, że nie wymaga ona dużego doświadczenia w elektronice i programowaniu a wprowadza wiele przydatnych zagadnień. W tym projekcie dodatkowo wdrożymy bazę danych do przechowywania odczytów wraz z interfejsem graficznym Grafana, aby zobaczyć aktualne odczyty. W aplikacji używam adresu IP: 192.168.12.16, który oznacza adres mojego Raspberry Pi. Do poprawnego działania na malince czytelnika, należy go zmienić w plikach źródłowych oraz przy konfiguracji Grafany. Ten wpis brał udział konkursie na najlepszy artykuł o elektronice lub programowaniu. Sprawdź wyniki oraz listę wszystkich prac » Partnerem tej edycji konkursu (marzec 2020) był popularny producent obwodów drukowanych, firma PCBWay. Podłączenie BME680 do Raspberry Pi Pierwszym krokiem do uruchomienia aplikacji jest podłączenie czujnika do naszej Raspberry Pi. W zależności od producenta płytki, możemy komunikować się przez protokół SPI lub I2C. W tej aplikacji została wykorzystana płytka z pimoroni.com, która wspiera tylko protokół I2C. Czujnik jest połączony z Raspberry Pi przy użyciu czterech przewodów: Raspberry | BME680 ---------------------------------- 3V3 | 2-6V SDA1 I2C | SCA SCL1 I2C | SCL Ground | GND Specyficzną cechą tej płytki jest to, że została specjalnie zaprojektowana do wykorzystania wraz z magistralą I/O Raspberry Pi. Czujnik możemy podłączyć bez dodatkowych przewodów. Rys. 1. Bezpośrednie połączenie czujnika Jedyną wadą tego układu jest fakt, że czujnik zbiera pomiary blisko SoC-a co zmienia wskazania temperatury i wilgotności. Lepszym rozwiązaniem jest przedłużenie płytki przewodami i ustawienie sensora w bardziej przystępnym miejscu. Rys. 2. Połączenie przy użyciu przewodów Konfiguracja I2C na Raspberry Pi Przed uruchomieniem programów i instalacją potrzebnych narzędzi, musimy sprawdzić ustawienia konfiguracyjne portu I2C. Konfigurację przeprowadzamy przez wybranie z menu konfiguracyjnego lub przez komendę raspi-config: Rys. 3. Wybór z menu konfiguracyjnego Przechodzimy w Interfacing Options i wybieramy I2C: Rys. 4. Wybór interfejsu I potwierdzamy włączenie interfejsu naciskając Enter na opcji Yes: Rys. 5. Zatwierdzenie włączenia interfejsu I2C Poprawność połączenia należy sprawdzić w terminalu przy użyciu komendy: $>: sudo i2cdetect -y 1 W odpowiedzi otrzymamy tabelę adresów interfejsu I2C. Widoczny numer 76 oznacza, że czujnik został połączony i wykryty z adresem 0x76. Po tym zabiegu sprzętowa konfiguracja dobiegła końca i możemy zająć się potrzebnym oprogramowaniem. 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- 76 -- Pliki źródłowe Producent czujnika BME680 udostępnia przygotowane API na githubie. Na podstawie dokumentacji został stworzony kontroler obsługujący połączenie między Raspberry Pi a czujnikiem. Wysyłanie danych z pomiarów do brokera MQTT zostało zaimplementowane w języku C przy użyciu biblioteki paho.mqtt. Całości została połączona w pliku main.c. Dla wygody użytkownika został stworzony plik makefile do szybkiej kompilacji. Przed zbudowaniem aplikacji musimy dodać biblioteki służące do wysyłania danych do brokera MQTT. W repozytorium z plikami źródłowymi znajduje się także plik forwarder.py który został napisany do komunikacji między brokerem a bazą danych. Instalacja MQTT Protokół MQTT zapewnia lekką metodę przesyłania komunikatów przy użyciu modelu publikowania i subskrypcji. Dzięki temu nadaje się do transmisji wiadomości z urządzeń takich jak czujniki o niskiej mocy lub urządzenia mobilne jak smartfon lub mikrokontroler. Do zbudowania projektu wraz z klientem protokołu MQTT musimy pobrać bibliotekę z git-a i ją zainstalować. W tym celu wykonujemy sześć komend w terminalu: $>: git clone https://github.com/eclipse/paho.mqtt.c.git $>: cd paho.mqtt.c $>: git checkout v1.3.1 $>: cmake -Bbuild -H. -DPAHO_WITH_SSL=ON -DPAHO_ENABLE_TESTING=OFF $>: sudo cmake --build build/ --target install $>: sudo ldconfig Po zakończonej instalacji bibliotek możemy zająć się brokerem MQTT. Broker działa jak serwer, który otrzymuje dane na dany temat z różnych urządzeń. Klienci mogą subskrybować dane tematy oraz publikować wiadomości w różnych tematach. Instalacja dystrybucji Eclipse Mosquitto odbywa się przez wykonanie polecenia: $>: sudo apt install mosquitto mosquitto-clients Teraz mamy gotowe całe środowisko i możemy przystąpić do pierwszego uruchomienia aplikacji. W pierwszej kolejności otwieramy nowa konsolę i uruchamiamy broker MQTT za pomocą instrukcji: $>: mosquitto -v Gdy broker nasłuchuje w tle, możemy uruchomić aplikację stacji pogodowej. W innym terminalu, w katalogu application wykonujemy komendę: $>: make Następnie uruchamiamy aplikację WeatherStation: $>: ./WeatherStation 5 1000 logs.txt Argumenty w tej komendzie oznaczają: Pierwsza liczba oznacza przerwę między kolejnymi pomiarami w sekundach, Druga liczba oznacza ilość pomiarów, Trzeci argument to nazwa pliku z logami. Instalacja i konfiguracja InfluxDB W naszym przykładzie używamy InfluxDB do przechowywania danych, ponieważ są one zoptymalizowane pod kątem danych szeregów czasowych. Oczywiście możliwa byłaby również praca z innymi bazami danych, takimi jak MariaDB lub mongoDB, ale InfluxDB działa bezpośrednio z Grafaną. Pierwszą rzeczą do zrobienia jest instalacja InfluxDB na Raspberry Pi. Instalacja jest dość łatwa, wystarczy wykonać dwa następujące polecenia w terminalu: $>: sudo apt install influxdb $>: sudo apt install influxdb-client Po udanej instalacji uruchamiamy InfluxDB i kontrolujemy bieżący status za pomocą następujących poleceń: $>: sudo service influxdb start $>: sudo service influxdb status Obecny status InfluxDB powinien być aktywny: Rys. 6. Status aplikacji InfluxDB Po instalacji InfluxDB musimy wprowadzić jedną zmianę w konfiguracji, aby włączyć punkt końcowy HTTP. Jest to konieczne, ponieważ chcemy zapisać dane od subskrybenta MQTT do istniejącej bazy danych. Aby zmienić konfigurację, użyjemy następującej instrukcji: $>: sudo nano /etc/influxdb/influxdb.conf W pliku konfiguracyjnym przewijamy w dół za pomocą klawisza strzałki na klawiaturze do części [http] konfiguracji. Usuwamy zaznaczenie pierwszego ustawienia, usuwając znak "#" w trzech liniach, tak jak na poniższym rysunku. Klikamy "Ctrl+O", zatwierdzamy zmiany a następnie klikamy "Ctrl+X", aby wyjść z edytora tekstu nano. Rys. 7. Zmiany w pliku konfiguracyjnym InfluxDB Po każdej zmianie konfiguracji InfluxDB musi zostać ponownie uruchomiony, aby zmiany w konfiguracji były aktywne. Uruchomimy ponownie InfluxDB za pomocą następującego polecenia. $>: sudo service influxdb restart Konfiguracja jest zakończona i możemy przejść do stworzenia bazy danych, w której przechowywane są wszystkie pomiary oraz użytkownik, który zapisuje dane MQTT do bazy danych. Najpierw uruchomimy InfluxDB za pomocą następującego polecenia w terminalu Raspberry Pi: $>: influx Teraz stworzymy nową bazę danych o dowolnej nazwie. Jako nazwę wybieram „weather_stations”. Zbudujemy bazę danych poleceniem: > CREATE DATABASE weather_stations Baza danych została utworzona, a teraz tworzymy nowego użytkownika i dajemy mu prawo dostępu do utworzonej wcześniej bazy danych. Wybieram mqtt jako nazwę użytkownika i hasło. > CREATE USER mqtt WITH PASSWORD 'mqtt' > GRANT ALL ON weather_stations TO mqtt InfluxDB został zainstalowany i skonfigurowany. Stworzyliśmy bazę danych i użytkownika. Następnym krokiem jest upewnienie się, że baza danych jest wypełniona komunikatami MQTT. Przesyłanie pomiarów do bazy danych Teraz, gdy influxdb działa, musimy napisać mały skrypt, który przekazuje dane z brokera do InfluxDB. Do tego zadania został wykorzystany python, która przy użyciu biblioteki paho mqtt, zapisuje pomiary przychodzące do brokera w bazie danych. Plik został nazwany forwarder.py i można go znaleźć w katalogu głównym WeatherStation. Program rozpoczyna swoje działanie od połączenia się z brokerem o zadanym adresie IP oraz z bazą danych weather_stations w InfluxDB. Tak stworzony klient subskrybuje do zadanych tematów i nasłuchuje na wiadomości w tych tematach. Jeżeli otrzyma pomiary przez broker to wywołuje funkcje (callback), który formatuje dane i wysyła do bazy. Program działa w nieskończonej pętli i należy go wyłączyć po zakończeniu pracy. Program uruchamiamy poleceniem: $>: python forwarder.py Instalacja i konfiguracja Grafana To już ostatni krok w tworzeniu naszej stacji pogodowej. Do zainstalowania Grafany musimy najpierw sprawdzić najnowszą wersję w przeglądarce: https://github.com/grafana/grafana/releases. W tej chwili najnowsza jest wersja 6.6.0. Numer wersji umieszczamy w komendzie do pobrania i zainstalowania grafany: $>: wget https://dl.grafana.com/oss/release/grafana_6.6.0_armhf.deb $>: sudo dpkg -i grafana_6.6.0_armhf.deb $>: sudo apt-get update $>: sudo apt-get install grafana Po instalacji możemy uruchomić serwer grafana komendą w terminalu: $:> sudo service grafana-server start Dostęp do Grafany uzyskujemy na porcie 3000. Wystarczy wpisać w przeglądarce kombinację adresu IP Raspberry Pi i portu. W tym przypadku jest to 192.168.12.16:3000. Rys. 8. Widok po uruchomieniu Grafany w przeglądarce Przy pierwszym uruchomieniu wyskakuje nam okno logowania: Domyślna nazwa użytkownika i hasło to admin. Podczas pierwszego logowania możemy zmienić hasło. Teraz czas na wybranie źródła danych. Wybieramy InfluxDB. Najważniejsze pola to nazwa źródła, URL, nazwa bazy danych z której korzystamy oraz nazwa i hasło użytkownika. Zapisujemy ustawienia i przechodzimy do tworzenia panelu. Rys. 9. Źródło danych oraz widok konfiguracji panelu Tworzenie wizualizacji pulpitu nawigacyjnego odbywa się przez kliknięcie przycisku "Add panel" na górnym pasku oraz zdefiniowaniu zapytania SQL. Grafana ma ogromną ilość ustawień, ale to temat na inny artykuł. Rys. 10. Przykładowy panel w Grafanie Każdemu czytelnikowi polecam zapoznać się samemu z Grafaną. W razie pytań lub problemów, skorzystaj z sekcji komentarzy poniżej, a ja odpowiem na twoje pytania tak szybko, jak to możliwe. W załączniku został dołączony plik GrafanaWeatherStationJson, który zawiera informację o powyższym panelu. Podsumowanie W tym samouczku przeszliśmy przez całe konfiguracje stacji pogodowej od sprzętowego połączenia czujnika, przez broker MQTT aż do wizualizacji w Grafanie. Na koniec chciałbym dodać, że aplikacja została stworzona przy użyciu sprzętu firmy Dekimo Experts Delft jako część wewnętrznego projektu. WeatherStation.zip
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.