Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Controla tu Ventilador de Techo con Alexa: Guía Paso a Paso

Componentes y materiales

ComponenteCantidad
Raspberry Pi 3 Model B1
Arduino UNO1
Relé (genérico)1
Regulador de ventilador1

Herramientas y máquinas necesarias

Aplicaciones y servicios online

Sobre el proyecto

Detallo cómo convertí mi ventilador de techo normal en uno inteligente integrando Amazon Alexa para control de velocidad. Usamos Alexa Skill Kit para iniciar el cambio de velocidad, y el servicio de túnel ngrok para enrutar la petición a nuestro servidor RPi local, que ordena al Arduino UNO activar el relé correspondiente.

Controla tu Ventilador de Techo con Alexa: Guía Paso a Paso

Configurar servidor local Raspberry Pi

Servicios necesarios:

Script Python para el servidor:

from flask import Flask
from flask_ask import Ask, statement
import requests
import json
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 techo encendido.")

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

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

@ask.intent("FanLevelDown")
def down():
    ser.write(b'-')
    return statement("Velocidad del ventilador disminuida.")

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

Ejecuta este script y añádelo al inicio automático de tu RPi.

3. Descargar Ngrok

Ngrok es plataforma de túnel seguro para poner tu dispositivo online. Descarga para ARM en https://ngrok.com/. Descomprime y ejecuta:

./ngrok http 5000

Alexa Skill

Ve a Amazon Developer y regístrate. Entra en Developer Console > Alexa Skills Kit > Add new skill.

Nombre de la skill y nombre de invocación (cumple condiciones).

Intents:

{
  "intents": [
    { "intent": "FanOn" },
    { "intent": "FanOff" },
    { "intent": "FanLevelUp" },
    { "intent": "FanLevelDown" }
  ]
}

Sample utterances:

FanOn say fan on
FanOn say on
FanOff say off
FanOff say fan off
FanLevelUp say fan level up
FanLevelUp say increase fan speed
FanLevelDown say fan level down
FanLevelDown say decrease fan speed
Controla tu Ventilador de Techo con Alexa: Guía Paso a Paso Controla tu Ventilador de Techo con Alexa: Guía Paso a Paso Controla tu Ventilador de Techo con Alexa: Guía Paso a Paso

Guarda y continúa. En endpoint selecciona HTTPS y pega el link seguro generado por ngrok. Elige segunda opción para certificado SSL.

Para probar: asegúrate que ngrok y script Python estén corriendo. Verás que los servidores reciben peticiones y actualizan.

Código Arduino

Sube el sketch adjunto a tu Arduino y conéctalo a la Raspberry Pi como en el esquemático.

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);
}

Hardware

Conecta el hardware como se muestra en el esquemático.

Controla tu Ventilador de Techo con Alexa: Guía Paso a Paso

¡Feliz creación! Haz cualquier otro electrodoméstico activable por voz de forma similar :)

Código

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);
}

Código Servidor Python

from flask import Flask
from flask_ask import Ask, statement
import requests
import json
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("Ceiling Fan turned on.")

@ask.intent("FanOff")
def off():
    ser.write(b'0')
    return statement("Ceiling Fan turned off.")

@ask.intent("FanLevelUp")
def up():
    ser.write(b'+')
    return statement("Ceiling Fan speed up.")

@ask.intent("FanLevelDown")
def down():
    ser.write(b'-')
    return statement("Ceiling Fan speed down.")

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

Esquemático

Así se conectan los dispositivos entre sí

Controla tu Ventilador de Techo con Alexa: Guía Paso a Paso

Proceso de manufactura

  1. Construya una Red de Sensores Inalámbrica Económica para su Hogar
  2. Alcancía Inteligente: Controla un Aceptador de Monedas con Arduino Nano
  3. Centro de Control de Potencia Arduino: N-FET, P-FET, Relé y RTC
  4. Controla LEDs con Alexa mediante Raspberry Pi – Guía paso a paso fácil
  5. Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
  6. Controlador de Humidificador DIY con Arduino y Relé: Configuración Segura de Alto Voltaje
  7. Controla Dos Motores Paso a Paso con Arduino Nano y Joystick - Tutorial Sencillo
  8. Controlar un LED de Arduino con Cortana vía Bluetooth en Windows 10
  9. Controla tu TV con Alexa mediante Arduino IoT Cloud: Guía Paso a Paso
  10. Integra tu calefacción central con Arduino para control inteligente
  11. Control de Ventilador PWM de 4 Pines a 25 kHz con Arduino Uno – Montaje, Código y Pruebas