Решения для умного дома включают в себя устройства с питанием от Интернета вещей, такие как освещение, вентиляторы, двигатель водяного насоса, кухонные аксессуары и т. д. Умные помощники — это системы на основе голосовых команд, которые используются для switch включения или выключения устройств Интернета вещей. Приложение Android построено на детекторе голосовых команд, который по сути представляет собой систему на основе AI. Это голосовые команды, такие как «стоп» и «идти». Эти команды отправляются в облако, где устройства умного дома уже подписаны на эти команды. Таким образом, эти устройства получают эти команды и switch или switch. В этом проекте задействованы такие технологии, как AI, Data Science, IOT, Android, облачные вычисления и т. д.
Требуются следующие среды разработки:
Arduino для разработки приложений IOT, работающих на узле MCU (Arduino Sketch)
Android Studio для разработки приложений для Android (Java)
Google Colab для разработки модели обнаружения речи AI (Python)
Google Cloud VM для сервера MQTT (Java Script)
Рис. 1. Плата NodeMCU Blynk от Robo India
1. Узел MCU
Шаг 1. Установите Arduino
Установите Arduino arduino-1.8.13-windows.exe с этого сайта.
Шаг 2. Добавьте поддержку NodeMCU (подробности в разделе «Ссылки») в Arduino
Введите эту ссылку «http://arduino.esp8266.com/stable/package_esp8266com_index.json» в «Дополнительные URL-адреса диспетчера досок» в настройках, как показано ниже, и нажмите «ОК»
Инструменты > Совет > Менеджер досок -> Найдите ESP8266 -> Установить -> сообщество ESP8266
Выберите Инструменты->Платы->ESP8266->NodeMCU1.0
.
Шаг 3. Установите клиент PubSub
Шаги установки:
Эскиз -> Включить библиотеку -> Управление библиотеками… -> Введите PubSub в поле поиска
«PubSubClient от Ника О’Лири» Должен быть установлен
Шаг 4. Установите библиотеку DHT из Adafruits
Эскиз -> Включить библиотеку -> Управление библиотеками… -> Введите dht в поле поиска
Выберите библиотеку Adafruit
Шаг 5: Загрузите эскиз Arduino с Github
Загрузить эскиз Arduino с Github
Flash Скетч Arduino в NodeMCU
Примечание. Перед прошивкой измените SSID и пароль Wi-Fi
Обратите внимание: NodeMCU подключается к Интернету.
NodeMCU подключается к серверу MQTT.
Он начинает отправлять данные о температуре и влажности.
Он подписывается на «командную» тему.
Примечание. Используйте последовательный монитор для получения журналов от NodeMCU.
Шаг 6: Подключение к реле 1
Устройство умного дома (вентилятор) должно быть подключено к клеммам реле 1, а именно к COM и NO.
Реле 1 можно управлять через цифровой выходной порт, а именно «D1».
Шаг 7. Клиент pubsub должен подписаться на имя хоста «digitran-mqtt» и порт = 1883.
Когда реле получает команду «вперед», реле switch включается
При получении команды «стоп» реле выключается
2. Разработка приложений для Android
Шаг 1. Загрузите код приложения Android по ссылке Github.
Шаг 2. Создайте среду
Установите Java 8 и настройте JAVA_HOME
Установите Android SDK 26 и настройте ANDROID_HOME
Шаг 3. Подключите устройство Android к порту USB
Включить режим разработчика на устройстве Android:
Настройки->О телефоне->Номер сборки->Нажмите 7 раз->Теперь вы разработчик
Включите отладку USB в настройках разработчика
Шаг 4. Включите модель AI
Скопируйте «conv_actions_frozen.tflite» в папку ресурсов
Каталог проекта\app\src\main\assets
Шаг 5. Добавьте MQTT pubsub
Подключите клиент MQTT к серверу MQTT как «tcp://digitran-mqtt.tk:1883»
MQTT Клиент должен опубликовать только выбранную команду if MQTT Соединение с сервером установлено правильно: if(validMQTT==true) { publish(клиент, команда);
Шаг 6:
Запустить приложение
Скомпилируйте и соберите проект в Android Studio
Запустить приложение
Откройте Logcat и проверьте журналы
При успешном соединении с сервером MQTT появится сообщение «onSuccess».
В случае case сбоя появится сообщение onFailure
Шаг 7. Установите Mosquito и OpenSSL для отладки
Установите Mosquito mosquitto-2.0.4-install-windows-x64.exe по этой ссылке
Затем пропишите C:\mos1 в пути
Затем откройте cmd и введите mosquitto, чтобы подтвердить установку
Установите Win64OpenSSL-1_1_1i.msi по этой ссылке
Шаг 8. Настройте Mosquito
1. Откройте Services.msc:
Mosquitto Broker->Начать службу
2. Настройки брандмауэра
панель управления->Все элементы панели управления-> Брандмауэр Защитника Windows
Брандмауэр Защитника Windows с повышенной безопасностью
Правила для входящего трафика -> Новое правило -> TCP/Порт->1883->Разрешить подключение->mqtt/mqtt-broker
Правила исходящего трафика -> Новое правило -> TCP/Порт->1883->Разрешить подключение->mqtt/mqtt-broker
Шаг 9. Проверьте приложение Android с помощью Mosquito
Запустить приложение
Дайте команду «стоп» и «иди»
Обратите внимание, что команда распознается приложением
Подпишитесь Mosquito на тему – «команда», набрав в командной строке следующее:
mosquitto_sub -h digitran-mqtt.tk -t команда -p 1883
Обратите внимание, что в окне командной строки появляются кнопки остановки и перехода
3. Переобучите модель речевой команды AI с помощью Google Colab
Шаг 1. Загрузите модель AI (speech_commands.ipynb) с Github по этой ссылке
Загрузите вспомогательные файлы по этой ссылке.
Шаг 2. Загрузите блокнот в Google Colab
Загрузите ipynb и другие вспомогательные файлы в Google Colab
Шаг 3. Выполните Speech_commands.ipynb в Colab
После 25 эпох файл модели сохраняется как voice_commands.hdf5
В конце файл модели — voice_commands.hdf5 конвертируется из формата keras в формат tflite
Окончательный файл модели сохраняется как model.tflite
Этот файл tflite необходимо скопировать в папку ресурсов приложения Android после переименования в «conv_actions_frozen.tflite»:
Путь к папке с ресурсами: каталог проекта\app\src\main\assets
4. Создайте GCP VM для сервера MQTT
Шаг 1. Создайте экземпляр VM в Google Cloud Platform (GCP)
Регион: США-Запад1/США-Запад1-b
Серия-Е2
тип машины: e2-small (2 виртуальных ЦП, 2 ГБ памяти)
загрузочный диск-ubuntu 20 LTS (стандартный постоянный диск 100 ГБ)
Брандмауэр-Разрешить HTTP/HTTPS
Нажмите кнопку «Создать»
VM создан
Шаг 2. Получите доменное имя
goto http://www.dot.tk/
получить доменное имя «digitran-mqtt.tk»
Шаг 3. Получите имя DNS
GCP->Левый верхний угол->Меню навигации->Сетевые службы->Облако DNS (необходимо включить)
Создать зону
Тип зоны – >Общедоступная
Имя зоны->digitran-mqtt
DNS имя->digitran-mqtt.tk
DNSSEC->выкл.
Нажмите кнопку «Создать»
Он создает следующие наборы записей
digitran-mqtt.tk. СОА 21600
ns-cloud-b1.googledomains.com. облако-dns-hostmaster.google.com. 1 21600 3600 259200 300
digitran-mqtt.tk. Н.С. 21600
ns-cloud-b1.googledomains.com.
ns-cloud-b2.googledomains.com.
ns-cloud-b3.googledomains.com.
ns-cloud-b4.googledomains.com.
Создайте еще несколько записей, нажав «Добавить набор записей»
A уже отображается в типе записи ресурса
Добавьте адрес IP->xx.yy.zz.aa
Нажмите кнопку «Создать»
Он создает запись A:
digitran-mqtt.tk. А 300 xx.yy.zz.aa
Добавить еще одну запись:
DNS имя-> Добавить -> www
тип записи ресурса->выбрать->CNAME
каноническое имя->digitran-mqtt.tk
Нажмите кнопку «Создать»
Шаг 4. Привязка доменного имени
Перейти на сайт Freenom
https://my.freenom.com/clientarea.php
Службы->мойдомен->Проверить отображение домена
(Это займет минимум 2 часа)
Сервисы->мойдомен->Управление доменом
Выберите «Инструменты управления» -> «Серверы имен» .
Выберите «Использовать собственные серверы имен» (введите ниже)
Шаг 5:
Добавьте ключ SSH
Откройте GCP->Меню навигации-> Вычислительный движок -> Метаданные
Нажмите на клавиши SSH
Добавить элемент –>Вставить открытый ключ SSH из буфера обмена —> сохранить
Перейти к VMinstance->открыть вновь созданный экземпляр VM (экземпляр-1)
Перейдите в раздел ключей SSH -> Добавить элемент -> Вставить открытый ключ SSH из буфера обмена -> сохранить
Шаг 6. Подготовьте компьютер с Ubuntu
обновление sudo apt-get
обновление sudo apt-get
sudo apt-get установить nodejs
sudo apt-get установить npm
npm –версия
узел –версия
sudo apt-get установить git-core
git –версия
Шаг 7. Загрузите код сервера MQTT с Github:
компакт-диск /var/www
скопируйте MQTT код сервера по этой ссылке.
sudo chown -R $USER /var/www/MQTTServer
компакт-диск MQTTServer
установка npm
Шаг 8. Выполните app.js
узел app.js
обратите внимание: экспресс-сервер прослушивает порт 3000
Сервер Mosca запущен и работает на порту: 1883
Шаг 9. Создайте правило брандмауэра
Создать правило брандмауэра
имя: экспресс
тег: экспресс
IP источника: 0.0.0.0/0
TCP-порт=3000
Создать правило
Создать правило брандмауэра
имя: mqtt
тег: mqtt
IP источника: 0.0.0.0/0
TCP-порт=1883
Создать правило
Добавьте этот тег в VM
VM->экземпляр-1->Редактировать->nic->Сетевые теги-> добавить экспресс-> сохранить
VM->экземпляр-1->Редактировать->nic->Сетевые теги-> добавьте mqtt-> сохранить
Шаг 10: Перезапустите VM
Окно SSH:
компакт-диск /var/www/MQTTServer
узел app.js
Введите в браузере: digitran-mqtt.tk:3000/test
Обратите внимание: {“данные”:”успех”
Шаг 11. Тестирование с помощью Mosquitto (работает в Windows 10)
Откройте два командных окна: одно для подписки, другое для публикации
В окне подписки введите:
mosquitto_sub -h digitran-mqtt.tk -t iotapp8266 -p 1883
В окне публикации введите:
mosquitto_pub -h digitran-mqtt.tk -t iotapp8266 -p 1883 -m on
Обратите внимание: в окне подписки отображается значение «включено».
Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов!
Подробно тут! Жалоба