{"id":3533,"date":"2021-05-13T17:13:16","date_gmt":"2021-05-13T17:13:16","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=3533"},"modified":"2021-05-13T17:24:20","modified_gmt":"2021-05-13T17:24:20","slug":"caja-fuerte-automatizada-tj","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/caja-fuerte-automatizada-tj\/","title":{"rendered":"Caja fuerte automatizada &#8211; TJ"},"content":{"rendered":"\n<p class=\"has-black-color has-text-color has-medium-font-size\"><strong>El equipo<\/strong><\/p>\n\n\n\n<p>I\u00f1aki Murillo del Prado &#8211; Ingenier\u00eda Inform\u00e1tica<br>Sergio Torres Rivero &#8211; Ingenier\u00eda Inform\u00e1tica<br>Ra\u00fal Villalba Amor &#8211; Ingenier\u00eda Inform\u00e1tica<\/p>\n\n\n\n<p class=\"has-black-color has-text-color has-medium-font-size\"><strong>Idea<\/strong><\/p>\n\n\n\n<p>En el grupo 9 de M\u00f3stoles hemos realizado una caja fuerte. Nuestra intenci\u00f3n es adaptar una caja fuerte convencional de una sola clave a una de mayor flexibilidad, con varios usuarios y sus claves pertinentes, de forma que varios miembros de la unidad familiar puedan tener acceso al mismo contenido pero sin tener que filtrar sus claves. Este proyecto podr\u00eda servir de primer escal\u00f3n para otro de mayor ambici\u00f3n en el que se busque la implementaci\u00f3n de un sistema de cajas fuertes, donde cada usuario tenga acceso tanto a una celda individual como a una com\u00fan.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.44.52.jpeg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.44.52-1024x575.jpeg\" alt=\"\" class=\"wp-image-3792\" width=\"621\" height=\"349\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.44.52-1024x575.jpeg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.44.52-300x169.jpeg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.44.52-768x432.jpeg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.44.52-1536x863.jpeg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.44.52.jpeg 2000w\" sizes=\"auto, (max-width: 621px) 100vw, 621px\" \/><\/a><figcaption>Caja fuerte TJ<\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Planteamiento<\/strong><\/p>\n\n\n\n<p>Tras concebir la idea general nos dividimos en dos grupos de trabajo para organizar el trabajo de la manera m\u00e1s eficaz posible. Los grupos consisten en hardware (I\u00f1aki) y software (Sergio, Ra\u00fal), destinamos dos personas debido a su mayor complejidad. Sin embargo, todos los integrantes han participado de forma activa en todas las fases. Como m\u00e9todo de trabajo hemos utilizado la t\u00e9cnica de \u00abPrueba y error\u00bb, probando y a\u00f1adiendo nuevas funcionalidades. Entre los principales objetivos encontramos:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Reconocimiento Keypad<\/li><li>Monitorizar informaci\u00f3n a trav\u00e9s de LCD<\/li><li>Mostrar estado a trav\u00e9s de Leds<\/li><li>Comprobar contrase\u00f1a<\/li><li>Usuarios<\/li><li>Cambiar contrase\u00f1a<\/li><li>Bloquear caja con servo<\/li><\/ul>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\"><div class=\"wp-block-group__inner-container\"><\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"has-medium-font-size\"><strong>Recursos<\/strong><\/p>\n<\/div><\/div>\n\n\n\n<p>Inicialmente dispon\u00edamos de ciertos recursos que la universidad nos hab\u00eda proporcionado, dichos elementos se representan con un coste de 0\u20ac en la siguiente tabla:<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<figure class=\"wp-block-table\"><table><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Art\u00edculo<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Unidades<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Precio (\u20ac)<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">LCD 16X2<\/td><td class=\"has-text-align-center\" data-align=\"center\">1<\/td><td class=\"has-text-align-center\" data-align=\"center\">5,99<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">1Adaptador para LCD IIC\/I2C<\/td><td class=\"has-text-align-center\" data-align=\"center\">1<\/td><td class=\"has-text-align-center\" data-align=\"center\">1,80<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Keypad<\/td><td class=\"has-text-align-center\" data-align=\"center\">1<\/td><td class=\"has-text-align-center\" data-align=\"center\">5,77<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Leds (verde y rojo)<\/td><td class=\"has-text-align-center\" data-align=\"center\">2<\/td><td class=\"has-text-align-center\" data-align=\"center\">0<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Cables<\/td><td class=\"has-text-align-center\" data-align=\"center\">50<\/td><td class=\"has-text-align-center\" data-align=\"center\">0<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Servomotor<\/td><td class=\"has-text-align-center\" data-align=\"center\">1<\/td><td class=\"has-text-align-center\" data-align=\"center\">0<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Arduino<\/td><td class=\"has-text-align-center\" data-align=\"center\">1<\/td><td class=\"has-text-align-center\" data-align=\"center\">0<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Resistencia (10K\u03a9)<\/td><td class=\"has-text-align-center\" data-align=\"center\">1<\/td><td class=\"has-text-align-center\" data-align=\"center\">0<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Pila 9V<\/td><td class=\"has-text-align-center\" data-align=\"center\">1<\/td><td class=\"has-text-align-center\" data-align=\"center\">1,5<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Caja de cart\u00f3n<\/td><td class=\"has-text-align-center\" data-align=\"center\">1<\/td><td class=\"has-text-align-center\" data-align=\"center\">0<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>TOTAL<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>&#8211;<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>15,06<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>C\u00f3digo de TJ<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;LiquidCrystal_I2C.h&gt;\nLiquidCrystal_I2C lcd(0x3F, 16, 2);\n#include &lt;Wire.h&gt;\n#include &lt;i2cdetect.h&gt;\n#include &lt;Keypad.h&gt;\n\n#include &lt;Servo.h&gt;\nServo miServo;\n\nconst int ledRojo = 13;\nconst int ledVerde = 12; \n  \nchar seleccionarOpcion;\nchar seleccionarOpcionA;\nchar seleccionarOpcionB;\nchar seleccionarOpcionC;\nconst String masterPass = \"11235\";\nchar claveInsertada;\nString claveCompleta;\nString contrInicial;\nconst byte FILAS = 4;\nconst byte COLUMNAS = 4;\nbyte pinFilas&#091;FILAS] = {11, 10, 9, 8};\nbyte pinColum&#091;COLUMNAS] = {7, 6, 5, 4};\nchar teclado &#091;FILAS] &#091;COLUMNAS] = {\n  {'1', '2', '3', 'A'},\n  {'4', '5', '6', 'B'},\n  {'7', '8', '9', 'C'},\n  {'*', '0', '#', 'D'}\n};\n\nKeypad miTeclado = Keypad(makeKeymap(teclado), pinFilas, pinColum, FILAS, COLUMNAS );\n  \n void setup(){\n    Serial.begin(9600);\n    miServo.attach(3);\n    pinMode(ledRojo,OUTPUT);\n    pinMode(ledVerde,OUTPUT);\n    digitalWrite(ledRojo, HIGH);\n    digitalWrite(ledVerde, LOW); \n    claveCompleta.reserve(32);\n    miServo.write(90);\n    lcd.init();\n    lcd.backlight();\n    lcd.setCursor(0, 0);\n    lcd.print(\"Grupo 9-Mostoles\");\n    delay(3000);\n    lcd.clear();   \n }\n \n  void loop(){\n    static String nuevaContrasennaA= \"11235\";\n    static String nuevaContrasennaB= \"11235\";\n    static String nuevaContrasennaC= \"11235\";\n    if (digitalRead(ledRojo)){\n        lcd.clear();\n        lcd.setCursor(0, 0);\n        lcd.print(\"Caja cerrada\");\n        lcd.setCursor(0, 1);\n        lcd.print(\"Pulse A,B,C o #\");\n        delay(3000);\n        seleccionarOpcion = miTeclado.getKey();\n        while(!seleccionarOpcion){\n          seleccionarOpcion = miTeclado.getKey();\n        }\n        switch(seleccionarOpcion){\n          case 'A':\n              comprobarContrasenna(nuevaContrasennaA);\n              lcd.clear();\n              lcd.setCursor(0, 0);\n              lcd.print(\"1: Cambiar clave\");\n              lcd.setCursor(0, 1);\n              lcd.print(\"2: Salir\");\n              delay(3000);\n              seleccionarOpcionA = miTeclado.getKey();    \n              while(!seleccionarOpcionA){\n                seleccionarOpcionA = miTeclado.getKey();\n              }\n              switch(seleccionarOpcionA){\n                case '1':\n                    lcd.clear();\n                    lcd.setCursor(0, 0);\n                    lcd.print(\"Nuevo clave: \");\n                    delay(3000);\n                    nuevaContrasennaA= \"\";\n                    claveInsertada = miTeclado.getKey();\n                    while((claveInsertada != '#') &amp;&amp; (claveInsertada != '*')){\n                        claveInsertada = miTeclado.getKey();\n                        if ((claveInsertada) &amp;&amp; (claveInsertada != '#') &amp;&amp; (claveInsertada != '*')){\n                            nuevaContrasennaA += claveInsertada;\n                            lcd.setCursor(0, 1);\n                            lcd.print(nuevaContrasennaA);\n                        }\n                    }\n                    lcd.clear();\n                    lcd.setCursor(0, 0);\n                    lcd.print(\"Nueva clave: \");\n                    lcd.setCursor(0, 1);\n                    lcd.print(nuevaContrasennaA);\n                    delay(3000);\n                break;\n                default:\n                    lcd.clear();\n                    lcd.setCursor(0, 0);\n                    lcd.print(\"Cerrando caja\");\n                    miServo.write(90);\n                    delay(3000);\n                    digitalWrite(ledVerde, LOW);\n                    digitalWrite(ledRojo, HIGH);\n                break;\n              }\n          break;\n          case 'B':\n              comprobarContrasenna(nuevaContrasennaB);\n              lcd.clear();\n              lcd.setCursor(0, 0);\n              lcd.print(\"1: Cambiar clave\");\n              lcd.setCursor(0, 1);\n              lcd.print(\"2: Salir\");\n              delay(3000);\n              seleccionarOpcionB = miTeclado.getKey();    \n              while(!seleccionarOpcionB){\n                seleccionarOpcionB = miTeclado.getKey();\n              }\n              switch(seleccionarOpcionB){\n                case '1':\n                    lcd.clear();\n                    lcd.setCursor(0, 0);\n                    lcd.print(\"Nuevo clave: \");\n                    delay(3000);\n                    nuevaContrasennaB= \"\";\n                    claveInsertada = miTeclado.getKey();\n                    while((claveInsertada != '#') &amp;&amp; (claveInsertada != '*')){\n                        claveInsertada = miTeclado.getKey();\n                        if ((claveInsertada) &amp;&amp; (claveInsertada != '#') &amp;&amp; (claveInsertada != '*')){\n                            nuevaContrasennaB += claveInsertada; \n                            lcd.setCursor(0, 1);\n                            lcd.print(nuevaContrasennaB);\n                        }\n                    }\n                    lcd.clear();\n                    lcd.setCursor(0, 0);\n                    lcd.print(\"Nueva clave: \");\n                    lcd.setCursor(0, 1);\n                    lcd.print(nuevaContrasennaB);\n                    delay(3000);\n                break;\n                default:\n                    lcd.clear();\n                    lcd.setCursor(0, 0);\n                    lcd.print(\"Cerrando caja\");\n                    miServo.write(90);\n                    delay(3000);\n                    digitalWrite(ledVerde, LOW);\n                    digitalWrite(ledRojo, HIGH);\n                break;\n              }\n          break;\n          case 'C':\n              comprobarContrasenna(nuevaContrasennaC);\n              lcd.clear();\n              lcd.setCursor(0, 0);\n              lcd.print(\"1: Cambiar clave\");\n              lcd.setCursor(0, 1);\n              lcd.print(\"2: Salir\");\n              delay(3000);\n              seleccionarOpcionC = miTeclado.getKey();    \n              while(!seleccionarOpcionC){\n                seleccionarOpcionC = miTeclado.getKey();\n              }\n              switch(seleccionarOpcionC){\n                case '1':\n                    lcd.clear();\n                    lcd.setCursor(0, 0);\n                    lcd.print(\"Nuevo clave: \");\n                    delay(3000);\n                    nuevaContrasennaC= \"\";\n                    claveInsertada = miTeclado.getKey();\n                    while((claveInsertada != '#') &amp;&amp; (claveInsertada != '*')){\n                        claveInsertada = miTeclado.getKey();\n                        if ((claveInsertada) &amp;&amp; (claveInsertada != '#') &amp;&amp; (claveInsertada != '*')){\n                            nuevaContrasennaC += claveInsertada; \n                            lcd.setCursor(0, 1);\n                            lcd.print(nuevaContrasennaC);\n                        }\n                    }\n                    lcd.clear();\n                    lcd.setCursor(0, 0);\n                    lcd.print(\"Nueva clave: \");\n                    lcd.setCursor(0, 1);\n                    lcd.print(nuevaContrasennaC);\n                    delay(3000);\n                break;\n                default:\n                    lcd.clear();\n                    lcd.setCursor(0, 0);\n                    lcd.print(\"Cerrando caja\");\n                    miServo.write(90);\n                    delay(3000);\n                    digitalWrite(ledVerde, LOW);\n                    digitalWrite(ledRojo, HIGH);\n                break;\n              }\n          break;\n          case '#':\n            comprobarContrasenna(masterPass);\n          break;\n          default:\n              lcd.clear();\n              lcd.setCursor(0, 0);\n              lcd.print(\"Usuario no valido\");\n          break;\n        }     \n    }   \n    else{\n        lcd.clear();\n        lcd.setCursor(0, 0);\n        lcd.print(\"Caja abierta\");\n        lcd.setCursor(0, 1);\n        lcd.print(\"Cierre y pulse D\");\n        claveInsertada = miTeclado.getKey();\n        while(!claveInsertada){\n            claveInsertada = miTeclado.getKey();\n        }\n        if (claveInsertada == 'D'){\n            lcd.clear();\n            lcd.setCursor(0, 0);\n            lcd.print(\"Cerrando caja\");\n            miServo.write(90);\n            delay(3000);\n            digitalWrite(ledVerde, LOW);\n            digitalWrite(ledRojo, HIGH);\n        } \n    }\n}\n\nvoid comprobarContrasenna(String posibleContrasenna){\n    lcd.clear();\n    lcd.setCursor(0, 0);\n    lcd.print(\"Introduzca clave\");\n    delay(3000);\n    claveCompleta = \"\";\n    claveInsertada = miTeclado.getKey();\n    while((claveInsertada != '#') &amp;&amp; (claveInsertada != '*')){\n        claveInsertada = miTeclado.getKey();\n        if ((claveInsertada) &amp;&amp; (claveInsertada != '#')){\n            claveCompleta += claveInsertada; \n            lcd.setCursor(0, 1);\n            lcd.print(claveCompleta);\n        }\n    }  \n    if((claveCompleta == masterPass)||(claveCompleta == posibleContrasenna)){\n        lcd.clear();\n        lcd.setCursor(0, 0);\n        lcd.print(\"Clave correcta\");\n        digitalWrite(ledRojo, LOW);\n        digitalWrite(ledVerde, HIGH);\n        miServo.write(0);\n        }\n    else{\n        if (claveInsertada != '*'){\n            lcd.clear();\n            lcd.setCursor(0, 0);\n            lcd.print(\"Clave incorrecta\");\n        }\n        comprobarContrasenna(posibleContrasenna);\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Hardware<\/strong><\/p>\n\n\n\n<p>Para la elaboraci\u00f3n del hardware de nuestra caja fuerte, primero realizamos las pruebas de los diferentes casos de uso en una protoboard separada, incluyendo todos los elementos. Esto no solo acelera el montaje en fases tempranas del desarrollo, sino que tambi\u00e9n nos ayuda a recuperarnos de posibles errores o fallos en la configuraci\u00f3n del circuito o en los pines la placa de Arduino. <br>Una vez configurados los pines de nuestros diferentes elementos en la placa Arduino, pasamos a conectarlos en nuestras protoboard. En la superior colocamos el lcd, el adaptador de pines que nos permiti\u00f3 adaptar el n\u00famero de pines necesarios de 16 a 4, uno de nuestros principales problemas durante el proyecto, pegamos nuestro keypad y colocamos nuestros dos leds, rojo y verde, adem\u00e1s de los cables necesarios para la comunicaci\u00f3n entre los elementos de ambas placas. En la inferior conectamos el resto de los elementos del circuito, configuramos los cables anteriormente mencionados, aquellos que van a corriente y a tierra y adem\u00e1s colocamos una resistencia para regular el voltaje que les llega a ambos leds, ya que de ser excesivo podr\u00edan fundirse. <br>Todo esto lo colocamos en nuestra caja de cart\u00f3n (ya que nos era mucho m\u00e1s c\u00f3modo para colocar el lcd y poner engancharlo correctamente), marcada y con los cortes correspondientes para pasar los cables. Colocamos el servo en la ranura en el borde de la caja que hac\u00eda de \u201ccerradura\u201d seg\u00fan el \u00e1ngulo programado y una vez colocados el resto de los elementos conectamos todos estos a los pines correspondientes del Arduino, los que ten\u00edamos asignados en el programa. Solo nos quedaba por conectar el adaptador de corriente con la pila al Arduino.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.33.07-rotated.jpeg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.33.07-1024x575.jpeg\" alt=\"\" class=\"wp-image-3794\" width=\"603\" height=\"339\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.33.07-1024x575.jpeg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.33.07-300x169.jpeg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.33.07-768x432.jpeg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.33.07-1536x863.jpeg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.33.07-rotated.jpeg 2000w\" sizes=\"auto, (max-width: 603px) 100vw, 603px\" \/><\/a><figcaption>Parte Exterior<\/figcaption><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.37.47.jpeg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.37.47-1024x576.jpeg\" alt=\"\" class=\"wp-image-3793\" width=\"605\" height=\"340\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.37.47-1024x576.jpeg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.37.47-300x169.jpeg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.37.47-768x432.jpeg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.37.47-1536x864.jpeg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.37.47.jpeg 1920w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/a><figcaption>Parte Interna<\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Software<\/strong><\/p>\n\n\n\n<p>Para el desarrollo de la caja fuerte nos centramos en los diferentes casos de uso que quer\u00edamos que ofreciera nuestro producto. Antes de permitirle al usuario seleccionar alguna opci\u00f3n, una vez encendida la caja fuerte, debemos comprobar si la puerta est\u00e1 abierta o cerrada. <br>Si bien es cierto que partimos de la premisa que la puerta est\u00e1 cerrada, y as\u00ed es como lo inicializamos en el \u201cset up( )\u201d, esta funcionalidad destaca en la ejecuci\u00f3n repetida del \u201cloop( )\u201d, donde siempre se debe comprobar el estado de la puerta antes de llegar al resto de funcionalidades. Esta comprobaci\u00f3n se lleva a cabo mediante un \u201cif ( ) \u2026 else\u201d del estado del led rojo. Si est\u00e1 en \u201cHIGH\u201d, significa que la caja est\u00e1 cerrada, el otro estado seria en \u201cLOW\u201d e implicar\u00eda que la caja est\u00e1 abierta. Posteriormente, y en caso de que la caja est\u00e9 cerrada, se le pide al usuario que seleccione con qu\u00e9 clave quiere abrir la caja, usuarios A, B, C o con la clave maestra (\u201c#\u201d). <br>Cabe mencionar que todos los usuarios pueden entrar con su clave personalizada, en caso de tenerla o con la clave maestra. Para la comprobaci\u00f3n de dicha clave utilizamos un subprograma recursivo. En este subprograma guardamos la clave introducida por teclado en una variable y una vez que el usuario ha terminado de introducir la clave, pulsa el equivalente a la tecla enter (\u201cD\u201d) o la tecla de reintroducir clave (\u201c\u201d), mediante un \u201cif ( ) \u2026 else\u201d comprobamos si la clave introducida por el usuario coincide con la clave asignada a su usuario (se lo pasamos como par\u00e1metro al subprograma) o la clave maestra. <br>En caso de ser as\u00ed, abrimos la caja y salimos del subprograma, sino pasamos al \u201celse\u201d y comprobamos si el \u00faltimo elemento introducido fue \u201c\u201d, en dicho caso simplemente llamamos recursivamente al subprograma, de no ser as\u00ed, antes de realizar dicha llamada avisamos al usuario que la clave introducida es incorrecta. Una vez la clave introducida es correcta el usuario puede salir y pasar a cerrar la caja, o introducir una nueva clave, esto es posible debido a que hemos declarado las variables locales como \u201cstatic\u201d, por lo que dicho cambio se ver\u00e1 reflejado. Para ello al igual que antes, simplemente se pide al usuario que introduzca la nueva clave, mostr\u00e1ndose la misma por pantalla, hasta que pulse \u201c#\u201d o \u201c*\u201d y reescribamos la contrase\u00f1a del usuario por la introducida.<strong> <\/strong><br>Para finalizar, debemos hablar sobre el caso en el que la caja este abierta, en este caso se pide al usuario que pulse \u201cD\u201d y luego se procede a girar el servo y actualizar el estado de los leds. Cabe mencionar que la forma de interacci\u00f3n con el usuario es mediante un \u201ckeypad\u201d b\u00e1sico y una pantalla lcd en la que siempre se muestra el estado de la operaci\u00f3n que est\u00e1 realizando el usuario y el feedback correspondiente una vez finalizada.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Video explicativo<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1oaemYjgh-goYGRlf5SoeW__tfqvOb2_Z\/view?usp=sharing\">https:\/\/drive.google.com\/file\/d\/1oaemYjgh-goYGRlf5SoeW__tfqvOb2_Z\/view?usp=sharing<\/a><\/p>\n\n\n\n<p style=\"font-size:1px\"><strong>Idea<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>El equipo I\u00f1aki Murillo del Prado &#8211; Ingenier\u00eda Inform\u00e1ticaSergio Torres Rivero &#8211; Ingenier\u00eda Inform\u00e1ticaRa\u00fal Villalba Amor &#8211; Ingenier\u00eda Inform\u00e1tica Idea En el grupo 9 de M\u00f3stoles hemos realizado una caja fuerte. Nuestra intenci\u00f3n es&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3533","post","type-post","status-publish","format-standard","hentry","category-proyectos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Caja fuerte automatizada - TJ - Proyectos con Arduino.<\/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:\/\/blogs.etsii.urjc.es\/dseytr\/caja-fuerte-automatizada-tj\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Caja fuerte automatizada - TJ - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"El equipo I\u00f1aki Murillo del Prado &#8211; Ingenier\u00eda Inform\u00e1ticaSergio Torres Rivero &#8211; Ingenier\u00eda Inform\u00e1ticaRa\u00fal Villalba Amor &#8211; Ingenier\u00eda Inform\u00e1tica Idea En el grupo 9 de M\u00f3stoles hemos realizado una caja fuerte. Nuestra intenci\u00f3n es&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/caja-fuerte-automatizada-tj\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2021-05-13T17:13:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-13T17:24:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.44.52-1024x575.jpeg\" \/>\n<meta name=\"author\" content=\"Administrador de la red\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Administrador de la red\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/caja-fuerte-automatizada-tj\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/caja-fuerte-automatizada-tj\\\/\"},\"author\":{\"name\":\"Administrador de la red\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/bdc38fea664f13638d2a51f4d2fc7211\"},\"headline\":\"Caja fuerte automatizada &#8211; TJ\",\"datePublished\":\"2021-05-13T17:13:16+00:00\",\"dateModified\":\"2021-05-13T17:24:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/caja-fuerte-automatizada-tj\\\/\"},\"wordCount\":1105,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/caja-fuerte-automatizada-tj\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2021\\\/05\\\/WhatsApp-Image-2021-05-12-at-01.44.52-1024x575.jpeg\",\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/caja-fuerte-automatizada-tj\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/caja-fuerte-automatizada-tj\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/caja-fuerte-automatizada-tj\\\/\",\"name\":\"Caja fuerte automatizada - TJ - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/caja-fuerte-automatizada-tj\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/caja-fuerte-automatizada-tj\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2021\\\/05\\\/WhatsApp-Image-2021-05-12-at-01.44.52-1024x575.jpeg\",\"datePublished\":\"2021-05-13T17:13:16+00:00\",\"dateModified\":\"2021-05-13T17:24:20+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/caja-fuerte-automatizada-tj\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/caja-fuerte-automatizada-tj\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/caja-fuerte-automatizada-tj\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2021\\\/05\\\/WhatsApp-Image-2021-05-12-at-01.44.52-1024x575.jpeg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2021\\\/05\\\/WhatsApp-Image-2021-05-12-at-01.44.52-1024x575.jpeg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/caja-fuerte-automatizada-tj\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Caja fuerte automatizada &#8211; TJ\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\",\"name\":\"Proyectos con Arduino.\",\"description\":\"Blog de proyectos de Arduino de alumnos de la URJC\",\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\",\"name\":\"Universidad Rey Juan Carlos\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/05\\\/logourjc-1.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/05\\\/logourjc-1.jpg\",\"width\":745,\"height\":288,\"caption\":\"Universidad Rey Juan Carlos\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/bdc38fea664f13638d2a51f4d2fc7211\",\"name\":\"Administrador de la red\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g\",\"caption\":\"Administrador de la red\"},\"sameAs\":[\"https:\\\/\\\/blogs.etsii.urjc.es\"],\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/author\\\/etsiiadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Caja fuerte automatizada - TJ - Proyectos con Arduino.","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:\/\/blogs.etsii.urjc.es\/dseytr\/caja-fuerte-automatizada-tj\/","og_locale":"es_ES","og_type":"article","og_title":"Caja fuerte automatizada - TJ - Proyectos con Arduino.","og_description":"El equipo I\u00f1aki Murillo del Prado &#8211; Ingenier\u00eda Inform\u00e1ticaSergio Torres Rivero &#8211; Ingenier\u00eda Inform\u00e1ticaRa\u00fal Villalba Amor &#8211; Ingenier\u00eda Inform\u00e1tica Idea En el grupo 9 de M\u00f3stoles hemos realizado una caja fuerte. Nuestra intenci\u00f3n es&#46;&#46;&#46;","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/caja-fuerte-automatizada-tj\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2021-05-13T17:13:16+00:00","article_modified_time":"2021-05-13T17:24:20+00:00","og_image":[{"url":"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.44.52-1024x575.jpeg","type":"","width":"","height":""}],"author":"Administrador de la red","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Administrador de la red","Tiempo de lectura":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/caja-fuerte-automatizada-tj\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/caja-fuerte-automatizada-tj\/"},"author":{"name":"Administrador de la red","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/bdc38fea664f13638d2a51f4d2fc7211"},"headline":"Caja fuerte automatizada &#8211; TJ","datePublished":"2021-05-13T17:13:16+00:00","dateModified":"2021-05-13T17:24:20+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/caja-fuerte-automatizada-tj\/"},"wordCount":1105,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/caja-fuerte-automatizada-tj\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.44.52-1024x575.jpeg","articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/caja-fuerte-automatizada-tj\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/caja-fuerte-automatizada-tj\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/caja-fuerte-automatizada-tj\/","name":"Caja fuerte automatizada - TJ - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/caja-fuerte-automatizada-tj\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/caja-fuerte-automatizada-tj\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.44.52-1024x575.jpeg","datePublished":"2021-05-13T17:13:16+00:00","dateModified":"2021-05-13T17:24:20+00:00","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/caja-fuerte-automatizada-tj\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/caja-fuerte-automatizada-tj\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/caja-fuerte-automatizada-tj\/#primaryimage","url":"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.44.52-1024x575.jpeg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/05\/WhatsApp-Image-2021-05-12-at-01.44.52-1024x575.jpeg"},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/caja-fuerte-automatizada-tj\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"Caja fuerte automatizada &#8211; TJ"}]},{"@type":"WebSite","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/","name":"Proyectos con Arduino.","description":"Blog de proyectos de Arduino de alumnos de la URJC","publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization","name":"Universidad Rey Juan Carlos","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/logo\/image\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/05\/logourjc-1.jpg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/05\/logourjc-1.jpg","width":745,"height":288,"caption":"Universidad Rey Juan Carlos"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/bdc38fea664f13638d2a51f4d2fc7211","name":"Administrador de la red","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g","caption":"Administrador de la red"},"sameAs":["https:\/\/blogs.etsii.urjc.es"],"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/author\/etsiiadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/3533","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/comments?post=3533"}],"version-history":[{"count":16,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/3533\/revisions"}],"predecessor-version":[{"id":3816,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/3533\/revisions\/3816"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=3533"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=3533"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=3533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}