{"id":3523,"date":"2014-01-26T20:14:42","date_gmt":"2014-01-26T19:14:42","guid":{"rendered":"http:\/\/bitacora.eniac2000.com\/?p=3523"},"modified":"2014-01-26T20:14:42","modified_gmt":"2014-01-26T19:14:42","slug":"sistema-de-control-de-riego-controlado-por-whatsapp","status":"publish","type":"post","link":"https:\/\/bitacora.eniac2000.com\/?p=3523","title":{"rendered":"Sistema de control de riego controlado por WhatsApp"},"content":{"rendered":"<p>Este fin de semana he seguido avanzando con el tema de la dom\u00f3tica. Tras conseguir <a href=\"http:\/\/bitacora.eniac2000.com\/?p=3512\" title=\"Control de rel\u00e9 por RF con Raspberry Pi y Arduino Nano\">intercomunicar un arduino y la raspberry por radiofrecuencia<\/a>, he conseguido progresar bastante. Como puede verse en el siguiente v\u00eddeo:<\/p>\n<p><iframe loading=\"lazy\" frameborder=\"0\" width=\"512\" height=\"288\" src=\"https:\/\/www.dailymotion.com\/embed\/video\/x1abfmu\" allowfullscreen allow=\"autoplay; fullscreen; picture-in-picture\"><\/iframe><\/p>\n<p>Se trata de un reloj de riego barato comprado en el Leroy Merl\u00edn. Le he reemplazado la l\u00f3gico, y dejado tan s\u00f3lo el servomotor que controla el paso del agua. Para ello he necesitado lo siguiente:<\/p>\n<ul>\n<li><strong>Mejorar el alcance por de los m\u00f3dulos RF:<\/strong> Esa ha sido la parte sencilla. Tan s\u00f3lo ha sido necesario soldar sendas antenas de 17 cm. a los m\u00f3dulos de emisi\u00f3n y recepci\u00f3n. \u00bfPor qu\u00e9 17 cm.? Porque corresponden (aproximadamente) con 1\/4 de la longitud de onda a la que emiten los m\u00f3dulos, lo que permite maximizar la eficiencia de los m\u00f3dulos. He podido comprobar que la se\u00f1al es perfectamente recibida en toda la casa, a lo largo de las tres plantas. No est\u00e1 mal, para unos m\u00f3dulos de 2\u20ac.<\/li>\n<li><strong>Modificar el c\u00f3digo de mensajer\u00eda Raspberry\/WhatsApp:<\/strong> Adem\u00e1s de incorporar un comando para comunicarse con los rel\u00e9s controlados a trav\u00e9s de RF, ha sido preciso tener en cuenta que el reloj de riego tiene un servomotor en vez de una electrov\u00e1lvula. La diferencia es que la electrov\u00e1lvula abre paso al agua cuando se la alimenta con voltaje, por lo que simplemente activando el rel\u00e9 se abre. El servomotor, por el contrario, se activa para hacer girar 90\u00ba una llave de paso, y tiene que volver a activarse para volver a hacer girar 90\u00ba la llave de paso para cerrar el paso de agua. Por lo tanto, tiene una implementaci\u00f3n l\u00f3gica diferente, que ha sido preciso modelar.<\/li>\n<li><strong>Modificar el reloj de riego:<\/strong> He eliminado la circuiter\u00eda del reloj, dejando tan s\u00f3lo el servomotor. \u00c9ste se compone de un motor convencional, alimentado por dos pilas AA de 1.5v, y un interruptor, que permite saber cu\u00e1ndo est\u00e1 completamente abierta o cerrada la llave de paso. Para poder controlar ambos sistemas con arduino, se requieren dos puertos de E\/S: uno para activar el rel\u00e9, y otro para detectar el estado del interruptor.<\/li>\n<\/ul>\n<p>El sistema quedar\u00eda de la siguiente manera:<\/p>\n<p><a href=\"http:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2014\/01\/diagrama-reloj-riego-raspberry-arduino_bb.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2014\/01\/diagrama-reloj-riego-raspberry-arduino_bb-400x264.png\" alt=\"Diagrama de control RF del sistema de riego con Raspberry y Arduino\" title=\"Diagrama de control RF del sistema de riego con Raspberry y Arduino\" width=\"400\" height=\"264\" class=\"aligncenter size-medium wp-image-3525\" \/><\/a><\/p>\n<p>Hay una serie de posibles mejoras en las que empezar a trabajar:<\/p>\n<ul>\n<li>Mejorar la codificaci\u00f3n del sistema de RF: Actualmente s\u00f3lo es capaz de controlar un \u00fanico dispositivo. Hay que incorporar una implementaci\u00f3n de un sistema de comunicaci\u00f3n que permita dar instrucciones a m\u00faltiples m\u00f3dulos. Tambi\u00e9n ser\u00eda conveniente mejorar la seguridad de los mensajes intercambiados. Hasta el momento, el m\u00f3dulo arduino ejecuta cualquier mensaje que reciba, sin verificar fuente, por lo que un atacante malicioso podr\u00eda activar\/desactivar el sistema de riego de manera arbitraria. Lo ideal ser\u00eda incorporar un sistema de codificaci\u00f3n basado en identidad, junto con un cifrado basado en clave p\u00fablica\/privada, pero igual esto \u00faltimo es matar moscas a ca\u00f1onazos&#8230; <img src=\"https:\/\/bitacora.eniac2000.com\/wp-includes\/images\/smilies\/mrgreen.png\" alt=\":mrgreen:\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/><\/li>\n<li>Incorporar un sistema de programaci\u00f3n de eventos: Hasta ahora es posible dar instrucciones al sistema, pero no programar eventos. Hasta el momento uso una aproximaci\u00f3n, consistente en crear en \/etc\/crontab disparadores que activen el sistema, pero no es especialmente pr\u00e1ctico. Mi intenci\u00f3n es incorporar un calendario online (Google Calendar, por ejemplo) para poder programar eventos de una manera sencilla<\/li>\n<li>Miniaturizar el hardware: Actualmente est\u00e1 todo en una placa de prototipado, y hago uso de la placa con 4 rel\u00e9s. Mi intenci\u00f3n es pasar de un arduino a un attiny85, y hacer uso de un \u00fanico rel\u00e9. Las piezas est\u00e1n ya encargadas; en cuanto lleguen, habr\u00e1 que tirar de soldador. \ud83d\ude00<\/li>\n<li>Desarrollar una aplicaci\u00f3n web para monitorizar el sistema: Aqu\u00ed no hay mucho m\u00e1s que decir. \ud83d\ude42<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Este fin de semana he seguido avanzando con el tema<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[13],"tags":[133,166,1381,1412,1781],"series":[],"class_list":["post-3523","post","type-post","status-publish","format-standard","hentry","category-informatica","tag-arduino","tag-attiny","tag-raspberry-pi","tag-reloj-de-riego","tag-whatsapp"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts\/3523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3523"}],"version-history":[{"count":0,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts\/3523\/revisions"}],"wp:attachment":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3523"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fseries&post=3523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}