Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Controle seu Ventilador de Teto com Alexa: Guia Passo a Passo

Componentes e Materiais

Raspberry Pi 3 Model B × 1
Arduino UNO × 1
Relé (genérico) – 5V para interface direta com Arduino ou placa de relé × 1
Regulador de Ventilador – qualquer tipo com terminais acessíveis; sugere-se modelos antigos resistivos × 1

Ferramentas Necessárias

Aplicativos e Serviços Online

Sobre o Projeto

Detalho como transformei meu ventilador de teto comum em um ventilador inteligente controlado por Amazon Alexa para ajuste de velocidade. Usamos Alexa Skills Kit para iniciar a mudança de velocidade, e o serviço de túnel ngrok para rotear a requisição ao servidor Raspberry Pi local, que comanda o Arduino UNO a acionar o relé correspondente.

Controle seu Ventilador de Teto com Alexa: Guia Passo a Passo

Configurando o Servidor Local no Raspberry Pi

Serviços necessários:

  1. Python PIP: sudo apt-get install python-pip (já incluso no Python 2.7/3)
  2. Flask: pip install flask – microframework web Python
  3. Flask-Ask: pip install flask-ask – extensão para skills Alexa
  4. PySerial: sudo apt-get install python-serial – comunicação serial
  5. libpython2.7-dev: sudo apt-get install libpython2.7-dev

Script Python (alexa_fan.py) – servidor Flask + Flask-Ask:

from flask import Flask
from flask_ask import Ask, statement
import serial

ser = serial.Serial("/dev/ttyAMA0", 9600)  # Serial para Arduino
app = Flask(__name__)
ask = Ask(app, '/')

@ask.launch
@ask.intent("FanOn")
def on():
    ser.write(b'1')
    return statement("Ventilador de teto ligado.")

@ask.intent("FanOff")
def off():
    ser.write(b'0')
    return statement("Ventilador de teto desligado.")

@ask.intent("FanLevelUp")
def up():
    ser.write(b'+')
    return statement("Velocidade do ventilador aumentada.")

@ask.intent("FanLevelDown")
def down():
    ser.write(b'-')
    return statement("Velocidade do ventilador diminuída.")

if __name__ == "__main__":
    app.run(debug=True)

Execute este script e adicione ao autostart do RPi.

Ngrok – Túnel Seguro

Baixe ngrok para ARM em ngrok.com. Descompacte e execute:

./ngrok http 5000

