#378IntermediárioIoT

ESP32 Abridor de Cortina IoT (Servo SG90)

Toque em + ou − no celular e o servo gira para esse ângulo no mesmo instante: abra e feche uma cortina de maquete, a haste de uma persiana ou uma tampinha de onde você estiver. Este projeto é o guia passo a passo do modelo IoT Cortina com servo do app, com um ESP32 e um servo SG90, com só 3 fios. Vá em Oficina › Dispositivos › Adicionar dispositivo; o Ohmi prepara o código com a sua chave de dispositivo. O código daqui é um exemplo: a chave e o Wi-Fi são valores de exemplo.

0.0(0)
ESP32 Abridor de Cortina IoT (Servo SG90)
Se você quer abrir a cortina sem sair da cama ou fechar a persiana quando está fora, este projeto é para você. O servomotor gira para o ângulo que você escolher no celular, e depois de uma queda de energia a placa volta para o último ângulo. Você começa com uma cortina de maquete ou a haste de uma persiana e aprende quanta força o servo tem e onde estão os limites dele. Com só três fios, é um bom primeiro passo para controlar movimento pelo celular.
IoT · controle remotoSeu primeiro dispositivo é grátis

Controle este dispositivo pelo app

Conecte seu ESP32 ou Raspberry Pi Pico W ao Wi-Fi, ligue e desligue pelo celular e veja as leituras ao vivo. O Ohmi prepara o código; você só informa os dados do Wi-Fi e faz o upload.

Modelo no app: Cortina com servo

  • Onde fica no app?Adicione um novo dispositivo pela aba Ferramentas ou em Oficina › Dispositivos e escolha este modelo.
  • Biblioteca ArduinoAbra o Gerenciador de Bibliotecas no Arduino IDE, procure BlueGraysIoT e instale.
Baixe o app grátis

O plano grátis inclui 1 dispositivo, 1 gráfico e 24 horas de histórico. Com o Premium, você tem mais dispositivos, mais gráficos e histórico mais longo.

Esquema do circuito

ESP32 Abridor de Cortina IoT (Servo SG90) - Circuit

Código-fonte

C++ (Arduino IDE)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   ESP32 Abridor de Cortina IoT (Servo SG90)
4// ─────────────────────────────────────────
5// O modelo IoT "Cortina com servo" do app BlueGrays: o ajuste Ângulo da
6// cortina do app (botões + e −) gira o servo SG90 para o ângulo que você
7// quiser entre 0 e 180 graus, então você abre e fecha pelo celular uma
8// cortina de maquete, a haste de uma persiana ou uma tampinha. O Ohmi
9// prepara o código de verdade no app com a sua própria chave de
10// dispositivo (Oficina › Dispositivos › Adicionar dispositivo); o código
11// daqui é um exemplo, a chave do dispositivo e os dados do Wi-Fi são
12// valores de exemplo. Gerenciador de bibliotecas: BlueGraysIoT (com as
13// dependências) e ESP32Servo. A placa só se conecta a redes Wi-Fi de 2,4
14// GHz. O SG90 é um servo pequeno; uma cortina de verdade precisa de um
15// servo mais forte com alimentação própria de 5 V, e não coloque os dedos
16// no braço que gira.
17//
18// Pinos:
19//   GPIO18 -> Sinal do servo (laranja)
20//   5V, GND -> Servo V+ (vermelho), GND (marrom)
21//   Pico W: sinal do servo GP17
22
23/*
24 * Cortina com servo · BlueGrays IoT
25 * BlueGrays · bluegrays.com
26 * Não compartilhe este código: ele contém a chave do dispositivo e a senha do Wi-Fi.
27 */
28
29#include <BlueGraysIoT.h>
30#include <ESP32Servo.h>  // Gerenciador de bibliotecas: 'ESP32Servo'
31
32const char *DEVICE_KEY = "SUA_CHAVE_DO_DISPOSITIVO";
33const char *WIFI_NAME = "SUA_REDE_WIFI";
34const char *WIFI_PASSWORD = "SUA_SENHA_WIFI";
35
36BlueGraysIoT bg(DEVICE_KEY);
37
38const int SERVO_PIN = 18;
39Servo servo;
40
41void setup() {
42  Serial.begin(115200);
43  servo.attach(SERVO_PIN);
44  bg.onNumber("aci", [](float v) { servo.write((int)v); });
45  bg.setDebug(Serial);
46  bg.setLanguage(BG_LANG_EN);
47  bg.begin(WIFI_NAME, WIFI_PASSWORD);
48}
49
50void loop() {
51  bg.loop();  // evite delay() longos aqui
52}
53

Perguntas frequentes

Posso enviar o código desta página direto para a placa?

Pode, mas ela não vai se conectar: a chave do dispositivo e os dados do Wi-Fi são valores de exemplo. No app, vá em Oficina › Dispositivos › Adicionar dispositivo e escolha o modelo Cortina com servo; o Ohmi prepara o código com a sua chave, o nome da sua rede e a sua senha. Copie esse código e envie para a placa. Depois você vê o código completo em Dispositivo › Código e chave.

Funciona também com uma Pico W?

Funciona. Ao adicionar o dispositivo, escolha Pico W como placa; o código continua igual, o pino do servo vira GP17 e o código usa a biblioteca Servo que vem com o pacote pico no lugar da ESP32Servo, então não precisa instalar mais nada. Ligue o fio vermelho do servo no VBUS (5 V). Na Arduino IDE, instale o pacote "pico" pelo Gerenciador de placas. O circuito e a foto desta página foram feitos com um ESP32.

Um SG90 consegue puxar uma cortina de verdade?

Não. O SG90 é um servo pequeno; ele gira uma cortina de maquete, a haste de uma persiana ou uma tampa leve. Uma cortina de verdade precisa de um servo forte como o MG996R ou de um motor com redução. Alimente um servo forte com um carregador de 5 V separado de pelo menos 2 A, não pelo pino 5V da placa, e ligue o GND do carregador no GND da placa. Não coloque os dedos no braço que gira e não deixe obstáculos duros no caminho dele.

Minha senha do Wi-Fi e a chave do dispositivo estão seguras?

A senha do Wi-Fi fica no seu celular e nunca é enviada ao nosso servidor; ela entra no código ali mesmo, no celular. A chave do dispositivo só viaja no cabeçalho da conexão segura e nunca aparece no Monitor Serial. Mesmo assim, as duas estão dentro do código, então não compartilhe o código que você copia do app. Se alguém viu sua chave, gere outra com Renovar chave e envie o código novo.