Inhoudsopgave:

EC/pH/ORP-gegevens opslaan en weergeven met de TICK-stack en het NoCAN-platform: 8 stappen
EC/pH/ORP-gegevens opslaan en weergeven met de TICK-stack en het NoCAN-platform: 8 stappen

Video: EC/pH/ORP-gegevens opslaan en weergeven met de TICK-stack en het NoCAN-platform: 8 stappen

Video: EC/pH/ORP-gegevens opslaan en weergeven met de TICK-stack en het NoCAN-platform: 8 stappen
Video: Data Driven Live Session: Digitaal meten van lucht en waterkwaliteit met IoT en Machine Learning 2024, November
Anonim
EC/pH/ORP-gegevens opslaan en weergeven met het TICK-stack- en NoCAN-platform
EC/pH/ORP-gegevens opslaan en weergeven met het TICK-stack- en NoCAN-platform

Hierin wordt uitgelegd hoe u het NoCAN-platform van Omzlo en uFire-sensoren kunt gebruiken om EC, pH en ORP te meten. Zoals hun website zegt, is het soms gemakkelijker om gewoon een kabel naar je sensorknooppunten te leiden. CAN heeft het voordeel van communicatie en voeding in één kabel, dus signaal en batterij zijn geen problemen. De firmware van de nodes kan eenvoudiger; geen gedoe met bijvoorbeeld slaapstanden of wifi-instellingen. Het NoCAN-platform heeft ook een aantal geweldige functies, zoals het programmeren van de knooppunten via de CAN-bus.

Het NoCAN-platform maakt gebruik van een Raspberry Pi, dus alles wat kan, zal beschikbaar zijn. We gaan hiervan profiteren door de TICK-stack te installeren. Dat stelt ons in staat InfluxDB te gebruiken om metingen op te slaan. Het is een op tijdreeksen gebaseerde database die speciaal voor dit soort dingen is gemaakt. Het wordt ook geleverd met Chronograf om dashboards te maken en al deze gegevens weer te geven die we gaan gebruiken. De T en K staan voor Telegraf en Kapacitor. Telegraf zit tussen de gegevens die u verstuurt en de Influx-database. Kapacitor is de event-engine. Wanneer er iets gebeurt, kan het u op verschillende manieren een melding sturen. En omdat ik het beter vind dan Chronograf, installeer ik Grafana voor dashboards.

Stap 1: De Raspberry Pi klaar maken

Ga naar de Rasbian-downloadpagina en download de afbeelding met het bureaublad en de aanbevolen software en flash deze vervolgens op een SD-kaart.

Nadat de afbeelding op uw SD-kaart staat, zou u twee volumes moeten hebben, root en boot. Open een terminal in boot en typ:

raak ssh. aan

Dat zal SSH inschakelen.

Typ dan:

nano wpa_supplicant.conf

En kopieer/plak het volgende nadat je het hebt aangepast voor je eigen provincie en wifi-instellingen:

land=VS

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

De landcodes komen hier vandaan.

SPI inschakelen:

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

Stop de SD-kaart in je Raspberry Pi, wacht even en typ:

ssh [email protected]

U zou bij de inlogprompt moeten zijn. Het wachtwoord is framboos.

Stap 2: NoCAN instellen

Omzlo biedt een grondige installatiehandleiding. Maar ik besloot het mezelf gemakkelijker te maken en iets te leren over Bash-scripting. Dus laat je Raspberry Pi starten en SSH of seriële terminal erin.

Ik heb geleerd dat er net zoveel ontwikkeltijd kan zitten in het maken van een goed Bash-script als wat je ook probeert te installeren. Er zijn 1000 manieren om iets gedaan te krijgen, sommige eenvoudiger te begrijpen of uit te voeren dan andere. Uiteindelijk heb ik niet veel gedaan. Als u uitvoert:

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

In de terminal van je Raspberry Pi zal het het script downloaden en uitvoeren.

