Latest commit

History

46 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LED-control-API

Este proyecto permite controlar los patrones de luces LED mediante Arduino, con una interfaz de usuario desarrollada en Raspberry Pi que facilita su gestión desde distintos dispositivos. Además, cuenta con un botón físico para cambiar entre patrones o efectos, y una API que permite tanto modificar los patrones como ajustar su velocidad.

Video de demostración: Link


Objetivos del Proyecto

  • Desarrollar un sistema para controlar patrones de luces LED de forma remota.
  • Implementar una API en Raspberry Pi para gestionar los efectos y la velocidad de los LEDs.
  • Crear una interfaz web intuitiva para el control desde distintos dispositivos.
  • Permitir el cambio manual de patrones mediante un botón físico.
  • Asegurar una integración eficiente entre Arduino y Raspberry Pi.

Objetivos de Aprendizaje

  • Aprender a gestionar un proyecto desde cero.
  • Iniciar con el desarrollo backend creando una API.
  • Combinar electrónica, programación y software para aplicaciones en domótica.
  • Entender la conexión entre frontend y backend.
  • Aprender a comunicar Arduino con Raspberry Pi.

Estructuras y carpetas

/Led-control-API
/design -> Diseños, diagramas y planificación del proyecto
/arduino -> Código para el Arduino
/raspberry_pi -> Código para la Raspberry Pi (servidor API y web)
/web -> Frontend (interfaz web)
/api -> Backend y servidor API en Python
/scripts -> Scripts de Python para pruebas y testeo

Requisitos (software)

  • Arduino IDE para cargar el código en el microcontrolador.
  • Python 3 y pip para ejecutar el servidor y la API en la Raspberry Pi.
  • Misma conexión local (LAN) para comunicar los dispositivos.

Materiales

  • Microcontroladores:
    • Arduino UNO R3
    • Raspberry Pi 4 Model B
  • Luces y resistencias:
    • 6 LEDs
    • 6 resistencias de 220 Ω
    • 3 resistencias de 10 kΩ
  • Conexiones:
    • 12 cables macho-macho
    • 3 cables macho-hembra
  • Otros:
    • Protoboard de 830 puntos
    • Botón puente doble H

Conexión Física

Este diagrama muestra cómo conectar los 6 LEDs, el botón, y la Raspberry Pi al Arduino para asegurar un funcionamiento correcto.

Ejecución del Proyecto

  1. Configurar el Arduino:

    • Abrir el archivo app.ino en el Arduino IDE.
    • Conectar el Arduino a la computadora y cargar el código.
  2. Configurar la Raspberry Pi:

    • Clonar el repositorio en Raspberry Pi.
    • Ejecutar setup.sh para configurar carpetas e instalar dependencias.
    • Iniciar el servidor web y API ejecutando start.sh

Más información

Para detalles más específicos sobre la configuración de Arduino, consulta el archivo arduino/README.md.
Para detalles sobre la configuración de la Raspberry Pi y la API, consulta el archivo raspberry_pi/README.md.

Este documento contiene la planificación completa del proyecto, incluyendo los objetivos y los pasos a seguir durante el desarrollo.

About

💡 Control de LEDs con API

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

46 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LED-control-API

Este proyecto permite controlar los patrones de luces LED mediante Arduino, con una interfaz de usuario desarrollada en Raspberry Pi que facilita su gestión desde distintos dispositivos. Además, cuenta con un botón físico para cambiar entre patrones o efectos, y una API que permite tanto modificar los patrones como ajustar su velocidad.

Video de demostración: Link


Objetivos del Proyecto

  • Desarrollar un sistema para controlar patrones de luces LED de forma remota.
  • Implementar una API en Raspberry Pi para gestionar los efectos y la velocidad de los LEDs.
  • Crear una interfaz web intuitiva para el control desde distintos dispositivos.
  • Permitir el cambio manual de patrones mediante un botón físico.
  • Asegurar una integración eficiente entre Arduino y Raspberry Pi.

Objetivos de Aprendizaje

  • Aprender a gestionar un proyecto desde cero.
  • Iniciar con el desarrollo backend creando una API.
  • Combinar electrónica, programación y software para aplicaciones en domótica.
  • Entender la conexión entre frontend y backend.
  • Aprender a comunicar Arduino con Raspberry Pi.

