') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); GitHub - Grolla05/Project_SolarPoints: An autonomous IoT solar-powered smart lighting system for low-infrastructure areas, featuring KiCad PCB design, ESP32 firmware, and Google Maps telemetry dashboard. 🌐⚡🏮 · GitHub
Skip to content

Latest commit

History

98 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

💡 Project Solar Points — Smart Lighting for Low-Infrastructure Areas

Light where there’s no infrastructure. Safety through simplicity and efficiency.

Status


🌙 O que é o Solar Points?

O Solar Points é um sistema de iluminação pública autônomo e inteligente pensado para locais com pouca ou nenhuma infraestrutura elétrica, como:

  • Paradas de ônibus
  • Vielas e ruas estreitas
  • Praças públicas
  • Regiões periféricas e isoladas
  • Áreas externas de residências

O objetivo permanece o mesmo: aumentar a segurança e o bem-estar comunitário com uma solução de baixo custo, sustentável e de fácil manutenção.


🔁 Evolução do projeto: de totalmente analógico para arquitetura digital

Inicialmente o projeto foi concebido como 100% analógico (apenas componentes discretos e circuitos analógicos). Com as necessidades de sensoriamento mais preciso, flexibilidade operacional e otimização de consumo, o projeto evoluiu para uma arquitetura digital/híbrida baseada em microcontrolador e periféricos.

Essa mudança preserva os princípios de simplicidade, robustez e baixo consumo, ao mesmo tempo que agrega capacidades importantes:

  • Leitura digital de sensores (intensidade de luz, distância/presença)
  • Decisões e temporizações programáveis via firmware leve
  • Gerenciamento inteligente de energia (controle de conversores DC-DC, modos de sono)
  • Comunicação entre módulos via I2C/GPIO quando necessário

A imagem anexada ao repositório ilustra o bloco funcional do novo design: microcontrolador central, sensores de luz e distância, gerenciamento de energia, baterias e conversores DC-DC.


⚙️ Principais funcionalidades (atualizado)

  • Ativação automática baseada em sensores de luminosidade e presença
  • Modos ajustáveis via firmware (p.ex. sensibilidades, temporização)
  • Operação autônoma com painéis solares e baterias
  • Gestão adequada de energia com conversores DC-DC e técnicas de baixo consumo
  • Projeto modular e replicável com possibilidade de atualização de firmware

🛠️ Tecnologias e componentes (atualizado)

  • Microcontrolador (unidade central de controle) — responsável por leitura de sensores e lógica de acionamento
  • Sensor de luminosidade (LDR/photodiode + ADC) — medida de intensidade luminosa
  • Sensor de distância/presença (ultrassom/IR) — detectar passagem ou presença
  • Conversores DC-DC (step-up/step-down) — fornecimento estável para LEDs e eletrônica
  • Gestão de energia / Power Management (monitoramento de bateria, carregamento solar)
  • Bateria recarregável e painéis solares
  • LEDs de potência para iluminação pública
  • Interfaces: GPIOs para sinalização/controle, I2C para sensores/power ICs quando aplicável

🔍 Diagrama funcional

O diagrama no repositório mostra os blocos principais interconectados:

  • 1 — Baterias (alimentação)
  • 4 — Power Management (monitoramento/carregador)
  • 11 — Conversão DC-DC (alimentação dos LEDs e eletrônica)
  • 2 — Microcontrolador (núcleo lógico)
  • 5 — Medição de intensidade luminosa (sensor)
  • 6 — Sensor de distância/presença
  • 3 — LED de status / power

O microcontrolador realiza a lógica central: lê sensores (GPIOs/ADC/I2C), decide quando ligar os LEDs e controla os conversores para otimizar consumo.


✨ Aplicações no mundo real

O Solar Points continua ideal para iluminar pontos sem infraestrutura elétrica: pontos de ônibus, caminhos em áreas rurais, entradas de condomínios e outras localidades onde uma solução autônoma e resiliente faz diferença.


👥 Autores

Desenvolvido por:

  • Felipe Grolla Freitas – Engenharia de Controle e Automação (PUC-Campinas)
  • Guilherme Oliveira Nogueira – Engenharia de Controle e Automação (PUC-Campinas)
  • Giovanna Lima Salvagnini – Engenharia de Controle e Automação (PUC-Campinas)
  • Henrique Spadaccia Chambó – Engenharia de Controle e Automação (PUC-Campinas)

🧠 "A simplicidade, aliada a decisões digitais pontuais, amplia o impacto das soluções de engenharia em contextos reais."

About

An autonomous IoT solar-powered smart lighting system for low-infrastructure areas, featuring KiCad PCB design, ESP32 firmware, and Google Maps telemetry dashboard. 🌐⚡🏮

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages