{"id":7932,"date":"2024-05-05T19:01:25","date_gmt":"2024-05-05T17:01:25","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=7932"},"modified":"2024-05-05T19:01:28","modified_gmt":"2024-05-05T17:01:28","slug":"comedero-bebedero-inteligente","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/comedero-bebedero-inteligente\/","title":{"rendered":"Comedero-Bebedero Inteligente"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introducci\u00f3n<\/h2>\n\n\n\n<p>A continuaci\u00f3n explicaremos el proceso que hemos seguido para la creaci\u00f3n de un comedero y bebedero para animales que tambi\u00e9n se activa por NFC. En primer lugar, desarrollaremos el funcionamiento del proyecto, y la parte de hardware y software del proyecto. A continuaci\u00f3n, explicaremos los problemas que presenta nuestro proyecto, as\u00ed como las mejoras que podr\u00eda tener. Concluiremos con un v\u00eddeo donde se muestra el correcto funcionamiento del proyecto.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Funcionamiento<\/h2>\n\n\n\n<p>El proyecto presenta las siguientes funcionalidades:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>El bebedero se rellena autom\u00e1ticamente. Esto quiere decir que, sin importar como de vac\u00edo est\u00e1 (mucho, medio o poco), el bebedero se rellenar\u00e1 hasta que est\u00e9 completamente lleno. Se detectar\u00e1 cuando el nivel de agua ha disminuido, y se proceder\u00e1 a rellenarlo hasta el tope.<\/li>\n\n\n\n<li>El comedero se rellenar\u00e1 autom\u00e1ticamente, pero \u00fanicamente cuando est\u00e9 muy o completamente vac\u00edo. Cuando ocurra esto, el comedero se rellenar\u00e1 hasta el m\u00e1ximo. Se detectar\u00e1 el peso del comedero, y cuando alcance niveles muy bajos (se encuentre vaci\u00f3 o casi vac\u00edo) se rellenar\u00e1 hasta el tope.<\/li>\n\n\n\n<li>Adem\u00e1s, el usuario podr\u00e1 rellenar usando un nfc el comedero independientemente de como de vac\u00edo est\u00e9. De esta forma, el usuario puede gestionar la cantidad de comida que habr\u00e1 en el comedero.<\/li>\n\n\n\n<li>Cuando se usa el nfc, el comedero no se rellenar\u00e1 hasta el m\u00e1ximo, sino una cierta cantidad. De esta manera el usuario puede decidir cuando y cuanto llenar el comedero. En caso de que el comedero est\u00e9 al m\u00e1ximo de cantidad, el nfc dejar\u00e1 de funcionar y se mostrar\u00e1 un mensaje avisando de que est\u00e1 al m\u00e1ximo.<\/li>\n\n\n\n<li>Hemos incorporado un led para que, durante el proceso de rellenado de los dos (del comedero y del bebedero) est\u00e9 en rojo. Una vez finalizado el rellenado, el led pasar\u00e1 a estar de color verde, avisando de que se ha finalizado el proceso.<\/li>\n\n\n\n<li>Finalmente hemos incorporado un zumbador para que, una vez se rellene el comedero, el zumbador haga sonar una melod\u00eda avisando de que se ha rellenado con \u00e9xito.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Hardware<\/h2>\n\n\n\n<p>Para la realizaci\u00f3n de la parte hardware hemos usado los siguientes componentes:<\/p>\n\n\n\n<div class=\"wp-block-group alignwide\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<figure class=\"wp-block-table alignwide is-style-stripes\"><table><tbody><tr><td><strong>Elemento<\/strong><\/td><td><strong>Descripci\u00f3n<\/strong><\/td><td><strong>Funcionalidad espec\u00edfica<\/strong><\/td><td><strong>Coste<\/strong><\/td><\/tr><tr><td><strong>Ultrasonic Sensor<\/strong><\/td><td>Sensor de ultrasonidos: emite ondas sonoras con las que mide la distancia a la que se encuentra un objeto.<\/td><td>Medir como de lleno est\u00e1 el bebedero.<\/td><td>&#8211;<\/td><\/tr><tr><td><strong>V\u00e1lvula Solenoide<\/strong> <strong>2V025<\/strong><\/td><td>V\u00e1lvula solenoide: interruptor que regula el flujo de fluidos.<br>Potencia: 12 voltios.<br>Corriente continua.<br>Normalmente cerrada<br>PSI: 0<\/td><td>Controlar el paso de agua para rellenar el bebedero.<\/td><td>16<\/td><\/tr><tr><td><strong>Sensor de Presi\u00f3n<br>RP-C10-ST<\/strong><\/td><td>Sensor de presi\u00f3n: mide la fuerza aplicada a trav\u00e9s de una carga.<br>Dimensiones: \u200e&nbsp;1 x 2,5 x 0,1 cm;<br>Grosor 0,4mm.<br>Rango de detecci\u00f3n de presi\u00f3n: 20 g &#8211; 2 kg<br>Peso: 1g<\/td><td>Medir como de lleno est\u00e1 el comedero<\/td><td>12<\/td><\/tr><tr><td><strong>Servomotor MG 996R<\/strong><\/td><td>Servomotor: proporciona un movimiento preciso y controlado en respuesta a se\u00f1ales de entrada espec\u00edficas.<\/td><td>Controlar el paso de comida que cae al bebedero.<\/td><td>6<\/td><\/tr><tr><td><strong>M\u00f3dulo RFID-RC522<\/strong><\/td><td>Sensor NFC: permite la comunicaci\u00f3n inal\u00e1mbrica de corto alcance entre dispositivos compatibles con tecnolog\u00eda NFC.<br>NFC: Near Field Communication.<\/td><td>Rellenar el comedero cuando se activa.<\/td><td>7<\/td><\/tr><tr><td><strong>RGB Led<\/strong><\/td><td>Led RGB: diodo emisor de luz que puede emitir luz en los tres colores primarios.<\/td><td>Mostrar cuando se est\u00e1 rellenando y cuando el proceso ha finalizado.<\/td><td>&#8211;<\/td><\/tr><tr><td><strong>Passive Buzzer<\/strong><\/td><td>Zumbador: produce un sonido continuo o intermitente cuando se le aplica una corriente el\u00e9ctrica.<\/td><td>Sonar una melod\u00eda al final del rellenado.<\/td><td>&#8211;<\/td><\/tr><tr><td><strong>Transistor MOSFET<\/strong><\/td><td>Transistor MOSFET: dispositivo semiconductor que controla el flujo de corriente entre dos terminales.<\/td><td>Interruptor para la activaci\u00f3n de la v\u00e1lvula.<\/td><td>1<\/td><\/tr><tr><td><strong>Diodo<\/strong><\/td><td>Diodo: dispositivo electr\u00f3nico que permite el flujo de corriente en una direcci\u00f3n y bloquea en la direcci\u00f3n opuesta.<\/td><td>Dirigir correctamente la corriente al transistor<\/td><td>&#8211;<\/td><\/tr><tr><td><strong>Resistencias<\/strong><\/td><td>Resistencias: limitan la corriente y ajustan el voltaje en los circuitos conectados a los pines. (10k para el sensor de presi\u00f3n)<\/td><td>Asegurar el funcionamiento seguro del transistor y del sensor de peso.<\/td><td>&#8211;<\/td><\/tr><tr><td><strong>Cables<\/strong><\/td><td>Cables: conductores el\u00e9ctricos utilizados para conectar componentes entre s\u00ed o con la placa Arduino<\/td><td>Varias<\/td><td>.<\/td><\/tr><tr><td><strong>Materiales Fisicos<\/strong><\/td><td>Maderas<br>Escuadras<br>Tornillos<br>Recipientes&#8230;<\/td><td>Creaci\u00f3n de la estructura del proyecto.<\/td><td>20<\/td><\/tr><tr><td><strong>Pintura<\/strong><\/td><td><\/td><td><\/td><td>8<\/td><\/tr><tr><td><strong>TOTAL<\/strong><\/td><td><\/td><td><\/td><td>70<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Tabla de componentes empleados<\/figcaption><\/figure>\n<\/div><\/div>\n\n\n\n<p>Notar que los costes son aproximados. No hemos dispuesto de los proveedores m\u00e1s baratos porque nos urg\u00edan y necesit\u00e1bamos inmediatez. Adem\u00e1s utilizamos materiales que ya ten\u00edamos, que nos hemos ahorrado, y servicios herramientas de alto coste que tampoco hemos alquilado ni comprado. Adem\u00e1s hemos tenido que sustituir varios componentes defectuosos y compramos otros que no fuimos capaces seg\u00fan evolucion\u00f3 el proyecto de darles un uso coherente.<\/p>\n\n\n\n<p>Por tanto, el costo estimado es de unos 50-60\u20ac con buenos proveedores y herramientas, lo que lo posiciona cerca de productos similares que se pueden encontrar en otras tiendas, pero tampoco es una gran diferencia.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Circuito<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"789\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/Circuito-final_bb-1024x789.png\" alt=\"\" class=\"wp-image-8339\" style=\"width:745px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/Circuito-final_bb-1024x789.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/Circuito-final_bb-300x231.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/Circuito-final_bb-768x592.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/Circuito-final_bb-1536x1184.png 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/Circuito-final_bb-2048x1578.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>En la imagen anterior podemos ver como e el circuito montado sobre una placa de inserci\u00f3n. Es importante destacar que es necesario enchufar la placa de Arduino a una fuente de alimentaci\u00f3n de 12V y 500 mA al menos puesto que el encendido y apagado de la v\u00e1lvula utilizada los requiere.<\/p>\n\n\n\n<p>Podemos ver que para el circuito utilizamos un transistor MSOFET como interruptor para la activaci\u00f3n de v\u00e1lvula (que requiere la alimentaci\u00f3n externa), un diodo para dirigir correctamente la corriente y resistencias que evitan subidas de tensi\u00f3n para que no se caliente el transistor y para calibrar correctamente la sensibilidad de el sensor de presi\u00f3n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Montaje f\u00edsico<\/h2>\n\n\n\n<p>A continuaci\u00f3n, una vez verificados (a priori) todos los componentes nos pusimos con el dise\u00f1o y montaje del proyecto. Quisimos priorizar el esqueleto o estructura principal para poder intuir el montaje, para ello utilizamos unos cartones para intuir f\u00edsicamente las dimensiones y colocaci\u00f3n del proyecto. Tambi\u00e9n elegimos y compramos los recipientes que consideramos adecuados para almacenar la comida y agua. Escogimos unos impermeables con el fondo plano. Uno lo recortamos por completo y al otro le perforamos un agujero donde pegaremos una peque\u00f1o tubo.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"8345\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8377-768x1024.jpeg\" alt=\"\" class=\"wp-image-8345\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8377-768x1024.jpeg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8377-225x300.jpeg 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8377-1152x1536.jpeg 1152w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8377-1536x2048.jpeg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8377-scaled.jpeg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">Recipientes pegados a una pared<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"8353\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8394-768x1024.jpeg\" alt=\"\" class=\"wp-image-8353\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8394-768x1024.jpeg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8394-225x300.jpeg 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8394-1152x1536.jpeg 1152w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8394-1536x2048.jpeg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8394-scaled.jpeg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">Pseudo-estructura de cart\u00f3n<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<p>Tras la construcci\u00f3n de los prototipos a cart\u00f3n comenzamos a tomar medidas y a dise\u00f1ar bocetos. Observamos que \u00edbamos a tener tres partes diferenciadas en la estructura: una para guardar los recipientes y almacenar la comida y el agua; otra para guardar la circuir\u00eda y por \u00faltimo los componentes hardware per s\u00e9.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"922\" data-id=\"8356\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_2448-1024x922.jpg\" alt=\"\" class=\"wp-image-8356\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_2448-1024x922.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_2448-300x270.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_2448-768x692.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_2448.jpg 1267w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Bocetos: Planta alzado y perfil<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"915\" height=\"982\" data-id=\"8358\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_2447-1.jpg\" alt=\"\" class=\"wp-image-8358\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_2447-1.jpg 915w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_2447-1-280x300.jpg 280w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_2447-1-768x824.jpg 768w\" sizes=\"auto, (max-width: 915px) 100vw, 915px\" \/><figcaption class=\"wp-element-caption\">Boceto: Perspectiva caballera<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"999\" height=\"1024\" data-id=\"8359\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_2449-1-999x1024.jpg\" alt=\"\" class=\"wp-image-8359\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_2449-1-999x1024.jpg 999w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_2449-1-293x300.jpg 293w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_2449-1-768x787.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_2449-1.jpg 1094w\" sizes=\"auto, (max-width: 999px) 100vw, 999px\" \/><figcaption class=\"wp-element-caption\">Bocetos de la rampa<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<p>Tras realizar los bocetos y comprobar emp\u00edricamente las medidas y corregirlas <sub>(medidas no finales en los bocetos)<\/sub> reunimos las piezas de madera y de DM para el montaje.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"8369\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8425-2-768x1024.jpeg\" alt=\"\" class=\"wp-image-8369\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8425-2-768x1024.jpeg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8425-2-225x300.jpeg 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8425-2-1152x1536.jpeg 1152w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8425-2.jpeg 1512w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">primer montaje<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"8371\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8428-1-768x1024.jpeg\" alt=\"\" class=\"wp-image-8371\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8428-1-768x1024.jpeg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8428-1-225x300.jpeg 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8428-1-1152x1536.jpeg 1152w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8428-1-1536x2048.jpeg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8428-1-scaled.jpeg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">segundo montaje<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<p>Para montar la estructura usamos tornillos para madera y tirafondos con una atornilladora el\u00e9ctrica. Tambi\u00e9n pegamos con silicona caliente las partes que no requer\u00edan de gran sujeci\u00f3n. Atornillamos una serie de escuadras que mantuviesen la estabilidad de los recipientes y los sujetasen as\u00ed como un enganche para la tuber\u00eda y la estructura que sujetar\u00e1 el motor, aunque esto \u00faltimo fue algo despu\u00e9s puesto que tuvimos que cambiar la idea original y hacer una compuerta horizontal en lugar de inclinada o vertical por lo que tuvimos que cambiar de recipiente.<\/p>\n\n\n\n<p>En el segundo montaje podemos observar que a\u00f1adimos una serie de soportes m\u00e1s y maderas para alinear bien la salida de comida. Tambi\u00e9n pegamos la rampa y atornillamos el serio motor para posteriormente poder pegar el recipiente a la altura correcta. Utilizamos unas comas para ajustar mejor los recipientes y que no se moviesen. Observar que ya pegamos la v\u00e1lvula a la tuber\u00eda del recipiente que tendr\u00e1 el agua.<\/p>\n\n\n\n<p>A continuaci\u00f3n pegamos unas peque\u00f1as escuadras met\u00e1licas a las que se adherir\u00e1n los imames que estar\u00e1n pegados a los DMs pintados y as\u00ed poder desmontarlos f\u00e1cilmente para acceder al circuito y as\u00ed montarlo e instalarlo correctamente.<\/p>\n\n\n\n<p>Tras todo lo anterior, medimos los agujeros necesarios de salida de comida y agua y recortamos una placa de madera que atornillamos a la estructura a la que tambi\u00e9n pegamos tanto el sensor de ultrasonidos como el NFC.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"576\" height=\"1024\" data-id=\"8376\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8435-576x1024.jpg\" alt=\"\" class=\"wp-image-8376\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8435-576x1024.jpg 576w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8435-169x300.jpg 169w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8435-768x1365.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8435-864x1536.jpg 864w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8435-1152x2048.jpg 1152w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8435-scaled.jpg 1440w\" sizes=\"auto, (max-width: 576px) 100vw, 576px\" \/><\/figure>\n<\/figure>\n\n\n\n<p>Pintamos las placas de madera de plateado para que quedase bien integrado, pegamos un trocito de cart\u00f3n en la salida de la comida, que ayud\u00f3 a que cayese la comida de manera m\u00e1s ordenada y dibujamos una huella donde se encuentra el sensor NFC,<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pruebas<\/h2>\n\n\n\n<p>Una vez montada toda la estructura conectamos el circuito por dentro gracias a las planchas extraibles de madera. A\u00f1adimos tanto el LED como el zumbador para obtener respuesta seg\u00fan nuestro sistema funcione.<\/p>\n\n\n\n<p>Se recomienda ajustar tanto el di\u00e1metro del agujereo como los tiempos del motor seg\u00fan la comida que se vaya a usar. Tambi\u00e9n se recomienda usar un sensor de presi\u00f3n lo suficientemente sensible para obtener mejores resultados pero se puede adaptar tambi\u00e9n seg\u00fan el alimento. Sugerimos construir una estructura acolchada al rededor del comedero para que la presi\u00f3n del mismo se concentre sobre el centro del FSR y evitar que haya medidas nulas. Se puede variar la conexi\u00f3n del sensor de presi\u00f3n de 5v a 3.3v para ajustar la sensibilidad.<\/p>\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=\"Valvula y ultrasonidos funcionando correctamente\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/XdTaQE9z0eg?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>En el v\u00eddeo podemos ver funcionando correctamente la v\u00e1lvula y el sensor de ultrasonidos.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-5 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"8382\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8596-768x1024.jpeg\" alt=\"\" class=\"wp-image-8382\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8596-768x1024.jpeg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8596-225x300.jpeg 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8596-1152x1536.jpeg 1152w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8596-1536x2048.jpeg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8596-scaled.jpeg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">Final desmontado<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"660\" height=\"1024\" data-id=\"8385\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8782-2-660x1024.jpg\" alt=\"\" class=\"wp-image-8385\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8782-2-660x1024.jpg 660w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8782-2-193x300.jpg 193w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8782-2-768x1191.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8782-2-990x1536.jpg 990w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8782-2-1320x2048.jpg 1320w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/IMG_8782-2-scaled.jpg 1650w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><figcaption class=\"wp-element-caption\">Final montado (funcionando)<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Software<\/h2>\n\n\n\n<p>Primero definimos los pines del Arduino e inicializamos algunas variables que usaremos.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ ULTRASONIDOS \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\nconst int Trigger = 2;   \/\/Pin digital 2 para el Trigger del sensor\nconst int Echo = 3;   \/\/Pin digital 3 para el Echo del sensor\nfloat t; \/\/tiempo que demora en llegar el eco\nfloat d; \/\/distancia en centimetros\n\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ VALVULA \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\nint solenoidPin = 7; \/\/Pin solenoide\n\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ SERVO \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n#include &lt;Servo.h&gt;\nServo servoMotor;  \/\/ Crea un objeto Servo\n\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ FUERZA \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n#define FORCE_SENSOR_PIN A0 \/\/ pin del FSR y 10K Ohm\n\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ NFC \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n#include &lt;SPI.h&gt;\n#include &lt;MFRC522.h&gt;\n\n#define RST_PIN         9          \/\/ Configurable, see typical pin layout above\n#define SS_PIN          10         \/\/ Configurable, see typical pin layout above\n\nMFRC522 mfrc522(SS_PIN, RST_PIN);  \/\/ Create MFRC522 instance\n\nbyte llavero&#091;] = {0x13, 0x07, 0xE7, 0xF6}; \/\/13 07 E7 F6.  \nbyte llavero2&#091;] = {0xE1, 0x00, 0xC7, 0x0D}; \/\/E1 00 C7 0D\nbyte llavero3&#091;] = {0xD4, 0x2F, 0xE3, 0x94}; \/\/D4 2F E3 94\n\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ LED + ZUMBADOR \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\nconst int LED_R = 4;\nconst int LED_G = 8;\nconst int ZUMBADOR = 6;<\/code><\/pre>\n\n\n\n<p>Posteriormente, hacemos el setup, inicializamos la comunicaci\u00f3n con la placa para obtener los datos de lectura y establecemos el modo de cada pin siendo entrada o salida. Adem\u00e1s ajustamos la posici\u00f3n de inicio de el motor y cerramos la v\u00e1lvula (aunque esta sea normalmente cerrada conviene hacerlo).<\/p>\n\n\n\n<p>Para el sensor NFC, hemos inicializado el lector de tarjetas RFID MFRC522 para permitir la comunicaci\u00f3n con el sensor NFC.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>void setup() {\n Serial.begin(9600);\/\/iniciailzamos la comunicaci\u00f3n\n  \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ ULTRASONIDOS \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n pinMode(Trigger, OUTPUT); \/\/pin como salida\n pinMode(Echo, INPUT);  \/\/pin como entrada\n digitalWrite(Trigger, LOW);\/\/Inicializamos el pin con 0\n\n \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ VALVULA \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n pinMode(solenoidPin, OUTPUT);\n digitalWrite(solenoidPin, LOW);\n\n \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ SERVO \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n servoMotor.attach(5);  \/\/ Conecta el servomotor al pin 5\n servoMotor.write(5);\n \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ FUERZA \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n \/\/Solo inicializamos la entrada\n\n \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ NFC \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n while (!Serial);    \/\/ Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)\n SPI.begin();      \/\/ Init SPI bus\n mfrc522.PCD_Init();   \/\/ Init MFRC522\n delay(4);       \/\/ Optional delay. Some board do need more time after init to be ready, see Readme\n mfrc522.PCD_DumpVersionToSerial();  \/\/ Show details of PCD - MFRC522 Card Reader details\n Serial.println(F(\"Scan PICC to see UID, SAK, type, and data blocks...\"));\n\n \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ LED + ZUMBADOR \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n pinMode(LED_R, OUTPUT);\n pinMode(LED_G, OUTPUT);\n pinMode(ZUMBADOR, OUTPUT);\n}<\/code><\/pre>\n\n\n\n<p>Antes de loop definimos una serie de funciones que usaremos dentro, como una que recibe un float y lo eval\u00faa para decidir si cerrar o no la v\u00e1lvula o uno que recibe un entero y lo eval\u00faa para saber si el comedero est\u00e1 lleno, vac\u00edo o a medias. Tambi\u00e9n m\u00e9todos que comparan que la identificaci\u00f3n de la tarjeta NFC sea igual a alguna de las tarjetas guardadas.<\/p>\n\n\n\n<p>El m\u00e9todo abrirV\u00e1lvula contiene una doble comprobaci\u00f3n m\u00e1s restrictiva para evitar que las peque\u00f1as variaciones en el resultado hagan que abramos y cerremos la v\u00e1lvula muchas veces en poco tiempo.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>void abrirValvula(float distancia){\n \/\/MICROSEGUNDOS\n if(distancia&lt;20.00){\n   delay(330);\n   \/\/ VOLVEMOS A MEDIR\n   digitalWrite(Trigger, HIGH);\n   delayMicroseconds(10);          \/\/Enviamos un pulso de 10us\n   digitalWrite(Trigger, LOW);\n  \n   t = pulseIn(Echo, HIGH); \/\/obtenemos el ancho del pulso\n   d = t\/59;             \/\/escalamos el tiempo a una distancia en cm\n  \n   Serial.print(\"el agua esta a:..................................\");\n   Serial.println(d);\n\n\n   if(d&lt;19.25){\n     digitalWrite(solenoidPin, LOW);\n   } \n\n }\n else{\n   digitalWrite(solenoidPin, HIGH);\n }\n}\n\nvoid rellenarMotor(int peso){\n if (peso&lt;300){\n\n   servoMotor.write(54);\n\n   digitalWrite(LED_G, HIGH);\n   digitalWrite(LED_R, HIGH); \/\/AMARILLO\n  \n   tone(ZUMBADOR, 100); \/\/ Frecuencia de tono de 1000 Hz\n   delay(350);\n\n  \/\/ delay(1000);          \/\/CAMBIAR TIEMPO DE ESPERA ABIERTO\n   servoMotor.write(5);\n   delay(150);\n\n   tone(ZUMBADOR, 200); \/\/ Frecuencia de tono de 1000 Hz\n   delay(500);\n\n   tone(ZUMBADOR, 300); \/\/ Frecuencia de tono de 1000 Hz\n   delay(500);\n   noTone(ZUMBADOR);\n   delay(500);\n   tone(ZUMBADOR, 100); \/\/ Frecuencia de tono de 1000 Hz\n   delay(500);\n   tone(ZUMBADOR, 200); \/\/ Frecuencia de tono de 1000 Hz\n   delay(500);\n   tone(ZUMBADOR, 300); \/\/ Frecuencia de tono de 1000 Hz\n   delay(500);\n   noTone(ZUMBADOR);\n   delay(500);\n\n \/\/  delay(5000);\n   if(peso &gt; 200){\n     digitalWrite(LED_G, HIGH); \/\/VERDE\n     digitalWrite(LED_R, LOW);\n   }\n }\n else{\n   Serial.print(\"El bowl de comida no est\u00e1 vacio del todo\");\n   Serial.println();\n\n   digitalWrite(LED_G, HIGH); \/\/VERDE\n   digitalWrite(LED_R, LOW);\n }\n }\n\nvoid NFCMotor(int peso){\n if(peso&lt;650){           \/\/CAMBIAR PESO\n   tone(ZUMBADOR, 100);\n   delay(200);\n   tone(ZUMBADOR, 200);\n   delay(100);\n\n   servoMotor.write(54);\n   delay(100);\n\n\n   digitalWrite(LED_R, HIGH); \/\/AMARILLO\n   digitalWrite(LED_G, HIGH);\n\n   \/\/digitalWrite(solenoidPin, LOW); CASO CERRAR EL GRIFO ANTES\n  \n   tone(ZUMBADOR, 300);\n   delay(200);\n   noTone(ZUMBADOR);\n   delay(200);\n   \/\/delay(0400);          \/\/CAMBIAR TIEMPO DE ESPERA ABIERTO\n   servoMotor.write(5);\n\n   digitalWrite(LED_G, HIGH); \/\/VERDE\n   digitalWrite(LED_R, LOW);\n }\n\n else{\n   digitalWrite(LED_G, LOW); \/\/ROJO\n   digitalWrite(LED_R, HIGH);\n  \n   tone(ZUMBADOR, 1000); \/\/Suena Zumbador\n\n   Serial.print(\"No se puede llenar m\u00e1s el bowl\");\n   Serial.println();\n\n   delay(1000);\n\n   digitalWrite(LED_G, HIGH); \/\/VERDE\n   digitalWrite(LED_R, LOW);\n   noTone(ZUMBADOR); \/\/apaga Zumbador\n }\n}\n\nvoid imprimirNFC(byte *buffer, byte bufferSize) {\n Serial.print(\"UID de la tarjeta: \");\n for (byte i = 0; i &lt; bufferSize; i++) {\n   Serial.print(buffer&#091;i] &lt; 0x10 ? \" 0\" : \" \");\n   Serial.print(buffer&#091;i], HEX);\n }\n Serial.println();\n}\n\nbool compareUid(byte *uid1, byte uid1Size, byte *uid2, byte uid2Size) {\n \/\/ Verificar que los tama\u00f1os de los UID sean iguales\n if (uid1Size != uid2Size) {\n   return false;\n }\n \/\/ Comparar byte a byte\n for (byte i = 0; i &lt; uid1Size; i++) {\n   if (uid1&#091;i] != uid2&#091;i]) {\n     return false; \/\/ No son iguales\n   }\n }\n return true; \/\/ Son iguales\n}<\/code><\/pre>\n\n\n\n<p>Luego realizamos el loop. Primero leemos en el sensor de ultrasonidos, y en funci\u00f3n del valor obtenido llamamos al m\u00e9todo de abrir v\u00e1lvula . Posteriormente hacemos lo propio con el sensor de presi\u00f3n, llamando tambi\u00e9n a la funci\u00f3n de evaluaci\u00f3n del motor. Y mantenemos activa la lectura de nuestro lector NFC, para que siempre pueda detectar si hay o no tarjeta, en el caso que la haya se eval\u00faa con el m\u00e9todo que compara las identificaciones.<\/p>\n\n\n\n<p>Mientras funciona el motor hacemos un delay en el que aprovechamos para cambiar el color del LED y hacer sonar al zumbador hasta que el motor se vuelva a accionar para cerrar la compuerta. Por otra parte, nos aseguramos que mientras haya un delay activo la v\u00e1lvula permanezca cerrada puesto que el ultrasonidos no est\u00e1 haciendo lectura y podr\u00eda desbordar el agua en caso de permanecer abierta mucho tiempo. Finalmente, en caso de las lecturas incorrectas de NFC tambi\u00e9n controlamos el color del LED y al zumbador. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>void loop(){\n delay(200);\n \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ ULTRASONIDOS y VALVULA \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n digitalWrite(Trigger, HIGH);\n delayMicroseconds(10);          \/\/Enviamos un pulso de 10us\n digitalWrite(Trigger, LOW);\n  t = pulseIn(Echo, HIGH); \/\/obtenemos el ancho del pulso\n d = t\/59;             \/\/escalamos el tiempo a una distancia en cm\n  Serial.print(\"Distancia: \");\n Serial.print(d);      \/\/Enviamos serialmente el valor de la distancia\n Serial.print(\"cm\");\n Serial.println();\n\n abrirValvula(d);\n\n \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ PESO Y SERVO \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n int analogReading = analogRead(FORCE_SENSOR_PIN);\n\n Serial.print(\"1 Force sensor reading = \");\n Serial.print(analogReading); \/\/ print the raw analog reading\n Serial.println();\n\n rellenarMotor(analogReading);\n  \/\/abrirValvula(d); CASO CERRAR EL GRIFO ANTES\n\n \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ NFC \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n if (mfrc522.PICC_IsNewCardPresent() &amp;&amp; mfrc522.PICC_ReadCardSerial()) {\n   imprimirNFC(mfrc522.uid.uidByte, mfrc522.uid.size); \/\/LEE UN NFC\n\n   if ((compareUid(mfrc522.uid.uidByte, mfrc522.uid.size, llavero2, sizeof(llavero2))) || (compareUid(mfrc522.uid.uidByte, mfrc522.uid.size, llavero, sizeof(llavero))) || (compareUid(mfrc522.uid.uidByte, mfrc522.uid.size, llavero3, sizeof(llavero3)))) { \/\/COMPARAR QUE ES EL LLAVERO\/TARJETA\n\n     int analogReading = analogRead(FORCE_SENSOR_PIN);\n     Serial.print(\"2 Force sensor reading = \");\n     Serial.print(analogReading); \/\/ print the raw analog reading\n     Serial.println();\n\n     NFCMotor(analogReading);\n   }\n   else{\n     digitalWrite(LED_G, LOW); \/\/ROJO\n     digitalWrite(LED_R, HIGH);\n     tone(ZUMBADOR, 1000); \/\/ Suena Zumbador\n\n     Serial.print(\"Tarjeta incorrecta\");\n\n     delay(1000);\n\n     digitalWrite(LED_G, HIGH); \/\/VERDE\n     digitalWrite(LED_R, LOW);\n     noTone(ZUMBADOR); \/\/ Apaga Zumbador\n   }\n }\n\n mfrc522.PICC_HaltA(); \/\/ Detener la tarjeta actual\n mfrc522.PCD_StopCrypto1(); \/\/ Detener la comunicaci\u00f3n\n\n}<\/code><\/pre>\n\n\n\n<p>Valoramos utilizar el m\u00e9todo millis para no usar delys pero nos parec\u00eda demasiado complicado para ser de tan pocos segundos y nos evitamos problemas de desbordamiento de memoria ya la idea del proyecto es que siempre pueda estar enchufado funcionando pasivamente.<\/p>\n\n\n\n<p>Seguimos estableciendo un ligero delay de 0.1 segundos para que el los sensores no se saturen por la lectura continuada ya que tampoco requerimos de un tiempo de respuesta ultra bajo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mejoras<\/h2>\n\n\n\n<p>Como posibles retoques o mejoras podemos sugerir que se pudiese cambiar el deposito de agua por una entrada de tuber\u00eda de agua y tratar el proyecto como un electrodom\u00e9stico mas, y as\u00ed dejar m\u00e1s espacio para la comida. Tambi\u00e9n podr\u00edamos pintar la base de espuma del comedero para que fuese mas discreta. y por \u00faltimo a\u00f1adir que habr\u00eda que modificar el software para calibrar el rellenado del comedero seg\u00fan el tipo de alimento sea mas grande o m\u00e1s peque\u00f1o.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">V\u00eddeo<\/h2>\n\n\n\n<p>Por \u00faltimo un breve v\u00eddeo explicando y demostrando el correcto funcionamiento de nuestro proyecto:<\/p>\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=\"Video Demostracio\u0301n del funcionamiento SEyTR\" width=\"500\" height=\"375\" src=\"https:\/\/www.youtube.com\/embed\/zpm76CgEXrA?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>Introducci\u00f3n A continuaci\u00f3n explicaremos el proceso que hemos seguido para la creaci\u00f3n de un comedero y bebedero para animales que tambi\u00e9n se activa por NFC. En primer lugar, desarrollaremos el funcionamiento del proyecto, y&#46;&#46;&#46;<\/p>\n","protected":false},"author":222,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"[]"},"categories":[1],"tags":[],"class_list":["post-7932","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>Comedero-Bebedero 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\/comedero-bebedero-inteligente\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comedero-Bebedero Inteligente - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"Introducci\u00f3n A continuaci\u00f3n explicaremos el proceso que hemos seguido para la creaci\u00f3n de un comedero y bebedero para animales que tambi\u00e9n se activa por NFC. En primer lugar, desarrollaremos el funcionamiento del proyecto, y&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/comedero-bebedero-inteligente\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-05T17:01:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-05T17:01:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/Circuito-final_bb-1024x789.png\" \/>\n<meta name=\"author\" content=\"dsemo2324g08\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"dsemo2324g08\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 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\\\/comedero-bebedero-inteligente\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/comedero-bebedero-inteligente\\\/\"},\"author\":{\"name\":\"dsemo2324g08\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/79a3b4e999ffde1c70a3d1e41ee8b276\"},\"headline\":\"Comedero-Bebedero Inteligente\",\"datePublished\":\"2024-05-05T17:01:25+00:00\",\"dateModified\":\"2024-05-05T17:01:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/comedero-bebedero-inteligente\\\/\"},\"wordCount\":2155,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/comedero-bebedero-inteligente\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2024\\\/05\\\/Circuito-final_bb-1024x789.png\",\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/comedero-bebedero-inteligente\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/comedero-bebedero-inteligente\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/comedero-bebedero-inteligente\\\/\",\"name\":\"Comedero-Bebedero Inteligente - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/comedero-bebedero-inteligente\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/comedero-bebedero-inteligente\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2024\\\/05\\\/Circuito-final_bb-1024x789.png\",\"datePublished\":\"2024-05-05T17:01:25+00:00\",\"dateModified\":\"2024-05-05T17:01:28+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/comedero-bebedero-inteligente\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/comedero-bebedero-inteligente\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/comedero-bebedero-inteligente\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2024\\\/05\\\/Circuito-final_bb.png\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2024\\\/05\\\/Circuito-final_bb.png\",\"width\":2943,\"height\":2268},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/comedero-bebedero-inteligente\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Comedero-Bebedero 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\\\/79a3b4e999ffde1c70a3d1e41ee8b276\",\"name\":\"dsemo2324g08\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/715d093fa8887626a57e05f003f8175cc7acae1f9b46d0ad97e9ab923b471b1f?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/715d093fa8887626a57e05f003f8175cc7acae1f9b46d0ad97e9ab923b471b1f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/715d093fa8887626a57e05f003f8175cc7acae1f9b46d0ad97e9ab923b471b1f?s=96&d=mm&r=g\",\"caption\":\"dsemo2324g08\"},\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/author\\\/dsemo2324g08\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Comedero-Bebedero 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\/comedero-bebedero-inteligente\/","og_locale":"es_ES","og_type":"article","og_title":"Comedero-Bebedero Inteligente - Proyectos con Arduino.","og_description":"Introducci\u00f3n A continuaci\u00f3n explicaremos el proceso que hemos seguido para la creaci\u00f3n de un comedero y bebedero para animales que tambi\u00e9n se activa por NFC. En primer lugar, desarrollaremos el funcionamiento del proyecto, y&#46;&#46;&#46;","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/comedero-bebedero-inteligente\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2024-05-05T17:01:25+00:00","article_modified_time":"2024-05-05T17:01:28+00:00","og_image":[{"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/Circuito-final_bb-1024x789.png","type":"","width":"","height":""}],"author":"dsemo2324g08","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"dsemo2324g08","Tiempo de lectura":"15 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/comedero-bebedero-inteligente\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/comedero-bebedero-inteligente\/"},"author":{"name":"dsemo2324g08","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/79a3b4e999ffde1c70a3d1e41ee8b276"},"headline":"Comedero-Bebedero Inteligente","datePublished":"2024-05-05T17:01:25+00:00","dateModified":"2024-05-05T17:01:28+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/comedero-bebedero-inteligente\/"},"wordCount":2155,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/comedero-bebedero-inteligente\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/Circuito-final_bb-1024x789.png","articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/comedero-bebedero-inteligente\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/comedero-bebedero-inteligente\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/comedero-bebedero-inteligente\/","name":"Comedero-Bebedero Inteligente - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/comedero-bebedero-inteligente\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/comedero-bebedero-inteligente\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/Circuito-final_bb-1024x789.png","datePublished":"2024-05-05T17:01:25+00:00","dateModified":"2024-05-05T17:01:28+00:00","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/comedero-bebedero-inteligente\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/comedero-bebedero-inteligente\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/comedero-bebedero-inteligente\/#primaryimage","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/Circuito-final_bb.png","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/Circuito-final_bb.png","width":2943,"height":2268},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/comedero-bebedero-inteligente\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"Comedero-Bebedero 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\/79a3b4e999ffde1c70a3d1e41ee8b276","name":"dsemo2324g08","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/715d093fa8887626a57e05f003f8175cc7acae1f9b46d0ad97e9ab923b471b1f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/715d093fa8887626a57e05f003f8175cc7acae1f9b46d0ad97e9ab923b471b1f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/715d093fa8887626a57e05f003f8175cc7acae1f9b46d0ad97e9ab923b471b1f?s=96&d=mm&r=g","caption":"dsemo2324g08"},"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/author\/dsemo2324g08\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/7932","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\/222"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/comments?post=7932"}],"version-history":[{"count":25,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/7932\/revisions"}],"predecessor-version":[{"id":8536,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/7932\/revisions\/8536"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=7932"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=7932"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=7932"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}