Wednesday, July 18, 2018

instalando grafana

Deje este dataset household power consumption:

https://archive.ics.uci.edu/ml/machine-learning-databases/00235/


Grafana tiene multiples sources:
mysql, elastichsearch, influxdb, cloudwatch, graphite, opentsdb, postgresql, prometheus.

Por facilidad use mysql, de igual forma más adelante agregaré otros sources y otros datos.

mysql> create database household_power_consumption;

subiendo los datos:
create table consumption (
id int PRIMARY KEY NOT NULL AUTO_INCREMENT,
    date_consumption date NOT NULL ,
    datetime_consumption datetime NOT NULL,
    global_active_power float NOT NULL,
    global_reactive_power float NOT NULL,
    voltage float NOT NULL,
    global_intensity float NOT NULL,
    sub_metering_1 float NOT NULL,
    sub_metering_2 float NOT NULL,
    sub_metering_3 float NOT NULL
);
----

load data infile 'final.csv'
into table consumption
fields terminated by ','
OPTIONALLY ENCLOSED BY '"'
lines terminated by  '\n'
IGNORE 1 LINES
-- (`date_consumption`, `datetime_consumption`, `global_active_power`, `global_reactive_power`, `voltage`, `global_intensity`, `sub_metering_1`, `sub_metering_2`, `sub_metering_3`);
(@consumptiondate, @consumptiondatetime, `global_active_power`, `global_reactive_power`, `voltage`, `global_intensity`, `sub_metering_1`, `sub_metering_2`, `sub_metering_3`)
set date_consumption = STR_TO_DATE(@consumptiondate, '%d/%m/%Y'),
datetime_consumption = STR_TO_DATE(@consumptiondatetime, '%d/%m/%Y %H:%i:%s');


Inicializando grafana.

$ systemctl enable grafana

o sólo para levantarlo temporalmente

$ systemctl start grafana

luego se habilita la url:

http://127.0.0.1:3000/datasources/new?gettingstarted


Algo interesante es que grafana no hace validacion de las querys que le manda a mysql en caso de enviar una query que contenga DROP, DELETE y si el usuario que especificamos tiene los permisos de ejecucion lo va a hacer! asi que fuertemente recomienda al usuario   a CREAR un usuario con los permisos solo de lectura en la  base de datos.

este sería un vistazo de la interface y como configurarlo con la base de dato mysql.




Muy bueno es que tiene una comunidad muy activa con muchos tipos de dashboards creados:

https://grafana.com/dashboards?utm_source=grafana_search


Se puede agregar data sources acá se ve el listado de los que se ha definido:
http://127.0.0.1:3000/datasources

en settings > variables > Add variable

o agregar manualmente el grafico al dashboard:

El tema con agregar variables por query desde el datasource es que para mas de un millon de registros, el template de series de tiempo hace crash, sólo permite menos de 1millon de registros, por lo que lo recomendable es ajustar el rango de fechas teniendo en cuenta este límite del fetch permitido por la query. Otra cosa buena son los ejemplos que trae en cuanto a ese formato de macros que tiene siendo intuitivo, también se puede configurar alertas! para los picos y bueno es una alternativa más al mar de opciones.



Y eso es todo por hoy.
para más info:
http://docs.grafana.org/features/datasources/mysql/
:D

Tuesday, July 10, 2018

Instalando el cliente de arduido y ademas marlin para editar config de prusa


Instalando el ide de arduino  y Marlin.
primero descargar de la url https://arduino.cc/en/main/software el IDE:


Luego de haber bajado esto, descomprimir tar -xvf archivo.tar.xz


y ejecutar el script sh que dice install.sh realmente lo que hace es crear un link simbólico a este directorio, de esta forma queda solo permitido a este usuario, por esto no requiere permisos de root

y  la ruta del link simbolico o archivo.desktop direcciona a ./arduino.

¿Cómo comprobar que se instaló ok?