Estructuras y carpetas

/Led-control-API
/design -> Diseños, diagramas y planificación del proyecto
/arduino -> Código para el Arduino
/raspberry_pi -> Código para la Raspberry Pi (servidor API y web)
/web -> Frontend (interfaz web)
/api -> Backend y servidor API en Python
/scripts -> Scripts de Python para pruebas y testeo

Requisitos (software)

  • Arduino IDE para cargar el código en el microcontrolador.
  • Python 3 y pip para ejecutar el servidor y la API en la Raspberry Pi.
  • Misma conexión local (LAN) para comunicar los dispositivos.

Materiales

  • Microcontroladores:
    • Arduino UNO R3
    • Raspberry Pi 4 Model B
  • Luces y resistencias:
    • 6 LEDs
    • 6 resistencias de 220 Ω
    • 3 resistencias de 10 kΩ
  • Conexiones:
    • 12 cables macho-macho
    • 3 cables macho-hembra
  • Otros:
    • Protoboard de 830 puntos
    • Botón puente doble H

Conexión Física

Este diagrama muestra cómo conectar los 6 LEDs, el botón, y la Raspberry Pi al Arduino para asegurar un funcionamiento correcto.

Ejecución del Proyecto

  1. Configurar el Arduino:

    • Abrir el archivo app.ino en el Arduino IDE.
    • Conectar el Arduino a la computadora y cargar el código.
  2. Configurar la Raspberry Pi:

    • Clonar el repositorio en Raspberry Pi.
    • Ejecutar setup.sh para configurar carpetas e instalar dependencias.
    • Iniciar el servidor web y API ejecutando start.sh

Más información

Para detalles más específicos sobre la configuración de Arduino, consulta el archivo arduino/README.md.
Para detalles sobre la configuración de la Raspberry Pi y la API, consulta el archivo raspberry_pi/README.md.

Este documento contiene la planificación completa del proyecto, incluyendo los objetivos y los pasos a seguir durante el desarrollo.

About

💡 Control de LEDs con API

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

46 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LED-control-API

Este proyecto permite controlar los patrones de luces LED mediante Arduino, con una interfaz de usuario desarrollada en Raspberry Pi que facilita su gestión desde distintos dispositivos. Además, cuenta con un botón físico para cambiar entre patrones o efectos, y una API que permite tanto modificar los patrones como ajustar su velocidad.

Video de demostración: Link


Objetivos del Proyecto

  • Desarrollar un sistema para controlar patrones de luces LED de forma remota.
  • Implementar una API en Raspberry Pi para gestionar los efectos y la velocidad de los LEDs.
  • Crear una interfaz web intuitiva para el control desde distintos dispositivos.
  • Permitir el cambio manual de patrones mediante un botón físico.
  • Asegurar una integración eficiente entre Arduino y Raspberry Pi.

Objetivos de Aprendizaje

  • Aprender a gestionar un proyecto desde cero.
  • Iniciar con el desarrollo backend creando una API.
  • Combinar electrónica, programación y software para aplicaciones en domótica.
  • Entender la conexión entre frontend y backend.
  • Aprender a comunicar Arduino con Raspberry Pi.

Estructuras y carpetas

/Led-control-API
/design -> Diseños, diagramas y planificación del proyecto
/arduino -> Código para el Arduino
/raspberry_pi -> Código para la Raspberry Pi (servidor API y web)
/web -> Frontend (interfaz web)
/api -> Backend y servidor API en Python
/scripts -> Scripts de Python para pruebas y testeo

Requisitos (software)

  • Arduino IDE para cargar el código en el microcontrolador.
  • Python 3 y pip para ejecutar el servidor y la API en la Raspberry Pi.
  • Misma conexión local (LAN) para comunicar los dispositivos.

Materiales

  • Microcontroladores:
    • Arduino UNO R3
    • Raspberry Pi 4 Model B
  • Luces y resistencias:
    • 6 LEDs
    • 6 resistencias de 220 Ω
    • 3 resistencias de 10 kΩ
  • Conexiones:
    • 12 cables macho-macho
    • 3 cables macho-hembra
  • Otros:
    • Protoboard de 830 puntos
    • Botón puente doble H

