{"id":20591504,"url":"https://github.com/lmtreser/esmet-iot","last_synced_at":"2026-04-22T07:31:46.408Z","repository":{"id":220983045,"uuid":"753115661","full_name":"lmtreser/ESMET-IoT","owner":"lmtreser","description":"Dispositivo IoT experimental para monitoreo de temperatura ambiente en vivero hidropónico","archived":false,"fork":false,"pushed_at":"2024-05-07T00:18:57.000Z","size":37421,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-06T13:46:15.409Z","etag":null,"topics":["esmet","esp8266-arduino","hidroponic","iot","mqtt"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lmtreser.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-05T13:57:34.000Z","updated_at":"2024-05-07T00:19:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"eeb35af5-43b5-4410-ad5d-dda114d91c93","html_url":"https://github.com/lmtreser/ESMET-IoT","commit_stats":null,"previous_names":["lmtreser/esmet-iot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lmtreser/ESMET-IoT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmtreser%2FESMET-IoT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmtreser%2FESMET-IoT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmtreser%2FESMET-IoT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmtreser%2FESMET-IoT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lmtreser","download_url":"https://codeload.github.com/lmtreser/ESMET-IoT/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmtreser%2FESMET-IoT/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32125774,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T00:31:26.853Z","status":"online","status_checked_at":"2026-04-22T02:00:05.693Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["esmet","esp8266-arduino","hidroponic","iot","mqtt"],"created_at":"2024-11-16T07:40:35.685Z","updated_at":"2026-04-22T07:31:46.391Z","avatar_url":"https://github.com/lmtreser.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESMET IoT\n\nESMET IoT es un proyecto que intentaba iniciar el proceso de automatización (post pandemia Covid-19) del [invernadero hidropónico](http://regionatlantica.com/esmet-no-1-formacion-tecnica-de-excelencia-en-mar-del-plata-que-busca-asesora-a-productores-en-hidroponia/) de la Escuela Secundaria Municipal de Educación Técnica N°1 de la ciudad de Mar del Plata, mediante el desarrollo y construcción de un dispositivo IoT experimental de bajo costo para monitoreo de la temperatura ambiente.\n\n![](./docs/fotos/invernadero_01.jpg)\n*Invernadero ESMET N°1, diciembre de 2020*.\n\nEl proyecto consiste en una interfaz IoT conformada por hardware y software. El hardware esta basado en una placa NodeMCU (SoC ESP8266), junto a un par de sensores de temperatura y, de manera opcional, humedad ambiente. Este bloque es el encargado de recoger los datos, procesarlos y enviarlos a un broker MQTT alojado en Internet. \n\nPor su parte el software que conformará el panel de control se desarrollará en Python + Django + JavaScript y en una primera instancia contará con una interfaz de usuario web donde se visualizará:\n\n- Gráfica tiempo / temperatura\n- Historial de registros\n- Lecturas de valor en tiempo real\n\nEl sistema es escalable, es decir, que en una etapa futura será posible añadir características. Por ejemplo: \n\n- Etapas de control de potencia\n- Sistema de alarma\n- Recepción de comandos \n\n## Arquitectura del sistema\n\n![](./docs/arquitectura.png)\n*Arquitectura de un sistema basado en MQTT. Imagen [MQTT.org](https://mqtt.org/).*\n\n## Hardware\n\nEl dispositivo está basado en el SoC ESP8266 junto a un par de sensores [DS18B20](./docs/DS18B20.pdf) que serán los encargados de registrar le temperatura ambiente del recinto. Posee un switch interno para reiniciar la configuración WiFi y un [sensor tamper](https://www.tecnoseguro.com/faqs/alarma/que-es-el-tamper-en-un-sistema-de-alarma) para evitar que se manipule el gabinete sin autorización. Además posee tres LEDs indicadores: energía (*POWER*), estado de la conexión WiFi (*ONLINE*) y estado del tamper del gabinete (*ALARMA*).\n\n![](./hardware/NodeIOT%20v1.png)\n*Diagrama esquemático.*\n\nRespecto a los sensores DS18B20, hay que tener en cuenta el valor de la resistencia pull-up que está conectada en el bus de datos (*pin DQ*). La siguiente tabla brinda una estimación del valor de acuerdo a la longitud del cable del bus. \n\n![](./docs/resistencia%20pull-up.png)\n\nAl iniciar el sistema se genera una red WiFi interna que permite ingresar las credenciales necesarias para poder conectarse a Internet, esto se logra gracias a la biblioteca [*WiFiManager*](#firmware). Una vez realizada la conexión a la red WiFi, se inicia el proceso para conectarse al broker MQTT, en este caso se utiliza un servidor público. \n\n![](./docs/Screenshot_20210203.png)\n\n*Conectandóse a la red WiFi.*\n\nUna vez iniciado, el sistema registra el estado del sensor tamper y de ambos sensores cada cierto período de tiempo y realiza la publicación en un *topic* especifico del broker mqtt.\n\n## Firmware\n\nEl firmware está escrito utilizando la API de Arduino, y para compilar necesita las siguientes dependencias:\n\n- [Arduino Library for Maxim Temperature Integrated Circuits](https://github.com/milesburton/Arduino-Temperature-Control-Library)\n- [OneWire](https://www.pjrc.com/teensy/td_libs_OneWire.html)\n- [PubSubClient](https://pubsubclient.knolleary.net/)\n- [WiFiManager](https://github.com/tzapu/WiFiManager/)\n\n## Recursos\n\n- [Alumnos de la Esmet desarrollan una novedosa técnica de cultivo sin suelo](https://www.0223.com.ar/nota/2022-9-7-9-42-0-alumnos-de-la-esmet-desarrollan-una-novedosa-tecnica-de-cultivo-sin-suelo)\n- [Alumnos de la ESMET continúan con el desarrollo de proyectos productivos](https://www.mardelplata.gob.ar/Noticias/alumnos-de-la-esmet-continuan-con-el-desarrollo-de-proyectos-productivos)\n- [DS18B20 sensor de temperatura para líquidos con Arduino](https://programarfacil.com/blog/arduino-blog/ds18b20-sensor-temperatura-arduino/)\n- [MaQiaTTo MQTT Broker](https://maqiatto.com/)\n\n## Licencia\n\nEste trabajo está protegido por la **Licencia MIT**. Puedes acceder a la versión original de la licencia (en inglés) a través del archivo [LICENSE](./LICENSE) o en línea en [The MIT License (MIT)](https://mit-license.org/). También proporcionamos una traducción no oficial desde [Wikipedia](https://es.m.wikipedia.org/wiki/Licencia_MIT#La_licencia):\n\nCopyright (c) 2024 Lucas Martín Treser\n\nPor la presente se concede permiso, libre de cargos, a cualquier persona que obtenga una copia de este software y de los archivos de documentación asociados (el \"Software\"), a utilizar el Software sin restricción, incluyendo sin limitación los derechos a usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar, y/o vender copias del Software, y a permitir a las personas a las que se les proporcione el Software a hacer lo mismo, sujeto a las siguientes condiciones:\n\nEl aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.\n\nEL SOFTWARE SE PROPORCIONA \"COMO ESTÁ\", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A GARANTÍAS DE COMERCIALIZACIÓN, IDONEIDAD PARA UN PROPÓSITO PARTICULAR E INCUMPLIMIENTO. EN NINGÚN CASO LOS AUTORES O PROPIETARIOS DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑOS U OTRAS RESPONSABILIDADES, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O CUALQUIER OTRO MOTIVO, DERIVADAS DE, FUERA DE O EN CONEXIÓN CON EL SOFTWARE O SU USO U OTRO TIPO DE ACCIONES EN EL SOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flmtreser%2Fesmet-iot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flmtreser%2Fesmet-iot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flmtreser%2Fesmet-iot/lists"}