{"id":3723,"date":"2024-11-12T18:16:10","date_gmt":"2024-11-12T18:16:10","guid":{"rendered":"https:\/\/brandon-engineer.com\/?p=3723"},"modified":"2024-11-12T18:39:14","modified_gmt":"2024-11-12T18:39:14","slug":"como-guardar-y-visualizar-datos-en-base-de-datos-gratis","status":"publish","type":"post","link":"https:\/\/brandon-engineer.com\/en\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/","title":{"rendered":"Como guardar y visualizar datos en base de datos GRATIS"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"3723\" class=\"elementor elementor-3723\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5765033 e-flex e-con-boxed e-con e-parent\" data-id=\"5765033\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b12fa69 elementor-widget elementor-widget-text-editor\" data-id=\"b12fa69\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.19.0 - 28-02-2024 *\/\n.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:#69727d;color:#fff}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap{color:#69727d;border:3px solid;background-color:transparent}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap{margin-top:8px}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap-letter{width:1em;height:1em}.elementor-widget-text-editor .elementor-drop-cap{float:left;text-align:center;line-height:1;font-size:50px}.elementor-widget-text-editor .elementor-drop-cap-letter{display:inline-block}<\/style>\t\t\t\t<h2>Introduction<\/h2>\n<p>Hace poco una persona tenia dudas de como almacenar datos del consumo de la red en una base de datos y yo le comentaba que se puede hacer con costes muy reducidos o incluso gratuitos<\/p>\n<h2>Hardware<\/h2>\n<p>Para este ejercicio pr\u00e1ctico se usar\u00e1 un dispositivo de dom\u00f3tica por su reducido coste<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-large wp-image-3728\" src=\"https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/11\/tasmota-enchufe-inteligente-1024x480.gif\" alt=\"\" width=\"751\" height=\"352\" srcset=\"https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/11\/tasmota-enchufe-inteligente-1024x480.gif 1024w, https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/11\/tasmota-enchufe-inteligente-300x141.gif 300w, https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/11\/tasmota-enchufe-inteligente-768x360.gif 768w, https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/11\/tasmota-enchufe-inteligente-1536x721.gif 1536w, https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/11\/tasmota-enchufe-inteligente-18x8.gif 18w, https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/11\/tasmota-enchufe-inteligente-600x281.gif 600w\" sizes=\"(max-width: 751px) 100vw, 751px\" \/><\/p>\n<p><a href=\"https:\/\/amzn.to\/3CjvGMA\">https:\/\/amzn.to\/3CjvGMA<\/a><\/p>\n<p>Si necesitas varios siempre puedes comprar un pack para ahorrar dinero:<\/p>\n<p><a href=\"https:\/\/amzn.to\/3Oq3VoF\">https:\/\/amzn.to\/3Oq3VoF<\/a><\/p>\n<p>Para la inserci\u00f3n en base de datos usaremos un servidor en red con linux aunque yo recomiendo un IPC con procesador ARM por tener diversificado las funciones de cada dispositivo<\/p>\n<h2>Software<\/h2>\n<h3>Como instalar Docker en ubuntu<\/h3>\n<p>Para la instalaci\u00f3n del software empezaremos por instalar el gestor de contenedores de Docker en servidor linux basado en ubuntu<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f3cf97b e-flex e-con-boxed e-con e-parent\" data-id=\"f3cf97b\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-615a20e e-flex e-con-boxed e-con e-child\" data-id=\"615a20e\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c649b4e elementor-widget elementor-widget-code-highlight\" data-id=\"c649b4e\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>sudo apt update\nsudo apt upgrade\nsudo apt install apt-transport-https ca-certificates curl software-properties-common\ncurl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo gpg --dearmor -o \/usr\/share\/keyrings\/docker-archive-keyring.gpg\necho \"deb [arch=$(dpkg --print-architecture) signed-by=\/usr\/share\/keyrings\/docker-archive-keyring.gpg] https:\/\/download.docker.com\/linux\/ubuntu $(lsb_release -cs) stable\" | sudo tee \/etc\/apt\/sources.list.d\/docker.list > \/dev\/null\nsudo apt update\nsudo apt upgrade\nsudo apt install docker-ce docker-ce-cli containerd.io\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2e9230c e-flex e-con-boxed e-con e-parent\" data-id=\"2e9230c\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b44b28b elementor-widget elementor-widget-text-editor\" data-id=\"b44b28b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Por ultimo verificamos que esta instalado correctamente<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-103c584 elementor-widget elementor-widget-code-highlight\" data-id=\"103c584\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>sudo docker --version<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3466514 e-flex e-con-boxed e-con e-parent\" data-id=\"3466514\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0ef3c0b elementor-widget elementor-widget-text-editor\" data-id=\"0ef3c0b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<h3>Como instalar Node Red en Docker<\/h3>\n<p>Para el software de inserci\u00f3n en base de datos instalaremos Node Red que es un software de open source que nos permitir\u00e9 conectar con infinidad de protocolos de comunicaci\u00f3n e insertar en base de datos<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bf2b2e7 elementor-widget elementor-widget-code-highlight\" data-id=\"bf2b2e7\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>docker run -d --name mynodered -p 1880:1880 --restart unless-stopped nodered\/node-red\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-eab14ec e-flex e-con-boxed e-con e-parent\" data-id=\"eab14ec\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6cfa3a1 elementor-widget elementor-widget-text-editor\" data-id=\"6cfa3a1\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Una vez ya instalado podemos proceder a acceder a los datos que nos comparte el dispositivo de Tasmota con su servidor web en mi caso esta almacenada en esta direcci\u00f3n IP (se recomienda usar la gu\u00eda de configuraci\u00f3n de la conexi\u00f3n por wifi del dispositivo para configurarlo correctamente):<\/p>\n<p><a href=\"http:\/\/192.168.0.34\/\">http:\/\/192.168.0.34<\/a><\/p>\n<p>El cual nos dar\u00e1 la informaci\u00f3n sobre el enchufe:<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-3731\" src=\"https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/11\/tasmota-interfaz-web.gif\" alt=\"\" width=\"679\" height=\"643\" \/><\/p>\n<p>Para obtener los datos nos podemos dirigir a la siguiente:<\/p>\n<p><a href=\"http:\/\/192.168.0.34\/cm?cmnd=STATUS%200\">http:\/\/192.168.0.34\/cm?cmnd=STATUS%200<\/a><\/p>\n<p>El cual podemos ver que esta toda la informaci\u00f3n en un JSON<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-517941a elementor-widget elementor-widget-code-highlight\" data-id=\"517941a\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-json line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-json\">\n\t\t\t\t\t<xmp>   \"ENERGY\": {\r\n      \"TotalStartTime\": \"2024-11-06T09:10:05\",\r\n      \"Total\": 1.058,\r\n      \"Yesterday\": 0.268,\r\n      \"Today\": 0.206,\r\n      \"Power\": 0,\r\n      \"ApparentPower\": 0,\r\n      \"ReactivePower\": 0,\r\n      \"Factor\": 0,\r\n      \"Voltage\": 208,\r\n      \"Current\": 0\r\n    },<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4d13443 e-flex e-con-boxed e-con e-parent\" data-id=\"4d13443\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-270511d elementor-widget elementor-widget-text-editor\" data-id=\"270511d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Ahora procederemos a programar la funci\u00f3n ciclica que recopilar\u00e1 la informaci\u00f3n para insertarla en la base de datos para ello haremos lo siguiente:<\/p>\n<p>-A\u00f1adimos nodo que se ejecuta cada 3 segundos<\/p>\n<p>-Normalizamos la hora para poder insertarla en la base de datos<\/p>\n<p>-Obtenemos los datos mediante una petici\u00f3n HTTP mediante el m\u00e9todo &#8220;GET&#8221;<\/p>\n<p>-Extraemos los datos que nos interesa del JSON<\/p>\n<p>-Creamos la consulta con los datos extra\u00eddos<\/p>\n<p>-Insertamos en nuestro servidor<\/p>\n<p>-Mostramos en consola para comprobar que todo funciona correctamente<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-3732\" src=\"https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/11\/flujo-tasmota.gif\" alt=\"\" width=\"1022\" height=\"242\" \/><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bd2e25a elementor-widget elementor-widget-code-highlight\" data-id=\"bd2e25a\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-json line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-json\">\n\t\t\t\t\t<xmp>[\r\n    {\r\n        \"id\": \"72594c6cf3e187c5\",\r\n        \"type\": \"debug\",\r\n        \"z\": \"a7cda68e269cad0e\",\r\n        \"name\": \"debug 25\",\r\n        \"active\": true,\r\n        \"tosidebar\": true,\r\n        \"console\": false,\r\n        \"tostatus\": false,\r\n        \"complete\": \"true\",\r\n        \"targetType\": \"full\",\r\n        \"statusVal\": \"\",\r\n        \"statusType\": \"auto\",\r\n        \"x\": 720,\r\n        \"y\": 940,\r\n        \"wires\": []\r\n    },\r\n    {\r\n        \"id\": \"e49938d64834e868\",\r\n        \"type\": \"http request\",\r\n        \"z\": \"a7cda68e269cad0e\",\r\n        \"name\": \"\",\r\n        \"method\": \"GET\",\r\n        \"ret\": \"txt\",\r\n        \"paytoqs\": \"ignore\",\r\n        \"url\": \"http:\/\/192.168.0.34\/cm?cmnd=STATUS%200\",\r\n        \"tls\": \"\",\r\n        \"persist\": false,\r\n        \"proxy\": \"\",\r\n        \"insecureHTTPParser\": false,\r\n        \"authType\": \"\",\r\n        \"senderr\": false,\r\n        \"headers\": [],\r\n        \"x\": 530,\r\n        \"y\": 880,\r\n        \"wires\": [\r\n            [\r\n                \"273d22936082a16a\"\r\n            ]\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"7957f9fe99d9eee6\",\r\n        \"type\": \"inject\",\r\n        \"z\": \"a7cda68e269cad0e\",\r\n        \"name\": \"\",\r\n        \"props\": [\r\n            {\r\n                \"p\": \"date\",\r\n                \"v\": \"iso\",\r\n                \"vt\": \"date\"\r\n            }\r\n        ],\r\n        \"repeat\": \"3\",\r\n        \"crontab\": \"\",\r\n        \"once\": true,\r\n        \"onceDelay\": \"3\",\r\n        \"topic\": \"\",\r\n        \"x\": 200,\r\n        \"y\": 880,\r\n        \"wires\": [\r\n            [\r\n                \"23d3e98baab1ce6a\"\r\n            ]\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"273d22936082a16a\",\r\n        \"type\": \"function\",\r\n        \"z\": \"a7cda68e269cad0e\",\r\n        \"name\": \"Extraer datos del JSON\",\r\n        \"func\": \"\/\/ Convierte msg.payload a string si no lo es\\nvar payloadStr = msg.payload.toString();\\n\\n\/\/ Elimina espacios en blanco al inicio y al final\\npayloadStr = payloadStr.trim();\\n\\n\/\/ Si el payload comienza y termina con comillas dobles, las elimina\\nif (payloadStr.startsWith('\\\"') && payloadStr.endsWith('\\\"')) {\\n    payloadStr = payloadStr.substring(1, payloadStr.length - 1);\\n}\\n\\n\/\/ Reemplaza las comillas dobles escapadas por comillas dobles reales\\npayloadStr = payloadStr.replace(\/\\\\\\\\\\\"\/g, '\\\"');\\n\\ntry {\\n    \/\/ Parsea el string a objeto JSON\\n    var payloadObj = JSON.parse(payloadStr);\\n\\n    \/\/ Verifica si existen los datos de ENERGY\\n    if (payloadObj.StatusSNS && payloadObj.StatusSNS.ENERGY) {\\n        \/\/ Asigna los valores de ENERGY al payload\\n        msg.payload = payloadObj.StatusSNS.ENERGY;\\n    } else {\\n        node.error(\\\"No se encontr\u00f3 'StatusSNS.ENERGY' en el payload\\\", msg);\\n        return null;\\n    }\\n} catch (e) {\\n    \/\/ Maneja errores de parseo\\n    node.error(\\\"Error al parsear JSON: \\\" + e.message, msg);\\n    return null;\\n}\\n\\nreturn msg;\\n\",\r\n        \"outputs\": 1,\r\n        \"timeout\": 0,\r\n        \"noerr\": 0,\r\n        \"initialize\": \"\",\r\n        \"finalize\": \"\",\r\n        \"libs\": [],\r\n        \"x\": 250,\r\n        \"y\": 940,\r\n        \"wires\": [\r\n            [\r\n                \"456e7462c5d896e9\"\r\n            ]\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"4086d7eafeeaf2bd\",\r\n        \"type\": \"mysql-r2\",\r\n        \"z\": \"a7cda68e269cad0e\",\r\n        \"name\": \"\",\r\n        \"host\": \"192.168.0.125\",\r\n        \"database\": \"****\",\r\n        \"username\": \"****\",\r\n        \"password\": \"****\",\r\n        \"sql\": \"\",\r\n        \"port\": \"****\",\r\n        \"pooling\": false,\r\n        \"waitForConnections\": true,\r\n        \"connectionLimit\": \"10\",\r\n        \"queueTimeout\": \"10000\",\r\n        \"x\": 580,\r\n        \"y\": 940,\r\n        \"wires\": [\r\n            [\r\n                \"72594c6cf3e187c5\"\r\n            ]\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"456e7462c5d896e9\",\r\n        \"type\": \"template\",\r\n        \"z\": \"a7cda68e269cad0e\",\r\n        \"name\": \"\",\r\n        \"field\": \"sql\",\r\n        \"fieldType\": \"msg\",\r\n        \"format\": \"handlebars\",\r\n        \"syntax\": \"mustache\",\r\n        \"template\": \"INSERT INTO `Grafana`.`Consume` (`con_date`, `con_voltage`, `con_current`, `con_power`, `con_AppPower`, `con_ReactPower`, `con_PowerFactor`, `con_EnergyToday`) VALUES ('{{date}}', '{{payload.Voltage}}', {{payload.Current}}, {{payload.Power}}, {{payload.ApparentPower}}, {{payload.ReactivePower}}, {{payload.Factor}}, {{payload.Today}});\",\r\n        \"output\": \"str\",\r\n        \"x\": 440,\r\n        \"y\": 940,\r\n        \"wires\": [\r\n            [\r\n                \"4086d7eafeeaf2bd\"\r\n            ]\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"23d3e98baab1ce6a\",\r\n        \"type\": \"function\",\r\n        \"z\": \"a7cda68e269cad0e\",\r\n        \"name\": \"Normalizar hora\",\r\n        \"func\": \"\/\/ Obtiene la fecha original de msg.date\\nvar originalDate = msg.date;\\n\\n\/\/ Verifica si msg.date est\u00e1 definido\\nif (!originalDate) {\\n    node.error(\\\"msg.date no est\u00e1 definido.\\\", msg);\\n    return null;\\n}\\n\\n\/\/ Convierte la cadena de fecha a un objeto Date\\nvar dateObj = new Date(originalDate);\\n\\n\/\/ Verifica si la fecha es v\u00e1lida\\nif (isNaN(dateObj.getTime())) {\\n    node.error(\\\"La fecha proporcionada no es v\u00e1lida: \\\" + originalDate, msg);\\n    return null;\\n}\\n\\n\/\/ Extrae los componentes de la fecha y hora en UTC\\nvar year = dateObj.getUTCFullYear();\\nvar month = ('0' + (dateObj.getUTCMonth() + 1)).slice(-2);\\nvar day = ('0' + dateObj.getUTCDate()).slice(-2);\\nvar hours = ('0' + dateObj.getUTCHours()).slice(-2);\\nvar minutes = ('0' + dateObj.getUTCMinutes()).slice(-2);\\nvar seconds = ('0' + dateObj.getUTCSeconds()).slice(-2);\\n\\n\/\/ Formatea la fecha al formato deseado\\nmsg.date = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\\n\\nreturn msg;\\n\",\r\n        \"outputs\": 1,\r\n        \"timeout\": 0,\r\n        \"noerr\": 0,\r\n        \"initialize\": \"\",\r\n        \"finalize\": \"\",\r\n        \"libs\": [],\r\n        \"x\": 360,\r\n        \"y\": 880,\r\n        \"wires\": [\r\n            [\r\n                \"e49938d64834e868\"\r\n            ]\r\n        ]\r\n    }\r\n]<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f21ee3f e-flex e-con-boxed e-con e-parent\" data-id=\"f21ee3f\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5acf0be elementor-widget elementor-widget-text-editor\" data-id=\"5acf0be\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<h3>Como instalar Grafana<\/h3>\n<p>Para la visualizaci\u00f3n utilizaremos Grafana el cual tiene una gran variedad de herramientas de visualizaci\u00f3n en mi caso hare que sea accesible por el puerto 1882<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-23f7571 elementor-widget elementor-widget-code-highlight\" data-id=\"23f7571\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>docker run -d --name mygrafana -p 1882:3000 --restart unless-stopped grafana\/grafana<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-784305b e-flex e-con-boxed e-con e-parent\" data-id=\"784305b\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3d04157 elementor-widget elementor-widget-text-editor\" data-id=\"3d04157\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Una vez listo yo recomiendo realizar las siguientes configuraciones para poder acceder a los gr\u00e1ficos sin tener que iniciar sesi\u00f3n cada vez que se arranque el visualizador<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9ceb8fb elementor-widget elementor-widget-code-highlight\" data-id=\"9ceb8fb\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>docker exec -it -u root mygrafana \/bin\/sh\r\nvi \/etc\/grafana\/grafana.ini<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4eb9428 e-flex e-con-boxed e-con e-parent\" data-id=\"4eb9428\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2a5c1ed elementor-widget elementor-widget-text-editor\" data-id=\"2a5c1ed\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Ahora habilitaremos la visualizaci\u00f3n de forma anonima modificando estas lineas:<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6f30881 elementor-widget elementor-widget-code-highlight\" data-id=\"6f30881\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>[auth.anonymous]\nenabled = true\norg_role = Viewer<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0c50920 e-flex e-con-boxed e-con e-parent\" data-id=\"0c50920\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1b32d09 elementor-widget elementor-widget-text-editor\" data-id=\"1b32d09\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Por \u00faltimo habilitaremos el uso de graficas en iframes<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0526fec elementor-widget elementor-widget-code-highlight\" data-id=\"0526fec\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>[security]\r\nallow_embedding = true<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d77b6f8 e-flex e-con-boxed e-con e-parent\" data-id=\"d77b6f8\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e36de2f elementor-widget elementor-widget-text-editor\" data-id=\"e36de2f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Una vez listo configuraremos nuestras gr\u00e1ficas como deseemos en mi caso tengo estas gr\u00e1ficas<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-3733\" src=\"https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/11\/graficas-tasmota-1024x470.gif\" alt=\"\" width=\"751\" height=\"345\" srcset=\"https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/11\/graficas-tasmota-1024x470.gif 1024w, https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/11\/graficas-tasmota-300x138.gif 300w, https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/11\/graficas-tasmota-768x353.gif 768w, https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/11\/graficas-tasmota-18x8.gif 18w, https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/11\/graficas-tasmota-600x276.gif 600w\" sizes=\"(max-width: 751px) 100vw, 751px\" \/><\/p>\n<h3>Como instalar FUXA<\/h3>\n<p>Para la instalaci\u00f3n de Fuxa como SCADA de c\u00f3digo abierto al tener ya instalado docker es tan sencillo como hacer una pull del repositorio de github y hacer que se autoarranque al iniciar el servidor<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4160b0e elementor-widget elementor-widget-code-highlight\" data-id=\"4160b0e\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>docker run -d \\\r\n  --name fuxa \\\r\n  -p 1881:1881 \\\r\n  -v fuxa_appdata:\/usr\/src\/app\/FUXA\/server\/_appdata \\\r\n  -v fuxa_db:\/usr\/src\/app\/FUXA\/server\/_db \\\r\n  -v fuxa_logs:\/usr\/src\/app\/FUXA\/server\/_logs \\\r\n  -v fuxa_shapes:\/usr\/src\/app\/FUXA\/client\/assets\/lib\/svgeditor\/shapes \\\r\n  -v fuxa_images:\/usr\/src\/app\/FUXA\/server\/_images \\\r\n  --restart unless-stopped \\\r\n  frangoteam\/fuxa:latest\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a7974db e-flex e-con-boxed e-con e-parent\" data-id=\"a7974db\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0020442 elementor-widget elementor-widget-text-editor\" data-id=\"0020442\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Ya tenemos listo ahora es tan facil como crear un proyecto usar el objeto &#8220;iFrame&#8221; de Fuxa y ya podemos empezar a visualizar los datos<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5ea2259 e-flex e-con-boxed e-con e-parent\" data-id=\"5ea2259\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7cb7810 elementor-widget elementor-widget-video\" data-id=\"7cb7810\" data-element_type=\"widget\" data-settings=\"{&quot;video_type&quot;:&quot;hosted&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.19.0 - 28-02-2024 *\/\n.elementor-widget-video .elementor-widget-container{overflow:hidden;transform:translateZ(0)}.elementor-widget-video .elementor-wrapper{aspect-ratio:var(--video-aspect-ratio)}.elementor-widget-video .elementor-wrapper iframe,.elementor-widget-video .elementor-wrapper video{height:100%;width:100%;display:flex;border:none;background-color:#000}@supports not (aspect-ratio:1\/1){.elementor-widget-video .elementor-wrapper{position:relative;overflow:hidden;height:0;padding-bottom:calc(100% \/ var(--video-aspect-ratio))}.elementor-widget-video .elementor-wrapper iframe,.elementor-widget-video .elementor-wrapper video{position:absolute;top:0;right:0;bottom:0;left:0}}.elementor-widget-video .elementor-open-inline .elementor-custom-embed-image-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:50%}.elementor-widget-video .elementor-custom-embed-image-overlay{cursor:pointer;text-align:center}.elementor-widget-video .elementor-custom-embed-image-overlay:hover .elementor-custom-embed-play i{opacity:1}.elementor-widget-video .elementor-custom-embed-image-overlay img{display:block;width:100%;aspect-ratio:var(--video-aspect-ratio);-o-object-fit:cover;object-fit:cover;-o-object-position:center center;object-position:center center}@supports not (aspect-ratio:1\/1){.elementor-widget-video .elementor-custom-embed-image-overlay{position:relative;overflow:hidden;height:0;padding-bottom:calc(100% \/ var(--video-aspect-ratio))}.elementor-widget-video .elementor-custom-embed-image-overlay img{position:absolute;top:0;right:0;bottom:0;left:0}}.elementor-widget-video .e-hosted-video .elementor-video{-o-object-fit:cover;object-fit:cover}.e-con-inner>.elementor-widget-video,.e-con>.elementor-widget-video{width:var(--container-widget-width);--flex-grow:var(--container-widget-flex-grow)}<\/style>\t\t<div class=\"e-hosted-video elementor-wrapper elementor-open-inline\">\n\t\t\t\t\t<video class=\"elementor-video\" src=\"https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/11\/fuxa-tasmota.mkv\" controls=\"\" preload=\"metadata\"><\/video>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Introducci\u00f3n Hace poco una persona tenia dudas de como almacenar datos del consumo de la red en una base de datos y yo le comentaba que se puede hacer con costes muy reducidos o incluso gratuitos Hardware Para este ejercicio pr\u00e1ctico se usar\u00e1 un dispositivo de dom\u00f3tica por su reducido coste https:\/\/amzn.to\/3CjvGMA Si necesitas varios&#8230;<\/p>","protected":false},"author":1,"featured_media":3738,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[77,80,78,79,76,75],"tags":[],"class_list":["post-3723","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dashboard","category-fuxa-scada","category-fuxa","category-fuxa-dashboard","category-hmi-2","category-scada","th-blog blog-single"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.0 (Yoast SEO v22.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Como guardar y visualizar datos en base de datos GRATIS - Brandon Engineer<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/brandon-engineer.com\/en\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como guardar y visualizar datos en base de datos GRATIS\" \/>\n<meta property=\"og:description\" content=\"Introducci\u00f3n Hace poco una persona tenia dudas de como almacenar datos del consumo de la red en una base de datos y yo le comentaba que se puede hacer con costes muy reducidos o incluso gratuitos Hardware Para este ejercicio pr\u00e1ctico se usar\u00e1 un dispositivo de dom\u00f3tica por su reducido coste https:\/\/amzn.to\/3CjvGMA Si necesitas varios...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/brandon-engineer.com\/en\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/\" \/>\n<meta property=\"og:site_name\" content=\"Brandon Engineer\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-12T18:16:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-12T18:39:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/10\/guardar-visualizar-datos-gratis.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"789\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"Brandon\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Brandon\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/brandon-engineer.com\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/brandon-engineer.com\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/\"},\"author\":{\"name\":\"Brandon\",\"@id\":\"https:\/\/brandon-engineer.com\/#\/schema\/person\/46ee48a398d58bbbf72a86521b95229b\"},\"headline\":\"Como guardar y visualizar datos en base de datos GRATIS\",\"datePublished\":\"2024-11-12T18:16:10+00:00\",\"dateModified\":\"2024-11-12T18:39:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/brandon-engineer.com\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/\"},\"wordCount\":534,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/brandon-engineer.com\/#\/schema\/person\/46ee48a398d58bbbf72a86521b95229b\"},\"articleSection\":[\"Dashboard\",\"Fuxa\",\"Fuxa\",\"Fuxa\",\"HMI\",\"SCADA\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/brandon-engineer.com\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/brandon-engineer.com\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/\",\"url\":\"https:\/\/brandon-engineer.com\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/\",\"name\":\"Como guardar y visualizar datos en base de datos GRATIS - Brandon Engineer\",\"isPartOf\":{\"@id\":\"https:\/\/brandon-engineer.com\/#website\"},\"datePublished\":\"2024-11-12T18:16:10+00:00\",\"dateModified\":\"2024-11-12T18:39:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/brandon-engineer.com\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/brandon-engineer.com\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/brandon-engineer.com\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/brandon-engineer.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Como guardar y visualizar datos en base de datos GRATIS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/brandon-engineer.com\/#website\",\"url\":\"https:\/\/brandon-engineer.com\/\",\"name\":\"Brandon Engineer\",\"description\":\"Blog para compartir sobre programaci\u00f3n y tecnolog\u00eda industrial\",\"publisher\":{\"@id\":\"https:\/\/brandon-engineer.com\/#\/schema\/person\/46ee48a398d58bbbf72a86521b95229b\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/brandon-engineer.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/brandon-engineer.com\/#\/schema\/person\/46ee48a398d58bbbf72a86521b95229b\",\"name\":\"Brandon\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/brandon-engineer.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/03\/cropped-favicon-2.ico\",\"contentUrl\":\"https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/03\/cropped-favicon-2.ico\",\"width\":48,\"height\":48,\"caption\":\"Brandon\"},\"logo\":{\"@id\":\"https:\/\/brandon-engineer.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/brandon-engineer.com\",\"https:\/\/www.linkedin.com\/in\/brandon-ramon-navarro\/\"],\"gender\":\"Hombre\",\"knowsLanguage\":[\"espa\u00f1ol\",\"ingl\u00e9s\"],\"jobTitle\":\"Ingeniero de automatizaci\u00f3n\",\"url\":\"https:\/\/brandon-engineer.com\/en\/author\/brandon\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Como guardar y visualizar datos en base de datos GRATIS - Brandon Engineer","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/brandon-engineer.com\/en\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/","og_locale":"en_US","og_type":"article","og_title":"Como guardar y visualizar datos en base de datos GRATIS","og_description":"Introducci\u00f3n Hace poco una persona tenia dudas de como almacenar datos del consumo de la red en una base de datos y yo le comentaba que se puede hacer con costes muy reducidos o incluso gratuitos Hardware Para este ejercicio pr\u00e1ctico se usar\u00e1 un dispositivo de dom\u00f3tica por su reducido coste https:\/\/amzn.to\/3CjvGMA Si necesitas varios...","og_url":"https:\/\/brandon-engineer.com\/en\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/","og_site_name":"Brandon Engineer","article_published_time":"2024-11-12T18:16:10+00:00","article_modified_time":"2024-11-12T18:39:14+00:00","og_image":[{"width":789,"height":400,"url":"https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/10\/guardar-visualizar-datos-gratis.gif","type":"image\/gif"}],"author":"Brandon","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Brandon","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/brandon-engineer.com\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/#article","isPartOf":{"@id":"https:\/\/brandon-engineer.com\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/"},"author":{"name":"Brandon","@id":"https:\/\/brandon-engineer.com\/#\/schema\/person\/46ee48a398d58bbbf72a86521b95229b"},"headline":"Como guardar y visualizar datos en base de datos GRATIS","datePublished":"2024-11-12T18:16:10+00:00","dateModified":"2024-11-12T18:39:14+00:00","mainEntityOfPage":{"@id":"https:\/\/brandon-engineer.com\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/"},"wordCount":534,"commentCount":0,"publisher":{"@id":"https:\/\/brandon-engineer.com\/#\/schema\/person\/46ee48a398d58bbbf72a86521b95229b"},"articleSection":["Dashboard","Fuxa","Fuxa","Fuxa","HMI","SCADA"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/brandon-engineer.com\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/brandon-engineer.com\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/","url":"https:\/\/brandon-engineer.com\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/","name":"Como guardar y visualizar datos en base de datos GRATIS - Brandon Engineer","isPartOf":{"@id":"https:\/\/brandon-engineer.com\/#website"},"datePublished":"2024-11-12T18:16:10+00:00","dateModified":"2024-11-12T18:39:14+00:00","breadcrumb":{"@id":"https:\/\/brandon-engineer.com\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/brandon-engineer.com\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/brandon-engineer.com\/como-guardar-y-visualizar-datos-en-base-de-datos-gratis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/brandon-engineer.com\/"},{"@type":"ListItem","position":2,"name":"Como guardar y visualizar datos en base de datos GRATIS"}]},{"@type":"WebSite","@id":"https:\/\/brandon-engineer.com\/#website","url":"https:\/\/brandon-engineer.com\/","name":"Brandon Engineer","description":"Blog para compartir sobre programaci\u00f3n y tecnolog\u00eda industrial","publisher":{"@id":"https:\/\/brandon-engineer.com\/#\/schema\/person\/46ee48a398d58bbbf72a86521b95229b"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/brandon-engineer.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/brandon-engineer.com\/#\/schema\/person\/46ee48a398d58bbbf72a86521b95229b","name":"Brandon","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/brandon-engineer.com\/#\/schema\/person\/image\/","url":"https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/03\/cropped-favicon-2.ico","contentUrl":"https:\/\/brandon-engineer.com\/wp-content\/uploads\/2024\/03\/cropped-favicon-2.ico","width":48,"height":48,"caption":"Brandon"},"logo":{"@id":"https:\/\/brandon-engineer.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/brandon-engineer.com","https:\/\/www.linkedin.com\/in\/brandon-ramon-navarro\/"],"gender":"Hombre","knowsLanguage":["espa\u00f1ol","ingl\u00e9s"],"jobTitle":"Ingeniero de automatizaci\u00f3n","url":"https:\/\/brandon-engineer.com\/en\/author\/brandon\/"}]}},"_links":{"self":[{"href":"https:\/\/brandon-engineer.com\/en\/wp-json\/wp\/v2\/posts\/3723","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/brandon-engineer.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/brandon-engineer.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/brandon-engineer.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/brandon-engineer.com\/en\/wp-json\/wp\/v2\/comments?post=3723"}],"version-history":[{"count":5,"href":"https:\/\/brandon-engineer.com\/en\/wp-json\/wp\/v2\/posts\/3723\/revisions"}],"predecessor-version":[{"id":3737,"href":"https:\/\/brandon-engineer.com\/en\/wp-json\/wp\/v2\/posts\/3723\/revisions\/3737"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/brandon-engineer.com\/en\/wp-json\/wp\/v2\/media\/3738"}],"wp:attachment":[{"href":"https:\/\/brandon-engineer.com\/en\/wp-json\/wp\/v2\/media?parent=3723"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/brandon-engineer.com\/en\/wp-json\/wp\/v2\/categories?post=3723"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/brandon-engineer.com\/en\/wp-json\/wp\/v2\/tags?post=3723"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}