Innehållsförteckning:

Lagra och grafera EC/pH/ORP -data med TICK -stacken och NoCAN -plattformen: 8 steg
Lagra och grafera EC/pH/ORP -data med TICK -stacken och NoCAN -plattformen: 8 steg

Video: Lagra och grafera EC/pH/ORP -data med TICK -stacken och NoCAN -plattformen: 8 steg

Video: Lagra och grafera EC/pH/ORP -data med TICK -stacken och NoCAN -plattformen: 8 steg
Video: ЧЕРНОГОРИЯ 🇲🇪. Будва или Котор? Пляжи по 120€. Большой выпуск 4K. 2024, November
Anonim
Lagra och grafera EC/pH/ORP -data med TICK -stacken och NoCAN -plattformen
Lagra och grafera EC/pH/ORP -data med TICK -stacken och NoCAN -plattformen

Detta kommer att gå igenom hur man använder NoCAN -plattformen från Omzlo och uFire -sensorer för att mäta EC, pH och ORP. Som deras webbplats säger, ibland är det lättare att bara köra en kabel till dina sensornoder. CAN har fördelen av kommunikation och ström i en kabel så signal och batteri är inga problem. Nodens firmware kan vara enklare; inte bry dig om vilolägen eller WiFi -installation, till exempel. NoCAN -plattformen har också några bra funktioner som att programmera noder över CAN -bussen.

NoCAN -plattformen använder en Raspberry Pi, så allt som kan göra blir tillgängligt. Vi kommer att dra nytta av det genom att installera TICK -stacken. Det låter oss använda InfluxDB för att lagra mätningar. Det är en tidsseriebaserad databas som är specialtillverkad för den här typen av saker. Det kommer också med Chronograf för att göra instrumentpaneler och visa all denna data som vi kommer att ta. T och K står för Telegraf och Kapacitor. Telegraf sitter mellan data du skickar och Influx -databasen. Kapacitor är evenemangsmotorn. När något händer kan det skicka dig ett meddelande via en mängd olika metoder. Och bara för att jag gillar det bättre än Chronograf kommer jag att installera Grafana för instrumentpaneler.

Steg 1: Förbered Raspberry Pi

Gå till sidan för nedladdning av Rasbian och ladda ner bilden med skrivbordet och rekommenderad programvara, och flasha den sedan till ett SD -kort.

När bilden finns på ditt SD -kort bör du ha två volymer, root och boot. Öppna en terminal i start och skriv:

tryck på ssh

Det gör det möjligt för SSH.

Skriv sedan:

nano wpa_supplicant.conf

Och kopiera/klistra in följande efter att du har ändrat det för ditt eget län och WiFi -inställningar:

land = USA

ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdev update_config = 1 nätverk = {ssid = "NETWORK-NAME" psk = "NETWORK-PASSWORD"}

Landskoderna kommer härifrån.

Aktivera SPI:

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

Sätt SD -kortet i din Raspberry Pi, vänta lite och skriv:

ssh [email protected]

Du borde befinna dig vid inloggningsfrågan. Lösenordet är hallon.

Steg 2: Konfigurera NoCAN

Omzlo tillhandahåller en grundlig installationsguide. Men jag bestämde mig för att göra det lättare för mig själv och lära mig lite om Bash -skript. Så sätt igång din Raspberry Pi och SSH eller seriell terminal i den.

Jag lärde mig att lika mycket utvecklingstid kan gå till att skapa ett bra Bash -skript som vad du än försöker installera. Det finns 1000 sätt att få något gjort, några enklare att förstå eller utföra än andra. Till slut gjorde jag faktiskt inte så mycket. Om du kör:

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

I din Raspberry Pi -terminal laddar den ner och kör skriptet.

Sedan det:

  1. Hämtar Omzlo NoCAN -demon och installerar den i/usr/bin för enkel åtkomst, gör en ~/.nocand -mapp och skriver en mycket grundläggande konfigurationsfil med lösenordet inställt på 'lösenord'. Du borde nog ändra det till något annat, det är på ~/.nocand/config.
  2. Hämtar Omzlo NoCAN -klienten och kopierar den i /usr /bin och skapar en grundläggande konfigurationsfil med samma lösenord. Det är på ~/.nocanc.conf.
  3. Konfigurerar en Systemd -tjänst som håller NoCAN -demonen igång.
  4. Skriver en pythonfil till ~/.nocand, nocan_ufire.py. Den kommer att prata med NoCAN -nodens firmware och ta EC-, pH- och ORP -mätningar, analysera resultaten och lägga till dem i InfluxDB -databasen.
  5. Lägger till InfluxDatas repo till apt och installerar TICK -stacken. Och eftersom jag föredrar det framför Chronograf, installerar det Grafana också.
  6. Skapar en tom Influx -databas

Några gotchas du kan stöta på:

  • Din plats kanske inte är inställd, så kör dpkg-omkonfigurera platser
  • Grafana -installationen kan hänga, så försök igen.
  • Tillströmningsdemonen kanske inte startas i tid för att manuset ska lägga till databasen, typ

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

  • Detta skript fungerar bara som standard pi -användare. Du måste vid behov ändra pi till ditt användarnamn om du är under en annan användare.

Det sista är att lägga till ett cron -jobb. Jag kunde inte hitta ett mycket bra sätt att skripta den här, så skriv 'crontab -e' för att redigera manuellt och lägg till ' * * * * * python /home/pi/.nocand/nocan_ufire.py'.

När allt är klart kan du verifiera att allt är konfigurerat och körs som det ska. Grafana bor på https:// [Raspberry Pi's Address]: 3000/. Du bör se en inloggningssida, admin/admin är standard.

