Skip to main content
Glama
README.md
# 🍃 IoT MCP Bridge - Controle IoT via Linguagem Natural

## 🚀 Visão Geral

Sistema IoT moderno que permite controlar dispositivos ESP8266 e Raspberry Pi usando **linguagem natural** através do Claude Desktop. Ideal para educação, demonstrações e projetos maker.

## ✨ Características

- 🤖 **Controle via Linguagem Natural** - "Acenda o LED verde"
- 🍃 **Suporte ESP8266/NodeMCU** - LEDs e sensores físicos
- 🍓 **Suporte Raspberry Pi** - Simulação completa
- 🎯 **Interface Claude Desktop** - Integração nativa
- 📱 **Múltiplos Dispositivos** - Rede local
- 🎓 **Educacional** - Perfeito para aulas de IoT

## 🛠️ Tecnologias

- **Python 3.8+**
- **FastMCP 2.0** - Protocolo MCP
- **aiohttp** - Comunicação assíncrona
- **ESP8266/NodeMCU** - Hardware IoT
- **Claude Desktop** - Interface de usuário

## 📦 Instalação

### 1. Clonar o Repositório
```bash
git clone https://github.com/seu-usuario/iot-mcp-bridge.git
cd iot-mcp-bridge
```

### 2. Criar Ambiente Virtual
```bash
python -m venv iot-mcp-env
source iot-mcp-env/bin/activate  # Linux/Mac
# ou
iot-mcp-env\Scripts\activate     # Windows
```

### 3. Instalar Dependências
```bash
pip install -r requirements.txt
```

### 4. Configurar ESP8266
1. Carregar `examples/esp8266_firmware.ino` no ESP8266
2. Configurar WiFi no firmware
3. Anotar o IP do ESP8266
4. Atualizar IP em `src/esp8266_controller.py`

## ⚙️ Configuração Claude Desktop

### 1. Copiar Configuração
Copie o conteúdo de `claude_desktop_config.json` para as configurações do Claude Desktop.

### 2. Localizar Arquivo de Configuração
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
- **Mac:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Linux:** `~/.config/Claude/claude_desktop_config.json`

### 3. Adicionar Configuração
```json
{
  "mcpServers": {
    "iot-mcp-bridge": {
      "command": "python",
      "args": ["mcp_fastmcp2_correct.py"],
      "env": {
        "PYTHONPATH": "."
      }
    }
  }
}
```

## 🎯 Como Usar

### 1. Iniciar Claude Desktop
Abra o Claude Desktop e verifique se o MCP Bridge está conectado.

### 2. Comandos de Exemplo
```
"Qual o status do ESP8266?"
"Acenda o LED verde do ESP8266"
"Desligue o LED azul do ESP8266"
"Leia o sensor de luz do ESP8266"
"Faça o LED vermelho piscar por 5 segundos"
"Mostre o status de todos os dispositivos"
```

### 3. Comandos Disponíveis

#### ESP8266
- `esp8266_get_status` - Status completo
- `esp8266_control_led` - Controlar LEDs
- `esp8266_read_sensor` - Ler sensores
- `esp8266_blink_led` - Piscar LEDs

#### Raspberry Pi (Simulação)
- `raspberry_control_led` - Controlar LEDs
- `raspberry_read_sensor` - Ler sensores
- `raspberry_read_button` - Ler botão

#### Sistema
- `get_system_status` - Status geral
- `list_devices` - Listar dispositivos
- `emergency_stop` - Parada de emergência

## 🔧 Hardware

### ESP8266/NodeMCU
```
LED Vermelho → GPIO 12 (D6)
LED Verde   → GPIO 4  (D2)
LED Azul    → GPIO 5  (D1)
Sensor LDR  → A0 (pino analógico)
```

### Conexões
- Conectar LEDs com resistores (220Ω)
- Conectar sensor LDR com resistor (10kΩ)
- Alimentar com 3.3V

## 📁 Estrutura do Projeto

```
iot-mcp-bridge/
├── mcp_fastmcp2_correct.py          # 🚀 MCP Bridge principal
├── claude_desktop_config.json       # ⚙️ Configuração Claude Desktop
├── src/
│   ├── esp8266_controller.py        # 🍃 Controlador ESP8266
│   └── raspberry_controller.py      # 🍓 Controlador Raspberry Pi
├── examples/
│   └── esp8266_firmware.ino        # 🍃 Firmware ESP8266
├── config/
│   └── settings.py                 # ⚙️ Configurações
├── requirements.txt                # 📦 Dependências
└── README.md                      # 📖 Este arquivo
```

## 🎓 Aplicações Educacionais

### Para Professores
- **Demonstrações IoT** - Controle via linguagem natural
- **Aulas de Programação** - Conceitos de IoT
- **Projetos Maker** - Integração hardware/software

### Para Alunos
- **Primeiros Passos IoT** - Interface intuitiva
- **Experimentos Práticos** - LEDs e sensores
- **Aprendizado de IA** - Linguagem natural

## 🚨 Solução de Problemas

### ESP8266 Não Responde
1. Verificar se o firmware foi carregado
2. Verificar conexão WiFi
3. Verificar IP no código
4. Testar com `ping [IP_ESP8266]`

### Claude Desktop Não Conecta
1. Verificar configuração MCP
2. Verificar se o arquivo existe
3. Verificar dependências instaladas
4. Reiniciar Claude Desktop

### LEDs Não Acendem
1. Verificar conexões físicas
2. Verificar GPIOs no firmware
3. Verificar alimentação
4. Testar com Serial Monitor

## 🤝 Contribuição

1. Fork o projeto
2. Crie uma branch para sua feature (`git checkout -b feature/AmazingFeature`)
3. Commit suas mudanças (`git commit -m 'Add some AmazingFeature'`)
4. Push para a branch (`git push origin feature/AmazingFeature`)
5. Abra um Pull Request

## 📄 Licença

Este projeto está sob a licença MIT. Veja o arquivo `LICENSE` para mais detalhes.

## 👨‍🏫 Autor

**Fran - Aluno Maker Digital**
- Projeto educacional para ensino de IoT
- Integração com Claude Desktop
- Foco em linguagem natural e IA

## 🙏 Agradecimentos

- **Anthropic** - Claude Desktop e MCP
- **FastMCP** - Framework MCP
- **ESP8266 Community** - Hardware e firmware
- **Comunidade Maker** - Inspiração e suporte

---

**⭐ Se este projeto te ajudou, considere dar uma estrela no GitHub!**