Após consolidar todos os pilares de sistemas embarcados — leitura, processamento, controle, comunicação e persistência — o passo final é a conectividade com rede.
Neste contexto, o Raspberry Pi Pico pode ser integrado ao mundo IoT utilizando um módulo externo de comunicação Wi-Fi.
Limitação de Hardware
O Raspberry Pi Pico (RP2040) não possui conectividade Wi-Fi nativa.
Solução prática
Utilizar o módulo:
- ESP-01 (baseado no ESP8266)
Arquitetura do Sistema
Cliente ⇄ Rede Wi-Fi ⇄ ESP8266 ⇄ UART ⇄ Raspberry Pi Pico ⇄ Dispositivos
Comunicação com ESP-01
O módulo é controlado via comandos AT.
AT+RST
AT+CWMODE=1
AT+CWJAP="SSID","SENHA"
AT+CIPSTART
Configuração UART no Pico
from machine import UART, Pin
uart = UART(0, baudrate=115200, rx=Pin(1), tx=Pin(0))
Projeto 1: Controle Remoto de LED via Wi-Fi
Sistema mínimo funcional de IoT.
Inicialização
from machine import Pin, UART
import utime
uart = UART(0, baudrate=115200, rx=Pin(1), tx=Pin(0))
LED = Pin(16, Pin.OUT)
LED.value(0)
Conexão com a Rede
def connect_wifi():
uart.write("AT+RST\r\n")
utime.sleep(5)
uart.write("AT+CWMODE=1\r\n")
utime.sleep(1)
uart.write('AT+CWJAP="SSID","SENHA"\r\n')
utime.sleep(5)
uart.write("AT+CIPMUX=0\r\n")
utime.sleep(3)
uart.write('AT+CIPSTART="UDP","0.0.0.0",5000,5000,2\r\n')
utime.sleep(3)
Loop de Controle
connect_wifi()
while True:
buf = uart.readline()
if buf:
data = buf.decode("utf-8")
if "LON" in data:
LED.value(1)
if "LOFF" in data:
LED.value(0)
Comportamento
- Recebe comandos via rede
- Realiza parsing simples de strings
- Atua diretamente no hardware
Projeto 2: Telemetria de Temperatura
Sistema bidirecional.
Função de Leitura
from machine import ADC
adc = ADC(4)
conv = 3.3 / 65535
def get_temp():
v = adc.read_u16() * conv
return 27 - (v - 0.706) / 0.001721
Envio de Dados
def send_temp():
T = get_temp()
msg = "T=" + str(T)
length = str(len(msg))
uart.write("AT+CIPSEND=" + length + "\r\n")
utime.sleep(2)
uart.write(msg)
Loop de Resposta
while True:
buf = uart.readline()
if buf:
data = buf.decode("utf-8")
if "T?" in data:
send_temp()
Fluxo de Comunicação
- Cliente envia:
T? - Pico responde:
T=valor
Testes do Sistema
Ferramentas possíveis:
- Aplicativos UDP/TCP (mobile)
- Softwares como PacketSender
- Scripts em Python
Comandos de Controle
LON → Liga saída
LOFF → Desliga saída
T? → Solicita leitura
Conceitos Relevantes
UDP vs TCP
- UDP → menor overhead, sem confirmação
- TCP → confiável, porém mais pesado
Parsing de Comandos
if "LON" in data:
Modelo simples e eficiente.
Controle de Tempo
utime.sleep(5)
Necessário para estabilidade do ESP8266.
Boas Práticas
- Validar buffer antes de processar
- Garantir encoding correto
- Evitar envio contínuo sem controle
- Sincronizar comunicação UART
Arquitetura Completa de Sistema IoT
Sistema final integra:
- Entrada → sensores
- Processamento → lógica
- Saída → atuadores
- Persistência → logs
- Comunicação → rede
Evolução para Sistemas Profissionais
A partir deste ponto, é possível evoluir para:
- MQTT (mensageria IoT)
- APIs REST
- Dashboards web
- Integração com cloud (AWS, Azure, etc.)
Insight Técnico Final
A conectividade transforma um sistema isolado em um sistema distribuído.
Com Wi-Fi, o dispositivo passa a:
- Compartilhar dados
- Receber comandos remotos
- Integrar arquiteturas maiores
Encerramento Geral
Este capítulo fecha o ciclo completo de desenvolvimento com Raspberry Pi Pico:
O resultado é uma base completa para desenvolvimento de sistemas embarcados conectados.