Chronograf finns på https:// [Raspberry Pi's Address]: 8888/

Steg 3: Sätta ihop UFire -hårdvaran

Att sätta ihop UFire -hårdvaran
Att sätta ihop UFire -hårdvaran

Innan vi kan montera hårdvaran är det en sak att ta itu med. UFire ISE -kortet kan användas för att mäta både pH och ORP. Hårdvaran är densamma, men programvaran är annorlunda. Eftersom hårdvaran är densamma betyder det att I2C -adressen som standard också är densamma. Och sensorerna kommunicerar via I2C så en måste ändras. För det här projektet kommer vi att välja en av ISE -korten och använda den för att mäta ORP. Följ stegen här, ändra adressen till 0x3e.

Nu när adressen ändras är det enkelt att sätta ihop hårdvaran. Denna inställning är baserad på att tidigare arbete gör i princip samma sak men använder BLE snarare än CAN för att överföra data. Du kan läsa om det på Arduino Project Hub. Alla sensorenheter använder Qwiic -anslutningssystemet så det är bara att koppla ihop allt i en kedja, det finns bara ett sätt att sätta in Qwiic i Qwiic -ledningarna. Du behöver en Qwiic till Male -kabel för att ansluta en av sensorerna till CANZERO -noden. Trådarna är konsekventa och färgkodade. Anslut svart till nodens GND, rött till antingen +3.3V eller +5V stift, blått till SDA -stiftet som är D11 och gult till SCL -stiftet på D12.

För detta projekt kommer det att förvänta sig att temperaturinformationen kommer från EC -sensorn, så var noga med att fästa en temperatursensor på EC -kortet. Alla brädor har dock möjlighet att mäta temperatur. Glöm inte att fästa EC-, pH- och ORP -sonderna till lämpliga sensorer. De fästs enkelt med BNC -kontakter. Om du har ett hölje skulle det vara en bra idé att lägga allt detta inuti, särskilt med tanke på att vatten kommer att vara inblandat.

Steg 4: NoCAN -hårdvaran

NoCAN -hårdvaran
NoCAN -hårdvaran

Det är också enkelt att montera NoCAN -hårdvaran. Anslut PiMaster till Raspberry Pi och hitta en lämplig strömförsörjning för den.

Följ Omzlos instruktioner om hur du gör kablar för ditt projekt.

Distribuera din nod och hitta en plats för PiMaster.

Steg 5: Programmera CANZERO -noden

Programmera CANZERO -noden
Programmera CANZERO -noden

En av de stora sakerna med den här inställningen är att du kan komma åt noderna även efter att de har distribuerats. De är programmerade över CAN-kabeln, så du kan programmera om dem när du vill.

För det behöver du Arduino IDE installerat, PiMaster i ditt nätverk och din nod ansluten till CAN -bussen. Du behöver också ett program som heter nocanc installerat på din utvecklingsdator. Allt detta beskrivs på Omzlos installationssida.

Besök GitHub och kopiera koden till en ny Arduino IDE -skiss. Ändra kortet till Omzlo CANZERO och välj noden i menyn 'Port'. Klicka sedan på uppladdning som vanligt. Om allt gick enligt plan bör du ha en programmerad nod redo att göra några mätningar.

Steg 6: Hur hänger allt detta ihop?

Hur hänger allt detta ihop?
Hur hänger allt detta ihop?

Nu när all mjukvara och hårdvara är konfigurerad, låt oss ta en stund att prata om hur allt faktiskt kommer att fungera. Och visa upp mina GIMP -färdigheter …

Sammanfattningsvis:

  1. CANZERO -noden är ansluten till PiMaster och distribuerad någonstans
  2. Varje minut körs ett Cron -jobb på PiMaster. Det kommer att köra ett python -skript.
  3. Python -skriptet skickar ett kommando till noden som säger att den ska utföra en mätning eller någon annan åtgärd.
  4. Noden kommer att utföra vad kommandot var och returnera ett resultat i JSON -format.
  5. Python -skriptet tar emot det resultatet, analyserar det och uppdaterar en InfluxDB med det.

Det sista steget är att se datainsamlingen i några snygga diagram.

Steg 7: Konfigurera Chronograf eller Grafana

Konfigurera Chronograf eller Grafana
Konfigurera Chronograf eller Grafana

Det sista du ska göra är att sätta upp några sjökort i Chronograf eller Grafana.

Du måste konfigurera datakällan. Standardinställningarna för InfluxDB är bra. Adressen för den är 'https:// localhost: 8086' och det finns inget användarnamn eller lösenord.

Båda liknar varandra genom att de är organiserade i instrumentpaneler som har ett antal diagram i sig. Båda har ett Utforskningsområde som låter dig se mätningarna och interaktivt skapa diagram. Kom ihåg att databasnamnet är 'nocan' och organiserat i flera mätningar med ett värde.

Som jag nämnde föredrar jag Grafana eftersom det är mer konfigurerbart än Chronograf. Det är också mobilvänligt, där Chronograf inte är. Diagrammen är enkla att bädda in och dela

Steg 8: Några förbättringar

  • Du kan ställa in värdnamnet för din Raspberry Pi för att komma åt det enklare i ditt nätverk. Du kan göra det i raspi-config. Jag bytte min till nocan, så jag kunde gå till nocan.local för att komma åt den (fungerar inte på Android).
  • Du kan installera ett program som ngrok för att komma åt din Raspberry Pi utanför ditt nätverk.
  • Använd en av metoderna Kapacitor tillhandahåller för att tillhandahålla aviseringar.
  • Lägg till fler sensorer, naturligtvis.

Rekommenderad: