Spisu treści:

Przechowuj i wykresuj dane EC/pH/ORP za pomocą TICK Stack i platformy NoCAN: 8 kroków
Przechowuj i wykresuj dane EC/pH/ORP za pomocą TICK Stack i platformy NoCAN: 8 kroków

Wideo: Przechowuj i wykresuj dane EC/pH/ORP za pomocą TICK Stack i platformy NoCAN: 8 kroków

Wideo: Przechowuj i wykresuj dane EC/pH/ORP za pomocą TICK Stack i platformy NoCAN: 8 kroków
Wideo: Przechowuj żywność długo i skutecznie w zamrażarkach skrzyniowych Electrolux 2024, Listopad
Anonim
Przechowuj i wykresuj dane EC/pH/ORP za pomocą TICK Stack i platformy NoCAN
Przechowuj i wykresuj dane EC/pH/ORP za pomocą TICK Stack i platformy NoCAN

W tym artykule omówimy, jak korzystać z platformy NoCAN firmy Omzlo i czujników uFire do pomiaru EC, pH i ORP. Jak mówi ich strona internetowa, czasami łatwiej jest po prostu poprowadzić kabel do węzłów czujników. CAN ma zaletę komunikacji i zasilania w jednym kablu, więc sygnał i bateria nie są problemami. Oprogramowanie układowe węzłów może być prostsze; na przykład bez kłopotów z trybami uśpienia lub konfiguracją Wi-Fi. Platforma NoCAN ma również kilka świetnych funkcji, takich jak programowanie węzłów przez magistralę CAN.

Platforma NoCAN wykorzystuje Raspberry Pi, więc wszystko, co można zrobić, będzie dostępne. Wykorzystamy to, instalując stos TICK. To pozwoli nam używać InfluxDB do przechowywania pomiarów. Jest to baza danych oparta na szeregach czasowych, stworzona specjalnie do tego typu rzeczy. Jest również wyposażony w Chronograf do tworzenia pulpitów nawigacyjnych i wyświetlania wszystkich danych, które będziemy pobierać. T i K oznaczają Telegraf i Kapacitor. Telegraf znajduje się pomiędzy przesyłanymi danymi a bazą danych Influx. Kondensator to silnik zdarzeń. Gdy coś się stanie, może wysłać Ci powiadomienie za pomocą różnych metod. I właśnie dlatego, że podoba mi się bardziej niż Chronograf, zamontuję Grafanę na deski rozdzielcze.

Krok 1: Przygotowanie Raspberry Pi

Udaj się na stronę Rasbian Download i pobierz obraz za pomocą pulpitu i zalecanego oprogramowania, a następnie prześlij go na kartę SD.

Po umieszczeniu obrazu na karcie SD powinieneś mieć dwa woluminy, root i boot. Otwórz terminal w boot i wpisz:

dotknij cicho

To umożliwi SSH.

Następnie wpisz:

nano wpa_supplicant.conf

Skopiuj/wklej następujące elementy po zmodyfikowaniu ich dla własnego hrabstwa i ustawień Wi-Fi:

kraj=USA

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="NAZWA-SIECI" psk="HASŁO-SIECI" }

Kody krajów pochodzą stąd.

Włącz SPI:

echo "dtparam=spi=on" >> config.txt

Włóż kartę SD do Raspberry Pi, poczekaj chwilę i wpisz:

ssh [email protected]

Powinieneś być w monicie logowania. Hasło jest malinowe.

Krok 2: Konfiguracja NoCAN

Omzlo zapewnia dokładny przewodnik po instalacji. Ale postanowiłem sobie to ułatwić i dowiedzieć się trochę o skryptowaniu Bash. Więc uruchom Raspberry Pi i podłącz do niego terminal SSH lub szeregowy.

Dowiedziałem się, że na stworzenie dobrego skryptu Bash można poświęcić tyle samo czasu, ile chcesz zainstalować. Istnieje 1000 sposobów, aby coś zrobić, niektóre są prostsze do uchwycenia lub wykonania niż inne. W końcu nie zrobiłem zbyt wiele. Jeśli wykonasz:

wget https://ufire.co/nocan.sh && chmod +x nocan.sh && sudo./nocan.sh

W terminalu Raspberry Pi pobierze i wykona skrypt.

