{"id":27864915,"url":"https://github.com/mooncos/roompi","last_synced_at":"2026-04-30T22:35:58.597Z","repository":{"id":51125065,"uuid":"351879107","full_name":"mooncos/RoomPi","owner":"mooncos","description":"RPi-based Smart Environmental Monitoring System for indoor areas with wireless connectivity and control","archived":false,"fork":false,"pushed_at":"2024-06-29T11:06:30.000Z","size":5933,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-25T19:40:38.526Z","etag":null,"topics":["c","co2-monitoring","docker","grafana","humidity-monitoring","influxdb","iot","light-monitoring","python","rpi","temperature-monitoring"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mooncos.png","metadata":{"files":{"readme":"README-ES.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,"zenodo":null}},"created_at":"2021-03-26T18:36:31.000Z","updated_at":"2024-06-29T11:06:27.000Z","dependencies_parsed_at":"2025-05-04T21:14:13.865Z","dependency_job_id":"ff0180fb-67f9-4ad7-983a-3674dd163acd","html_url":"https://github.com/mooncos/RoomPi","commit_stats":null,"previous_names":["mooncos/roompi"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mooncos/RoomPi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mooncos%2FRoomPi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mooncos%2FRoomPi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mooncos%2FRoomPi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mooncos%2FRoomPi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mooncos","download_url":"https://codeload.github.com/mooncos/RoomPi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mooncos%2FRoomPi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32479448,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["c","co2-monitoring","docker","grafana","humidity-monitoring","influxdb","iot","light-monitoring","python","rpi","temperature-monitoring"],"created_at":"2025-05-04T21:14:10.188Z","updated_at":"2026-04-30T22:35:54.458Z","avatar_url":"https://github.com/mooncos.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RoomPi\n\n\u003cp\u003e\n\u003cimg src=\"https://img.shields.io/badge/version-v7.0-success/\"/\u003e\n\n\u003ca href=\"https://github.com/margobra8/RoomPi/blob/main/LICENSE\"\u003e\n\u003cimg src=\"https://img.shields.io/github/license/margobra8/RoomPi\"/\u003e\n\u003c/a\u003e\n\n\u003ca href=\"https://github.com/margobra8/RoomPi/tree/main/docs\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/docs-.pdf-informational\"/\u003e\n\u003c/a\u003e\n\n\u003ca href=\"https://api.codetabs.com/v1/loc/?github=margobra8/RoomPi\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/dynamic/json?color=9dc\u0026label=lines%20of%20code\u0026query=%24%5B-1%3A%5D.linesOfCode\u0026url=https%3A%2F%2Fapi.codetabs.com%2Fv1%2Floc%2F%3Fgithub%3Dmargobra8%2FRoomPi\"/\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/margobra8/RoomPi\"\u003e\n\u003cimg src=\"https://img.shields.io/github/languages/top/margobra8/RoomPi?logo=github\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n\u003e Sistema de monitorización ambiental para interiores\n\u003e Proyecto Innovador SDG2 curso 2020-2021\n\n##### Autores: Victoria M. Gullón y Marcos Gómez\n\n## Introducción\n\nRoomPi es un sistema de monitorización de las condiciones ambientales en interiores. Está desarrollado sobre el hardware RaspberryPi 2B.\n\n![Imagen del Sistema RoomPi](https://drive.google.com/uc?id=1_iAIjsIHQ3ZLKhq2Y-fqx7Z6MbLN5vM4)\n\n## Sistema\n\nActualmente el sistema hace uso de los siguientes sensores y actuadores así como otros dispositivos:\n\n- Sensores\n  - DHT11 (temperatura y humedad)\n  - BH1750 (luxómetro)\n  - CCS811 (CO2 equivalente)\n- Actuadores\n  - HD44780 (pantalla de caracteres de dos líneas)\n  - SN74HC595 (shift register de 8 bits para tira de LEDs)\n  - Buzzer activo\n- Control\n  - 3 botones en la parte frontal\n- Adicional\n  - Regulador de tensión LM117\n\n## Compilación del ejecutable\n\n| :warning: _Antes de compilar_ es necesario tener todas las [librerías y dependencias](#dependencias) instaladas |\n| :--- |\n\nEl proyecto hace uso de las siguentes librerías:\n\n- wiringPi\n- pthread\n- rt\n- libcurl\n\nPara compilar es necesario hacerlo con las librerias especificadas, en Raspbian:\n\n```sh\ngcc src/*.c src/sensors/*.c src/actuators/*. src/libs/*.c src/controllers/*.c -lpthread -lrt -lwiringPi -lcurl -o \"roompi-bin\"\n```\n\nPara cross compile en Eclipse instalar la toolchain para Raspbian armhf y compilar desde Eclipse.\n\n## Subsistema web ([Docker](https://docs.docker.com/get-started/overview/))\n\nEl subsistema web está compuesto por los siguientes elementos:\n\n- BBDD [InfluxDB](https://docs.influxdata.com/influxdb/v2.0/)\n- Tablero [Grafana](https://grafana.com/tutorials/grafana-fundamentals/?pg=docs)\n- Gestor de BBDD [Chronograf](https://docs.influxdata.com/chronograf/v1.8/)\n- Aplicación de configuración en [Flask](https://flask.palletsprojects.com/en/2.0.x/)\n\nTodos estos sistemas funcionan como contenedores y están orquestrados por el [servicio Docker](https://docs.docker.com/get-started/overview/#the-docker-daemon).\n\nPara configurar y arrancar los proyectos es necesario tener [instalados Docker](https://docs.docker.com/engine/install/debian/#install-using-the-convenience-script) y [docker-compose](https://docs.docker.com/compose/install/) en el sistema host y editar el archivo `.env` con el usuario y contraseñas desados para la instancia de Grafana e InfluxDB.\n\nDespués, en la raíz del proyecto se debe ejecutar\n\n```sh\ndocker-compose up -d\n```\n\nPara detener todos los servicios se puede ejecutar lo siguiente (añadir `-v` al comando para también eliminar los [volúmenes persistentes](https://docs.docker.com/storage/volumes/) que se hubiesen creado)\n\n```sh\ndocker-compose down -d\n```\n\nLos contenedores están configurados para reiniciarse en caso de tener algún fallo e iniciarse automáticamente al arrancar el sistema.\n\n## Dependencias\n\nEn caso de querer trabajar sobre el código fuente del proyecto se deben tener en cuenta las siguientes dependencias utilizadas:\n\n### Compilador C\n\nEl compilador C debe compilar para la arquitectura arm32v7 que utiliza el chip BCM2836, para ello se necesitan instalar las siguientes dependencias en Linux\n\n```sh\nsudo apt-get install -y libc6-armel-cross libc6-dev-armel-cross binutils-arm-linux-gnueabi libncurses5-dev build-essential bison flex libssl-dev gcc-arm-linux-gnueabihf\n```\n\n### Librerías para el ejecutable en C\n\nPara instalar las librerías utilizadas en el proyecto es necesario compilar e instalar dichas dependencias. Las librerías necesitan tener `git` para descargarse.\n\n- wiringPi\n\n```sh\ngit clone https://github.com/WiringPi/WiringPi\ncd WiringPi\n./build\n```\n\n- libcurl\n\n```sh\nsudo apt-get install -y autotools-dev autoconf libtool\ngit clone https://github.com/curl/curl\ncd curl/\nautoreconf -fi\n./configure --without-ssl\nsudo make install\n```\n\n### Librerías para la app web de ajuste con Flask en Python\n\nPara desarrollar sobre la aplicación web personalizada para ajustar los parámetros del sistema se necesita instalar las siguientes dependencias\n\n- Python 3.8\n\n```sh\nsudo apt-get install -y checkinstall libreadline-gplv2-dev libncursesw5-dev libssl-dev build-essential\ncd /opt\nsudo wget https://python.org/ftp/python/3.8.7/Python-3.8.7.tgz\nsudo tar xzf Python-3.8.7.tgz\ncd Python-3.8.7\nsudo ./configure --enable-optimizations\nsudo make altinstall # para evitar reemplazar el binario Python del sistema\npython3.8 -V\n```\n\nPara el desarrollo web se recomienda el uso de un entorno virtual de Python. El gestor de paquetes de Python pip se instala automáticamente en el entorno virtual. En la carpeta `flask-config-roompi` del proyecto web:\n\n- venv\n\n```sh\npython3.8 -m venv venv\nsource venv/bin/activate\n```\n\n- Flask y demás dependencias\n\n```sh\npip install -r requirements.txt\n```\n\nLa aplicación web utiliza [jQuery](https://api.jquery.com/) y [Bootstrap](https://getbootstrap.com/docs/5.0/getting-started/introduction/) para la interfaz de usuario.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmooncos%2Froompi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmooncos%2Froompi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmooncos%2Froompi/lists"}