Dan is het:

  1. Downloadt de Omzlo NoCAN-daemon en installeert deze in /usr/bin voor gemakkelijke toegang, maakt een ~/.nocand-map en schrijft een heel eenvoudig configuratiebestand met het wachtwoord ingesteld op 'password'. Je zou het waarschijnlijk in iets anders moeten veranderen, het staat op ~/.nocand/config.
  2. Downloadt de Omzlo NoCAN-client en kopieert deze in /usr/bin en maakt een basisconfiguratiebestand met hetzelfde wachtwoord. Het staat op ~/.nocanc.conf.
  3. Stelt een Systemd-service in die ervoor zorgt dat de NoCAN-daemon blijft draaien.
  4. Schrijft een python-bestand naar ~/.nocand, nocan_ufire.py. Het praat met de firmware van het NoCAN-knooppunt en neemt EC-, pH- en ORP-metingen, parseert de resultaten en voegt ze toe aan de InfluxDB-database.
  5. Voegt de repo van InfluxData toe aan apt en installeert de TICK-stack. En aangezien ik het verkies boven Chronograf, installeert het ook Grafana.
  6. Creëert een lege Influx-database

Enkele valkuilen waar je tegenaan kunt lopen:

  • Uw landinstelling is mogelijk niet ingesteld, dus voer dpkg-reconfigure locales uit
  • De Grafana-installatie kan vastlopen, dus probeer het gewoon opnieuw.
  • De influx-daemon wordt mogelijk niet op tijd gestart om het script de database te laten toevoegen, typ

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

  • Dit script werkt alleen als de standaard pi-gebruiker. U moet waar nodig pi wijzigen in uw gebruikersnaam als u onder een andere gebruiker bent.

Het laatste is om een cronjob toe te voegen. Ik kon geen erg goede manier vinden om dit script te schrijven, dus typ 'crontab -e' om handmatig te bewerken en voeg '* * * * * python /home/pi/.nocand/nocan_ufire.py' toe.

Zodra dat allemaal is gebeurd, kunt u controleren of alles is ingesteld en werkt zoals het hoort. Grafana woont op https://[adres van Raspberry Pi]:3000/. U zou een inlogpagina moeten zien, admin/admin is de standaardinstelling.

Chronograf is te vinden op https://[adres Raspberry Pi]:8888/

Stap 3: De UFire-hardware samenstellen

De UFire-hardware samenvoegen
De UFire-hardware samenvoegen

Voordat we de hardware kunnen monteren, moet er één ding worden aangepakt. Het uFire ISE-bord kan worden gebruikt om zowel pH als ORP te meten. De hardware is hetzelfde, maar de software is anders. Omdat de hardware hetzelfde is, betekent dit dat het I2C-adres standaard ook hetzelfde is. En de sensoren communiceren via I2C, dus er moet een worden gewijzigd. Voor dit project gaan we een van de ISE-borden kiezen en deze gebruiken om ORP te meten. Volg de stappen hier en verander het adres in 0x3e.

Nu het adres is gewijzigd, is het eenvoudig om de hardware in elkaar te zetten. Deze opzet is gebaseerd op eerder werk dat in wezen hetzelfde deed, maar BLE gebruikt in plaats van CAN om gegevens te verzenden. Je kunt erover lezen op de Arduino Project Hub. Alle sensorapparaten gebruiken het Qwiic connect-systeem, dus sluit alles gewoon in een ketting aan, er is maar één manier om de Qwiic-naar-Qwiic-draden in te voegen. Je hebt één Qwiic naar Male-draad nodig om een van de sensoren op de CANZERO-node aan te sluiten. De draden zijn consistent en kleurgecodeerd. Sluit zwart aan op de GND van het knooppunt, rood op de +3,3V- of +5V-pin, blauw op de SDA-pin die D11 is, en geel op de SCL-pin op D12.

Voor dit project verwacht het dat de temperatuurinformatie van de EC-sensor komt, dus zorg ervoor dat je een temperatuursensor op het EC-bord bevestigt. Alle borden hebben echter de mogelijkheid om de temperatuur te meten. Vergeet niet de EC-, pH- en ORP-sondes op de juiste sensoren te bevestigen. Ze zijn eenvoudig te bevestigen met BNC-connectoren. Als je een omheining hebt, zou het een goed idee zijn om dit allemaal binnen te plaatsen, vooral gezien het feit dat er water bij komt kijken.

