{"id":3448,"date":"2021-01-21T00:36:05","date_gmt":"2021-01-21T00:36:05","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=3448"},"modified":"2021-01-21T00:36:06","modified_gmt":"2021-01-21T00:36:06","slug":"buzon-inteligente","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/buzon-inteligente\/","title":{"rendered":"Buz\u00f3n inteligente"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><span class=\"has-inline-color has-vivid-purple-color\">Autores <\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Mohibul Alom<\/li><li>Cristofer Tamaral Mart\u00edn<\/li><li>Adri\u00e1n Mart\u00edn Mart\u00edn<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"has-inline-color has-vivid-purple-color\">Objetivo<\/span><\/h2>\n\n\n\n<p>Tenemos como objetivo desarrollar un proyecto de un sistema empotrado o embebido. Estos sistemas est\u00e1n orientados en cubrir una necesidad en concreto. En nuestro caso, hemos optado por integrar funciones nuevas a nuestro buz\u00f3n que todos tenemos en nuestras casas. Adem\u00e1s, tenemos como finalidad aportar seguridad de saber en todo momento el contenido introducido en nuestras casillas casi a diario.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"has-inline-color has-vivid-purple-color\">Tareas<\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Tarea 1: ver el contenido del buz\u00f3n desde cualquier sitio.<\/li><li>Tarea 2: detectar cuando se introducido nuevo contenido: cartas, revistas, etc.<\/li><li>Tarea 3: tomar una foto del contenido del buz\u00f3n despu\u00e9s de detectar dicho evento.<\/li><li>Tarea 4: enviar la foto tomada a nuestra red social, por ejemplo, Telegram.<\/li><li>Tarea 5: tener un mecanismo para extraer el contenido del buz\u00f3n mediante un comando.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"has-inline-color has-vivid-purple-color\">Materiales y costes<\/span><\/h2>\n\n\n\n<p>Placa Arduino Mega: 13.99 \u20ac<\/p>\n\n\n\n<p>M\u00f3dulo wifi: placa ESP32 Y m\u00f3dulo de c\u00e1mara: OV2640: 11.99 \u20ac<\/p>\n\n\n\n<p>Sensor: 1.80 \u20ac&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p>Motores: 6.99 \u20ac<\/p>\n\n\n\n<p>Driver para el motor L298N: 6.90 \u20ac<\/p>\n\n\n\n<p>Madera MDF, bisagra, cerrojo y clavos: 9.90 \u20ac<\/p>\n\n\n\n<p>Rueda: 0 \u20ac (fabricada con restos de madera).<\/p>\n\n\n\n<p>Total: 51.57 \u20ac<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"has-inline-color has-vivid-purple-color\">Dise\u00f1o<\/span><\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/01\/image-29.png\" alt=\"\" class=\"wp-image-3449\" width=\"566\" height=\"415\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/01\/image-29.png 567w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/01\/image-29-300x220.png 300w\" sizes=\"auto, (max-width: 566px) 100vw, 566px\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"has-inline-color has-vivid-purple-color\">Conexiones<\/span><\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/01\/image-30.png\" alt=\"\" class=\"wp-image-3450\" width=\"572\" height=\"498\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/01\/image-30.png 486w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/01\/image-30-300x261.png 300w\" sizes=\"auto, (max-width: 572px) 100vw, 572px\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"has-inline-color has-vivid-purple-color\">Montaje<\/span><\/h2>\n\n\n\n<p>Para realizar la construcci\u00f3n primero se dibuj\u00f3 un boceto en el cual quedaban establecidas las medidas y como iban a ser cada una de las partes de nuestro buz\u00f3n, quedando los lados con las siguientes medidas:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Laterales 25&#215;50 cm.<\/li><li>Techo y suelo 30&#215;20 cm.<\/li><li>Parte anterior y posterior 30&#215;25 cm.<\/li><li>Rampa 32&#215;20 cm.<\/li><\/ul>\n\n\n\n<p>Estas partes fueron cortadas y posteriormente se procedi\u00f3 a trabajar sobre cada una de ellas. En el techo se realiz\u00f3 una hendidura que act\u00faa como hueco para introducir las cartas. En la cara frontal del buz\u00f3n se realiz\u00f3 una segunda hendidura la cual actuar\u00e1 como salida de las cartas. En una de las partes laterales se colocaron unas bisagras y un cerrojo para que este lateral actuara como puerta para poder acceder al interior del buz\u00f3n. En el otro lateral se coloc\u00f3 un motor el cual sujeta una \u201cpuerta\u201d la cual se abre y se cierra imitando el mecanismo de un peaje para dejar salir las cartas o mantenerlas dentro. En la rampa se coloc\u00f3 otro motor conectado a una rueda fabricada con madera, esto servir\u00eda para impulsar las cartas hacia el exterior, a la rampa tambi\u00e9n se le colocaron unos bordes laterales para que las cartas si se mov\u00edan hacia los lados no cayeran ni se quedaran enganchadas en el interior del buz\u00f3n. La protoboard, la placa de Arduino y el resto de los componentes necesarios para el correcto funcionamiento del buz\u00f3n fueron colocados en la parte interior del techo fijados con tornillos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"has-inline-color has-vivid-purple-color\">C\u00f3digo<\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code> C\u00f3digo de la placa Arduino Mega:\r\n1 \r\n2   \/\/Boton\r\n3   const int buttonPIN = 30;\r\n4 \r\n5 \r\n6   \/\/Tapa\r\n7   int IN1 = 5;      \/\/ IN1 de L298N a pin digital 5\r\n8   int IN2 = 6;      \/\/ IN2 de L298N a pin digital 6\r\n9   int ENA = 7;      \/\/ ENA de L298N a pin digital 7\r\n10  int VELOCIDAD = 200;      \/\/ variable para almacenar valor de velocidad\r\n11\r\n12  \/\/rampa\r\n13  int IN3 = 8;      \/\/ IN1 de L298N a pin digital 8\r\n14  int IN4 = 9;      \/\/ IN2 de L298N a pin digital 9\r\n15  int ENB = 10;      \/\/ ENA de L298N a pin digital 10\r\n16  int VELOCIDAD_RAMPA = 200;      \/\/ variable para almacenar valor de velocidad\r\n17\r\n18\r\n19  \/\/***********************************************************\r\n20\r\n21  int op = 100;\r\n22  int opB = 0;\r\n23\r\n24  \/\/pin para el sensor de infrarrojo debe ser PWM (pines con simbolo \"~\")\r\n25  const int sensorPIN = 4;\r\n26\r\n27  void setup() {\r\n28    pinMode(sensorPIN, INPUT);\r\n29    Serial.begin(115200); \/\/ opens serial port, sets data rate to 9600 bps\r\n30\r\n31    pinMode(buttonPIN, INPUT); \/\/pin\r\n32\r\n33    pinMode(12, OUTPUT); \/\/pin led\r\n34    pinMode(13, OUTPUT); \/\/pin led\r\n35\r\n36    pinMode(IN1, OUTPUT);   \/\/ pin 5 como salida\r\n37    pinMode(IN2, OUTPUT);   \/\/ pin 6 como salida\r\n38    pinMode(ENA, OUTPUT);   \/\/ pin 7 como salida\r\n39\r\n40    pinMode(IN3, OUTPUT);   \/\/ pin 8 como salida\r\n41    pinMode(IN4, OUTPUT);   \/\/ pin 9 como salida\r\n42    pinMode(ENA, OUTPUT);   \/\/ pin 10 como salida\r\n43\r\n44  }\r\n45\r\n46  void loop() {\r\n47\r\n48    int button = digitalRead(buttonPIN);\r\n49    int sensor = digitalRead(sensorPIN);\r\n50\r\n51    if (sensor != HIGH) {\r\n52      Serial.write(op);\r\n53      digitalWrite(12, HIGH);\r\n54      delay(500);\r\n55    } else {\r\n56      digitalWrite(12, LOW);\r\n57    }\r\n58\r\n59\r\n60    if (button == HIGH) {\r\n61      Serial.println(button);\r\n62      expulsarcarta();\r\n63      digitalWrite(13, HIGH);\r\n64    } else {\r\n65      digitalWrite(13, LOW);\r\n66    }\r\n67  }\r\n68\r\n69\r\n70  void expulsarcarta() {\r\n71    \/\/subimos tapa arriba\r\n72    analogWrite(ENA, VELOCIDAD);\r\n73    digitalWrite(IN1, HIGH);\r\n74    digitalWrite(IN2, LOW);\r\n75    delay(1000);\r\n76\r\n77    \/\/paramos el motor de la tapa\r\n78    digitalWrite(ENA, LOW);\r\n79\r\n80    \/\/Iniciamos el motor de la rampa hacia adelante\r\n81    analogWrite(ENB, VELOCIDAD_RAMPA);\r\n82    digitalWrite(IN3, LOW);\r\n83    digitalWrite(IN4, HIGH);\r\n84    delay(5000);\r\n85\r\n86    \/\/paramos el motor de la rampa\r\n87    digitalWrite(ENB, LOW);\r\n88\r\n89    \/\/bajamos la tapa hacia abajo\r\n90    analogWrite(ENA, VELOCIDAD);\r\n91    digitalWrite(IN1, LOW);\r\n92    digitalWrite(IN2, HIGH);\r\n93    delay(1000);\r\n94\r\n95    \/\/paramos el motor de la tapa\r\n96    digitalWrite(ENA, LOW);\r\n97\r\n98  }\r\n\r\nC\u00f3digo de la placa ESP32CAM:\r\n1   #include &lt;Arduino.h&gt;\r\n2   #include &lt;WiFi.h&gt;\r\n3   #include &lt;WiFiClientSecure.h&gt;\r\n4   #include \"soc\/soc.h\"\r\n5   #include \"soc\/rtc_cntl_reg.h\"\r\n6   #include \"esp_camera.h\"\r\n7   #include &lt;UniversalTelegramBot.h&gt;\r\n8   #include &lt;ArduinoJson.h&gt;\r\n9  \r\n10  const char* ssid = \"MiFibra-F929-24G\";\r\n11  const char* password = \"FcoVnHm9\";\r\n12 \r\n13  \/\/ Initialize Telegram BOT\r\n14  String BOTtoken = \"1539204514:AAE1ezuvj1cLQ8W3PbbLAR3LvGc9Ciwv00U\";  \/\/ your Bot Token (Get from Botfather)\r\n15 \r\n16  \/\/ Use @myidbot to find out the chat ID of an individual or a group\r\n17  \/\/ Also note that you need to click \"start\" on a bot before it can\r\n18  \/\/ message you\r\n19  String CHAT_ID = \"1529030408\";\r\n20 \r\n21  bool sendPhoto = false;\r\n22 \r\n23  WiFiClientSecure clientTCP;\r\n24  UniversalTelegramBot bot(BOTtoken, clientTCP);\r\n25 \r\n26  #define FLASH_LED_PIN 4\r\n27  bool flashState = LOW;\r\n28 \r\n29  \/\/Checks for new messages every 1 second.\r\n30  int botRequestDelay = 1000;\r\n31  unsigned long lastTimeBotRan;\r\n32 \r\n33  \/\/CAMERA_MODEL_AI_THINKER\r\n34  #define PWDN_GPIO_NUM     32\r\n35  #define RESET_GPIO_NUM    -1\r\n36  #define XCLK_GPIO_NUM      0\r\n37  #define SIOD_GPIO_NUM     26\r\n38  #define SIOC_GPIO_NUM     27\r\n39 \r\n40  #define Y9_GPIO_NUM       35\r\n41  #define Y8_GPIO_NUM       34\r\n42  #define Y7_GPIO_NUM       39\r\n43  #define Y6_GPIO_NUM       36\r\n44  #define Y5_GPIO_NUM       21\r\n45  #define Y4_GPIO_NUM       19\r\n46  #define Y3_GPIO_NUM       18\r\n47  #define Y2_GPIO_NUM        5\r\n48  #define VSYNC_GPIO_NUM    25\r\n49  #define HREF_GPIO_NUM     23\r\n50  #define PCLK_GPIO_NUM     22\r\n51 \r\n52 \r\n53  void configInitCamera() {\r\n54    camera_config_t config;\r\n55    config.ledc_channel = LEDC_CHANNEL_0;\r\n56    config.ledc_timer = LEDC_TIMER_0;\r\n57    config.pin_d0 = Y2_GPIO_NUM;\r\n58    config.pin_d1 = Y3_GPIO_NUM;\r\n59    config.pin_d2 = Y4_GPIO_NUM;\r\n60    config.pin_d3 = Y5_GPIO_NUM;\r\n61    config.pin_d4 = Y6_GPIO_NUM;\r\n62    config.pin_d5 = Y7_GPIO_NUM;\r\n63    config.pin_d6 = Y8_GPIO_NUM;\r\n64    config.pin_d7 = Y9_GPIO_NUM;\r\n65    config.pin_xclk = XCLK_GPIO_NUM;\r\n66    config.pin_pclk = PCLK_GPIO_NUM;\r\n67    config.pin_vsync = VSYNC_GPIO_NUM;\r\n68    config.pin_href = HREF_GPIO_NUM;\r\n69    config.pin_sscb_sda = SIOD_GPIO_NUM;\r\n70    config.pin_sscb_scl = SIOC_GPIO_NUM;\r\n71    config.pin_pwdn = PWDN_GPIO_NUM;\r\n72    config.pin_reset = RESET_GPIO_NUM;\r\n73    config.xclk_freq_hz = 20000000;\r\n74    config.pixel_format = PIXFORMAT_JPEG;\r\n75 \r\n76    \/\/init with high specs to pre-allocate larger buffers\r\n77    if (psramFound()) {\r\n78      config.frame_size = FRAMESIZE_UXGA;\r\n79      config.jpeg_quality = 10;  \/\/0-63 lower number means higher quality\r\n80      config.fb_count = 2;\r\n81    } else {\r\n82      config.frame_size = FRAMESIZE_SVGA;\r\n83      config.jpeg_quality = 12;  \/\/0-63 lower number means higher quality\r\n84      config.fb_count = 1;\r\n85    }\r\n86 \r\n87    \/\/ camera init\r\n88    esp_err_t err = esp_camera_init(&amp;config);\r\n89    if (err != ESP_OK) {\r\n90      Serial.printf(\"Camera init failed with error 0x%x\", err);\r\n91      delay(1000);\r\n92      ESP.restart();\r\n93    }\r\n94 \r\n95    \/\/ Drop down frame size for higher initial frame rate\r\n96    sensor_t * s = esp_camera_sensor_get();\r\n97    s-&gt;set_framesize(s, FRAMESIZE_CIF);  \/\/ UXGA|SXGA|XGA|SVGA|VGA|CIF|QVGA|HQVGA|QQVGA\r\n98  }\r\n99 \r\n100 void handleNewMessages(int numNewMessages) {\r\n101   Serial.print(\"Handle New Messages: \");\r\n102   Serial.println(numNewMessages);\r\n103\r\n104   for (int i = 0; i &lt; numNewMessages; i++) {\r\n105     String chat_id = String(bot.messages&#091;i].chat_id);\r\n106     if (chat_id != CHAT_ID) {\r\n107       bot.sendMessage(chat_id, \"Unauthorized user\", \"\");\r\n108       continue;\r\n109     }\r\n110\r\n111     \/\/ Print the received message\r\n112     String text = bot.messages&#091;i].text;\r\n113     Serial.println(text);\r\n114\r\n115     String from_name = bot.messages&#091;i].from_name;\r\n116     if (text == \"\/start\") {\r\n117       String welcome = \"Welcome , \" + from_name + \"\\n\";\r\n118       welcome += \"Use the following commands to interact with the ESP32-CAM \\n\";\r\n119       welcome += \"\/photo : takes a new photo\\n\";\r\n120       welcome += \"\/flash : toggles flash LED \\n\";\r\n121       bot.sendMessage(CHAT_ID, welcome, \"\");\r\n122     }\r\n123     if (text == \"\/flash\") {\r\n124       flashState = !flashState;\r\n125       digitalWrite(FLASH_LED_PIN, flashState);\r\n126       Serial.println(\"Change flash LED state\");\r\n127     }\r\n128     if (text == \"\/photo\") {\r\n129       sendPhoto = true;\r\n130       Serial.println(\"New photo request\");\r\n131     }\r\n132   }\r\n133 }\r\n134\r\n135 String sendPhotoTelegram() {\r\n136   const char* myDomain = \"api.telegram.org\";\r\n137   String getAll = \"\";\r\n138   String getBody = \"\";\r\n139\r\n140   camera_fb_t * fb = NULL;\r\n141   fb = esp_camera_fb_get();\r\n142   if (!fb) {\r\n143     Serial.println(\"Camera capture failed\");\r\n144     delay(1000);\r\n145     ESP.restart();\r\n146     return \"Camera capture failed\";\r\n147   }\r\n148\r\n149   Serial.println(\"Connect to \" + String(myDomain));\r\n150\r\n151\r\n152   if (clientTCP.connect(myDomain, 443)) {\r\n153     Serial.println(\"Connection successful\");\r\n154\r\n155     String head = \"--RandomNerdTutorials\\r\\nContent-Disposition: form-data; name=\\\"chat_id\\\"; \\r\\n\\r\\n\" + CHAT_ID + \"\\r\\n--RandomNerdTutorials\\r\\nContent-Disposition: form-data; name=\\\"photo\\\"; filename=\\\"esp32-cam.jpg\\\"\\r\\nContent-Type: image\/jpeg\\r\\n\\r\\n\";\r\n156     String tail = \"\\r\\n--RandomNerdTutorials--\\r\\n\";\r\n157\r\n158     uint16_t imageLen = fb-&gt;len;\r\n159     uint16_t extraLen = head.length() + tail.length();\r\n160     uint16_t totalLen = imageLen + extraLen;\r\n161\r\n162     clientTCP.println(\"POST \/bot\" + BOTtoken + \"\/sendPhoto HTTP\/1.1\");\r\n163     clientTCP.println(\"Host: \" + String(myDomain));\r\n164     clientTCP.println(\"Content-Length: \" + String(totalLen));\r\n165     clientTCP.println(\"Content-Type: multipart\/form-data; boundary=RandomNerdTutorials\");\r\n166     clientTCP.println();\r\n167     clientTCP.print(head);\r\n168\r\n169     uint8_t *fbBuf = fb-&gt;buf;\r\n170     size_t fbLen = fb-&gt;len;\r\n171     for (size_t n = 0; n &lt; fbLen; n = n + 1024) {\r\n172       if (n + 1024 &lt; fbLen) {\r\n173         clientTCP.write(fbBuf, 1024);\r\n174         fbBuf += 1024;\r\n175       }\r\n176       else if (fbLen % 1024 &gt; 0) {\r\n177         size_t remainder = fbLen % 1024;\r\n178         clientTCP.write(fbBuf, remainder);\r\n179       }\r\n180     }\r\n181\r\n182     clientTCP.print(tail);\r\n183\r\n184     esp_camera_fb_return(fb);\r\n185\r\n186     int waitTime = 10000;   \/\/ timeout 10 seconds\r\n187     long startTimer = millis();\r\n188     boolean state = false;\r\n189\r\n190     while ((startTimer + waitTime) &gt; millis())\r\n191     {\r\n192       Serial.print(\".\");\r\n193       delay(100);\r\n194       while (clientTCP.available())\r\n195       {\r\n196         char c = clientTCP.read();\r\n197         if (c == '\\n')\r\n198         {\r\n199           if (getAll.length() == 0) state = true;\r\n200           getAll = \"\";\r\n201         }\r\n202         else if (c != '\\r')\r\n203           getAll += String(c);\r\n204         if (state == true) getBody += String(c);\r\n205         startTimer = millis();\r\n206       }\r\n207       if (getBody.length() &gt; 0) break;\r\n208     }\r\n209     clientTCP.stop();\r\n210     Serial.println(getBody);\r\n211   }\r\n212   else {\r\n213     getBody = \"Connected to api.telegram.org failed.\";\r\n214     Serial.println(\"Connected to api.telegram.org failed.\");\r\n215   }\r\n216   return getBody;\r\n217 }\r\n218\r\n219 void setup() {\r\n220   WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0);\r\n221   \/\/ Init Serial Monitor\r\n222   Serial.begin(115200);\r\n223\r\n224   \/\/ Set LED Flash as output\r\n225   pinMode(FLASH_LED_PIN, OUTPUT);\r\n226   digitalWrite(FLASH_LED_PIN, flashState);\r\n227\r\n228   \/\/ Config and init the camera\r\n229   configInitCamera();\r\n230\r\n231   \/\/ Connect to Wi-Fi\r\n232   WiFi.mode(WIFI_STA);\r\n233   Serial.println();\r\n234   Serial.print(\"Connecting to \");\r\n235   Serial.println(ssid);\r\n236   WiFi.begin(ssid, password);\r\n237   while (WiFi.status() != WL_CONNECTED) {\r\n238     Serial.print(\".\");\r\n239     delay(500);\r\n240   }\r\n241   Serial.println();\r\n242   Serial.print(\"ESP32-CAM IP Address: \");\r\n243   Serial.println(WiFi.localIP());\r\n244 }\r\n245\r\n246 void loop() {\r\n247\r\n248   int men = 0;\r\n249\r\n250   if (Serial.available()) {\r\n251     men = Serial.read();\r\n252     if (men == 100) {\r\n253       bot.sendMessage(CHAT_ID, \"DETECTADO PRESENCIA\", \"\");\r\n254       digitalWrite(FLASH_LED_PIN, HIGH);\r\n255       sendPhotoTelegram();\r\n256       digitalWrite(FLASH_LED_PIN, LOW);\r\n257     }\r\n258   }\r\n259\r\n260\r\n261   if (sendPhoto) {\r\n262     Serial.println(\"Preparing photo\");\r\n263     digitalWrite(FLASH_LED_PIN, HIGH);\r\n264     sendPhotoTelegram();\r\n265     digitalWrite(FLASH_LED_PIN, LOW);\r\n266     sendPhoto = false;\r\n267   }\r\n268   if (millis() &gt; lastTimeBotRan + botRequestDelay)  {\r\n269     int numNewMessages = bot.getUpdates(bot.last_message_received + 1);\r\n270     while (numNewMessages) {\r\n271       Serial.println(\"got response\");\r\n272       handleNewMessages(numNewMessages);\r\n273       numNewMessages = bot.getUpdates(bot.last_message_received + 1);\r\n274     }\r\n275     lastTimeBotRan = millis();\r\n276   }\r\n277 }\r\n\r\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"has-inline-color has-vivid-purple-color\">Dificultades y soluciones<\/span><\/h2>\n\n\n\n<p>Una de las dificultades que se nos presenta es la falta de ruedas para realizar el mecanismo de la rampa. Esto se solucion\u00f3 cortando una madera con el di\u00e1metro requerido de madera la cual se recubri\u00f3 con una cinta de impresora para que no resbalaran las cartas por ella.<\/p>\n\n\n\n<p>Otra complicaci\u00f3n que surgi\u00f3 tras la construcci\u00f3n del buz\u00f3n fue que el motor que permit\u00eda que las cartas salieran no era capaz de levantar esta pieza que cerraba el buz\u00f3n por lo que hubo que sustituirla por otro material m\u00e1s ligero.<\/p>\n\n\n\n<p>Adem\u00e1s, hemos tenido muchos problemas al intentar enviar una se\u00f1al desde telegram a la placa de Arduino para que una vez llegada la se\u00f1al activara el proceso de extracci\u00f3n de las cartas.<\/p>\n\n\n\n<p>La soluci\u00f3n que encontramos a este contratiempo fue poner un bot\u00f3n que sustituyera la se\u00f1al enviada por telegram.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"has-inline-color has-vivid-purple-color\">Conclusiones<\/span><\/h2>\n\n\n\n<p>Nos hac\u00eda bastante ilusi\u00f3n hacer un proyecto de este tipo entre nuestro grupo de compa\u00f1eros, era nuestra primera vez con este tipo de materiales. Es una asignatura que nos despierta gran inter\u00e9s al ser muy visual e interactuar f\u00edsicamente con los componentes.<\/p>\n\n\n\n<p>Durante la realizaci\u00f3n del proyecto hemos tenido bastantes problemas con la log\u00edstica al tener un integrante del grupo sin poder desplazarse por problemas de salud, tambi\u00e9n con la entrega de los componentes por parte de amazon y con la comunicaci\u00f3n de diferentes m\u00f3dulos, hemos usado m\u00f3dulos bastante complejos y hemos tenido ideas muy ambiciosas como usar el buz\u00f3n mediante una red social como telegram.<\/p>\n\n\n\n<p>Esto nos ha llevado bastante tiempo y nos ha dado bastantes problemas. A pesar de ello hemos intentado hacerlo lo mejor posible dentro de nuestros conocimientos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"has-inline-color has-vivid-purple-color\">Video del proyecto<\/span><\/h2>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-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=\"VIdeo Proyecto\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/DwPcrT5DuSo?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<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Autores Mohibul Alom Cristofer Tamaral Mart\u00edn Adri\u00e1n Mart\u00edn Mart\u00edn Objetivo Tenemos como objetivo desarrollar un proyecto de un sistema empotrado o embebido. Estos sistemas est\u00e1n orientados en cubrir una necesidad en concreto. En nuestro&#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-3448","post","type-post","status-publish","format-standard","hentry","category-proyectos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Buz\u00f3n 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\/buzon-inteligente\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Buz\u00f3n inteligente - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"Autores Mohibul Alom Cristofer Tamaral Mart\u00edn Adri\u00e1n Mart\u00edn Mart\u00edn Objetivo Tenemos como objetivo desarrollar un proyecto de un sistema empotrado o embebido. Estos sistemas est\u00e1n orientados en cubrir una necesidad en concreto. En nuestro&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/buzon-inteligente\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2021-01-21T00:36:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-01-21T00:36:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/01\/image-29.png\" \/>\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=\"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\\\/buzon-inteligente\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/buzon-inteligente\\\/\"},\"author\":{\"name\":\"Administrador de la red\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/bdc38fea664f13638d2a51f4d2fc7211\"},\"headline\":\"Buz\u00f3n inteligente\",\"datePublished\":\"2021-01-21T00:36:05+00:00\",\"dateModified\":\"2021-01-21T00:36:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/buzon-inteligente\\\/\"},\"wordCount\":903,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/buzon-inteligente\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2021\\\/01\\\/image-29.png\",\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/buzon-inteligente\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/buzon-inteligente\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/buzon-inteligente\\\/\",\"name\":\"Buz\u00f3n inteligente - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/buzon-inteligente\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/buzon-inteligente\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2021\\\/01\\\/image-29.png\",\"datePublished\":\"2021-01-21T00:36:05+00:00\",\"dateModified\":\"2021-01-21T00:36:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/buzon-inteligente\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/buzon-inteligente\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/buzon-inteligente\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2021\\\/01\\\/image-29.png\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2021\\\/01\\\/image-29.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/buzon-inteligente\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Buz\u00f3n 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\\\/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":"Buz\u00f3n 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\/buzon-inteligente\/","og_locale":"es_ES","og_type":"article","og_title":"Buz\u00f3n inteligente - Proyectos con Arduino.","og_description":"Autores Mohibul Alom Cristofer Tamaral Mart\u00edn Adri\u00e1n Mart\u00edn Mart\u00edn Objetivo Tenemos como objetivo desarrollar un proyecto de un sistema empotrado o embebido. Estos sistemas est\u00e1n orientados en cubrir una necesidad en concreto. En nuestro&#46;&#46;&#46;","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/buzon-inteligente\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2021-01-21T00:36:05+00:00","article_modified_time":"2021-01-21T00:36:06+00:00","og_image":[{"url":"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/01\/image-29.png","type":"","width":"","height":""}],"author":"Administrador de la red","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Administrador de la red","Tiempo de lectura":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/buzon-inteligente\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/buzon-inteligente\/"},"author":{"name":"Administrador de la red","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/bdc38fea664f13638d2a51f4d2fc7211"},"headline":"Buz\u00f3n inteligente","datePublished":"2021-01-21T00:36:05+00:00","dateModified":"2021-01-21T00:36:06+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/buzon-inteligente\/"},"wordCount":903,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/buzon-inteligente\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/01\/image-29.png","articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/buzon-inteligente\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/buzon-inteligente\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/buzon-inteligente\/","name":"Buz\u00f3n inteligente - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/buzon-inteligente\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/buzon-inteligente\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/01\/image-29.png","datePublished":"2021-01-21T00:36:05+00:00","dateModified":"2021-01-21T00:36:06+00:00","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/buzon-inteligente\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/buzon-inteligente\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/buzon-inteligente\/#primaryimage","url":"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/01\/image-29.png","contentUrl":"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/01\/image-29.png"},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/buzon-inteligente\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"Buz\u00f3n 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\/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\/3448","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=3448"}],"version-history":[{"count":5,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/3448\/revisions"}],"predecessor-version":[{"id":3462,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/3448\/revisions\/3462"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=3448"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=3448"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=3448"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}