Como controlar um relé (ligar/desligar) usando MicroPython em um Raspberry Pi Pico W com o Thonny
Neste guia, vamos mostrar como configurar o MicroPython no seu Raspberry Pi Pico W, criar um interruptor inteligente no Sinric Pro e controlá-lo usando plataformas populares de casa inteligente, como Alexa, Google Home e SmartThings.
Pré-requisitos :
- Placa de desenvolvimento Raspberry Pi Pico W x 1.
- Módulo de relé SPDT x 1.
- Cabos Jumper.
Instalar o MicroPython no seu Raspberry Pi Pico W
-
Baixe o firmware MicroPython mais recente para o Raspberry Pi Pico W em: https://rpf.io/pico-w-firmware
-
Conecte uma ponta de um cabo micro USB ao seu Raspberry Pi Pico W.
-
Pressione e segure o botão BOOTSEL do Pico W.
-
Conecte a outra ponta do cabo USB ao seu computador (desktop, notebook ou Raspberry Pi).
-
O Pico W vai aparecer como uma unidade removível (normalmente chamada
RPI-RP2) no seu gerenciador de arquivos.
Arraste e solte o arquivo.uf2do MicroPython que você baixou nessa unidade.
O Pico W vai reiniciar e se desconectar automaticamente, o que é normal. Ao terminar, o MicroPython estará instalado e pronto para uso.
Testar a instalação:
-
Abra o editor Thonny.
-
No canto inferior direito, clique no texto e selecione MicroPython (Raspberry Pi Pico) entre as opções.

No shell, digite
print("Hello, MicroPython!")

Configurar a biblioteca SinricPro
-
Baixe o arquivo Wheel
.whlmais recente em https://github.com/sinricpro/micropython-sinricpro-sdk/releases -
No Thonny, escolha Tools > Manage packages.
-
Clique em
Herena seçãoInstall from Local Filee continue a instalação.



Integração com o Sinric Pro
Passo 1 : Criar um novo dispositivo no Sinric Pro
- Faça login na sua conta Sinric Pro, vá ao menu Devices à esquerda e clique no botão Add Device (no canto superior esquerdo).
- Informe o nome do dispositivo Switch, a descrição My First Switch e selecione o tipo de dispositivo Switch.

- Clique em Next na aba Notifications

Para receber notificações push quando o seu dispositivo ficar online ou offline, ative a opção “Connect and Disconnect” no app Sinric Pro. Para receber notificações push quando o seu dispositivo for ligado ou desligado, ative a opção “On and Off”.
-
Clique em Others e depois em Save
-
A próxima tela mostra as credenciais necessárias para conectar o dispositivo que você acabou de criar.

- Copie o Device Id, a App Key e o App Secret Mantenha esses valores em segurança. NÃO OS COMPARTILHE EM FÓRUNS PÚBLICOS !
Passo 2 : Código
Cole o código a seguir em main.py
from sinricpro import SinricPro
from sinricpro.devices.sinricpro_switch import SinricProSwitch
from machine import Pin
import uasyncio as a
import network
# enter wifi details
ssid = ""
ssid_password = ""
# enter appkey, appsecret and device id from above
app_key = ""
app_secret = ""
device_id = ""
# relay is connected to GPIO 16
relay = Pin(16, Pin.OUT)
async def on_disconnected():
print('Disconnected from SinricPro...reboot?')
async def on_connected():
print('Connected to SinricPro...')
async def on_power_state_callback(device_id: str, state: bool):
print(f'device id: {device_id} state: {state}')
if state:
relay.value(1)
else:
relay.value(0)
return True
# connect to wifi
def do_connect():
sta_if = network.WLAN(network.STA_IF)
ap = network.WLAN(network.AP_IF) # create access-point interface
ap.active(False) # deactivate the interface
if not sta_if.isconnected():
print('Connecting to network...')
sta_if.active(True)
sta_if.connect(ssid, ssid_password)
while not sta_if.isconnected():
pass
print('Connected network config:', sta_if.ifconfig())
# start sinricpro
def do_sinricpro():
sinricpro = SinricPro()
sinricpro.on_connected(on_connected)
sinricpro.on_disconnected(on_disconnected)
sinricpro_switch = SinricProSwitch(device_id)
sinricpro_switch.on_power_state(on_power_state_callback)
sinricpro.add_device(sinricpro_switch)
sinricpro.start(app_key, app_secret)
# main coroutine
async def main():
do_connect()
do_sinricpro()
while True:
await a.sleep_ms(10_000)
# start asyncio task and loop
try:
# start the main async tasks
a.run(main())
finally:
# reset and start a new event loop for the task scheduler
a.new_event_loop()
Pronto.

Agora o dispositivo está conectado ao servidor Sinric Pro e você pode controlá-lo pelo app Sinric Pro, pela skill da Alexa, pela action do Google Home ou pelo SmartThings
Tutoriais relacionados
- Como controlar um ESP32 ou ESP8266 com Alexa e Google Home
- Relé com MicroPython no ESP32
- Tutorial do Switch, parte 1: ligar e desligar um relé
Este documento é open source. Encontrou um erro de digitação? Crie uma issue