Каталог статей

Главная » Все схемы » Схемы устройств на микроконтроллерах » Устройства на микроконтроллерах

Выбранная схема!!!


7699
Решение для умного дома

Решение для умного дома

Решения для умного дома включают в себя устройства с питанием от Интернета вещей, такие как освещение, вентиляторы, двигатель водяного насоса, кухонные аксессуары и т. д. Умные помощники — это системы на основе голосовых команд, которые используются для 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 часа)
    Сервисы->мойдомен->Управление доменом
    Выберите «Инструменты управления» -> «Серверы имен»
    . Выберите «Использовать собственные серверы имен» (введите ниже)

    Добавьте следующее:
    ns-cloud-b1.googledomains.com
    ns-cloud-b2.googledomains.com
    ns-cloud-b3.googledomains.com
    ns-cloud-b4.googledomains.com

    Нажмите кнопку «Изменить серверы имен»
    Введите digitran-mqtt.tk в браузере
    Веб-приложение запускается

    Шаг 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
    Обратите внимание: в окне подписки отображается значение «включено».

    Шаг 12. Установите сервер nginx
    обновление sudo apt-get
    sudo apt-get install -y build-essential openssl libssl-dev pkg-config
    sudo apt-get install nginx git –y

    Шаг 13. Настройте сервер nginx
    cd /etc/nginx/sites-available
    sudo nano mqtt-webapp
    ————-mqtt-webapp——————
    сервер {
    слушай 80;
    имя_сервера digitran-mqtt.tk;
    местоположение / {
    proxy_pass http://private-ip:port;
    proxy_http_version 1.1;
    proxy_set_header Обновление $http_upgrade;
    proxy_set_header Соединение «обновление»;
    proxy_set_header Хост $host;
    proxy_cache_bypass $http_upgrade;


    —————–end mqtt-webapp———
    sudo rm default
    Создать символическую ссылку:
    sudo ln -s /etc/nginx/sites-available/mqtt-webapp /etc/nginx/sites-enabled/mqtt-webapp
    sudo rm /etc/nginx/sites-enabled/default
    sudo service nginx stop && запуск службы sudo nginx

    Шаг 14. Бессрочное выполнение конфигурации
    компакт-диск /var/www/MQTTServer
    sudo chmod +x app.js
    sudo nano app.service
    ——————-app.service——————–
    [Единица]
    Description=Мое приложение

    [Сервис]
    ExecStart=/var/www/MQTTServer/app.js
    Перезапустить=всегда
    Пользователь=никто
    # Примечание. Debian/Ubuntu использует «nogroup», RHEL/Fedora использует «никто»
    Group=nogroup
    Environment=PATH=/usr/bin:/usr/local/bin
    Environment=NODE_ENV=production
    WorkingDirectory=/var/www/MQTTServer

    [Установить]
    WantedBy=multi-user.target
    —————————-конец———–
    sudo systemctl запустить приложение
    sudo systemctl включить приложение
    приложение sudo Journalctl -u
    sudo systemctl статус app.service

    5. Демо

    Демо-версия этого проекта приведена по ссылке:

    Видео: https://www.youtube.com/watch?v=7XdNXwjyvx4

    Ссылки

  • Интернет вещей Blynk – комплект IOT
  • 2. Использование клиента Arduino PubSub MQTT 3. Передача данных в реальном времени для Интернета вещей с помощью MQTT, Android и NodeMCU | Равинду Рашмин | Коинмонкс | Средний 4. Позвольте своим IOT-устройствам говорить — сервер MQTT в Google Cloud VM 5. Руководство по переполнению стека

    Доктор. Анбунатан Р. — основатель & Генеральный директор стартапа DigiTran Solutions, предоставляющего решения на основе цифровой трансформации.


    Категория: Устройства на микроконтроллерах | Добавил: Администратор (19.05.2026)
    Просмотров: 6 | Рейтинг: 0.0/0


    Всего комментариев: 0

    Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов! Подробно тут!
    Жалоба

    ьте свои комментарии !!!!

    Имя *:
    Email:
    Код *:

    Copyright Zloy Soft (Company) © 2008 - 2026