Stap 4: De NoCAN-hardware

De NoCAN-hardware
De NoCAN-hardware

Het monteren van de NoCAN-hardware is ook eenvoudig. Sluit de PiMaster aan op de Raspberry Pi en zoek er een geschikte voeding voor.

Volg de instructies van Omzlo voor het maken van kabels voor uw project.

Implementeer uw node en zoek een plaats voor de PiMaster.

Stap 5: Programmeer de CANZERO Node

Programmeer de CANZERO Node
Programmeer de CANZERO Node

Een van de geweldige dingen van deze setup is dat je toegang hebt tot de nodes, zelfs nadat ze zijn geïmplementeerd. Ze worden via de CAN-draad geprogrammeerd, zodat u ze op elk gewenst moment opnieuw kunt programmeren.

Daarvoor heb je de Arduino IDE nodig, de PiMaster op je netwerk en je node aangesloten op de CAN-bus. U hebt ook een programma nodig met de naam nocanc dat op uw ontwikkelcomputer is geïnstalleerd. Dat alles wordt beschreven op de installatiepagina van Omzlo.

Bezoek GitHub en kopieer de code naar een nieuwe Arduino IDE-schets. Verander het bord in Omzlo CANZERO en selecteer het knooppunt in het menu 'Poort'. Klik dan gewoon op uploaden zoals normaal. Als alles volgens plan is verlopen, zou je een geprogrammeerd knooppunt moeten hebben klaar om wat metingen te doen.

Stap 6: Hoe werkt dit alles samen?

Hoe hangt dit alles samen?
Hoe hangt dit alles samen?

Nu alle software en hardware is ingesteld, laten we even de tijd nemen om te praten over hoe het allemaal echt zal werken. En laat mijn GIMP-vaardigheden zien …

Samengevat:

  1. Het CANZERO-knooppunt is verbonden met de PiMaster en ergens ingezet
  2. Elke minuut wordt er een Cron-job op de PiMaster uitgevoerd. Het zal een python-script uitvoeren.
  3. Het python-script stuurt een commando naar het knooppunt om het te vertellen een meting of een andere actie uit te voeren.
  4. Het knooppunt voert uit wat de opdracht was en retourneert een resultaat in JSON-indeling.
  5. Het python-script ontvangt dat resultaat, parseert het en werkt er een InfluxDB mee bij.

De laatste stap is om te zien hoe de gegevens worden verzameld in een aantal mooie grafieken.

Stap 7: Chronograf of Grafana instellen

Chronograf of Grafana instellen
Chronograf of Grafana instellen

Het laatste wat u moet doen, is enkele grafieken opzetten in Chronograf of Grafana.

U moet de gegevensbron instellen. De standaardinstellingen voor InfluxDB zijn prima. Het adres hiervoor is 'https://localhost:8086' en er is geen gebruikersnaam of wachtwoord.

Beide zijn vergelijkbaar omdat ze zijn georganiseerd in dashboards met een willekeurig aantal grafieken erin. Beide hebben een Explore-gebied waarin u de metingen kunt zien en interactief grafieken kunt maken. Onthoud dat de databasenaam 'nocan' is en georganiseerd is in verschillende metingen met één waarde.

Zoals ik al zei, geef ik de voorkeur aan Grafana omdat het meer configureerbaar is dan Chronograf. Het is ook mobielvriendelijk, waar Chronograf dat niet is. De grafieken kunnen eenvoudig worden ingesloten en gedeeld

Stap 8: Enkele verbeteringen

  • U kunt de hostnaam van uw Raspberry Pi instellen om er gemakkelijker toegang toe te krijgen op uw netwerk. U kunt dat doen in raspi-config. Ik heb de mijne gewijzigd in nocan, dus ik kon naar nocan.local gaan om er toegang toe te krijgen (werkt niet op Android).
  • U kunt een programma zoals ngrok installeren om toegang te krijgen tot uw Raspberry Pi buiten uw netwerk.
  • Gebruik een van de methoden die Kapacitor biedt om meldingen te geven.
  • Voeg natuurlijk meer sensoren toe.

Aanbevolen: