Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Управление потолочным вентилятором через Alexa: пошаговое руководство

Компоненты и материалы

Инструменты

Программное обеспечение и сервисы

О проекте

Обычный потолочный вентилятор становится умным: голосовые команды Alexa → Skill → ngrok HTTPS → Flask-сервер на Raspberry Pi → Serial → Arduino UNO → реле → включение/переключение скоростей регулятора.

Настройка Raspberry Pi (Flask + flask-ask)

# Установка зависимостей
sudo apt-get install python-pip
pip install flask flask-ask pyserial
sudo apt-get install libpython2.7-dev

Серверный скрипт (Python)

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

ser = serial.Serial("/dev/ttyAMA0", 9600)  # или /dev/ttyUSB0
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)

Добавьте скрипт в автозагрузку (systemd / rc.local).

ngrok — публичный HTTPS для локального сервера

  1. Скачайте ngrok для ARM: ngrok.com.
  2. Распакуйте, запустите: ./ngrok http 5000.
  3. Скопируйте HTTPS-URL (например, https://abcd1234.ngrok.io).

Создание Alexa Skill

  1. Amazon Developer Console → Alexa Skills Kit → Add Skill.
  2. Invocation Name: «потолочный вентилятор» (или на английском).
  3. Intents: FanOn, FanOff, FanLevelUp, FanLevelDown.
  4. Sample Utterances: «turn on fan», «fan off», «increase fan speed», «decrease fan speed» и вариации.
  5. Endpoint: HTTPS, вставьте ngrok URL. SSL Certificate: «My development endpoint has a certificate from a trusted CA» (второй вариант).
  6. Сохраните, протестируйте в симуляторе.

Код Arduino (управление реле скоростей)

int Fan[] = {13, 12, 11, 10, 9, 8}; // пины реле для скоростей 0..5
int n = 0;

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

void loop() {
  if (Serial.available()) {
    char 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;   // выкл.
  }
  if (n < 0) n = 0;
  if (n > 5) n = 5;
  digitalWrite(Fan[n], HIGH);
}

Схема подключения

Управление потолочным вентилятором через Alexa: пошаговое руководство

Важные замечания

Производственный процесс

  1. Построение доступной беспроводной сети датчиков для дома
  2. Умная копилка: управление монетоприёмником на Arduino Nano
  3. Arduino Power Control Center: N-FET, P-FET, реле и RTC
  4. Управление светодиодами через Alexa с помощью Raspberry Pi – простое пошаговое руководство
  5. Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
  6. DIY-контроллер увлажнителя на Arduino с реле: безопасная работа с высоким напряжением
  7. Управление двумя шаговыми двигателями через джойстик на Arduino Nano — простой урок (Visuino)
  8. Управление светодиодом Arduino через Cortana по Bluetooth в Windows 10
  9. Управление телевизором через Alexa и Arduino IoT Cloud — пошаговое руководство
  10. Управление 4-пиновым PWM-вентилятором 25 кГц на Arduino Uno — Сборка, код и тесты