Spisu treści:
- Krok 1: Przygotowanie Raspberry Pi
- Krok 2: Konfiguracja NoCAN
- Krok 3: Łączenie sprzętu UFire
- Krok 4: Sprzęt NoCAN
- Krok 5: Zaprogramuj węzeł CAZERO
- Krok 6: Jak to wszystko się łączy?
- Krok 7: Konfiguracja Chronografu lub Grafana
- Krok 8: Niektóre ulepszenia
Wideo: Przechowuj i wykresuj dane EC/pH/ORP za pomocą TICK Stack i platformy NoCAN: 8 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
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:
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:
- 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.
- 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.
- Konfiguruje usługę Systemd, która utrzymuje działanie demona NoCAN.
- 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.
- Dodaje repozytorium InfluxData do apt i instaluje stos TICK. A ponieważ wolę go od Chronografa, instaluje też Grafanę.
- 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
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
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
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?
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:
- Węzeł CAZERO jest podłączony do PiMaster i gdzieś wdrożony
- Co minutę na PiMaster uruchamiane jest zadanie Crona. Wykona skrypt Pythona.
- Skrypt Pythona wyśle polecenie do węzła, informując go o wykonaniu pomiaru lub innej akcji.
- Węzeł wykona polecenie i zwróci wynik w formacie JSON.
- 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
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:
Monitorowanie temperatury i wilgotności DHT za pomocą ESP8266 i platformy AskSensors IoT: 8 kroków
Monitorowanie temperatury i wilgotności DHT za pomocą ESP8266 i platformy AskSensors IoT: W poprzedniej instrukcji przedstawiłem przewodnik krok po kroku, jak rozpocząć pracę z nodeMCU ESP8266 i platformą AskSensors IoT. W tym samouczku podłączam czujnik DHT11 do węzła MCU. DHT11 to powszechnie stosowany czujnik temperatury i wilgotności
Wyślij dane do platformy AskSensors IoT z przeglądarki internetowej: 6 kroków
Wyślij dane do platformy AskSensors IoT z przeglądarki internetowej: Niedawno opublikowałem instrukcję pokazującą krok po kroku, jak podłączyć MCU węzła ESP8266 do platformy AskSensors IoT. Otrzymałem kilka opinii od osób bardziej zainteresowanych platformą AskSensors, ale nie mają pod ręką MCU węzła. To ja
Automatyczny system przejazdów kolejowych za pomocą wbudowanej platformy opartej na Arduino: 9 kroków
Automatyczny system przejazdów kolejowych za pomocą wbudowanej platformy opartej na Arduino: Boże Narodzenie już za tydzień! Wszyscy są zajęci świętowaniem i zdobywaniem prezentów, które, nawiasem mówiąc, stają się jeszcze trudniejsze do zdobycia z niekończącymi się możliwościami wokół nas. Co powiesz na klasyczny prezent i dodaj odrobinę majsterkowania do
Inteligentna gra zręcznościowa w koszykówkę z obręczami do liczenia punktów za pomocą wbudowanej platformy Eveve-Arduino: 13 kroków
Inteligentna gra zręcznościowa do koszykówki z obręczami liczącymi punkty za pomocą wbudowanej platformy Eveve-Arduino: Ze wszystkich dostępnych gier najbardziej rozrywkowe są gry zręcznościowe. Pomyśleliśmy więc, dlaczego nie zrobić tego sami w domu! I oto jesteśmy, najbardziej zabawna gra DIY, w jaką kiedykolwiek grałeś do tej pory - DIY Arcade Basketball Game! Nie tylko jest to
Wykrywacz ruchu za pomocą platformy Thingsai.io Iot Cloud: 6 kroków
Detektor ruchu za pomocą platformy chmury Thingsai.io Iot: W tym samouczku wyjaśnię wykrywanie ruchu za pomocą czujnika PIR i Esp32 wraz z platformą chmury IOT Thingai.io