Tabla de contenido:

Almacene y grafique datos de EC / pH / ORP con TICK Stack y la plataforma NoCAN: 8 pasos
Almacene y grafique datos de EC / pH / ORP con TICK Stack y la plataforma NoCAN: 8 pasos

Video: Almacene y grafique datos de EC / pH / ORP con TICK Stack y la plataforma NoCAN: 8 pasos

Video: Almacene y grafique datos de EC / pH / ORP con TICK Stack y la plataforma NoCAN: 8 pasos
Video: Funcionamiento de Tester de pH, conductividad (EC), ORP | Apera 2024, Noviembre
Anonim
Almacene y grafique datos de EC / pH / ORP con la plataforma TICK Stack y NoCAN
Almacene y grafique datos de EC / pH / ORP con la plataforma TICK Stack y NoCAN

Aquí se explicará cómo usar la plataforma NoCAN de Omzlo y los sensores uFire para medir la CE, el pH y el ORP. Como dice su sitio web, a veces es más fácil conectar un cable a los nodos de sus sensores. CAN tiene la ventaja de la comunicación y la alimentación en un solo cable, por lo que la señal y la batería no son problemas. El firmware de los nodos puede ser más sencillo; sin molestarse con los modos de suspensión o la configuración de WiFi, por ejemplo. La plataforma NoCAN también tiene algunas características excelentes, como programar los nodos a través del bus CAN.

La plataforma NoCAN utiliza una Raspberry Pi, por lo que todo lo que pueda hacer estará disponible. Vamos a aprovecharlo instalando la pila TICK. Eso nos permitirá usar InfluxDB para almacenar medidas. Es una base de datos basada en series temporales diseñada específicamente para este tipo de cosas. También viene con Chronograf para hacer cuadros de mando y mostrar todos estos datos que vamos a tomar. La T y K significan Telegraf y Kapacitor. Telegraf se encuentra entre los datos que está enviando y la base de datos de Influx. Kapacitor es el motor de eventos. Cuando sucede algo, puede enviarle una notificación a través de una variedad de métodos. Y, solo porque me gusta más que Chronograf, instalaré Grafana para paneles.

Paso 1: Preparar la Raspberry Pi

Dirígete a la página de descarga de Rasbian y descarga la imagen con el escritorio y el software recomendado, luego actualízala a una tarjeta SD.

Una vez que la imagen esté en su tarjeta SD, debe tener dos volúmenes, root y boot. Abra una terminal en el arranque y escriba:

toque ssh

Eso habilitará SSH.

Luego escriba:

nano wpa_supplicant.conf

Y copie / pegue lo siguiente después de haberlo modificado para su propio condado y la configuración de WiFi:

país = EE. UU.

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

Los códigos de país provienen de aquí.

Habilitar SPI:

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

Coloque la tarjeta SD en su Raspberry Pi, espere un poco y escriba:

ssh [email protected]

Debería estar en el indicador de inicio de sesión. La contraseña es frambuesa.

Paso 2: Configurar NoCAN

Omzlo proporciona una guía de instalación completa. Pero decidí hacérselo más fácil y aprender un poco sobre las secuencias de comandos de Bash. Así que inicie su Raspberry Pi y SSH o terminal serial en él.

Aprendí que se puede dedicar tanto tiempo de desarrollo a la creación de un buen script Bash como lo que sea que estés intentando instalar. Hay 1000 formas de hacer algo, algunas más sencillas de comprender o ejecutar que otras. Al final, en realidad no hice mucho. Si ejecuta:

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

En la terminal de su Raspberry Pi, descargará y ejecutará el script.

Entonces eso:

  1. Descarga el demonio Omzlo NoCAN y lo instala en / usr / bin para facilitar el acceso, crea una carpeta ~ /.nocand y escribe un archivo de configuración muy básico con la contraseña establecida en 'contraseña'. Probablemente debería cambiarlo a otra cosa, está en ~ /.nocand / config.
  2. Descarga el cliente Omzlo NoCAN y lo copia en / usr / bin y crea un archivo de configuración básica con la misma contraseña. Está en ~ /.nocanc.conf.
  3. Configura un servicio Systemd que mantiene el demonio NoCAN en ejecución.
  4. Escribe un archivo de Python en ~ /.nocand, nocan_ufire.py. Se comunicará con el firmware del nodo NoCAN y tomará medidas de EC, pH y ORP, analizará los resultados y los agregará a la base de datos de InfluxDB.
  5. Agrega el repositorio de InfluxData a apt e instala la pila TICK. Y como lo prefiero a Chronograf, también instala Grafana.
  6. Crea una base de datos de Influx en blanco

Algunas trampas con las que puede encontrarse:

  • Es posible que su configuración regional no esté configurada, así que ejecute dpkg-reconfigure locales
  • Es posible que la instalación de Grafana se bloquee, así que inténtelo de nuevo.
  • Es posible que el demonio influx no se inicie a tiempo para que el script agregue la base de datos, escriba

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

  • Este script solo funciona como usuario pi predeterminado. Deberá cambiar pi por su nombre de usuario cuando corresponda si está bajo un usuario diferente.

Lo último es agregar un trabajo cron. No pude encontrar una muy buena manera de escribir este script, así que escriba 'crontab -e' para editar manualmente y agregar '* * * * * python /home/pi/.nocand/nocan_ufire.py'.

Una vez hecho todo, puede verificar que todo esté configurado y funcionando como debería. Grafana vive en https:// [Dirección de Raspberry Pi]: 3000 /. Debería ver una página de inicio de sesión, admin / admin es el predeterminado.