Isso gerará uma URL HTTPS pública (ex: https://abc123.ngrok.io) que encaminha para localhost:5000 do RPi.

Criando a Alexa Skill

  1. Cadastre-se em Amazon Developer Console
  2. Entre no console → Alexa Skills Kit → Add New Skill
  3. Nome da skill + Invocation Name (ex: "ventilador")
  4. Defina Intents e Sample Utterances:
{
  "intents": [
    { "intent": "FanOn" },
    { "intent": "FanOff" },
    { "intent": "FanLevelUp" },
    { "intent": "FanLevelDown" }
  ]
}
FanOn          ligar ventilador
FanOn          ventilador on
FanOff         desligar ventilador
FanOff         ventilador off
FanLevelUp     aumentar velocidade
FanLevelUp     ventilador mais rapido
FanLevelDown   diminuir velocidade
FanLevelDown   ventilador mais devagar
  1. Em Configuration: selecione HTTPS, cole a URL do ngrok (ex: https://abc123.ngrok.io)
  2. SSL Certificate: escolha segunda opção (meu certificado é assinado por autoridade confiável – ngrok usa Let's Encrypt)
  3. Teste: certifique-se que ngrok e script Python estão rodando. Use o simulador no console Alexa.

Código Arduino

Carregue no Arduino UNO e conecte ao Raspberry Pi via serial (GPIO UART /dev/ttyAMA0) conforme esquemático.

int Fan[] = {13, 12, 11, 10, 9, 8}; // Pinos para 6 velocidades (relés)
int n = 0; // Velocidade atual (0=off, 1-5=velocidades)

void reset() {
  for (int i = 0; i < 6; i++) digitalWrite(Fan[i], LOW);
}

void set(char cmd) {
  switch (cmd) {
    case '1': n = 1; break;      // Liga velocidade 1
    case '+': n++; break;        // Aumenta velocidade
    case '-': n--; break;        // Diminui velocidade
    case '0': n = 0; break;      // Desliga
  }
  if (n > 5) n = 5; // Limite máximo
  if (n < 0) n = 0; // Limite mínimo
  digitalWrite(Fan[n], HIGH);    // Ativa relé correspondente
}

void setup() {
  for (int i = 0; i < 6; i++) pinMode(Fan[i], OUTPUT);
  Serial.begin(9600);
}

void loop() {
  if (Serial.available()) {
    char cmd = Serial.read();
    reset();
    set(cmd);
  }
}

Hardware – Ligações

Conforme esquemático: Arduino controla 6 relés (um por velocidade do regulador). O regulador original do ventilador é mantido; os relés comutam os taps do enrolamento resistivo (ou triacs em modelos modernos).

Controle seu Ventilador de Teto com Alexa: Guia Passo a Passo

Dica: Use relés de 5V com driver (transistor/optacoplador) ou módulo relé pronto. Isolamento da rede elétrica é essencial para segurança!

Pronto!

Agora diga: "Alexa, peça ao ventilador para aumentar a velocidade" ou "Alexa, diga ao ventilador para ligar". Adapte para outros eletrodomésticos!

Códigos

Sketch Arduino

int Fan[] = {13,12,11,10,9,8}; int n=0;
void reset(); void set(char);
void setup() { for(int i=0;i<6;i++) pinMode(Fan[i], OUTPUT); Serial.begin(9600); }
void loop() { char x; if (Serial.available()) { x=Serial.read(); reset(); set(x); } }
void reset() { for(int i=0;i<6;i++) digitalWrite(Fan[i], LOW); }
void set(char x) { switch (x) { case '1': n=1; break; case '+': n++; break; case '-': n--; break; case '0': n=0; break; } digitalWrite(Fan[n],HIGH); }

Servidor Python (Flask-Ask)

from flask import Flask
from flask_ask import Ask, statement
import serial
ser = serial.Serial("/dev/ttyAMA0",9600)
app = Flask(__name__)
ask = Ask(app, '/')
@ask.launch @ask.intent("FanOn") def on(): ser.write(b'1'); return statement("Ventilador de teto ligado.")
@ask.intent("FanOff") def off(): ser.write(b'0'); return statement("Ventilador de teto desligado.")
@ask.intent("FanLevelUp") def up(): ser.write(b'+'); return statement("Velocidade do ventilador aumentada.")
@ask.intent("FanLevelDown") def down(): ser.write(b'-'); return statement("Velocidade do ventilador diminuída.")
if __name__ == "__main__": app.run(debug=True)

Esquemático

Controle seu Ventilador de Teto com Alexa: Guia Passo a Passo

Processo de manufatura

  1. Construa uma Rede de Sensores Sem Fio Acessível para Sua Casa
  2. Mealheiro Inteligente: Controlar Aceitador de Moedas com Arduino Nano
  3. Central de Controle de Potência Arduino: N-FET, P-FET, Relé e Kit RTC
  4. Controlar LEDs com Alexa via Raspberry Pi – Guia Passo a Passo Fácil
  5. Controlar um LED via Bluetooth com Arduino – Guia DIY Simples
  6. Controlador de Umidificador DIY com Arduino e Relé – Configuração Segura de Alta Tensão
  7. Controle Dois Motores de Passo com Arduino Nano e Joystick – Tutorial Simples
  8. Controle de LED Arduino com Cortana via Bluetooth no Windows 10
  9. Controle sua TV com Alexa via Arduino IoT Cloud – Guia Passo a Passo
  10. Controle de Ventoinha PWM 4 Pinos 25 kHz com Arduino Uno – Montagem, Código e Teste