- Управление нагрузкой на NodeMCU с помощью мобильного приложения
- Теперь давайте перейдем к созданию приложения:
- Управление нагрузками через смартфон на Android
- Уроки Arduino: управление устройствами со смартфона для чайников
- Шаг 1. Что нам необходимо
- Шаг 2. Как это работает
- Шаг 3. Начинаем собирать схему
- Шаг 4. Загрузка программы в Arduino
- Шаг 5. Как происходит процесс
- Шаг 6. Приложение для Андроид-устройств
- Управление Arduino с телефона
Управление нагрузкой на NodeMCU с помощью мобильного приложения
15 августа, 2017
В данной статье показан пример использования платы NodeMCU. А именно управление нагрузкой с помощью релейного модуля из 4 реле и приложения на мобильный телефон андроид.
Подключаем все контакты по схеме
После подключения всех компонентов необходимо скопировать программный код приведенный ниже и вставить его в программу Arduino IDE и загрузить этот программный код в саму плату Arduino.
Ссылка на скетч: https://yadi.sk/d/XU-WI08r3M32gF
Сначала в этом скетче нужно изменить
Затем в строчке меняем ip адрес на свой:
Где первое это ip адрес устройства, 2 это шлюз, 3 это маска подсети, 4 это адрес dhcp сервера
После заливки скетча, переходя по адресу http://192.168.1.131/1/0 и http://192.168.1.131/1/1 мы будем включать и выключать реле, и следовательно меняя 1 на 2,3,4 мы будем управлять другими реле, например http://192.168.1.131/3/1
Теперь давайте перейдем к созданию приложения:
перейдя по ссылке: http://ai2.appinventor.mit.edu и залогинившись, мы поподаем в программу создания приложений для андроид.
Мое приложение выглядит так:
Тяжело здесь описать, что нужно добавлять, постараюсь перечислить что нужно накидать на экран.
Для управления 4мя реле нам нужно:
Из вкладки слева User interface накидать на экран 8 Button, для надписей над кнопками нам нужно 4 Label
Из вкладки слева Connectivity Добавить блок Web
Для установки двух кнопок в одной плоскости нам понадобится блок HorizontalArrangement в вкладке слева Layout
Для точечной настройки каждого добавленного блока, нужно выбрать тот блок который мы хотим отредактировать справа в вкладке Components
И в вкладке справа Properies раскроются все настройки которые применимы к этому объекту.
Общее окно выглядит вот так:
После косметических настроек перейдем в правом верхнем углу во вкладку Blocks
Здесь будем программировать с помощью блок-схем.
Для начала в вкладке слева Blocks выберем первую кнопку с которой будем работать и выберем блок: when Button1 . Click
Далее в тойже вкладке Blocks нажмем на Web и почти в самом низу выберем блок set Web1. Url to
и добавим его к when Button1 . Click
Далее перейдем в туже вкладку Blocks далее Text и выберем самый первый блок который выглядит вот так ” ” присоединим его к et Web1. Url to и напишем в нем адрес для включения реле “http://192.168.1.131/1/0”
Далее в тойже вкладке Blocks нажмем на Web выберем пурпурного цвета блок call Web1. Get и присоединим его к when Button1 . Click
На этом настройка кнопки закончена, такие же действия нужно проделать со всеми кнопками и должно получиться вот так:
Само приложение можно скачать по ссылке:https://yadi.sk/d/BY4kEIYQ3M36LL
Исходники можно посмотреть по этой ссылке: https://yadi.sk/d/ehabE3C_3M36Yo по этой ссылке скачается файл с расширением .aia и его можно добавить в MIT app invertor и посмотреть полностью из чего состоит программа.
Ну а кому лень читать и интересно смотреть видео:
Источник
Управление нагрузками через смартфон на Android
Ну вот наконец мы закончили долгожданный проект управления нагрузками со смартфона на ОС Android. Работает все это дело через Bluetooth модули. Можно использовать HC-05 и HC-06. С подключением проблем быть не должно. Не забывайте, что Ваш модуль можно переименовать так и так.
На момент написания статьи у меня не было 8 блоков реле, а были только пару светодиодов для тестирования работы. Если возникнут вопросы, комментарии всегда открыты.
200?’200px’:»+(this.scrollHeight+5)+’px’);»> int ledPin_1 = 6;
int ledPin_2 = 7;
int ledPin_3 = 8;
int ledPin_4 = 9;
int ledPin_5 = 10;
int ledPin_6 = 11;
int ledPin_7 = 12;
int ledPin_8 = 13;
void setup() <
Serial.begin(9600);
pinMode(ledPin_1, OUTPUT);
pinMode(ledPin_2, OUTPUT);
pinMode(ledPin_3, OUTPUT);
pinMode(ledPin_4, OUTPUT);
pinMode(ledPin_5, OUTPUT);
pinMode(ledPin_6, OUTPUT);
pinMode(ledPin_7, OUTPUT);
pinMode(ledPin_8, OUTPUT);
>
void loop() <
if (Serial.available() > 0) <
int i = Serial.read();
switch (i) <
case ‘0’: // В приложении указано, что при подключении к устройству, посылать «0» тем самым отключая все устройства если они были включены
digitalWrite(ledPin_1, LOW);digitalWrite(ledPin_2, LOW);
digitalWrite(ledPin_3, LOW);digitalWrite(ledPin_4, LOW);
digitalWrite(ledPin_5, LOW);digitalWrite(ledPin_6, LOW);
digitalWrite(ledPin_7, LOW);digitalWrite(ledPin_8, LOW);
break;
case ‘A’: // Посылаем «А» включаем светодиод 1
digitalWrite(ledPin_1, HIGH);
break;
case ‘a’: // Посылаем «а» выключаем светодиод 1
digitalWrite(ledPin_1, LOW);
break;
case ‘B’:
digitalWrite(ledPin_2, HIGH);
break;
case ‘b’:
digitalWrite(ledPin_2, LOW);
break;
case ‘C’:
digitalWrite(ledPin_3, HIGH);
break;
case ‘c’:
digitalWrite(ledPin_3, LOW);
break;
case ‘D’:
digitalWrite(ledPin_4, HIGH);
break;
case ‘d’:
digitalWrite(ledPin_4, LOW);
break;
case ‘E’:
digitalWrite(ledPin_5, HIGH);
break;
case ‘e’:
digitalWrite(ledPin_5, LOW);
break;
case ‘F’:
digitalWrite(ledPin_6, HIGH);
break;
case ‘f’:
digitalWrite(ledPin_6, LOW);
break;
case ‘G’:
digitalWrite(ledPin_7, HIGH);
break;
case ‘g’:
digitalWrite(ledPin_7, LOW);
break;
case ‘H’:
digitalWrite(ledPin_8, HIGH);
break;
case ‘h’:
digitalWrite(ledPin_8, LOW);
break;
>
>
>
Приложение называется BTerm (Bluetooth Terminal) и разработано специально под этот код и нашей командой разработчиков. Как можете заметить для нашего ресурса.
В приложении есть инструкция, по которой при подключении отправляется команда в Arduino что бы отключить все нагрузки. Сделано это для того, что бы была нормальная реакция на включение после переподключения к устройству. Если будет возможность, а это наличие времени, то приложение может получать некоторые обновления. Список их нам примерно известен, но это пока секрет. Рекомендовать могу только следить за нашими новостями подписавшись на группу vk.com/programerge
Не пропустите обновления! Подписывайтесь на нашу страницу в Instagram.
Так же у нас есть Telegram канал.
Вам понравился наш проект? Поделитесь с друзьями!
Источник
Уроки Arduino: управление устройствами со смартфона для чайников
Предлагаем простой урок для начинающих и чайников о том как с помощью Arduino через Bluetooth управлять смартфоном.
Когда-нибудь задумывались о том, чтобы управлять любыми электронными устройствами с помощью смартфона? Согласитесь, управлять роботом или любыми другими устройствами с вашего смартфона было бы очень круто. Если вам после этого урока захочется познакомиться с Arduino поближе — вы можете найти книги о нём здесь.
Шаг 1. Что нам необходимо
Устройства
- Модуль — Bluetooth Module HC 05/06
- Плата — Arduino
- Светодиод (LED)
- Резистор — 220Ω
- Android-устройство
Программное обеспечение
- Arduino IDE
- Android Studio (на самом деле не нужно, т.к. приложение для Андроида вы найдете ниже).
Шаг 2. Как это работает
Обычно мы делаем этот шаг в конце, но, чтобы вы понимали к чему мы должны прийти — посмотрите на результат на этом промежуточном шаге. Также ниже мы опубликовали видео урока по шагам.
Шаг 3. Начинаем собирать схему
Цепь в нашем уроке настолько проста и мала, что нам нужно сделать всего несколько соединений:
- Arduino Pins Bluetooth Module Pins
- RX (Pin 0) TX
- TX (Pin 1) RX
- 5V VCC
- GND GND
Подключите минус светодиода к GND на Arduino, а плюс к контакту 13 через сопротивление 220 Ом — 1 кОм. В целом, на нашем рисунке ниже всё довольно наглядно.
Шаг 4. Загрузка программы в Arduino
Теперь нам нужно написать программу и загрузить её в наш Arduino. Если вы этого пока еще не умеете делать — скачайте книги здесь. Код ниже именно то, что нам нужно загрузить в Ардуино.
Шаг 5. Как происходит процесс
Модуль HC 05/06 работает по последовательному каналу связи. Андроид-приложение последовательно отправляет данные на модуль Bluetooth, когда вы нажимаете определенную клавишу. Bluetooth на другом конце получает данные и отправить на Arduino через TX-соединение модуля Bluetooth (RX-соединение Arduino) .
Код загруженный в Arduino проверяет полученные данные и сравнивает их. Если получена «1» — светодиод включается и выключается при получении «0». Откройте монитор последовательного порта и наблюдайте полученные данные.
Шаг 6. Приложение для Андроид-устройств
В этом уроке мы не будем касаться создания приложений для устройств на основе Андроида. Вы можете скачать приложение на GitHub.
Как использовать приложение?
После того как мы подключились через Bluetooth — нам нужно скачать и установить приложение, которое при помощи смартфона 🙂 будет управлять нашим светодиодом на расстоянии. Скачать приложение вы можете бесплатно на сайте Амазон.ком. Подсоединяем смартфон к модулю Bluetooth HC 05/06:
- Включите модуль HC 05/0
- Ищем устройство
- Соединяемся с HC 05/06 введя дефолтный пароль «1234» или «0000» (четыре нуля).
После этого мы устанавливаем приложение на наш смартфон. Открываем его. Выбираем устройство — выбираем модуль Bluetooth из списка (HC 05/06). После успешного подключения нажмите кнопку ON для включения светодиода и кнопку OFF, чтобы выключить светодиод. Потом уже можно нажать кнопку «Отключить», чтобы отключиться от модуля Bluetooth.
Это было руководство для чайников и начинающих по подключению модуля Bluetooth с Arduino. Этот проект можно улучшить и поднять на более высокий уровень для, например, автоматизация дома через управление смартфоном, управляемый робот и многое другое.
Источник
Управление Arduino с телефона
Недавно заинтересовался идеей создания «умного дома». Так как из необходимых компонентов в моем распоряжении пока что имеются только arduino и телефон на андроиде, решено было начать с создания пульта управления и связи его с остальной частью системы.
Моё видение системы выглядит так:
Думаю стоит совместить домашний и веб-серверы, прикупив статический айпишник, но на первое время сойдет и так. Начнем с простого – научимся удаленно управлять светодиодом и LCD-дисплеем.
Web-server
На веб-сервере создаем БД с двумя таблицами – leds и texts. Таблица leds содержит 2 поля – id и status. Она содержит одну запись с актуальным состоянием светодиода. Таблица texts содержит 2 поля – id и text. Она также содержит одну запись с текстом, который в данный момент отображается на LCD-дисплее.
Теперь напишем пару скриптов, которые будем вызывать с телефона и передавать информацию для БД. Пишем на php.
Скрипт led.php (управление светодиодом):
Скрипт msg.php (управление LCD-дисплеем):
Я думаю, что из комментариев ясно, как работают эти скрипты. Это все, что находится на веб-сервере. Теперь перейдем к домашнему серверу (или говоря проще, компьютеру, к которому подключен ардуино).
Домашний сервер
На нем будет постоянно работать программка (можно даже назвать ее – демон), посылающая запросы к БД и при изменении находящейся там информации, посылающая на COM-порт с ардуино соответствующую команду. Программку напишем на языке Processing:
Пояснять этот код я тоже не стану, все и так понятно.
Еще 1 важный момент. Чтобы программа с нашего компьютера могла обращаться к БД, расположенной на удаленном сервере, надо это разрешить. Вводим наш ip в список разрешенных:
Далее по плану – приложение для телефона.
Приложение для телефона
Телефон у меня андроиде, для него и пишем. Не буду сильно вдаваться в подробности (очень хорошо как о установке среды программирования, так и о написании первого приложения написано вот в этой статье — ссылка).
Внешний вид приложения выглядит довольно скромненько, но в данном случае это не главное:
Приведу только отрывки кода программы под Android. Функция, вызывающая скрипт, управляющий светодиодом:
Функция, отсылающая текст для отображения на LCD-дисплее:
Ну и главная функция, в которой происходит привязка обработчиков событий к кнопкам:
И еще один важный момент – добавить разрешение приложению на выход в интернет. Для этого в файл AndroidManifest.xml (он находится в директории нашего андроид-приложения) надо добавить строчку:
Экспортируем наше приложение в файл APK и устанавливаем на телефон. Пульт управления умным домом готов!
Arduino
Ну и наконец последнее, но не по значению – подключение ардуино и ее прошивка. Схема подключения LCD-экрана и светодиода к Arduino Uno выглядит следующим образом:
Резистор берем на 220 Ом. Более подробно про подключение LCD-экрана можно прочитать здесь — ссылка
А вот как это все выглядит в реальности:
Задача ардуино состоит в прослушивании того, что программа-демон на домашнем сервере посылает на COM-порт, к которому и подключена ардуино (хотя фактически подключение идет по USB-кабелю, но компьютер распознает его как последовательный порт). После получения каких-либо данных с компьютера, контроллер по первому символу переданной информации распознает код команды (т.е. чем сейчас предстоит управлять – LCD-дисплеем или светодиодом). Далее в зависимости от кода и следующей за ним информации выполняется либо включение/выключение светодиода, либо вывод на дисплей переданного сообщения. Итак, вот собственно код:
Я думаю, пояснений он не требует, так как я очень подробно все расписал в комментариях. Единственное, что стоит отметить, так это некоторые ограничения на передаваемые для вывода на дисплей строки. Они не должны содержать пробелов (это ограничение накладывается несовершенством моего алгоритма) и не должны содержать кириллицы (т.к. она поддерживается не всеми дисплеями, а если и поддерживается, то требует передачи кодов символов в своей собственной кодировке, преобразовывать символы в которую нет никакого желания).
Заключение
И напоследок приведу ссылки на ресурсы, которые использовал:
Очень хорошие уроки по ардуино — ссылка
Ссылка на среду Processing — ссылка
Еще раз ссылка на статью по созданию первого приложения на Android – ссылка
Источник