{"id":5849,"date":"2022-12-14T00:24:20","date_gmt":"2022-12-13T23:24:20","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=5849"},"modified":"2022-12-14T00:25:35","modified_gmt":"2022-12-13T23:25:35","slug":"proyecto-parking-inteligente","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-parking-inteligente\/","title":{"rendered":"Proyecto: Parking Inteligente"},"content":{"rendered":"\n<p style=\"font-size:25px\">Autores: Alejandro Jim\u00e9nez L\u00e1zaro, Vicente Valent\u00edn Moya Guijarro, Aitor Garc\u00eda Camargo<\/p>\n\n\n\n<h1 class=\"has-text-color wp-block-heading\" style=\"color:#0078be\">Introducci\u00f3n<\/h1>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"has-text-align-left has-black-color has-text-color\" style=\"font-size:25px\">Al decantarnos por este proyecto, nuestro objetivo de hacer un parking inteligente es principalmente controlar las plazas disponibles y ocupadas en funci\u00f3n de la entrada y salida de veh\u00edculos. Nos centramos en 5 funcionalidades, por un lado dos servomotores que act\u00faan de barrera en la entrada y salida del parking. Por otro lado, tenemos una pantalla LCD la cual muestra el n\u00famero de plazas disponibles y en qu\u00e9 plaza debe aparcar el coche que entra. De forma paralela hemos implementado 6 leds que indican las plazas que est\u00e1n libres cuando est\u00e1n encendidos y ocupadas cuando est\u00e1n apagados. Adem\u00e1s,&nbsp; mediante un sensor IR y su respectivo mando, podemos realizar varias funciones pulsando botones. Finalmente hemos incluido 2 sensores HC-SR04 el cual se encarga de detectar un coche cuando pasa por debajo para que act\u00faen las dem\u00e1s funcionalidades(Subir la barrera, apagar o encender un led, actualizar la pantalla LCD).<\/p>\n<\/div><\/div>\n\n\n\n<h1 class=\"has-text-color wp-block-heading\" style=\"color:#0078be\">Materiales y sus costes<\/h1>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/foto-materiales.png\" alt=\"\" class=\"wp-image-5853\" width=\"1364\" height=\"1680\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/foto-materiales.png 657w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/foto-materiales-244x300.png 244w\" sizes=\"auto, (max-width: 1364px) 100vw, 1364px\" \/><\/figure>\n\n\n\n<h1 class=\"has-text-color wp-block-heading\" style=\"color:#0078be\">Esquema del Hardware<\/h1>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/circuitofoto-1024x722.png\" alt=\"\" class=\"wp-image-5852\" width=\"1352\" height=\"954\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/circuitofoto-1024x722.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/circuitofoto-300x212.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/circuitofoto-768x541.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/circuitofoto.png 1190w\" sizes=\"auto, (max-width: 1352px) 100vw, 1352px\" \/><\/figure>\n\n\n\n<h1 class=\"has-text-color wp-block-heading\" style=\"color:#0078be\">Proceso de montaje<\/h1>\n\n\n\n<ul class=\"wp-block-list\" style=\"font-size:24px\">\n<li>En primer lugar, una vez planteado el proyecto en cuesti\u00f3n, se procedi\u00f3 a adquirir las <strong>planchas de madera<\/strong> necesarias para la maqueta de lo que ser\u00eda la <strong>estructura b\u00e1sica<\/strong> del parking. <strong>Una principal<\/strong> (y la m\u00e1s grande) que har\u00eda de <strong>suelo<\/strong>, <strong>4 paredes<\/strong> y <strong>dos \u201ctejados\u201d<\/strong> para las puertas.<\/li>\n\n\n\n<li>Posteriormente, se llev\u00f3 a cabo un <strong>recorte rectangular<\/strong> <strong>en cada pared del<\/strong> <strong>ancho<\/strong> para las puertas de acceso y salida, y junto a las mismas, <strong>un boquete<\/strong> <strong>reducido<\/strong> para cada servomotor; <strong>tres<\/strong> peque\u00f1as <strong>perforaciones<\/strong> en cada <strong>pared<\/strong> <strong>del<\/strong> <strong>largo<\/strong> para ubicar los LEDs, y <strong>dos agujeros<\/strong> de mayor di\u00e1metro en cada <strong>techado<\/strong> para los <strong>sensores<\/strong> <strong>ultras\u00f3nicos<\/strong>. Acto seguido, <strong>se unieron las 7 planchas <\/strong>aplicando cola blanca en los puntos de anclaje, dejando secar durante 24 horas con sujeci\u00f3n en dichos puntos.<\/li>\n\n\n\n<li>Una vez completada la estructura, se ubicaron los <strong>LED<\/strong> en las <strong>paredes laterales<\/strong>, un <strong>servomotor en cada puerta<\/strong>, los <strong>sensores<\/strong> <strong>de<\/strong> <strong>ultrasonidos<\/strong> <strong>en cada techado<\/strong>, una <strong>pantalla LCD<\/strong> con un m\u00f3dulo I2C <strong>en el acceso de entrada<\/strong>, y el <strong>sensor IR para el mando<\/strong> a distancia. A continuaci\u00f3n, se procedi\u00f3 con el <strong>cableado<\/strong> de todos los componentes, <strong>orientando todos los extremos a un mismo lugar<\/strong>, para finalmente <strong>conectarlos<\/strong> a los correspondientes puntos en la <strong><em>protoboard<\/em><\/strong> y\/o en los pines de la <strong>placa <\/strong>de Arduino (<strong>Elegoo<\/strong> UNO R3).<\/li>\n\n\n\n<li>Al tener dispuestas todas las conexiones de los componentes, se comprueba el <strong>correcto funcionamiento <\/strong>de cada uno en Arduino <strong>conect\u00e1ndolo por separado y empleando un c\u00f3digo de testeo<\/strong>. Por \u00faltimo, viendo que cada elemento individualmente marcha de la forma esperada, se elabor\u00f3 el <strong>c\u00f3digo definitivo<\/strong> para que el <strong>parking<\/strong> cumpliese con las <strong>funciones deseadas, y se<\/strong> <strong>ejecut\u00f3 con todos los componentes conectados.<\/strong><\/li>\n<\/ul>\n\n\n\n<h1 class=\"has-text-color wp-block-heading\" style=\"color:#0078be\">Problemas y soluciones<\/h1>\n\n\n\n<ul class=\"wp-block-list\" style=\"font-size:25px\">\n<li>Una vez comprados los materiales, ca\u00edmos en la cuenta de que <strong>necesit\u00e1bamos un sensor por plaza<\/strong> para poder controlar cada coche individualmente (modelo ideal).<ul><li>Para solucionarlo, se decidi\u00f3 que la <strong>salida del parking<\/strong> sea <strong>gestionada manualmente<\/strong>, es decir, como si de un control en la barrera de salida se tratara:<\/li><\/ul>\n<ul class=\"wp-block-list\">\n<li>Se le pregunta al coche saliente de qu\u00e9 plaza proviene, y al darle al sistema esa informaci\u00f3n<ul><li>nos devuelve el tiempo de estancia<\/li><\/ul>\n<ul class=\"wp-block-list\">\n<li>se actualiza el estado de esa plaza, de cara aforo y en el LED.&nbsp;&nbsp;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\" style=\"font-size:25px\">\n<li>Los <strong>sensores de ultrasonidos <\/strong>miden la distancia al objeto m\u00e1s cercano a su alcance, con lo cual se consider\u00f3 oportuno que tuvieran <strong>algo fijo a lo que apuntar<\/strong> para cuando <strong>pasara un veh\u00edculo<\/strong> entre medias, <strong>la variaci\u00f3n de lectura del sensor lo indicara.<\/strong>\n<ul class=\"wp-block-list\">\n<li>Para ello, era preciso montar alguna estructura con la que poder realizarlo.<\/li>\n\n\n\n<li><strong>Se crearon los techados<\/strong> para los ultrasonidos porque eran m\u00e1s est\u00e9ticos, pr\u00e1cticos y baratos que tener que construir dos paredes en cada acceso.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/Imagen2.jpg\" alt=\"\" class=\"wp-image-5856\" width=\"256\" height=\"180\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/Imagen2.jpg 366w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/Imagen2-300x211.jpg 300w\" sizes=\"auto, (max-width: 256px) 100vw, 256px\" \/><\/figure>\n<\/div>\n\n\n<ul class=\"wp-block-list\" style=\"font-size:25px\">\n<li>La<strong> pantalla LCD ocupa en la placa de Arduino 6 pines E\/S digitales<\/strong>, lo cual complica notoriamente la conexi\u00f3n del resto de componentes del sistema.\n<ul class=\"wp-block-list\">\n<li>Con la <strong>incorporaci\u00f3n de un m\u00f3dulo I2C<\/strong>, que hace la funci\u00f3n de convertir las 12 entradas\/salidas digitales de la pantalla LCD en 2 anal\u00f3gicas en la parte inferior, nos queda mucho libre en la superior, atajando as\u00ed el problema surgido.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/Imagen3.png\" alt=\"\" class=\"wp-image-5857\" width=\"552\" height=\"290\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/Imagen3.png 978w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/Imagen3-300x157.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/Imagen3-768x403.png 768w\" sizes=\"auto, (max-width: 552px) 100vw, 552px\" \/><\/figure>\n<\/div>\n\n\n<h1 class=\"has-text-color wp-block-heading\" style=\"color:#0078be\">C\u00f3digo<\/h1>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<pre class=\"wp-block-code\"><code>\/* Librer\u00edas correspondientes a las funcionalidades *\/\n#include &lt;Wire.h&gt;\n#include &lt;LiquidCrystal_I2C.h&gt;\n#include &lt;Servo.h&gt;\n#include &lt;HCSR04.h&gt;\n#include \"IRremote.h\"\n\n\/* Cremos los Objetos *\/\nLiquidCrystal_I2C lcd(0x27, 16, 2);  \/\/Pantalla LCD\nServo servoE;                        \/\/2 servos\nServo servoS;\nUltraSonicDistanceSensor sensorE(12, 11);  \/\/2 sensores\nUltraSonicDistanceSensor sensorS(13, 10);\n\n\/* Asignaci\u00f3n de Pines *\/\nint recividor = 3;  \/\/IR receptor en pin 3\n\nint LED1 = 2;  \/\/LED 1 en pin 2\n\/\/int LED2=3;  \/\/LED 2 en pin 3\nint LED3 = 4;  \/\/LED 3 en pin 4\nint LED4 = 7;  \/\/LED 4 en pin 7\nint LED5 = 8;  \/\/LED 5 en pin 8\nint LED6 = 9;  \/\/LED 6 en pin 9\n\nIRrecv mando(recividor);  \/\/Mando\ndecode_results resultados;\n\n\/*  Variables para regular el parking *\/\nboolean p&#091;6] = { true, true, true, true, true, true };  \/\/Array de plazas ocupadas\nint plazas;                                             \/\/Contador de plazas para llevar la cuenta de cuantas hay libres\nint ctr_sitioE;                                         \/\/Controlador del sitio al que tiene que aparcar\nint ctr_sitioS;                                         \/\/Controlador del sitio que abandonan\n\n\/\/Variables usadas para regular los tiempos\nunsigned long tini1;\nunsigned long tini2;\nunsigned long tini3;\nunsigned long tini4;\nunsigned long tini5;\nunsigned long tini6;\n\nunsigned long tfin1;\nunsigned long tfin2;\nunsigned long tfin3;\nunsigned long tfin4;\nunsigned long tfin5;\nunsigned long tfin6;\n\nunsigned long ttotal;\n\nvoid setup() {\n  Serial.begin(9600);\n  mando.enableIRIn();  \/\/ Se enciende el recibidor del mando\n  for (int i = 0; i &lt;= 5; i++) {\n    p&#091;i] = true;  \/\/Inicializamos el array de plazas, todas disponibles\n  }\n  plazas = 6;             \/\/6 plazas para empezar disponibles\n  pinMode(LED1, OUTPUT);  \/\/Establecemos los leds como salida\n  \/\/pinMode(LED2,OUTPUT); \n  pinMode(LED3, OUTPUT);  \n  pinMode(LED4, OUTPUT);  \n  pinMode(LED5, OUTPUT);  \n  pinMode(LED6, OUTPUT);  \n  servoE.attach(5);       \/\/Servo entrada en pin 5\n  servoS.attach(6);       \/\/Servo salida en pin 6\n\n  servoE.write(95);   \/\/Colocamos servo de entrada en posici\u00f3n para no dejar pasar\n  servoS.write(100);  \/\/Colocamos servo de salida en posici\u00f3n para no dejar pasar\n\n  lcd.init();                     \/\/iniciamos la LCD\n  lcd.backlight();                \/\/Le damos luz\n  lcd.setCursor(0, 0);            \/\/\n  lcd.print(\"Plazas libres: \");   \/\/En primera l\u00ednea de LCD escribimos \"Plazas libres: 6\"\n  lcd.print(plazas);              \/\/\n  lcd.setCursor(0, 1);            \/\/\n  lcd.print(\"   Bienvenidos  \");  \/\/ En segunda l\u00ednea de LCD escribimos \"Bienvenidos\"\n\n  encenderLeds();  \/\/Todos los leds encendidos, ya que todas las plazas est\u00e1n libres al principio\n}\nvoid loop() {\n\n  \/* Seguimiento del mando *\/\n  if (mando.decode(&amp;resultados)) {\n    mando1();\n    mando.resume();\n  }\n\n  \/* Leer los valores de los sensores *\/\n  float distanceE = sensorE.measureDistanceCm();\n  float distanceS = sensorS.measureDistanceCm();\n\n\/* Mostramos por la consola de serial los valores le\u00eddos por ambos sensores *\/\n  Serial.print(\"Distancia entrada: \");\n  Serial.print(distanceE);\n  Serial.print(\"    \/    \");\n  Serial.print(\"Distancia salida: \");\n  Serial.println(distanceS);\n  delay(1000);\n\n  \/* Funcionalidad de entradas *\/\n  if (plazas &gt; 0 &amp;&amp; distanceE &lt; 7.00) {  \/\/Si hay plazas disponibles y detecta paso de un coche\n\n    plazas--;\n    SubirEntrada();\n\n    if (p&#091;0] == true) {\t\t\/\/Comprabamos plaza a plaza su disponibilidad\n\n      digitalWrite(LED1, LOW);\n      p&#091;0] = false;\n      tini1 = millis(); \/\/Obtenemos el momento en el que el coche aparca en la plaza\n\n      ctr_sitioE = 1; \n    } else if (p&#091;1] == true) {\n\n      \/\/digitalWrite(LED2, LOW);\n      p&#091;1] = false;\n      tini2 = millis();\n      ctr_sitioE = 2;\n\n    } else if (p&#091;2] == true) {\n\n      digitalWrite(LED3, LOW);\n      p&#091;2] = false;\n      tini3 = millis();\n\n      ctr_sitioE = 3;\n\n    } else if (p&#091;3] == true) {\n\n      digitalWrite(LED4, LOW);\n      p&#091;3] = false;\n      tini4 = millis();\n\n      ctr_sitioE = 4;\n\n    } else if (p&#091;4] == true) {\n\n      digitalWrite(LED5, LOW);\n      p&#091;4] = false;\n\n      tini5 = millis();\n      ctr_sitioE = 5;\n\n    } else if (p&#091;5] == true) {\n\n      digitalWrite(LED6, LOW);\n      p&#091;5] = false;\n      tini6 = millis();\n\n      ctr_sitioE = 6;\n    }\n\n\/* Modificaciones de la pantalla lcd *\/\n\n    lcd.setCursor(15, 0); \/\/Muestra las plazas disponibles\n    lcd.print(plazas);\n\n    lcd.setCursor(0, 1);\n    lcd.print(\"Aparque en la \"); \/\/Indica el sitio en el que debe aparcar\n    lcd.print(ctr_sitioE);\n    delay(5000);\n\n    lcd.setCursor(0, 1);\n    lcd.print(\"   Bienvenidos!  \");\n\n    BajarEntrada(); \/\/Baja la barrera de la entrada\n  }\n\n  \/* Funcionalidad de salidas *\/\n  if (plazas &lt; 6 &amp;&amp; distanceS &lt; 7.00) {\n\n    plazas++;\n    SubirSalida();\n    lcd.setCursor(15, 0);\n    lcd.print(plazas);\n    delay(5000);\n    BajarSalida();\n  }\n}\n\n\/* Funci\u00f3n de gesti\u00f3n del mando *\/\n\/* Aqu\u00ed se implementan todas las funcionalidades que van a tener \n   cada uno de los botones *\/\nvoid mando1() {\n\n  switch (resultados.value) {  \/\/En funci\u00f3n del bot\u00f3n que pulsemos, realiza una acci\u00f3n u otra\n    case 0xFFA25D:\n      break;\n    case 0xFFE21D:\n      break;\n    case 0xFF629D:\n      break;\n    case 0xFF22DD:  \/\/Al pulsar el bot\u00f3n de retroceso, sube la barrera de entrada\n      SubirEntrada();\n      break;\n    case 0xFF02FD:\n      break;\n    case 0xFFC23D:  \/\/Al pulsar el bot\u00f3n de avanzar, sube la barrera de salida\n      SubirSalida();\n      break;\n    case 0xFFE01F:  \/\/Al pulsar el bot\u00f3n de bajar, baja la barrera de entrada\n      BajarEntrada();\n      break;\n    case 0xFFA857:\n      break;\n    case 0xFF906F:  \/\/Al pulsar el bot\u00f3n de subir, baja la barrera de salida\n      BajarSalida();\n      break;\n    case 0xFF9867:  \/\/Al pulsar el bot\u00f3n EQ, se reinicia el parking\n      encenderLeds();\n      servoE.write(95);\n      servoS.write(100);\n      plazas = 6;\n      for (int i = 0; i &lt;= 5; i++) {\n        p&#091;i] = true;\n      }\n      lcd.setCursor(0, 0);\n      lcd.print(\"Plazas libres: \");\n      lcd.print(plazas);\n      lcd.setCursor(0, 1);\n      lcd.print(\"   Bienvenidos  \");\n      break;\n    case 0xFFB04F:\n      break;\n    case 0xFF6897:\n      break;\n    case 0xFF30CF:  \/\/Al pulsar el bot\u00f3n 1, decidimos que el coche abandona la posici\u00f3n 1\n      if (p&#091;0] == false) { \t\t\/\/Comprobaci\u00f3n de que la plaza est\u00e9 ocupada\n\n        digitalWrite(LED1, HIGH);\n        p&#091;0] = true;\n\n        ctr_sitioS = 1;\n        Serial.print(\"Ha quedado libre la plaza \");\n        Serial.print(ctr_sitioS);\n        Serial.print(\"\\n\");\n\n        tfin1 = millis(); \/\/Tiempo en el que se abandona el parking\n        \n        imprimirTiempoTranscurrido();\n        ticketSerial();\n      } else {\n        Serial.print(\"La plaza no esta ocupada\\n\");\n      }\n      break;\n    case 0xFF18E7:  \/\/Al pulsar el bot\u00f3n 2, decidimos que el coche abandona la posici\u00f3n 2\n      if (p&#091;1] == false) {\n        \/\/digitalWrite(LED2, HIGH);\n        p&#091;1] = true;\n        ctr_sitioS = 2;\n        Serial.print(\"Ha quedado libre la plaza \");\n        Serial.print(ctr_sitioS);\n        Serial.print(\"\\n\");\n        tfin2 = millis();\n        \/\/ttotal= tfin2 - tini2;\n        imprimirTiempoTranscurrido();\n        ticketSerial();\n      } else {\n        Serial.print(\"La plaza no esta ocupada\\n\");\n      }\n      break;\n    case 0xFF7A85:  \/\/Al pulsar el bot\u00f3n 3,  decidimos que el coche abandona la posici\u00f3n 3\n      if (p&#091;2] == false) {\n        digitalWrite(LED3, HIGH);\n        p&#091;2] = true;\n        ctr_sitioS = 3;\n        Serial.print(\"Ha quedado libre la plaza \");\n        Serial.print(ctr_sitioS);\n        Serial.print(\"\\n\");\n\n        tfin3 = millis();\n        \n        imprimirTiempoTranscurrido();\n        ticketSerial();\n      } else {\n        Serial.print(\"La plaza no esta ocupada\\n\");\n      }\n      break;\n    case 0xFF10EF:  \/\/Al pulsar el bot\u00f3n 4,  decidimos que el coche abandona la posici\u00f3n 4\n      if (p&#091;3] == false) {\n        digitalWrite(LED4, HIGH);\n        p&#091;3] = true;\n        ctr_sitioS = 4;\n        \n\tSerial.print(\"Ha quedado libre la plaza \");\n        Serial.print(ctr_sitioS);\n        Serial.print(\"\\n\");\n        \n\ttfin4 = millis();\n    \n        imprimirTiempoTranscurrido();\n        ticketSerial();\n      } else {\n        Serial.print(\"La plaza no esta ocupada\\n\");\n      }\n      break;\n    case 0xFF38C7:  \/\/Al pulsar el bot\u00f3n 5,  decidimos que el coche abandona la posici\u00f3n 5\n      if (p&#091;4] == false) {\n        digitalWrite(LED5, HIGH);\n        p&#091;4] = true;\n        ctr_sitioS = 5;\n\n        Serial.print(\"Ha quedado libre la plaza \");\n        Serial.print(ctr_sitioS);\n        Serial.print(\"\\n\");\n\n        tfin5 = millis();\n        \n        imprimirTiempoTranscurrido();\n        ticketSerial();\n      } else {\n        Serial.print(\"La plaza no esta ocupada\\n\");\n      }\n      break;\n    case 0xFF5AA5:  \/\/Al pulsar el bot\u00f3n 6, decidimos que el coche abandona la posici\u00f3n 6\n      if(p&#091;5]==false){\n      digitalWrite(LED6, HIGH);\n      p&#091;5] = true;\n      ctr_sitioS = 6;\n      \n      Serial.print(\"Ha quedado libre la plaza \");\n      Serial.print(ctr_sitioS);\n      Serial.print(\"\\n\");\n      \n\ttfin6 = millis();\n      \n      imprimirTiempoTranscurrido();\n      ticketSerial();\n  }\n  else {\n    Serial.print(\"La plaza no esta ocupada\\n\");\n  }\n  break;\n  case 0xFF42BD:\n    break;\n  case 0xFF4AB5:\n    break;\n  case 0xFF52AD:\n    break;\n  case 0xFFFFFFFF:\n    break;\n}\ndelay(500);\n}\n\n\/* Funci\u00f3n para encender todos los leds *\/\nvoid encenderLeds() {\n  digitalWrite(LED1, HIGH);\n  \/\/digitalWrite(LED2, HIGH);\n  digitalWrite(LED3, HIGH);\n  digitalWrite(LED4, HIGH);\n  digitalWrite(LED5, HIGH);\n  digitalWrite(LED6, HIGH);\n}\n\n\/* Funci\u00f3n de subir la entrada *\/\n\/* Esta funci\u00f3n sube la barrera de la entrada despacio \n   subiendola un grado cada 10 ms *\/\nvoid SubirEntrada() {\n  for (int pos = 95; pos &lt;= 180; pos += 1) {\n    servoE.write(pos);\n    delay(10);\n  }\n}\n\/* Funci\u00f3n de bajar la entrada *\/\n\/* Esta funci\u00f3n baja la barrera de la entrada despacio \n   bajandola un grado cada 10 ms *\/\nvoid BajarEntrada() {\n  for (int pos = 180; pos &gt;= 95; pos -= 1) {\n    servoE.write(pos);\n    delay(10);\n  }\n}\n\/* Funci\u00f3n de subir la salida *\/\n\/* Esta funci\u00f3n sube la barrera de la salida despacio \n   subi\u00e9ndola un grado cada 10 ms *\/\nvoid SubirSalida() {\n  for (int pos = 100; pos &lt;= 180; pos += 1) {\n    servoS.write(pos);\n    delay(10);\n  }\n}\n\/* Funci\u00f3n de bajar la salida *\/\n\/* Esta funci\u00f3n baja la barrera de la salida despacio \n   bajandola un grado cada 10 ms *\/\nvoid BajarSalida() {\n  for (int pos = 180; pos &gt;= 100; pos -= 1) {\n    servoS.write(pos);\n    delay(10);\n  }\n}\n\n\/* Funci\u00f3n de mostrar tiempo *\/\n\/* Esta funci\u00f3n se encarga de calcular el tiempo final\n   que se usa una plaza concreta y a su vez imprime en la\n   consola de Serial su valor expresado en segundos *\/\nvoid imprimirTiempoTranscurrido() {\n \n  switch (ctr_sitioS) {\n    case 1:\n      ttotal = tfin1 - tini1;\n      break;\n    case 2:\n      ttotal = tfin2 - tini2;\n      break;\n    case 3:\n      ttotal = tfin3 - tini3;\n      break;\n    case 4:\n      ttotal = tfin4 - tini4;\n      break;\n    case 5:\n      ttotal = tfin5 - tini5;\n      break;\n    case 6:\n      ttotal = tfin6 - tini6;\n      break;\n  }\n  Serial.print(\"La plaza \");\n  Serial.print(ctr_sitioS);\n  Serial.print(\" ha sido ocupada durante \");\n  Serial.print(ttotal \/ 1000);\n}\n\n\/* Funci\u00f3n que genera un ticket mostrado por consola *\/\n\/* Esta funci\u00f3n genera un ticket con los datos de la plaza, \n   el tiempo, y el precio que le costar\u00eda al conductor. \n   Todo esto se muestra en la consola de Serial *\/\nvoid ticketSerial() {\n  unsigned long precioSEG = ttotal * 0.5;\n\n  Serial.print(\"\\n ******************* \\n\");\n  Serial.print(\"    TICKET    \\n\\n Plaza ocupada: \");\n  Serial.print(ctr_sitioS);\n  Serial.print(\"\\n Tiempo ocupada: \");\n  Serial.print(ttotal \/ 1000);\n  Serial.print(\"\\n ---------------- \\n Total a pagar: \");\n  Serial.print(precioSEG \/ 1000);\n  Serial.print(\"\\n  ******************* \\n\");\n}<\/code><\/pre>\n<\/div><\/div>\n\n\n\n<h1 class=\"has-text-color wp-block-heading\" style=\"color:#0078be\">Caso de uso:<\/h1>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video-container\"><iframe loading=\"lazy\" title=\"Grupo 1 DSE - Parking inteligente\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/YfcR1OF_L0M?feature=oembed&#038;wmode=opaque\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<h1 class=\"has-text-color wp-block-heading\" style=\"color:#0078be;font-size:25px\">Explicaci\u00f3n del proyecto al completo:<\/h1>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video-container\"><iframe loading=\"lazy\" title=\"Parking Inteligente con Arduino - Grupo 1\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/H9261tlrwsU?feature=oembed&#038;wmode=opaque\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Autores: Alejandro Jim\u00e9nez L\u00e1zaro, Vicente Valent\u00edn Moya Guijarro, Aitor Garc\u00eda Camargo Introducci\u00f3n Al decantarnos por este proyecto, nuestro objetivo de hacer un parking inteligente es principalmente controlar las plazas disponibles y ocupadas en funci\u00f3n&#46;&#46;&#46;<\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5849","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>Proyecto: Parking Inteligente - 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\/proyecto-parking-inteligente\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Proyecto: Parking Inteligente - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"Autores: Alejandro Jim\u00e9nez L\u00e1zaro, Vicente Valent\u00edn Moya Guijarro, Aitor Garc\u00eda Camargo Introducci\u00f3n Al decantarnos por este proyecto, nuestro objetivo de hacer un parking inteligente es principalmente controlar las plazas disponibles y ocupadas en funci\u00f3n&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-parking-inteligente\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-13T23:24:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-13T23:25:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/foto-materiales.png\" \/>\n<meta name=\"author\" content=\"gdhwsw2\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"gdhwsw2\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 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\\\/proyecto-parking-inteligente\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-parking-inteligente\\\/\"},\"author\":{\"name\":\"gdhwsw2\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/7491e54afbe5e7fd53467fccb9c7ce44\"},\"headline\":\"Proyecto: Parking Inteligente\",\"datePublished\":\"2022-12-13T23:24:20+00:00\",\"dateModified\":\"2022-12-13T23:25:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-parking-inteligente\\\/\"},\"wordCount\":750,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-parking-inteligente\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/12\\\/foto-materiales.png\",\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-parking-inteligente\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-parking-inteligente\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-parking-inteligente\\\/\",\"name\":\"Proyecto: Parking Inteligente - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-parking-inteligente\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-parking-inteligente\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/12\\\/foto-materiales.png\",\"datePublished\":\"2022-12-13T23:24:20+00:00\",\"dateModified\":\"2022-12-13T23:25:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-parking-inteligente\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-parking-inteligente\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-parking-inteligente\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/12\\\/foto-materiales.png\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/12\\\/foto-materiales.png\",\"width\":657,\"height\":808},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-parking-inteligente\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Proyecto: Parking Inteligente\"}]},{\"@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\\\/7491e54afbe5e7fd53467fccb9c7ce44\",\"name\":\"gdhwsw2\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ed762cea3155134adfbecf1780d8a40c0fe5e4b642859a56b3a2b3611a1ca73a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ed762cea3155134adfbecf1780d8a40c0fe5e4b642859a56b3a2b3611a1ca73a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ed762cea3155134adfbecf1780d8a40c0fe5e4b642859a56b3a2b3611a1ca73a?s=96&d=mm&r=g\",\"caption\":\"gdhwsw2\"},\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/author\\\/gdhwsw2\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Proyecto: Parking Inteligente - 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\/proyecto-parking-inteligente\/","og_locale":"es_ES","og_type":"article","og_title":"Proyecto: Parking Inteligente - Proyectos con Arduino.","og_description":"Autores: Alejandro Jim\u00e9nez L\u00e1zaro, Vicente Valent\u00edn Moya Guijarro, Aitor Garc\u00eda Camargo Introducci\u00f3n Al decantarnos por este proyecto, nuestro objetivo de hacer un parking inteligente es principalmente controlar las plazas disponibles y ocupadas en funci\u00f3n&#46;&#46;&#46;","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-parking-inteligente\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2022-12-13T23:24:20+00:00","article_modified_time":"2022-12-13T23:25:35+00:00","og_image":[{"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/foto-materiales.png","type":"","width":"","height":""}],"author":"gdhwsw2","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"gdhwsw2","Tiempo de lectura":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-parking-inteligente\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-parking-inteligente\/"},"author":{"name":"gdhwsw2","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/7491e54afbe5e7fd53467fccb9c7ce44"},"headline":"Proyecto: Parking Inteligente","datePublished":"2022-12-13T23:24:20+00:00","dateModified":"2022-12-13T23:25:35+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-parking-inteligente\/"},"wordCount":750,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-parking-inteligente\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/foto-materiales.png","articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-parking-inteligente\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-parking-inteligente\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-parking-inteligente\/","name":"Proyecto: Parking Inteligente - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-parking-inteligente\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-parking-inteligente\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/foto-materiales.png","datePublished":"2022-12-13T23:24:20+00:00","dateModified":"2022-12-13T23:25:35+00:00","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-parking-inteligente\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-parking-inteligente\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-parking-inteligente\/#primaryimage","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/foto-materiales.png","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/foto-materiales.png","width":657,"height":808},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-parking-inteligente\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"Proyecto: Parking Inteligente"}]},{"@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\/7491e54afbe5e7fd53467fccb9c7ce44","name":"gdhwsw2","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/ed762cea3155134adfbecf1780d8a40c0fe5e4b642859a56b3a2b3611a1ca73a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ed762cea3155134adfbecf1780d8a40c0fe5e4b642859a56b3a2b3611a1ca73a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ed762cea3155134adfbecf1780d8a40c0fe5e4b642859a56b3a2b3611a1ca73a?s=96&d=mm&r=g","caption":"gdhwsw2"},"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/author\/gdhwsw2\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/5849","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\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/comments?post=5849"}],"version-history":[{"count":11,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/5849\/revisions"}],"predecessor-version":[{"id":5867,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/5849\/revisions\/5867"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=5849"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=5849"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=5849"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}