Conexión Física

Este diagrama muestra cómo conectar los 6 LEDs, el botón, y la Raspberry Pi al Arduino para asegurar un funcionamiento correcto.

Ejecución del Proyecto

  1. Configurar el Arduino:

    • Abrir el archivo app.ino en el Arduino IDE.
    • Conectar el Arduino a la computadora y cargar el código.
  2. Configurar la Raspberry Pi:

    • Clonar el repositorio en Raspberry Pi.
    • Ejecutar setup.sh para configurar carpetas e instalar dependencias.
    • Iniciar el servidor web y API ejecutando start.sh

Más información

Para detalles más específicos sobre la configuración de Arduino, consulta el archivo arduino/README.md.
Para detalles sobre la configuración de la Raspberry Pi y la API, consulta el archivo raspberry_pi/README.md.

Este documento contiene la planificación completa del proyecto, incluyendo los objetivos y los pasos a seguir durante el desarrollo.

About

💡 Control de LEDs con API

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

46 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LED-control-API

Este proyecto permite controlar los patrones de luces LED mediante Arduino, con una interfaz de usuario desarrollada en Raspberry Pi que facilita su gestión desde distintos dispositivos. Además, cuenta con un botón físico para cambiar entre patrones o efectos, y una API que permite tanto modificar los patrones como ajustar su velocidad.

Video de demostración: Link


Objetivos del Proyecto

  • Desarrollar un sistema para controlar patrones de luces LED de forma remota.
  • Implementar una API en Raspberry Pi para gestionar los efectos y la velocidad de los LEDs.
  • Crear una interfaz web intuitiva para el control desde distintos dispositivos.
  • Permitir el cambio manual de patrones mediante un botón físico.
  • Asegurar una integración eficiente entre Arduino y Raspberry Pi.

Objetivos de Aprendizaje

  • Aprender a gestionar un proyecto desde cero.
  • Iniciar con el desarrollo backend creando una API.
  • Combinar electrónica, programación y software para aplicaciones en domótica.
  • Entender la conexión entre frontend y backend.
  • Aprender a comunicar Arduino con Raspberry Pi.

Estructuras y carpetas

/Led-control-API
/design -> Diseños, diagramas y planificación del proyecto
/arduino -> Código para el Arduino
/raspberry_pi -> Código para la Raspberry Pi (servidor API y web)
/web -> Frontend (interfaz web)
/api -> Backend y servidor API en Python
/scripts -> Scripts de Python para pruebas y testeo

Requisitos (software)

  • Arduino IDE para cargar el código en el microcontrolador.
  • Python 3 y pip para ejecutar el servidor y la API en la Raspberry Pi.
  • Misma conexión local (LAN) para comunicar los dispositivos.

Materiales

  • Microcontroladores:
    • Arduino UNO R3
    • Raspberry Pi 4 Model B
  • Luces y resistencias:
    • 6 LEDs
    • 6 resistencias de 220 Ω
    • 3 resistencias de 10 kΩ
  • Conexiones:
    • 12 cables macho-macho
    • 3 cables macho-hembra
  • Otros:
    • Protoboard de 830 puntos
    • Botón puente doble H

Conexión Física

Este diagrama muestra cómo conectar los 6 LEDs, el botón, y la Raspberry Pi al Arduino para asegurar un funcionamiento correcto.

Ejecución del Proyecto

  1. Configurar el Arduino:

    • Abrir el archivo app.ino en el Arduino IDE.
    • Conectar el Arduino a la computadora y cargar el código.
  2. Configurar la Raspberry Pi:

    • Clonar el repositorio en Raspberry Pi.
    • Ejecutar setup.sh para configurar carpetas e instalar dependencias.
    • Iniciar el servidor web y API ejecutando start.sh

Más información

Para detalles más específicos sobre la configuración de Arduino, consulta el archivo arduino/README.md.
Para detalles sobre la configuración de la Raspberry Pi y la API, consulta el archivo raspberry_pi/README.md.

Este documento contiene la planificación completa del proyecto, incluyendo los objetivos y los pasos a seguir durante el desarrollo.

About

💡 Control de LEDs con API

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