Chronograf se puede encontrar en https:// [Dirección de Raspberry Pi]: 8888 /

Paso 3: Montaje del hardware UFire

Montaje del hardware UFire
Montaje del hardware UFire

Antes de que podamos ensamblar el hardware, hay una cosa que abordar. La placa uFire ISE se puede utilizar para medir tanto el pH como el ORP. El hardware es el mismo, pero el software es diferente. Debido a que el hardware es el mismo, eso significa que la dirección I2C es, por defecto, la misma también. Y los sensores se comunican a través de I2C, por lo que será necesario cambiar uno. Para este proyecto, elegiremos una de las placas ISE y la usaremos para medir el ORP. Siguiendo los pasos aquí, cambie la dirección a 0x3e.

Ahora que se cambió la dirección, armar el hardware es fácil. Esta configuración se basa en un trabajo anterior que hacía básicamente lo mismo pero usando BLE en lugar de CAN para transmitir datos. Puede leer sobre esto en Arduino Project Hub. Todos los dispositivos de sensor usan el sistema de conexión Qwiic, así que simplemente conecte todo en una cadena, solo hay una forma de insertar los cables Qwiic a Qwiic. Necesitará un cable Qwiic a macho para conectar uno de los sensores al nodo CANZERO. Los cables son consistentes y están codificados por colores. Conecte el negro al GND del nodo, el rojo al pin + 3.3V o + 5V, el azul al pin SDA que es D11 y el amarillo al pin SCL en D12.

Para este proyecto, esperará que la información de temperatura provenga del sensor EC, así que asegúrese de conectar un sensor de temperatura a la placa EC. Sin embargo, todas las tablas tienen la capacidad de medir la temperatura. No olvide conectar las sondas de CE, pH y ORP a los sensores adecuados. Se conectan fácilmente con conectores BNC. Si tiene un cerramiento, poner todo esto adentro sería una buena idea, especialmente considerando que el agua estará involucrada.

Paso 4: El hardware NoCAN

El hardware NoCAN
El hardware NoCAN

El montaje del hardware NoCAN también es sencillo. Conecte el PiMaster a la Raspberry Pi y busque una fuente de alimentación adecuada para él.

Siga las instrucciones de Omzlo sobre cómo hacer cables para su proyecto.

Implemente su nodo y encuentre un lugar para PiMaster.

Paso 5: Programe el nodo CANZERO

Programar el nodo CANZERO
Programar el nodo CANZERO

Una de las mejores cosas de esta configuración es que puede acceder a los nodos incluso después de su implementación. Están programados a través del cable CAN, por lo que puede reprogramarlos cuando lo desee.

Para eso, necesitará el IDE de Arduino instalado, el PiMaster en su red y su nodo conectado al bus CAN. También necesitará un programa llamado nocanc instalado en su computadora de desarrollo. Todo eso se describe en la página de instalación de Omzlo.

Visite GitHub y copie el código en un nuevo boceto IDE de Arduino. Cambie la placa a Omzlo CANZERO y seleccione el nodo en el menú 'Puerto'. Luego, simplemente haga clic en cargar como de costumbre. Si todo salió según lo planeado, debe tener un nodo programado listo para tomar algunas medidas.

Paso 6: ¿Cómo se relaciona todo esto?

¿Cómo se relaciona todo esto?
¿Cómo se relaciona todo esto?

Ahora que todo el software y hardware está configurado, dediquemos un momento a hablar sobre cómo funcionará realmente todo y mostrar mis habilidades en GIMP …

En resumen:

  1. El nodo CANZERO está conectado al PiMaster y se implementa en algún lugar
  2. Cada minuto se ejecuta un trabajo Cron en el PiMaster. Ejecutará un script de Python.
  3. El script de Python enviará un comando al nodo indicándole que tome una medida o alguna otra acción.
  4. El nodo ejecutará lo que era el comando y devolverá un resultado en formato JSON.
  5. El script de Python recibirá ese resultado, lo analizará y actualizará un InfluxDB con él.

El último paso es observar la recopilación de datos en algunos gráficos atractivos.

Paso 7: Configuración de Chronograf o Grafana

Configuración de Chronograf o Grafana
Configuración de Chronograf o Grafana

Lo último que debe hacer es configurar algunos gráficos en Chronograf o Grafana.

Deberá configurar la fuente de datos. Los valores predeterminados de InfluxDB están bien. La dirección es 'https:// localhost: 8086' y no hay nombre de usuario ni contraseña.

Ambos son similares en el sentido de que están organizados en paneles que tienen cualquier número de gráficos dentro de ellos. Ambos tienen un área de exploración que le permite ver las medidas y crear gráficos de forma interactiva. Recuerde que el nombre de la base de datos es 'nocan' y está organizado en varias medidas con un valor.

Como mencioné, prefiero Grafana porque es más configurable que Chronograf. También es compatible con dispositivos móviles, donde Chronograf no lo es. Los gráficos se integran y comparten fácilmente

Paso 8: algunas mejoras

  • Puede configurar el nombre de host de su Raspberry Pi para acceder a él más fácilmente en su red. Puede hacerlo en raspi-config. Cambié el mío a nocan, así que pude ir a nocan.local para acceder a él (no funciona en Android).
  • Puede instalar un programa como ngrok para acceder a su Raspberry Pi fuera de su red.
  • Utilice uno de los métodos que proporciona Kapacitor para proporcionar notificaciones.
  • Agregue más sensores, por supuesto.

Recomendado: