{"id":18662617,"url":"https://github.com/ryanbritodev/blean","last_synced_at":"2026-04-02T03:09:16.863Z","repository":{"id":242280332,"uuid":"809124666","full_name":"ryanbritodev/blean","owner":"ryanbritodev","description":"Repositório para a plataforma \"Blean\", desenvolvida para a 1ª Global Solution na FIAP, com o tema \"Blue Future\".","archived":false,"fork":false,"pushed_at":"2024-06-08T00:32:18.000Z","size":8991,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T16:19:37.750Z","etag":null,"topics":["arduino","computer-vision","css3","google-teachable-machine","html5","ia","javascript","keras","microplastics","mongodb","python","tensorflow"],"latest_commit_sha":null,"homepage":"https://ryanbritodev.github.io/blean/frontend/src/pages/home/index.html","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ryanbritodev.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,"zenodo":null}},"created_at":"2024-06-01T18:55:59.000Z","updated_at":"2024-10-29T20:40:02.000Z","dependencies_parsed_at":"2025-05-18T04:13:26.359Z","dependency_job_id":"dbecff15-b724-4541-954d-b4558460d817","html_url":"https://github.com/ryanbritodev/blean","commit_stats":null,"previous_names":["ryanbritodev/gs-bluefuture","ryanbritodev/blean"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ryanbritodev/blean","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanbritodev%2Fblean","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanbritodev%2Fblean/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanbritodev%2Fblean/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanbritodev%2Fblean/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ryanbritodev","download_url":"https://codeload.github.com/ryanbritodev/blean/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanbritodev%2Fblean/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31294883,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T01:43:37.129Z","status":"online","status_checked_at":"2026-04-02T02:00:08.535Z","response_time":89,"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":["arduino","computer-vision","css3","google-teachable-machine","html5","ia","javascript","keras","microplastics","mongodb","python","tensorflow"],"created_at":"2024-11-07T08:13:17.464Z","updated_at":"2026-04-02T03:09:16.818Z","avatar_url":"https://github.com/ryanbritodev.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BLEAN: Sistema de Detecção de Microplásticos na Água\n**AUTORES:**\n- Diogo Leles Franciulli RM558487\n- Felipe Sousa de Oliveira RM559085\n- Ryan Brito Pereira Ramos RM554497\n\n## Contexto e Motivação\n\nO aumento da contaminação por **microplásticos** em peixes e humanos representa uma ameaça significativa para a **biodiversidade** e pode ter consequências adversas para a saúde humana quando os microplásticos entram na **cadeia alimentar**. Este projeto oferece uma solução inovadora e de baixo custo para **monitorar a presença de microplásticos na água**, permitindo uma ação rápida para mitigar os efeitos nocivos desses poluentes.\n\n## Nosso projeto\n\nO sistema baseia-se na utilização do **[Google Teachable Machine](https://teachablemachine.withgoogle.com/)** para o treinamento de um modelo capaz de identificar microplásticos em imagens capturadas por uma câmera. **O Google Teachable Machine** é uma ferramenta desenvolvida pelo Google que simplifica o processo de treinamento de modelos de **machine learning**, especialmente para tarefas de classificação de imagens. Além disso, usamos uma API em NodeJS (criada por nós), para que ocorra o trânsito das informações adquiridas após o processo do Arduino + IA para localizar e quantificar os microplásticos (a API pode ser encontrada no diretório _**/backend**_, considerando o caminho root), esses dados são salvos em um banco NoSQL (MongoDB), e assim tanto o Website (Front-End), quanto o Arduino (com o Python) conseguem usar a API para salvar e resgatar os dados.\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/7/74/Microplastic.jpg\" alt=\"Imagem de Microplásticos na Água\" width=\"50%\"\u003e \u003cimg src=\"https://i.ytimg.com/an/T2qQGqZxkD0/0f04f0b2-a39a-4621-8bb5-1f5f7bf9bf10_mq.jpg?v=5dc445a2\" alt=\"Imagem de Microplásticos na Água\" width=\"32.9%\"\u003e\n\u003c/div\u003e\n\n### O treinamento do modelo no **Google Teachable Machine** envolve os seguintes componentes:\n\n- **Keras:** O treinamento do modelo é realizado usando **Keras**, uma biblioteca open source para redes neurais em Python. Ela fornece uma interface amigável e intuitiva para construir e treinar modelos de aprendizado de máquina, incluindo **redes neurais convolucionais (CNNs)**, que são particularmente úteis para tarefas de processamento de imagens.\n\n- **Python:** O código em Python é usado para interagir com o modelo treinado e processar os dados de entrada. Isso pode incluir o **pré-processamento de imagens** antes de passá-las para o modelo para classificação, bem como o **tratamento dos resultados** de saída do modelo.\n- **TensorFlow:** TensorFlow é usado como o **backend** para o Keras, fornecendo as funcionalidades de baixo nível necessárias para executar operações numéricas eficientes em tensores, que são estruturas de dados fundamentais para representar dados em aprendizado de máquina.\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/keras/keras-original.svg\" width=\"10%\" alt=\"Logo Keras\"\u003e \u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/python/python-original.svg\" width=\"10%\" alt=\"Logo Python\"\u003e \u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/tensorflow/tensorflow-original.svg\" width=\"10%\" alt=\"Logo Tensorflow\"\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\nO **Google Teachable Machine** simplifica todo esse processo, permitindo que usuários com pouca ou nenhuma experiência em aprendizado de máquina criem e treinem modelos de classificação de imagem de forma rápida e intuitiva. A detecção é realizada em tempo real, permitindo a análise rápida e eficiente da presença de microplásticos nas amostras de água.\n\n## Funcionamento do Sistema\n\nO sistema de **detecção de microplásticos** na água se baseia em alguns componentes principais:\n\n- **Software:**\n  - **Modelo de Visão Computacional:** Modelo no formato **.h5** (Hierarchical Data Format) treinado com o Google Teachable Machine para identificar microplásticos em imagens capturadas por uma câmera.\n- **Hardware:**\n  - **Computador:** Processa as imagens capturadas pela câmera e executa o modelo de detecção de microplásticos.\n  - **Microcontrolador Arduino Uno R3:** Controla LEDs e display LCD com base nos resultados da detecção.\n  - **Display LCD:** Exibe o resultado da análise.\n  - **LEDs:** Indicam a presença de microplásticos (verde, amarelo, vermelho).\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTA-RyG4DlcRjYky84Phm6JgFlbxKVU22V3Kg\u0026s\" width=\"50%\" alt=\"Arduino\"\u003e\n\u003c/div\u003e\n\n## Implementação do nosso Projeto (Passo a Passo)\n\n### É necessário fazer algo em relação a API?\n\n- A API está hospedada e funcionando, os caminhos da aplicação estão conectadas na API hospedada, logo, o trabalho máximo em relação a isso seria esperar a API ligar (50 segundos), em caso de standby do server em que ela está hospedada\n- Porém, caso queira rodar a API localmente:\n  - Entre na pasta _**/backend**_ e rode o comando \"npm install\" para instalar os pacotes do package.json (para rodar o comando, tenha o **npm** instalado em seu computador, faça o download pelo site do [Node](https://nodejs.org/en));\n  - Após instalar os pacotes, use \"npm run dev\" para deixar a API rodando localmente na porta 3001, agora já é possível usar a API localmente, testando com Postman, ou colocando a URL local onde você quiser testar (frontend ou arduino/python).\n\n### Passo a Passo para Instalar o TensorFlow com Suporte a GPU no Windows (em 2024)\n\n### Pré-requisitos:\n\n- **GPU compatível:** Sua placa gráfica deve ter uma capacidade de computação superior a 3.5 e suportar CUDA 11.2. Você pode verificar isso usando o comando **_nvidia-smi_** no prompt de comando. Verifique se a capacidade de computação é superior a 3.5 e se a versão do CUDA é compatível.\n- **Sistema operacional:** Windows 11\n- **Python:** Versão 3.7.1 a 3.9.1\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://s3.amazonaws.com/cms.ipressroom.com/219/files/20149/544a0d86f6091d6699000060_NVLogo_2D/NVLogo_2D_thmb.jpg\" width=\"60%\" alt=\"Logo NVIDIA\"\u003e\n\u003c/div\u003e\n  \n## Instale os drivers NVIDIA:\n- Baixe os drivers mais recentes para sua placa gráfica no site da [NVIDIA](https://www.nvidia.com/download/index.aspx) e siga as seguintes instruções:\n- Baixe o **CUDA Toolkit 11.2** para **Windows** no site da [NVIDIA](https://developer.nvidia.com/cuda-downloads)\n- Baixe o **TensorRT 8.2 GA Update 1** no site da [NVIDIA](https://developer.nvidia.com/tensorrt)\n- Baixe e instale o **C++ Redistributable para Visual Studio 2019** no site da [Microsoft](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170)\n- Baixe e instale o **Python 3.9.1** no site do [Python](https://www.python.org/downloads/release/python-390/)\n\n## Configure as variáveis de ambiente:\n\n- Adicione os diretórios do **CUDA**, **TensorRT** e **Python** ao %path% do seu sistema.\n- Consulte a documentação do **CUDA** e do **TensorRT** para obter instruções sobre como configurar as variáveis de ambiente.\n\n## Criando um ambiente virtual:\n\n- Crie um ambiente virtual usando o comando **_virtualenv_** no prompt de comando.\n- Ative o ambiente virtual usando o comando **_activate_**.\n- Instale o TensorFlow com suporte a **GPU** usando o comando **_pip install tensorflow-gpu==2.10_**\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/41811634/108357975-e689f500-71cc-11eb-9df2-fea776366202.png\" width=\"60%\" alt=\"Logo NVIDIA\"\u003e\n\u003c/div\u003e\n\n## Referências:\n\n- **Vídeo de instrução:** [How to install TensorFlow with GPU support in 2024? | ONLY method that works | Techy Man's Solutions](https://www.youtube.com/watch?v=trLpdJnsxco\u0026t=318s)\n- **Documentação do TensorFlow:** https://www.tensorflow.org/api_docs\n- **Documentação do CUDA:** https://docs.nvidia.com/cuda/\n- **Documentação do TensorRT:** https://docs.nvidia.com/deeplearning/tensorrt/\n\n### 1. Treinamento do Modelo com Teachable Machine\n\n1.1 **Acessando o Teachable Machine**\n\n- Acesse o **Google Teachable Machine** através do [link](https://teachablemachine.withgoogle.com/).\n\n1.2 **Criando um Modelo de Imagem**\n\n- **Definição de Classes:** Identifique as diferentes categorias de microplásticos que deseja reconhecer no seu sistema.\n- **Adição de Imagens:** Carregue imagens de cada classe criada.\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://teachablemachine.withgoogle.com/assets/img/contentpage/home/2017-version.jpg\" width=\"60%\" alt=\"Logo NVIDIA\"\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n1.3 **Treinamento do Modelo**\n\n- Clique no botão **\"Treinar modelo\"**.\n\n1.4 **Exportação do Modelo**\n\n- Exporte o modelo em formato **.h5** e copie o código utilizando a biblioteca do **TensorFlow**.\n\n### 2. Configuração do Software\n\n2.1 **Modificação do Código Python**\n\n- Realize as seguintes alterações no arquivo \"TeachableMachineaArduino.py\":\n  - Definição da **Porta COM**.\n  - Substituição dos **Nomes das Classes** (labels.txt).\n  - Ajuste da Precisão (opcional).\n\n### 3. Execução do Sistema\n\n3.1 **Conexão do Arduino**\n\n- Conecte o Arduino Uno R3 ao seu computador através de um cabo USB.\n\n3.2 **Execução do Código Python**\n\n- Execute o programa \"TeachableMachineaArduino.py\".\n\n### 4. Programação do Arduino\n\n4.1 **Abertura do IDE do Arduino**\n\n- Instale e abra o Arduino IDE, a interface de desenvolvimento.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://www.datocms-assets.com/76605/1659348717-software-arduino-pro-ide.png\" width=\"60%\" alt=\"Logo NVIDIA\"\u003e\n\u003c/div\u003e\n\n4.2 **Carregamento do Código**\n\n- Abra o arquivo \"ArduinoProgram.ino\" no Arduino IDE e carregue-o na placa Arduino conectada.\n\n### 5. Funcionamento Completo do Sistema\n\n- **Captura de Imagens:** O sistema captura imagens da amostra de água através da câmera conectada ao computador.\n- **Processamento de Imagens:** O programa Python em execução no computador processa as imagens capturadas.\n- **Detecção de Microplásticos:** O modelo de visão computacional identifica a presença de microplásticos.\n- **Envio de Resultados:** O programa Python envia os resultados da detecção para o Arduino.\n- **Controle de LEDs e Display LCD:** O Arduino interpreta os resultados e controla LEDs e o display LCD.\n- **Exibição no Display LCD:** O resultado da análise é exibido no display LCD.\n\n## Impacto Ambiental e Considerações Futuras\n\nO sistema de detecção de microplásticos na água demonstra o potencial da tecnologia para solucionar desafios ambientais urgentes. A implementação deste sistema pode contribuir para:\n\n- Monitoramento de ecossistemas aquáticos.\n- Avaliação da qualidade da água.\n- Desenvolvimento de estratégias de mitigação da poluição por microplásticos.\n\nAlém da detecção de microplásticos, o sistema pode ser adaptado para identificar outros tipos de poluentes ou objetos em diferentes contextos ambientais\n\n## Acesse o website **Blean** e a simulação do nosso protótipo em feito com **Arduino**:\n\n- [Blean - For Our Oceans to Be Clean with Blean](https://ryanbritodev.github.io/blean)\n- [Simulador Tinkercad](https://www.tinkercad.com/things/bpBPSg0CR12-global-solution-blue-future?sharecode=dSe2dT_8u7aOaHaq_syi8ARMs1yMeOMUJQOMnTItNps)\n\n## Referências\n\n- [Teachable Machine](https://teachablemachine.withgoogle.com/)\n- [Documentação Python](https://docs.python.org/)\n- [Documentação Arduino](https://docs.arduino.cc/)\n\n## Conclusão\n\nEste guia fornece uma visão geral do sistema de detecção de microplásticos na água utilizando visão computacional e Arduino. A implementação deste sistema requer conhecimentos básicos de programação em Python e Arduino. O uso de componentes relativamente simples e acessíveis torna este projeto uma ferramenta viável para o monitoramento ambiental participativo e o desenvolvimento de soluções inovadoras para a preservação dos recursos hídricos.\n\n**Observação:** Este guia foi criado com base em informações disponíveis e pode ser adaptado às suas necessidades específicas.\n\n### README.md feito paras as matérias de Edge Computing \u0026 Computer Systems e Computational Thinking with Python para Global Solution - Blue Future (FIAP 2024) \n(Já que ambos estão entrelaçados neste projeto)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanbritodev%2Fblean","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryanbritodev%2Fblean","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanbritodev%2Fblean/lists"}