46 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LED-control-API

Este proyecto permite controlar los patrones de luces LED mediante Arduino, con una interfaz de usuario desarrollada en Raspberry Pi que facilita su gestión desde distintos dispositivos. Además, cuenta con un botón físico para cambiar entre patrones o efectos, y una API que permite tanto modificar los patrones como ajustar su velocidad.

Video de demostración: Link


Objetivos del Proyecto

  • Desarrollar un sistema para controlar patrones de luces LED de forma remota.
  • Implementar una API en Raspberry Pi para gestionar los efectos y la velocidad de los LEDs.
  • Crear una interfaz web intuitiva para el control desde distintos dispositivos.
  • Permitir el cambio manual de patrones mediante un botón físico.
  • Asegurar una integración eficiente entre Arduino y Raspberry Pi.

Objetivos de Aprendizaje

  • Aprender a gestionar un proyecto desde cero.
  • Iniciar con el desarrollo backend creando una API.
  • Combinar electrónica, programación y software para aplicaciones en domótica.
  • Entender la conexión entre frontend y backend.
  • Aprender a comunicar Arduino con Raspberry Pi.

Estructuras y carpetas

/Led-control-API
/design -> Diseños, diagramas y planificación del proyecto
/arduino -> Código para el Arduino
/raspberry_pi -> Código para la Raspberry Pi (servidor API y web)
/web -> Frontend (interfaz web)
/api -> Backend y servidor API en Python
/scripts -> Scripts de Python para pruebas y testeo

Requisitos (software)

  • Arduino IDE para cargar el código en el microcontrolador.
  • Python 3 y pip para ejecutar el servidor y la API en la Raspberry Pi.
  • Misma conexión local (LAN) para comunicar los dispositivos.

Materiales

  • Microcontroladores:
    • Arduino UNO R3
    • Raspberry Pi 4 Model B
  • Luces y resistencias:
    • 6 LEDs
    • 6 resistencias de 220 Ω
    • 3 resistencias de 10 kΩ
  • Conexiones:
    • 12 cables macho-macho
    • 3 cables macho-hembra
  • Otros:
    • Protoboard de 830 puntos
    • Botón puente doble H

Conexión Física

Este diagrama muestra cómo conectar los 6 LEDs, el botón, y la Raspberry Pi al Arduino para asegurar un funcionamiento correcto.

Ejecución del Proyecto

  1. Configurar el Arduino:

    • Abrir el archivo app.ino en el Arduino IDE.
    • Conectar el Arduino a la computadora y cargar el código.
  2. Configurar la Raspberry Pi:

    • Clonar el repositorio en Raspberry Pi.
    • Ejecutar setup.sh para configurar carpetas e instalar dependencias.
    • Iniciar el servidor web y API ejecutando start.sh

Más información

Para detalles más específicos sobre la configuración de Arduino, consulta el archivo arduino/README.md.
Para detalles sobre la configuración de la Raspberry Pi y la API, consulta el archivo raspberry_pi/README.md.

Este documento contiene la planificación completa del proyecto, incluyendo los objetivos y los pasos a seguir durante el desarrollo.

About

💡 Control de LEDs con API

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

46 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LED-control-API

Este proyecto permite controlar los patrones de luces LED mediante Arduino, con una interfaz de usuario desarrollada en Raspberry Pi que facilita su gestión desde distintos dispositivos. Además, cuenta con un botón físico para cambiar entre patrones o efectos, y una API que permite tanto modificar los patrones como ajustar su velocidad.

Video de demostración: Link


Objetivos del Proyecto

  • Desarrollar un sistema para controlar patrones de luces LED de forma remota.
  • Implementar una API en Raspberry Pi para gestionar los efectos y la velocidad de los LEDs.
  • Crear una interfaz web intuitiva para el control desde distintos dispositivos.
  • Permitir el cambio manual de patrones mediante un botón físico.
  • Asegurar una integración eficiente entre Arduino y Raspberry Pi.

Objetivos de Aprendizaje

  • Aprender a gestionar un proyecto desde cero.
  • Iniciar con el desarrollo backend creando una API.
  • Combinar electrónica, programación y software para aplicaciones en domótica.
  • Entender la conexión entre frontend y backend.
  • Aprender a comunicar Arduino con Raspberry Pi.

Estructuras y carpetas

/Led-control-API
/design -> Diseños, diagramas y planificación del proyecto
/arduino -> Código para el Arduino
/raspberry_pi -> Código para la Raspberry Pi (servidor API y web)
/web -> Frontend (interfaz web)
/api -> Backend y servidor API en Python
/scripts -> Scripts de Python para pruebas y testeo

Requisitos (software)

  • Arduino IDE para cargar el código en el microcontrolador.
  • Python 3 y pip para ejecutar el servidor y la API en la Raspberry Pi.
  • Misma conexión local (LAN) para comunicar los dispositivos.

Materiales

  • Microcontroladores:
    • Arduino UNO R3
    • Raspberry Pi 4 Model B
  • Luces y resistencias:
    • 6 LEDs
    • 6 resistencias de 220 Ω
    • 3 resistencias de 10 kΩ
  • Conexiones:
    • 12 cables macho-macho
    • 3 cables macho-hembra
  • Otros:
    • Protoboard de 830 puntos
    • Botón puente doble H

Conexión Física

Este diagrama muestra cómo conectar los 6 LEDs, el botón, y la Raspberry Pi al Arduino para asegurar un funcionamiento correcto.

Ejecución del Proyecto

  1. Configurar el Arduino:

    • Abrir el archivo app.ino en el Arduino IDE.
    • Conectar el Arduino a la computadora y cargar el código.
  2. Configurar la Raspberry Pi:

    • Clonar el repositorio en Raspberry Pi.
    • Ejecutar setup.sh para configurar carpetas e instalar dependencias.
    • Iniciar el servidor web y API ejecutando start.sh

Más información

Para detalles más específicos sobre la configuración de Arduino, consulta el archivo arduino/README.md.
Para detalles sobre la configuración de la Raspberry Pi y la API, consulta el archivo raspberry_pi/README.md.

Este documento contiene la planificación completa del proyecto, incluyendo los objetivos y los pasos a seguir durante el desarrollo.

About

💡 Control de LEDs con API

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

46 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LED-control-API

Este proyecto permite controlar los patrones de luces LED mediante Arduino, con una interfaz de usuario desarrollada en Raspberry Pi que facilita su gestión desde distintos dispositivos. Además, cuenta con un botón físico para cambiar entre patrones o efectos, y una API que permite tanto modificar los patrones como ajustar su velocidad.

Video de demostración: Link


Objetivos del Proyecto

  • Desarrollar un sistema para controlar patrones de luces LED de forma remota.
  • Implementar una API en Raspberry Pi para gestionar los efectos y la velocidad de los LEDs.
  • Crear una interfaz web intuitiva para el control desde distintos dispositivos.
  • Permitir el cambio manual de patrones mediante un botón físico.
  • Asegurar una integración eficiente entre Arduino y Raspberry Pi.

Objetivos de Aprendizaje

  • Aprender a gestionar un proyecto desde cero.
  • Iniciar con el desarrollo backend creando una API.
  • Combinar electrónica, programación y software para aplicaciones en domótica.
  • Entender la conexión entre frontend y backend.
  • Aprender a comunicar Arduino con Raspberry Pi.

Estructuras y carpetas

/Led-control-API
/design -> Diseños, diagramas y planificación del proyecto
/arduino -> Código para el Arduino
/raspberry_pi -> Código para la Raspberry Pi (servidor API y web)
/web -> Frontend (interfaz web)
/api -> Backend y servidor API en Python
/scripts -> Scripts de Python para pruebas y testeo

Requisitos (software)

  • Arduino IDE para cargar el código en el microcontrolador.
  • Python 3 y pip para ejecutar el servidor y la API en la Raspberry Pi.
  • Misma conexión local (LAN) para comunicar los dispositivos.

Materiales

  • Microcontroladores:
    • Arduino UNO R3
    • Raspberry Pi 4 Model B
  • Luces y resistencias:
    • 6 LEDs
    • 6 resistencias de 220 Ω
    • 3 resistencias de 10 kΩ
  • Conexiones:
    • 12 cables macho-macho
    • 3 cables macho-hembra
  • Otros:
    • Protoboard de 830 puntos
    • Botón puente doble H

