Projeto 1: LED piscando com padrões personalizados (adequado para iniciantes)
Configuração do hardware
Para este projeto, você precisará de um Raspberry Pi Pico, uma placa de ensaio, um LED, um resistor de 220 ohms e fios de ligação. Conecte o ânodo do LED ao pino GPIO 25 através do resistor e o cátodo ao pino terra no Pico. Essa configuração garante que o LED seja protegido contra sobrecorrente pelo resistor e esteja conectado corretamente ao pino GPIO do Pico para controle.

Implementação do código
Usando MicroPython, criaremos um programa para fazer o LED piscar em diferentes padrões. Primeiro, importe os módulos necessários:
from machine import Pin, Timer
Em seguida, inicialize o pino LED:
led = Pin(25, Pin.OUT)
tim = Timer()
def tick(timer):
led.toggle()
tim.init(freq=2, mode=Timer.PERIODIC, callback=tick)
Testes e personalização
Projeto 2: Sistema de monitoramento de temperatura (intermediário)
Requisitos de hardware

Desenvolvimento de código
import machine
import onewire
import ds18x20
import time
ds_pin = machine.Pin(18)
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))
roms = ds_sensor.scan()
print('Found DS devices: ', roms)
while True:
ds_sensor.convert_temp()
time.sleep_ms(750)
for rom in roms:
print(ds_sensor.read_temp(rom))
time.sleep(2)
Registro e exibição de dados
from machine import I2C, Pin
import ssd1306
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)
oled = ssd1306.SSD1306_I2C(128, 32, i2c)
while True:
ds_sensor.convert_temp()
time.sleep_ms(750)
for rom in roms:
temp = ds_sensor.read_temp(rom)
print(temp)
oled.fill(0)
oled.text(f"Temp: {temp} C", 0, 0)
oled.show()
time.sleep(2)
file = open('temperatures.txt', 'w')
while True:
ds_sensor.convert_temp()
time.sleep_ms(750)
for rom in roms:
temp = ds_sensor.read_temp(rom)
print(temp)
file.write(f"{time.time()},{temp}\n")
file.flush()
time.sleep(2)
Projeto 3: Carregador de dados IoT (avançado)
Configuração do hardware

Integração de código e IoT
import network
ssid = 'your_SSID'
password = 'your_PASSWORD'
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
while not wlan.isconnected():
pass
print('Connected to WiFi')
import bme280_i2c
i2c = machine.I2C(0, sda=machine.Pin(8), scl=machine.Pin(9))
bme = bme280_i2c.BME280_I2C(i2c)
import urequests
def upload_data(temperature, humidity, pressure):
url = 'https://industrial.api.ubidots.com/api/v1.6/devices/your_device_label'
headers = {'X-Auth-Token': 'your_token', 'Content-Type': 'application/json'}
data = '{"temperature": %s, "humidity": %s, "pressure": %s}' % (temperature, humidity, pressure)
response = urequests.post(url, headers=headers, data=data)
if response.status_code == 200:
print('Data uploaded successfully')
else:
print('Error uploading data')
response.close()
while True:
temperature, pressure, humidity = bme.values
temperature = float(temperature.strip(' C'))
humidity = float(humidity.strip(' %'))
pressure = float(pressure.strip(' hPa'))
upload_data(temperature, humidity, pressure)
time.sleep(60)
Testes e escalabilidade
Projetos Pico para explorar PIO, USB, sensores e controle
Projetos úteis ensinam um conceito de hardware por vez e deixam espaço para medir o resultado. Escolha primeiro a placa exata da família Pico, pois processador, rádio, memória, pinos e suporte variam; projete as interfaces conforme os limites lógicos documentados de 3,3 V.
- Comece pela aquisição: registre um sensor calibrado com horários e intervalo de amostragem definido.
- Explore PIO: gere ou capture uma interface sensível ao tempo e verifique nos pontos de teste.
- Crie um dispositivo USB: implemente função humana ou serial pequena com reconexão clara.
- Adicione malha fechada: regule velocidade, luz ou temperatura em um sistema seguro e limitado.
- Projete o protótipo: inclua desacoplamento, adaptação de nível, proteção, pontos de teste e compilação reproduzível.




