Este projeto utiliza um Raspberry Pi Pico para monitorar dois botões, a posição de um joystick e a temperatura interna do microcontrolador. Os dados são enviados periodicamente para a nuvem (ThingSpeak), permitindo visualização em tempo real por meio de gráficos e painéis personalizados.
- Leitura dos botões (GPIO 5 e 6): Captura o estado (pressionado/solto).
 - Leitura do joystick (ADC 0 e 1): Interpretação de direção (rosa dos ventos).
 - Leitura da temperatura interna (ADC 4): Conversão para °C.
 - Envio de dados para o ThingSpeak(versão nuvem): Via requisição HTTP GET a cada 15 segundos.
 - Servidor Web local (versão local): Exibição dos dados em HTML via rede local a cada 1 segundo.
 - Exemplo de aplicação real: Simulação de monitoramento industrial.
 
| Função | Pino do Pico | 
|---|---|
| Botão A | GPIO 5 | 
| Botão B | GPIO 6 | 
| Joystick X | ADC 1 (GPIO 27) | 
| Joystick Y | ADC 0 (GPIO 26) | 
| Sensor de Temperatura | ADC 4 | 
| LED Indicador | GPIO 20 | 
⚠️ Importante: Antes de compilar, edite o código e preencha suas informações de Wi-Fi e chave da API do ThingSpeak:
#define WIFI_SSID           "SEU_SSID_AQUI"
#define WIFI_PASSWORD       "SUA_SENHA_AQUI"
#define THINGSPEAK_API_KEY  "SUA_API_KEY_AQUI"
#define THINGSPEAK_HOST     "api.thingspeak.com"O joystick retorna valores analógicos nos eixos X e Y, de 0 a 4095. Esses valores são mapeados para direções de uma rosa dos ventos, com base em limites definidos no código.
         Norte
           ↑
  Noroeste ↑↑↑ Nordeste
           ↑
Oeste ←── Centro ──→ Leste
           ↓
  Sudoeste ↓↓↓ Sudeste
           ↓
         Sul
| Direção | X | Y | 
|---|---|---|
| Norte | ~2000 | >3500 | 
| Sul | ~2000 | <1000 | 
| Leste | >3500 | ~2000 | 
| Oeste | <1000 | ~2000 | 
| Nordeste | >3000 | >3000 | 
| Noroeste | <1000 | >3000 | 
| Sudeste | >3000 | <1000 | 
| Sudoeste | <1000 | <1000 | 
| Centro | 1800–2300 | 1800–2300 | 
⚙️ Ajuste os limites conforme o comportamento real do seu joystick.
Os dados dos sensores são enviados a cada 15 segundos (limite da conta gratuita no ThingSpeak) usando uma requisição HTTP GET.
GET /update?api_key=SUA_API_KEY&field1=BOTAO_A&field2=BOTAO_B&field3=TEMP&field4=JOY_X&field5=JOY_Y HTTP/1.1
Host: api.thingspeak.com
Connection: close- SDK do Raspberry Pi Pico configurado
 - Pilha LWIP funcional
 - Acesso à internet via Wi-Fi
 
Edite no código:
#define WIFI_SSID "SEU_SSID"
#define WIFI_PASSWORD "SUA_SENHA"
#define THINGSPEAK_API_KEY "SUA_CHAVE_THINGSPEAK"mkdir build
cd build
cmake ..
make- Use o 
picotool, ou - Copie o arquivo 
.uf2gerado para o Raspberry Pi Pico via USB 
- Acesse ThingSpeak
 - Veja os campos atualizados em tempo real com:
- Botões A e B (pressionado ou solto)
 - Temperatura em °C
 - Eixos X e Y do joystick
 
 
Este projeto pode ser usado em:
- 🏭 Monitoramento remoto de máquinas e ambientes
 - 🧪 Testes educacionais com sensores e IoT
 - 🚀 Prototipagem de sistemas embarcados
 
O projeto nasceu com o objetivo de explorar o uso do Raspberry Pi Pico (BitDogLab) em aplicações de IoT. A proposta era:
- Monitorar botões físicos e joystick
 - Medir a temperatura interna
 - Exibir os dados via servidor local
 - Como desafio extra: enviar os dados para a nuvem foi escolhido o (ThingSpeak) por ser grátis e fácil de usar
 
Além da leitura bruta dos sensores, foi implementado um sistema de interpretação de direção (rosa dos ventos) com o joystick, e visualizações gráficas em tempo real.
O código foi escrito todo em C, sem bibliotecas de alto nível, utilizando diretamente o SDK oficial do RP2040 e a pilha TCP/IP LWIP.
A primeira versão do projeto implementa um servidor local. A cada 1 segundo, os dados dos sensores são atualizados e exibidos em uma página HTML acessível via navegador.
- 🟢 Botões físicos (estado pressionado ou solto)
 - 🌡️ Temperatura interna (°C)
 - 🎮 Joystick (X, Y e direção interpretada)
 
A segunda versão envia os dados para a nuvem usando o serviço ThingSpeak. A cada 15 segundos, os sensores são lidos e os dados são enviados via HTTP GET.
- field1: Botão A
 - field2: Botão B
 - field3: Temperatura
 - field4: Eixo X do Joystick
 - field5: Eixo Y do Joystick
 
- 📈 Temperatura em tempo real
 - 🧭 Direção do joystick com rosa dos ventos (via Math Visualization)
 - 🔴 Estado dos botões em gráfico digital
 
Este projeto pode simular um sistema de monitoramento remoto de máquinas industriais:
- ⚙️ Botões = estados da máquina (ligado/desligado, emergência)
 - 🌡️ Temperatura = sobreaquecimento
 - 🎮 Joystick = controle ou ajuste remoto
 
- Visualização em tempo real
 - Sem necessidade de hardware adicional
 - Possível integração com alertas e dashboards
 
O projeto atendeu todos os objetivos e desafios:
✔️ Conexão estável à rede Wi-Fi
✔️ Visualização dos dados localmente (HTML)
✔️ Integração com a nuvem (ThingSpeak)
✔️ Conversão da entrada do joystick para rosa dos ventos
✔️ Gráficos em tempo real
Resultado: um sistema de IoT completo, funcional e com potencial de uso real.
📧 Email: jonielmendes237@gmail.com 🔗 LinkedIn: linkedin.com/in/joniel-mendes