Potem to:

  1. Pobiera demona Omzlo NoCAN i instaluje go w /usr/bin dla łatwego dostępu, tworzy folder ~/.nocand i zapisuje bardzo podstawowy plik konfiguracyjny z hasłem ustawionym na 'password'. Powinieneś prawdopodobnie zmienić to na coś innego, to jest w ~/.nocand/config.
  2. Pobiera klienta Omzlo NoCAN i kopiuje go do /usr/bin i tworzy podstawowy plik konfiguracyjny z tym samym ustawionym hasłem. Znajduje się pod adresem ~/.nocanc.conf.
  3. Konfiguruje usługę Systemd, która utrzymuje działanie demona NoCAN.
  4. Zapisuje plik Pythona do ~/.nocand, nocan_ufire.py. Będzie komunikować się z oprogramowaniem układowym węzła NoCAN i wykonywać pomiary EC, pH i ORP, analizować wyniki i dodawać je do bazy danych InfluxDB.
  5. Dodaje repozytorium InfluxData do apt i instaluje stos TICK. A ponieważ wolę go od Chronografa, instaluje też Grafanę.
  6. Tworzy pustą bazę danych Influx

Niektóre problemy, na które możesz się natknąć:

  • Twoje ustawienia regionalne mogą nie być skonfigurowane, więc uruchom dpkg-reconfigure locales
  • Instalacja Grafany może się zawiesić, więc spróbuj ponownie.
  • Demon influx może nie zostać uruchomiony na czas, aby skrypt dodał bazę danych, wpisz

    curl -i -XPOST https://localhost:8086/query --data-urlencode "q=CREATE DATABASE nocan"

  • Ten skrypt działa tylko jako domyślny użytkownik pi. W razie potrzeby musisz zmienić pi na swoją nazwę użytkownika, jeśli jesteś pod innym użytkownikiem.

Ostatnią rzeczą jest dodanie zadania crona. Nie mogłem znaleźć bardzo dobrego sposobu na napisanie tego skryptu, więc wpisz 'crontab -e', aby edytować ręcznie i dodaj '* * * * * python /home/pi/.nocand/nocan_ufire.py'.

Gdy to wszystko zrobisz, możesz sprawdzić, czy wszystko jest skonfigurowane i działa tak, jak powinno. Grafana mieszka pod adresem https://[Adres Raspberry Pi]:3000/. Powinieneś zobaczyć stronę logowania, domyślnie admin/admin.

Chronograf można znaleźć pod adresem https://[Adres Raspberry Pi]:8888/

Krok 3: Łączenie sprzętu UFire

Składanie sprzętu UFire razem
Składanie sprzętu UFire razem

Zanim będziemy mogli zmontować sprzęt, musimy zająć się jedną rzeczą. Płytka uFire ISE może być używana do pomiaru zarówno pH, jak i ORP. Sprzęt jest taki sam, ale oprogramowanie jest inne. Ponieważ sprzęt jest taki sam, oznacza to, że adres I2C jest domyślnie taki sam. A czujniki komunikują się przez I2C, więc trzeba będzie je wymienić. W tym projekcie wybierzemy jedną z tablic ISE i użyjemy jej do pomiaru ORP. Postępując zgodnie z instrukcjami tutaj, zmień adres na 0x3e.

Teraz, gdy adres został zmieniony, składanie sprzętu jest łatwe. Ta konfiguracja opiera się na wcześniejszej pracy, w której robi się w zasadzie to samo, ale używa BLE zamiast CAN do przesyłania danych. Możesz o tym przeczytać na Arduino Project Hub. Wszystkie urządzenia czujnikowe korzystają z systemu łączenia Qwiic, więc po prostu połącz wszystko razem w łańcuch, jest tylko jeden sposób na włożenie przewodów Qwiic do Qwiic. Potrzebujesz jednego przewodu Qwiic do Male, aby podłączyć jeden z czujników do węzła CNZERO. Przewody są spójne i oznaczone kolorami. Podłącz czarny do GND węzła, czerwony do pinu +3.3V lub +5V, niebieski do pinu SDA, który jest D11, a żółty do pinu SCL na D12.

W przypadku tego projektu będzie oczekiwał, że informacje o temperaturze będą pochodzić z czujnika EC, więc pamiętaj, aby podłączyć czujnik temperatury do płyty EC. Wszystkie deski posiadają jednak możliwość pomiaru temperatury. Nie zapomnij podłączyć sond EC, pH i ORP do odpowiednich czujników. Można je łatwo podłączyć za pomocą złączy BNC. Jeśli masz wybieg, dobrym pomysłem byłoby umieszczenie tego wszystkiego w środku, zwłaszcza biorąc pod uwagę, że w grę wchodzi woda.

