Sommario:
- Passaggio 1: preparare il Raspberry Pi
- Passaggio 2: configurazione di NoCAN
- Passaggio 3: mettere insieme l'hardware UFire
- Passaggio 4: l'hardware NoCAN
- Passaggio 5: programmare il nodo CAZERO
- Passaggio 6: come si lega tutto questo?
- Passaggio 7: configurazione di Chronograf o Grafana
- Passaggio 8: alcuni miglioramenti
Video: Memorizzare e rappresentare graficamente i dati EC/pH/ORP con lo stack TICK e la piattaforma NoCAN: 8 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Questo spiegherà come utilizzare la piattaforma NoCAN di Omzlo e i sensori uFire per misurare EC, pH e ORP. Come dice il loro sito web, a volte è più semplice far passare un cavo ai nodi del sensore. CAN ha il vantaggio di comunicazione e alimentazione in un unico cavo, quindi segnale e batteria non sono un problema. Il firmware dei nodi può essere più semplice; nessun problema con le modalità di sospensione o la configurazione WiFi, ad esempio. La piattaforma NoCAN ha anche alcune fantastiche funzionalità come la programmazione dei nodi sul bus CAN.
La piattaforma NoCAN utilizza un Raspberry Pi, quindi tutto ciò che può fare sarà disponibile. Ne approfitteremo installando lo stack TICK. Questo ci consentirà di utilizzare InfluxDB per memorizzare le misurazioni. È un database basato su serie temporali creato appositamente per questo genere di cose. Viene fornito anche con Chronograf per creare dashboard e visualizzare tutti questi dati che prenderemo. La T e la K stanno per Telegraf e Kapacitor. Telegraf si trova tra i dati che stai inviando e il database Influx. Kapacitor è il motore degli eventi. Quando succede qualcosa, può inviarti una notifica attraverso una varietà di metodi. E, proprio perché mi piace più di Chronograf, installerò Grafana per i cruscotti.
Passaggio 1: preparare il Raspberry Pi
Vai alla pagina di download di Rasbian e scarica l'immagine con il desktop e il software consigliato, quindi esegui il flashing su una scheda SD.
Dopo che l'immagine è sulla tua scheda SD, dovresti avere due volumi, root e boot. Apri un terminale in boot e digita:
tocca ssh
Ciò abiliterà SSH.
Quindi digitare:
nano wpa_supplicant.conf
E copia/incolla quanto segue dopo averlo modificato per la tua nazione e le impostazioni WiFi:
paese=USA
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 rete={ ssid="NETWORK-NAME" psk="NETWORK-PASSWORD" }
I codici dei paesi provengono da qui.
Abilita SPI:
echo "dtparam=spi=on" >> config.txt
Metti la scheda SD nel tuo Raspberry Pi, aspetta un po' e digita:
Dovresti essere al prompt di accesso. La password è lampone.
Passaggio 2: configurazione di NoCAN
Omzlo fornisce una guida completa all'installazione. Ma ho deciso di rendere le cose più facili per me stesso e di imparare qualcosa sullo scripting di Bash. Quindi avvia il tuo Raspberry Pi e inserisci SSH o terminale seriale.
Ho imparato che per creare un buon script Bash può essere impiegato tanto tempo di sviluppo quanto qualunque cosa tu stia cercando di installare. Ci sono 1000 modi per fare qualcosa, alcuni più semplici da comprendere o da eseguire rispetto ad altri. Alla fine non ho fatto molto. Se esegui:
wget https://ufire.co/nocan.sh && chmod +x nocan.sh && sudo./nocan.sh
Nel terminale del tuo Raspberry Pi, scaricherà ed eseguirà lo script.
Allora:
- Scarica il demone Omzlo NoCAN e lo installa in /usr/bin per un facile accesso, crea una cartella ~/.nocand e scrive un file di configurazione molto semplice con la password impostata su 'password'. Probabilmente dovresti cambiarlo in qualcos'altro, è su ~/.nocand/config.
- Scarica il client Omzlo NoCAN e lo copia in /usr/bin e crea un file di configurazione di base con la stessa password impostata. È su ~/.nocanc.conf.
- Imposta un servizio Systemd che mantiene in esecuzione il demone NoCAN.
- Scrive un file python su ~/.nocand, nocan_ufire.py. Parlerà con il firmware del nodo NoCAN e prenderà misurazioni di EC, pH e ORP, analizzerà i risultati e li aggiungerà al database InfluxDB.
- Aggiunge il repository di InfluxData ad apt e installa lo stack TICK. E poiché lo preferisco a Chronograf, installa anche Grafana.
- Crea un database di flusso vuoto
Alcuni trucchi in cui potresti imbatterti:
- Il tuo locale potrebbe non essere configurato, quindi esegui dpkg-reconfigure locales
- L'installazione di Grafana potrebbe bloccarsi, quindi riprova.
-
Il demone afflusso potrebbe non essere avviato in tempo per consentire allo script di aggiungere il database, digitare
curl -i -XPOST https://localhost:8086/query --data-urlencode "q=CREATE DATABASE nocan"
- Questo script funziona solo come utente pi predefinito. Dovrai cambiare pi con il tuo nome utente dove appropriato se sei sotto un altro utente.
L'ultima cosa è aggiungere un cron job. Non sono riuscito a trovare un ottimo modo per scrivere questo script, quindi digita 'crontab -e' per modificare manualmente e aggiungi '* * * * * python /home/pi/.nocand/nocan_ufire.py'.
Una volta fatto tutto, puoi verificare che tutto sia configurato e funzionante come dovrebbe essere. Grafana vive a https://[Raspberry Pi's Address]:3000/. Dovresti vedere una pagina di accesso, admin/admin è l'impostazione predefinita.
Chronograf può essere trovato all'indirizzo https://[Raspberry Pi's Address]:8888/
Passaggio 3: mettere insieme l'hardware UFire
Prima di poter assemblare l'hardware, c'è una cosa da affrontare. La scheda uFire ISE può essere utilizzata per misurare sia il pH che l'ORP. L'hardware è lo stesso, ma il software è diverso. Poiché l'hardware è lo stesso, ciò significa che anche l'indirizzo I2C è lo stesso per impostazione predefinita. E i sensori comunicano tramite I2C, quindi uno dovrà essere cambiato. Per questo progetto, sceglieremo una delle schede ISE e la useremo per misurare l'ORP. Seguendo i passaggi qui, modificare l'indirizzo in 0x3e.
Ora che l'indirizzo è cambiato, mettere insieme l'hardware è facile. Questa configurazione si basa su lavori precedenti che facevano sostanzialmente la stessa cosa ma utilizzavano BLE anziché CAN per trasmettere i dati. Puoi leggerlo sull'Arduino Project Hub. Tutti i sensori utilizzano il sistema di connessione Qwiic, quindi basta collegare tutto insieme in una catena, c'è solo un modo per inserire i cavi da Qwiic a Qwiic. Avrai bisogno di un cavo da Qwiic a Maschio per collegare uno dei sensori al nodo CAZERO. I fili sono coerenti e codificati a colori. Collegare il nero al GND del nodo, il rosso al pin +3,3V o +5V, il blu al pin SDA che è D11 e il giallo al pin SCL su D12.
Per questo progetto, si aspetterà che le informazioni sulla temperatura provengano dal sensore EC, quindi assicurati di collegare un sensore di temperatura alla scheda EC. Tutte le schede hanno però la capacità di misurare la temperatura. Non dimenticare di collegare le sonde EC, pH e ORP ai sensori appropriati. Si collegano facilmente con connettori BNC. Se hai un recinto, mettere tutto questo dentro sarebbe una buona idea, soprattutto considerando che l'acqua sarà coinvolta.
Passaggio 4: l'hardware NoCAN
Anche l'assemblaggio dell'hardware NoCAN è facile. Collega il PiMaster al Raspberry Pi e trova un alimentatore adatto.
Segui le istruzioni di Omzlo su come realizzare i cavi per il tuo progetto.
Distribuisci il tuo nodo e trova un posto per il PiMaster.
Passaggio 5: programmare il nodo CAZERO
Una delle grandi cose di questa configurazione è che puoi accedere ai nodi anche dopo che sono stati distribuiti. Sono programmati tramite il cavo CAN, quindi puoi riprogrammarli ogni volta che vuoi.
Per questo, avrai bisogno dell'IDE Arduino installato, del PiMaster sulla tua rete e del tuo nodo connesso al bus CAN. Avrai anche bisogno di un programma chiamato nocanc installato sul tuo computer di sviluppo. Tutto ciò è descritto nella pagina di installazione di Omzlo.
Visita GitHub e copia il codice in un nuovo sketch IDE Arduino. Cambia la scheda in Omzlo CAZERO e seleziona il nodo nel menu 'Porta'. Quindi fai clic su Carica come di consueto. Se tutto è andato secondo i piani, dovresti avere un nodo programmato pronto per prendere alcune misurazioni.
Passaggio 6: come si lega tutto questo?
Ora che tutto il software e l'hardware sono impostati, prendiamoci un momento per parlare di come funzionerà effettivamente tutto. E mostro le mie abilità di GIMP…
In sintesi:
- Il nodo CAZERO è connesso al PiMaster e distribuito da qualche parte
- Ogni minuto viene eseguito un lavoro Cron sul PiMaster. Eseguirà uno script Python.
- Lo script python invierà un comando al nodo dicendogli di eseguire una misurazione o qualche altra azione.
- Il nodo eseguirà il comando e restituirà un risultato in formato JSON.
- Lo script Python riceverà quel risultato, lo analizzerà e aggiornerà un InfluxDB con esso.
L'ultimo passo è guardare i dati raccolti in alcuni grafici carini.
Passaggio 7: configurazione di Chronograf o Grafana
L'ultima cosa da fare è impostare alcuni grafici in Chronograf o Grafana.
Dovrai configurare l'origine dati. Le impostazioni predefinite per InfluxDB vanno bene. L'indirizzo è "https://localhost:8086" e non c'è nome utente o password.
Entrambi sono simili in quanto sono organizzati in dashboard che hanno un numero qualsiasi di grafici al loro interno. Entrambi dispongono di un'area Esplora che consente di visualizzare le misurazioni e creare grafici in modo interattivo. Ricorda che il nome del database è 'nocan' e organizzato in diverse misurazioni con un valore.
Come ho detto, preferisco Grafana perché è più configurabile di Chronograf. È anche compatibile con i dispositivi mobili, mentre Chronograf non lo è. I grafici sono facilmente incorporabili e condivisi
Passaggio 8: alcuni miglioramenti
- Puoi impostare il nome host del tuo Raspberry Pi per accedervi più facilmente sulla tua rete. Puoi farlo in raspi-config. Ho cambiato il mio in nocan, quindi sono stato in grado di andare su nocan.local per accedervi (non funziona su Android).
- Puoi installare un programma come ngrok per accedere al tuo Raspberry Pi al di fuori della tua rete.
- Utilizzare uno dei metodi forniti da Kapacitor per fornire notifiche.
- Aggiungi altri sensori, ovviamente.
Consigliato:
Crea bellissimi grafici dai dati di Arduino in tempo reale (e salva i dati in Excel): 3 passaggi
Crea bellissimi grafici dai dati di Arduino in tempo reale (e salva i dati in Excel): a tutti noi piace giocare con la nostra funzione P…lotter nell'IDE di Arduino. Tuttavia, sebbene possa essere utile per le applicazioni di base, i dati vengono cancellati man mano che più si aggiungono punti e non è particolarmente gradevole alla vista. Il plotter Arduino IDE non
Leggere e rappresentare graficamente i dati del sensore di luce e temperatura con Raspberry Pi: 5 passaggi
Leggere e rappresentare graficamente i dati del sensore di luce e temperatura con Raspberry Pi: In questo Instructable imparerai come leggere un sensore di luce e temperatura con raspberry pi e convertitore analogico-digitale ADS1115 e graficarlo utilizzando matplotlib. Iniziamo con i materiali necessari
Rappresentare graficamente il cambiamento di temperatura dal cambiamento climatico in Python: 6 passaggi
Rappresentare graficamente il cambiamento di temperatura dal cambiamento climatico in Python: il cambiamento climatico è un grosso problema. E molte persone ora non sanno quanto è aumentato. In questa istruzione, disegneremo un grafico del cambiamento di temperatura nel clima dovuto al cambiamento climatico. Per un cheat sheet, puoi visualizzare il file python di seguito
Invia dati alla piattaforma IoT AskSensors dal browser Web: 6 passaggi
Invia dati alla piattaforma IoT AskSensors dal browser Web: ho pubblicato di recente un'istruzione che mostra una guida passo passo per connettere un MCU del nodo ESP8266 alla piattaforma IoT AskSensors. Ho ricevuto feedback da persone più interessate alla piattaforma AskSensors, ma non hanno un MCU del nodo in mano. Questo io
Piattaforma IoT di base con RaspberryPi, WIZ850io: Driver del dispositivo della piattaforma: 5 passaggi (con immagini)
Piattaforma IoT di base con RaspberryPi, WIZ850io: Driver del dispositivo della piattaforma: conosco la piattaforma RaspberryPi per IoT. Recentemente WIZ850io è stato annunciato da WIZnet. Quindi ho implementato un'applicazione RaspberryPi tramite la modifica del SW Ethernet perché posso gestire facilmente un codice sorgente. Puoi testare Platform Device Driver tramite RaspberryPi