Sistema de monitoramento de luminosidade usando sensor BH1750 e placa Caninos Labrador com logging automático de dados
Reportar Bug
·
Solicitar Feature
Índice
O Datalogger BH1750 - Caninos Labrador é um sistema de monitoramento de luminosidade que utiliza o sensor BH1750 conectado à placa Caninos Labrador via protocolo I2C. O sistema realiza leituras automáticas da luminosidade ambiente e armazena os dados em arquivos de texto organizados por timestamp, ideal para estudos de iluminação, automação residencial e projetos IoT.
- Monitoramento contínuo de luminosidade com sensor de alta precisão
- Logging automático com timestamp em arquivos de texto
- Comunicação I2C otimizada para baixo consumo
- Armazenamento em microSD para grande capacidade de dados
- Interface simples através do Thonny IDE
- Tratamento robusto de erros para operação ininterrupta
Hardware:
Software:
- ✅ Leitura contínua de luminosidade (0-65535 lux)
- ✅ Intervalos configuráveis de amostragem
- ✅ Precisão de ±20% com resolução de 1 lux
- ✅ Logging automático com timestamp
- ✅ Arquivo de texto estruturado
- ✅ Suporte a microSD para grande capacidade
- ✅ Rotação automática de logs (opcional)
- ✅ Interface via Thonny IDE
- ✅ Tratamento de erros robusto
- ✅ Finalização controlada (Ctrl+C)
- ✅ Configuração flexível de parâmetros
- Caninos Labrador - Placa de desenvolvimento com I2C disponível
- Sensor BH1750 - Sensor de luminosidade digital I2C
- Cabos jumper - Para conexões VCC, GND, SDA, SCL
- MicroSD Card - Para armazenamento de dados (opcional)
- Fonte de alimentação - 3.3V ou 5V conforme módulo BH1750
- Python 3 com biblioteca smbus
- Thonny IDE
- i2c-tools para diagnóstico
A placa Caninos Labrador possui um conector de 40 pinos. Para este projeto, utilizaremos os pinos I2C:
| Função | Pino | Descrição |
|---|---|---|
| VCC | 1 | Alimentação 3.3V |
| SDA | 3 (PE3) | Linha de dados I2C |
| SCL | 5 (PE2) | Linha de clock I2C |
| GND | 6 | Terra/Referência |
| BH1750 | Caninos Labrador | Descrição |
|---|---|---|
| VCC | Pino 1 (3.3V) | Alimentação |
| GND | Pino 6 (GND) | Terra |
| SDA | Pino 3 (PE3) | Dados I2C |
| SCL | Pino 5 (PE2) | Clock I2C |
- Mantenha cabos curtos para evitar interferências
- Endereço I2C padrão:
0x23(alguns módulos podem usar0x5C) - Certifique-se de conexão GND comum entre todos os componentes
Certifique-se de que os seguintes componentes estão disponíveis:
Sistema Operacional:
- Sistema Linux (Caninos Labrador)
- Acesso sudo para instalação de pacotes
Ferramentas de Desenvolvimento:
- Python 3.x
- Acesso aos barramentos I2C (/dev/i2c-0 a /dev/i2c-3)
git clone https://github.com/HeitorLouzeiroRepositoryIFPI/embarca-caninos-datalogger.git
cd embarca-caninos-dataloggersudo apt-get update
sudo apt-get install -y i2c-toolsls /dev/i2c*Saída esperada:
/dev/i2c-0 /dev/i2c-1 /dev/i2c-2 /dev/i2c-3
sudo apt install -y python3-smbussudo usermod -aG i2c $USERsudo apt install -y thonnyConfirme que o sensor está conectado corretamente:
i2cdetect -y 2 # Substitua pelo barramento corretoExemplo de resultado esperado:
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- 23 -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
✅ BH1750 encontrado no endereço 0x23
- Abra o Thonny
- Vá em Ferramentas > Opções > Interpretador
- Selecione "Python 3 (local)"
# Identifique o dispositivo
lsblk -f
# Monte o microSD
sudo mkdir -p /media/microsd
sudo mount /dev/sdX1 /media/microsd
sudo chown $USER:$USER /media/microsd- Abra o Thonny
- Abra o arquivo
BH1750_logger.py - Ajuste os parâmetros se necessário:
BH1750_ADDR = 0x23 # Endereço I2C do sensor I2C_BUS = 2 # Barramento I2C utilizado CONT_H_RES_MODE = 0x10 # Modo contínuo alta resolução CAMINHO_ARQUIVO = "/caminho/para/log.txt" # Local do arquivo de log
- Clique em "Executar" (F5)
- Acompanhe as leituras no console
- Interrompa com Ctrl+C
cd embarca-caninos-datalogger
python3 BH1750_logger.pyOs dados são salvos no seguinte formato:
[2024-09-25 14:30:25] Luminosidade: 245.67 lux
[2024-09-25 14:30:27] Luminosidade: 248.12 lux
[2024-09-25 14:30:29] Luminosidade: 251.03 lux
| Parâmetro | Padrão | Descrição |
|---|---|---|
BH1750_ADDR |
0x23 |
Endereço I2C do sensor |
I2C_BUS |
2 |
Barramento I2C utilizado |
CONT_H_RES_MODE |
0x10 |
Modo de alta resolução |
CAMINHO_ARQUIVO |
/media/... |
Local do arquivo de log |
| Intervalo | 2s |
Tempo entre leituras |
- Inicialização: Configura barramento I2C
- Leitura: Envia comando ao sensor e aguarda resposta
- Conversão: Transforma dados brutos em valor lux (÷ 1.2)
- Registro: Formata com timestamp e salva no arquivo
- Repetição: Aguarda intervalo e repete o ciclo
- Organize por data: Crie subpastas como
logs_BH1750/2024-09-25/ - Monitore espaço: Verifique periodicamente o espaço livre no microSD
- Rotação de logs: Remova ou arquive logs antigos regularmente
- Backup: Mantenha cópias dos dados importantes
Solução:
sudo usermod -aG i2c $USER
# Faça logout e login novamenteSolução:
sudo apt install -y python3-smbusPossíveis causas:
- Barramento I2C incorreto (verifique com
i2cdetect) - Cabeamento SDA/SCL invertido
- Sensor não alimentado corretamente
Verificações:
- Confirme se o microSD está montado
- Verifique permissões do diretório
- Certifique-se de que há espaço livre suficiente
- Comunicação I2C com BH1750
- Logging com timestamp
- Armazenamento em arquivo de texto
- Tratamento básico de erros
- Interface via Thonny IDE
Veja as issues abertas para uma lista completa de recursos propostos e problemas conhecidos.
Contribuições são o que fazem a comunidade open source um lugar incrível para aprender, inspirar e criar. Qualquer contribuição que você fizer será muito apreciada.
Se você tem uma sugestão que tornaria este projeto melhor, por favor faça um fork do repositório e crie um pull request. Você também pode simplesmente abrir uma issue com a tag "enhancement". Não esqueça de dar uma estrela ao projeto! Obrigado novamente!
- Faça um Fork do Projeto
- Crie sua Feature Branch (
git checkout -b feature/NovaFuncionalidade) - Commit suas mudanças (
git commit -m 'Add: Nova funcionalidade incrível') - Push para a Branch (
git push origin feature/NovaFuncionalidade) - Abra um Pull Request
- Mantenha o código limpo e bem documentado
- Teste suas modificações antes de enviar
- Siga as convenções de nomenclatura existentes
- Documente novas funcionalidades no README
Agradecemos às seguintes pessoas que contribuíram para este projeto:
|
Heitor Louzeiro |
Distribuído sob a Licença MIT. Veja LICENSE para mais informações.
Project Link: https://github.com/HeitorLouzeiroRepositoryIFPI/embarca-caninos-datalogger