si cuando se conecta la impresora detecta el puerto y el tipo de board (mega 2560)
en la pestaña tools>> ports >> ttyusb0 se debe desbloquear y debes poder seleccionar esa opción ademas en el listado de boards hay que seleccionar mega 2560 para que carque el listado de ejemplos disponibles a probar.

Algo importante si se compilo el Marlin con una versión de IDE de arduino diferente, es tedioso y genera muchos errores como:

/home/j3nnn1/pkgs/arduino/arduino-1.8.5/Marlin/Marlin.ino:44:101: fatal error: U8glib.h: No such file or directory
     #include // library for graphics LCD by Oli Kraus (https://code.google.com/p/u8glib/)

fatal error: :utility/u8g.h: No such file or directory

y luego resultaba en un error de token en parte del código de Marlin, por lo que me di por vencida y es mejor o comenzar de 0 configurando Marlin o instalar las versiones exactas de quien compilo el Marlin.

En mi caso descargue la versión del IDE de arduino 1.6.1 y al copiar la carpeta Marlin  y hacer click en verificar funcionó. no recuerdo si copió la librería U8glib a las libraries de Arduino.  pero se van a dar cuenta si lo necesitan hacer porque muestra uno de los errores de arriba.

con esto estaría para verificar que compile bien!

Copiar el directorio Marlin dentro de la carpeta arduino e instalar los plugins o librerias faltantes o de dependencia de marlin.

Quedaría como directorio:
Arduino-1.6.1/
---------Marlin/
-----------------U8glib/
-----------------Marlin.ino (Este archivo es el que abrimos con el IDE de arduino)

o en el IDE de arduino más actualizado quedaría sólo el Marlin y la librerio U8glib se instala en el home del usuario.

Arduino-1.8.1/
---------Marlin/
-----------------Marlin.ino

~/Arduino/libraries/U8glib

Algo que me ayudó a configurar Marlin fue este enlace: http://zennmaster.com/random-things/reprap-101-activating-marlins-eeprom-functions-and-what-that-does-for-you
y este en palabras más técnicas:Marlin Config

ya que quería activar esta configuración pero no conocía como se llamaba, esto lo explica en palabras fáciles.
en mi caso sólo descomentar:

#define EEPROM_SETTINGS
#define EEPROM_CHITCHAT

Al subir el firmware y reiniciar se verían nuevas opciones(Store Memory and Load Memory) en el lcd de la placa.

Luego click en el boton Verificar.

Para subir el software a la placa:

* hay que ser root o agregarlo al grupo que tenga acceso al puerto usb donde se conecta la placa.
* instalé estos paquetes:
         # pacman -S avrdude
         # pacman -Syu community/arduino-avr-core community/avr-gcc
* click en el boton upload del IDE de arduino.
* generó otro error que medio lo solucioné con un link simbolico al binario instalado en mi distribución, para esto hay que instalar los paquetes:

Error: libncurses.so.5: cannot open shared object file: No such file or directory

lo solucioné haciendo:
j3nnn1:arduino-1.6.1/ $ rm ./hardware/tools/avr/bin/avrdude 
j3nnn1:arduino-1.6.1/ $ ln -s /usr/bin/avrdude ./hardware/tools/avr/bin/avrdude

(tomado de inspiración de http://fkcsmart.blogspot.com/2016/02/arduino-avrdude-q-avrdude-error-while.html) 



Y luego de esto subió el software a la placa. Algo a tomar en cuenta es:

Sólo usar un programa a la vez que se conecte al puerto /dev/tty0USB0
por ejemplo error que tenía usé el programa: pronterface y al mismo tiempo tenía el IDE de arduino.
(uno de los dos fallaba la conexión con la placa) el error mostraba
time out to connect with programmer

Otra vez me paso con iniciar el software slicer con cura y tener levantado el IDE de arduino.

:P

Happy slicing