Conexión Física

Este diagrama muestra cómo conectar los 6 LEDs, el botón, y la Raspberry Pi al Arduino para asegurar un funcionamiento correcto.

Ejecución del Proyecto

  1. Configurar el Arduino:

    • Abrir el archivo app.ino en el Arduino IDE.
    • Conectar el Arduino a la computadora y cargar el código.
  2. Configurar la Raspberry Pi:

    • Clonar el repositorio en Raspberry Pi.
    • Ejecutar setup.sh para configurar carpetas e instalar dependencias.
    • Iniciar el servidor web y API ejecutando start.sh

Más información

Para detalles más específicos sobre la configuración de Arduino, consulta el archivo arduino/README.md.
Para detalles sobre la configuración de la Raspberry Pi y la API, consulta el archivo raspberry_pi/README.md.

Este documento contiene la planificación completa del proyecto, incluyendo los objetivos y los pasos a seguir durante el desarrollo.

About

💡 Control de LEDs con API

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

46 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LED-control-API

Este proyecto permite controlar los patrones de luces LED mediante Arduino, con una interfaz de usuario desarrollada en Raspberry Pi que facilita su gestión desde distintos dispositivos. Además, cuenta con un botón físico para cambiar entre patrones o efectos, y una API que permite tanto modificar los patrones como ajustar su velocidad.

Video de demostración: Link


Objetivos del Proyecto

  • Desarrollar un sistema para controlar patrones de luces LED de forma remota.
  • Implementar una API en Raspberry Pi para gestionar los efectos y la velocidad de los LEDs.
  • Crear una interfaz web intuitiva para el control desde distintos dispositivos.
  • Permitir el cambio manual de patrones mediante un botón físico.
  • Asegurar una integración eficiente entre Arduino y Raspberry Pi.

Objetivos de Aprendizaje

  • Aprender a gestionar un proyecto desde cero.
  • Iniciar con el desarrollo backend creando una API.
  • Combinar electrónica, programación y software para aplicaciones en domótica.
  • Entender la conexión entre frontend y backend.
  • Aprender a comunicar Arduino con Raspberry Pi.

Estructuras y carpetas

/Led-control-API
/design -> Diseños, diagramas y planificación del proyecto
/arduino -> Código para el Arduino
/raspberry_pi -> Código para la Raspberry Pi (servidor API y web)
/web -> Frontend (interfaz web)
/api -> Backend y servidor API en Python
/scripts -> Scripts de Python para pruebas y testeo

Requisitos (software)

  • Arduino IDE para cargar el código en el microcontrolador.
  • Python 3 y pip para ejecutar el servidor y la API en la Raspberry Pi.
  • Misma conexión local (LAN) para comunicar los dispositivos.

Materiales

  • Microcontroladores:
    • Arduino UNO R3
    • Raspberry Pi 4 Model B
  • Luces y resistencias:
    • 6 LEDs
    • 6 resistencias de 220 Ω
    • 3 resistencias de 10 kΩ
  • Conexiones:
    • 12 cables macho-macho
    • 3 cables macho-hembra
  • Otros:
    • Protoboard de 830 puntos
    • Botón puente doble H

Conexión Física

Este diagrama muestra cómo conectar los 6 LEDs, el botón, y la Raspberry Pi al Arduino para asegurar un funcionamiento correcto.

Ejecución del Proyecto

  1. Configurar el Arduino:

    • Abrir el archivo app.ino en el Arduino IDE.
    • Conectar el Arduino a la computadora y cargar el código.
  2. Configurar la Raspberry Pi:

    • Clonar el repositorio en Raspberry Pi.
    • Ejecutar setup.sh para configurar carpetas e instalar dependencias.
    • Iniciar el servidor web y API ejecutando start.sh

Más información

Para detalles más específicos sobre la configuración de Arduino, consulta el archivo arduino/README.md.
Para detalles sobre la configuración de la Raspberry Pi y la API, consulta el archivo raspberry_pi/README.md.

Este documento contiene la planificación completa del proyecto, incluyendo los objetivos y los pasos a seguir durante el desarrollo.

About

💡 Control de LEDs con API

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages