Repositório com projetos, scripts e tutoriais desenvolvidos para estudos de sistemas embarcados e Internet das Coisas (IoT) utilizando o microcomputador Banana Pi M2 Zero e P2 Zero.
Este repositório contém uma coleção de projetos práticos e tutoriais para desenvolvimento de sistemas embarcados e aplicações IoT utilizando as placas Banana Pi M2 Zero e P2 Zero. Os projetos incluem controle de GPIO, servidores web, integração MQTT, e configuração de sistemas Linux customizados com Buildroot.
- sirios/ - Sistema de Acionamento Remoto de LED via Web
backend/- Scripts Python CGI (gpio_on.py, gpio_off.py)frontend/- Interface web (index.html, style.css)README.md- Documentação do projeto
- python/ - Scripts Python para GPIO e MQTT
blink.py- Piscar LED básicoblink_mqtt.py- Blink com publicação MQTTpublish_mqtt.py- Publicar mensagens MQTT
- shell/ - Scripts Shell para automação
Blink.sh- Executar blink.pyBlinkPublishMQTT.sh- Executar blink_mqtt.pySendBlink.sh- Enviar arquivos via SCP
- guides/ - Guias e tutoriais
buildroot-banana-pi-p2-zero-guide.md- Guia completo Buildrootbuildroot-boot-travado-solucao.md- Solução problemas de bootbuildroot-erro-analise-solucao.md- Análise de errossirios-tutorial.txt- Tutorial do projeto SIRIOS
- articles/ - Artigos técnicos e análises
- images/ - Imagens do projeto
screenshots/- Screenshots das interfacesdiagrams/- Diagramas de arquiteturaicons/- Ícones e logos
- schematics/ - Esquemáticos das placas (PDF)
- fritzing/ - Arquivos Fritzing para circuitos
- excalidraw/ - Diagramas editáveis
- logs/ - Logs de instalação e erros
- packages/ - Listas de pacotes instalados
- images/ - Imagens antigas do sistema
bananapi/
├── LICENSE
├── README.md
├── .gitignore
│
├── projects/ # Projetos principais
│ └── sirios/ # Projeto SIRIOS
│ ├── backend/ # Scripts Python CGI
│ │ ├── gpio_on.py
│ │ └── gpio_off.py
│ ├── frontend/ # Interface web
│ │ ├── index.html
│ │ └── style.css
│ └── README.md
│
├── scripts/ # Scripts reutilizáveis
│ ├── python/ # Scripts Python
│ │ ├── blink.py
│ │ ├── blink_mqtt.py
│ │ └── publish_mqtt.py
│ ├── shell/ # Scripts Shell
│ │ ├── Blink.sh
│ │ ├── BlinkPublishMQTT.sh
│ │ └── SendBlink.sh
│ └── README.md
│
├── docs/ # Documentação
│ ├── guides/ # Guias e tutoriais
│ │ ├── buildroot-banana-pi-p2-zero-guide.md
│ │ ├── buildroot-boot-travado-solucao.md
│ │ ├── buildroot-erro-analise-solucao.md
│ │ └── sirios-tutorial.txt
│ ├── articles/ # Artigos técnicos
│ └── README.md
│
├── assets/ # Recursos estáticos
│ ├── images/
│ │ ├── screenshots/ # Screenshots
│ │ ├── diagrams/ # Diagramas
│ │ └── icons/ # Ícones
│ ├── schematics/ # Esquemáticos PDF
│ ├── fritzing/ # Arquivos Fritzing
│ └── excalidraw/ # Diagramas editáveis
│
└── archive/ # Arquivos arquivados
├── logs/ # Logs antigos
├── packages/ # Listas de pacotes
└── images/ # Imagens do sistema
- Python 3 - Linguagem de programação para scripts de controle
- Apache2 - Servidor web para hospedar interface
- CGI (Common Gateway Interface) - Interface para executar scripts Python via web
- MQTT - Protocolo de mensageria para IoT
- GPIO (General Purpose Input/Output) - Controle de pinos da placa
- Buildroot - Sistema para construir imagens Linux customizadas
- HTML/CSS - Interface web frontend
- Linux/Raspbian - Sistema operacional embarcado
- SSH - Acesso remoto à placa
Os scripts em python/ e project-sirios/ implementam controle de GPIO para:
- Ligar e desligar LEDs
- Piscar LEDs em intervalos configuráveis
- Manipular pinos de entrada/saída digital
O projeto SIRIOS oferece:
- Interface web moderna e responsiva
- Controle remoto de LED via navegador
- Integração com Apache e módulo CGI
- Feedback visual em tempo real
Scripts para comunicação IoT:
- Publicar eventos de acionamento de LED
- Integração com brokers MQTT (HiveMQ, Mosquitto, etc.)
- Notificações em tempo real
Documentação completa para:
- Compilar imagens Linux customizadas
- Configurar Buildroot para Banana Pi
- Solucionar problemas de boot e compilação
- Banana Pi M2 Zero ou P2 Zero
- Cartão SD com Raspbian/Debian instalado
- Conexão SSH configurada
- LED e resistores (para projetos de GPIO)
- Python 3 instalado
- Clone o repositório:
git clone https://github.com/henriqueotogami/bananapi.git
cd bananapi- Envie os arquivos para a Banana Pi:
# Via SCP
scp scripts/python/blink.py pi@banana.local:~
scp projects/sirios/backend/* pi@banana.local:~
scp projects/sirios/frontend/* pi@banana.local:~- Execute os scripts:
# Na Banana Pi via SSH
ssh pi@banana.local
python3 blink.pyPara configurar o projeto SIRIOS completo:
- Instalar Apache e habilitar CGI:
sudo apt-get install apache2
sudo a2enmod cgi
sudo systemctl restart apache2- Configurar permissões:
sudo visudo
# Adicionar: www-data ALL=(ALL) NOPASSWD: /usr/bin/tee, /bin/echo- Copiar scripts CGI:
sudo cp projects/sirios/backend/gpio_on.py /usr/lib/cgi-bin/
sudo cp projects/sirios/backend/gpio_off.py /usr/lib/cgi-bin/
sudo chmod +x /usr/lib/cgi-bin/gpio_*.py- Copiar interface web:
sudo cp projects/sirios/frontend/index.html /var/www/html/
sudo cp projects/sirios/frontend/style.css /var/www/html/
sudo cp assets/images/icons/icon-otogami.svg /var/www/html/- Acessar interface:
http://seu-ip-banana-pi/
- Instalar biblioteca MQTT:
pip3 install paho-mqtt- Configurar broker MQTT:
# Editar PublishMQTT.py ou BlinkPublishMQTT.py
BROKER = "seu-broker-mqtt.com"
PORT = 1883- Executar:
python3 BlinkPublishMQTT.pyPara compilar uma imagem Linux customizada:
- Instalar dependências:
sudo apt-get install build-essential git wget cpio unzip rsync bc bzip2- Clonar e configurar Buildroot:
git clone https://github.com/xqdzn/buildroot.git
cd buildroot
make bananapi_p2_zero_defconfig- Compilar:
make- Gravar imagem:
sudo dd if=output/images/sdcard.img of=/dev/sdX bs=4M status=progress📖 Para mais detalhes, consulte: docs/guides/buildroot-banana-pi-p2-zero-guide.md
- ✅ Controle de GPIO em sistemas embarcados
- ✅ Programação Python para hardware
- ✅ Configuração de servidor web Apache
- ✅ Interface CGI para execução de scripts
- ✅ Protocolo MQTT para IoT
- ✅ Desenvolvimento de interfaces web
- ✅ Compilação de sistemas Linux customizados
- ✅ Buildroot e cross-compilation
- ✅ Troubleshooting de sistemas embarcados
- ✅ Documentação técnica de projetos
Sistema de acionamento remoto de LED via interface web, utilizando Apache, Python e CGI. Permite controlar LEDs conectados à Banana Pi através de uma página web acessível na rede local.
Características:
- Interface web moderna e responsiva
- Controle via botões (Ligar/Desligar)
- Feedback visual em tempo real
- Arquitetura modular e escalável
Scripts Python simples para piscar e controlar LEDs, ideais para aprendizado de GPIO e sistemas embarcados.
Projetos que demonstram como integrar dispositivos IoT com brokers MQTT para comunicação em tempo real.
Os scripts Python manipulam os pinos GPIO através do sistema de arquivos /sys/class/gpio/:
- Exporta o pino GPIO desejado
- Configura como saída (output)
- Define valor alto (1) ou baixo (0) para ligar/desligar
- Unexporta o pino após uso
- Usuário acessa interface web no navegador
- Clica em botão "Ligar" ou "Desligar"
- Formulário HTML envia requisição GET para script CGI
- Apache executa script Python via módulo CGI
- Script Python manipula GPIO
- Resposta é exibida na interface via iframe
- Script Python conecta ao broker MQTT
- Publica mensagens em tópicos específicos
- Clientes MQTT podem se inscrever e receber notificações
- Permite comunicação bidirecional entre dispositivos
Este projeto está licenciado sob a MIT License - veja o arquivo LICENSE para mais detalhes.
- Documentação Banana Pi
- Documentação Apache CGI
- GPIO Interface SysFS
- Buildroot Manual
- MQTT Protocol
- Raspbian Documentation
- Desafio 01 - Piscar um LED na BananaPi utilizando Python via SSH
- Desafio 02 - Notificar o acionamento do LED utilizando Python para um Web Client MQTT
Contribuições são bem-vindas! Para contribuir:
- Faça um fork deste repositório
- Crie um branch para sua feature (
git checkout -b feature/nova-feature) - Faça commit das suas mudanças (
git commit -am 'Adiciona nova feature') - Faça push para o branch (
git push origin feature/nova-feature) - Abra um Pull Request
- Adicionado projeto SIRIOS
- Documentação de Buildroot
- Guias de troubleshooting
- Integração MQTT
- Projetos básicos de GPIO
- Scripts Python iniciais
- Documentação básica
#BananaPi #IoT #EmbeddedSystems #Python #Apache #CGI #MQTT #GPIO #Buildroot #Linux #RaspberryPi #SistemasEmbarcados #InternetOfThings #OpenSource #GitHub #HardwareProgramming #WebDevelopment #Tutorial #Learning
banana pi, sistemas embarcados, IoT, internet das coisas, python, apache,
CGI, MQTT, GPIO, buildroot, linux, raspbian, controle remoto, LED,
hardware programming, web development, tutorial, aprendizado, projetos práticos,
sistemas embarcados, microcomputador, single board computer, SBC