Krok 4: Sprzęt NoCAN

Sprzęt NoCAN
Sprzęt NoCAN

Montaż sprzętu NoCAN jest również łatwy. Podłącz PiMaster do Raspberry Pi i znajdź dla niego odpowiedni zasilacz.

Postępuj zgodnie z instrukcjami Omzlo dotyczącymi tworzenia kabli do swojego projektu.

Wdróż swój węzeł i znajdź miejsce dla PiMastera.

Krok 5: Zaprogramuj węzeł CAZERO

Zaprogramuj węzeł CAZERO
Zaprogramuj węzeł CAZERO

Jedną z największych zalet tej konfiguracji jest to, że możesz uzyskać dostęp do węzłów nawet po ich wdrożeniu. Są programowane przez przewód CAN, więc możesz je przeprogramować w dowolnym momencie.

W tym celu będziesz potrzebować zainstalowanego Arduino IDE, PiMaster w sieci i węzła podłączonego do magistrali CAN. Będziesz także potrzebował programu o nazwie nocac zainstalowanego na twoim komputerze deweloperskim. Wszystko to jest opisane na stronie instalacji Omzlo.

Odwiedź GitHub i skopiuj kod do nowego szkicu Arduino IDE. Zmień kartę na Omzlo CNZERO i wybierz węzeł w menu „Port”. Następnie po prostu kliknij prześlij jak zwykle. Jeśli wszystko poszło zgodnie z planem, powinieneś mieć zaprogramowany węzeł gotowy do wykonania pewnych pomiarów.

Krok 6: Jak to wszystko się łączy?

Jak to wszystko się łączy?
Jak to wszystko się łączy?

Teraz, gdy całe oprogramowanie i sprzęt są skonfigurowane, poświęćmy chwilę, aby porozmawiać o tym, jak to wszystko faktycznie będzie działać. I pochwal się moimi umiejętnościami GIMP…

W podsumowaniu:

  1. Węzeł CAZERO jest podłączony do PiMaster i gdzieś wdrożony
  2. Co minutę na PiMaster uruchamiane jest zadanie Crona. Wykona skrypt Pythona.
  3. Skrypt Pythona wyśle polecenie do węzła, informując go o wykonaniu pomiaru lub innej akcji.
  4. Węzeł wykona polecenie i zwróci wynik w formacie JSON.
  5. Skrypt Pythona otrzyma ten wynik, przeanalizuje go i zaktualizuje za jego pomocą InfluxDB.

Ostatnim krokiem jest obserwowanie zebranych danych na ładnie wyglądających wykresach.

Krok 7: Konfiguracja Chronografu lub Grafana

Konfigurowanie Chronografu lub Grafana
Konfigurowanie Chronografu lub Grafana

Ostatnią rzeczą do zrobienia jest ustawienie wykresów w Chronografie lub Grafanie.

Musisz skonfigurować źródło danych. Wartości domyślne dla InfluxDB są w porządku. Jego adres to „https://localhost:8086” i nie ma nazwy użytkownika ani hasła.

Oba są podobne pod tym względem, że są zorganizowane w pulpity nawigacyjne, w których znajduje się dowolna liczba wykresów. Oba mają obszar Eksploruj, który umożliwia przeglądanie pomiarów i interaktywne tworzenie wykresów. Pamiętaj, że nazwa bazy danych to „nocan” i jest zorganizowana w kilka pomiarów z jedną wartością.

Jak wspomniałem, wolę Grafanę, ponieważ jest bardziej konfigurowalna niż Chronograf. Jest również przyjazny dla urządzeń mobilnych, gdzie Chronograf nie jest. Wykresy można łatwo osadzać i udostępniać

Krok 8: Niektóre ulepszenia

  • Możesz ustawić nazwę hosta swojego Raspberry Pi, aby łatwiej uzyskać do niego dostęp w sieci. Możesz to zrobić w raspi-config. Zmieniłem mój na nocan, więc mogłem przejść do nocan.local, aby uzyskać do niego dostęp (nie działa na Androidzie).
  • Możesz zainstalować program taki jak ngrok, aby uzyskać dostęp do Raspberry Pi poza siecią.
  • Użyj jednej z metod udostępnianych przez Kapacitor, aby dostarczać powiadomienia.
  • Oczywiście dodaj więcej czujników.

Zalecana: