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

Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot

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

Amazon Alexa / Amazon Echo 1 шт.
Walabot Creator (программируемый 3D-сенсор) 1 шт.
Arduino Leonardo 1 шт.
Реле (для управления лампами) 2 шт.
LattePanda 2G/32GB (активированная) 1 шт.
Дисплей 7" 1024×600 IPS для LattePanda 1 шт.
Лампа (настольная/напольная) 2 шт.

О проекте

Введение

Если у вас есть Alexa (или другая умная колонка) и умный дом, вы наверняка сталкивались с проблемой: нужно помнить точное имя каждого устройства. У меня много гаджетов, и иногда имена путаются.

Три типичных сценария:

Дети обожают команду «Алекса, включи ВСЕ лампы» — весь дом светящийся как ёлка. Весело, но не в 3 часа ночи!

Как решить?

А что, если просто сказать: «Алекса, включи ЭТУ лампу»?

Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot

Alexa определяет, где я нахожусь относительно устройства, и понимает, о чём речь. Отличная идея?

Камера в комнате с распознаванием образов — ТОО СТРАШНО. Не хочу камеры дома.

Вот где приходит на помощь Walabot:

Walabot

Что такое Walabot?

Walabot — программируемый 3D-сенсор для DIY-электроники. Это новый тип 3D-изображения. Использует радиочастоты (RF) и «просвечивает» окружающий мир. Компактный, программируемый, с SDK и API для создания собственных приложений. Имеет различные режимы визуализации.

Отслеживает движения с помощью RF.

Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot

LattePanda

LattePanda — одноплатный компьютер x86/x64 с четырёхъядерным Intel Atom x8300 «Cherrytrail», работающий под Windows 10. 2/4 ГБ RAM, Bluetooth 4.0, WiFi 802.11n, USB 3.0, 2×USB 2.0, HDMI, и встроенный ATMega32u4 (как в Arduino Leonardo) с GPIO — всё на ладони!

Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot

Эта архитектура идеально подходит для нашего сценария: интегрированный микроконтроллер позволяет подключить Walabot (к Intel Atom) и Arduino (через встроенный ATMega32u4) одновременно.

Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot

Node-RED

Node-RED — браузерный инструмент для визуального программирования IoT-логики: подписка на TCP, прослушивание Alexa, работа с БД, MQTT, HTTP, JavaScript-функции — всё drag-and-drop.

Лёгкий рантайм на Node.js, использующий событийную неблокирующую модель.

Если ввести данные Walabot в Node-RED — откроются огромные возможности для домашней автоматизации. Использованные пакеты:

Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot

Принцип работы

Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot

Оборудование

Установка

Шаг 1. Walabot SDK

Скачайте и установите SDK: walabot.com/getting-started

Шаг 2. Настройка Arduino на LattePanda

docs.lattepanda.com/content/hardware/accessPinoutsFromVS/

  1. Включите режим разработчика в Windows.
Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot
Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot
Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot

Шаг 3. Настройка Arduino (загрузка Firmata)

  1. Откройте Arduino IDE. Выберите «StandardFirmata» (Файл → Примеры → Firmata → StandardFirmata).
  2. Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot
  3. Выберите плату «Arduino Leonardo».
  4. Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot
  5. Выберите COM-порт.
  6. Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot
  7. Загрузите скетч.
  8. Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot
  9. Готово!
  10. Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot

Подключите реле к LattePanda (к встроенному Arduino Leonardo).

Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot

Шаг 4. Установка Node.js и Node-RED

Если не знакомы — ссылки:

Шаг 5. Установка Python 3

Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot

Шаг 6. Репозиторий проекта

https://github.com/rondagdag/smart3DSensorForAlexa

Скачайте, распакуйте, в папке проекта выполните:

> npm install
> npm start

Шаг 7. Финал

Убедитесь, что вы в одной Wi-Fi сети, и в приложении Alexa включены Smart Home Skills. Скажите: «Алекса, найди устройства». Alexa найдёт «Lamp».

Для просмотра/редактирования Node-RED: https://localhost:8080/red/

Теперь можно переназначить пины Arduino на LattePanda, подключить MQTT или другие модули Node-RED.

Весь поток Node-RED (3 шага)

  1. Handle Walabot Service — Python-скрипт, читающий данные Walabot и стримящий JSON в TCP порт 1890.
  2. Get and save Walabot object data — принимает данные с порта 1890, парсит JSON, сохраняет последнюю известную позицию объекта в глобальные переменные.
  3. Handle Alexa Commands — срабатывает при команде от Alexa, на основе последней позиции определяет, какой пин Arduino (реле) переключить.
Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot

Handle Walabot Service (Python код)

Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot
Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot
from __future__ import print_function
from sys import platform
from os import system
from imp import load_source
WalabotAPI = load_source('WalabotAPI', 'C:\\Program Files\\Walabot\\WalabotSDK\\python\\WalabotAPI.py')
import socket, sys

if __name__ == '__main__':
    WalabotAPI.Init()
    WalabotAPI.SetSettingsFolder()
    WalabotAPI.ConnectAny()
    WalabotAPI.SetProfile(WalabotAPI.PROF_SENSOR)
    WalabotAPI.SetThreshold(35)
    WalabotAPI.SetArenaR(50,400,4)
    WalabotAPI.SetArenaPhi(-45,45,2)
    WalabotAPI.SetArenaTheta(-20,20,10)
    WalabotAPI.SetDynamicImageFilter(WalabotAPI.FILTER_TYPE_MTI)
    WalabotAPI.Start()
    system('cls' if platform == 'win32' else 'clear')
    numOfTargetsToDisplay = 1
    if len(sys.argv) == 2:
        TCP_IP = '127.0.0.1'
        TCP_PORT = int(sys.argv[1])
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.bind((TCP_IP, TCP_PORT))
        s.listen(1)
        conn, addr = s.accept()
        while True:
            WalabotAPI.Trigger()
            targets = WalabotAPI.GetSensorTargets()
            finds = '{"targets": ['
            index = 0
            for i, t in enumerate(targets):
                if i < numOfTargetsToDisplay:
                    index += 1
                    print('Target {}\nx = {}\ny = {}\nz = {}\n'.format(i+1, t.xPosCm, t.yPosCm, t.zPosCm))
                    finds += '{"x": "%s", "y": "%s", "z": "%s"}' % (t.xPosCm, t.yPosCm, t.zPosCm)
            finds += ']}'
            conn.sendall(str.encode(finds))
            conn.close()
            WalabotAPI.Stop()
            WalabotAPI.Disconnect()

Get and save Walabot object data (Node-RED function)

Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot
raw = msg.payload.toString('UTF-8')
j = JSON.parse(raw);
var msg1 = { payload: raw };
var msg2 = { payload: j };
if (raw.length > 20) {
    X = msg2.payload.targets[0].x;
    Y = msg2.payload.targets[0].y;
    Z = msg2.payload.targets[0].z;
    global.set("X", X);
    global.set("Y", Y);
    global.set("Z", Z);
    var msg3 = { payload: X };
    var msg4 = { payload: Y };
    var msg5 = { payload: Z };
}
return [ msg1, msg2, msg3, msg4, msg5];

Handle Alexa Commands (Node-RED)

Умный 3D-сенсор: голосовое управление лампой через Amazon Echo и Walabot

Используется node-red-contrib-alexa-local. Логика маршрутизирует команду на нужный пин Arduino исходя из последней известной позиции человека (X, Y, Z от Walabot).

Если проект заинтересовал — нажмите «Respect project» и подпишитесь. Если помогло построить свой проект — напишите отзыв!

Примечание: здесь не используется кастомный Alexa Skill, а встроенная функциональность Smart Home (управление Philips Hue). Узел node-red-contrib-alexa-local просто эмулирует любые «Лампы», которыми вы хотите управлять через Alexa!

Код

Smart 3D Sensor for Alexa

https://github.com/rondagdag/smart3DSensorForAlexa

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

  1. Датчик движения SmartThings на компьютерном зрении с Raspberry Pi 3
  2. Построение DIY инфракрасного датчика движения для Raspberry Pi — пошаговое руководство
  3. Умное мусорное ведро: клеточное IoT-решение для автоматизированного управления отходами
  4. Управление Chromecast через Amazon Alexa с помощью Raspberry Pi и Python
  5. Умный светофор: адаптивное уличное освещение на базе IoT
  6. Создание робота, избегающего препятствия, на Raspberry Pi — руководство для начинающих
  7. Smart Pen: Отслеживание почерка и движений в реальном времени с Raspberry Pi и IMU
  8. Нагреваемая одежда: ведущая инновация в умных текстилях, по мнению экспертов
  9. Революционный ультрачувствительный стойкий датчик деформации для умных текстилей
  10. Революционный ультратонкий сенсор расширяет функциональность умных контактных линз