Как загрузить код на Ардуино через смартфон

Содержание

Использование esp8266 для связи Ардуино по WiFi

Перед подключением к Ардуино важно помнить, что у ESP8266 напряжение питания не может быть выше 3,6, в то время как на пате Ардуино напряжение равно 5 В. Соединять 2 микроконтроллера нужно с помощью резистивных делителей

Перед подключением модуля нужно ознакомиться с распиновкой выбранного ESP8266. Схема подключения для ESP8266-01 представлена на рисунке.

Как загрузить код на Ардуино через смартфон

3,3 В с Ардуино – на Vcc&CH_PD на модуле ESP8266, Земля с Ардуино – к земле с ESP8266, 0 – TX, 1 – RX.

Для поддержки стабильной работы ESP8266 необходим источник постоянного напряжения на 3,3 В и максимальный ток 250 мА. Если питание происходит от конвертера USB-TTL, могут происходить неполадки и сбои в работе.

Работа с библиотекой Wi-Fi для ESP8266 схожа с библиотекой для обыкновенного шилда. Имеется несколько особенностей:

  • mode(m) – для выбора одного из трех режимов: клиент, точка доступа или оба режима единовременно.
  • softAP(ssid) – нужен для создания открытой точки доступа.
  • softAP(ssid, password) – создает точку доступа с паролем, который должен состоять не менее чем из 8 знаков.
  • WiFi.macAddress(mac) и WiFi.softAPmacAddress(mac)– определяет МАС адрес.
  • WiFi.localIP() и WiFi.softAPIP() – определение IP адреса.
  • printDiag(Serial); – позволят узнать данные о диагностике.
  • WiFiUDP – поддержка передачи и приема multicast пакета в режиме клиента.

Работа выполняется по следующему алгоритму:

  • Подключение USB-TTL к USB и к ESP.
  • Запуск Arduino IDE.
  • Выбрать в меню инструменты нужный порт, плату, частоту и размер flash-памяти.
  • Файл — Примеры — ESP8266WiFi — WiFiWebServer.
  • Записать в скетче SSID и пароль сети Wi-Fi.
  • Начать компиляцию и загрузку кода.
  • Дождаться окончания процесса прошивки, отсоединить GPIO0 от земли.
  • Поставить скорость 115200.
  • Произойдет подключение, будет записан адрес IP.
  • Открыть браузер, ввести в адресной строке номер IP/gpio/1
  • Посмотреть монитор порта, если к выходу GPIO2 подключен светодиод, он должен загореться.

Первый запуск

Открываем настройки запуска, нажав «Run -> Run Configurations», в левой части нажмем «Android Application». Появится «New configuration». Справа окна выберем вкладку «Target» и нажмем на «Launch_on_all_compatible_devices/AVD».

Как загрузить код на Ардуино через смартфон

Нажмем на «Apply», а после на «Run». Программа откроется в эмуляторе.

Как загрузить код на Ардуино через смартфон

На данном этапе мы только сможем протестировать внешний вид. Осталось написать обработчик нажатий.

Пишем код для Android

Если вы знаете, каждое приложение должно уведомить систему о правах, которое она должна ему предоставить. Перечень прав находится в файле манифеста с названием «AndroidManifest.xml». В этом файле нам нужно указать, что нужно использовать Bluetooth. Нужно будет добавить в файле пару дополнительных строчек.

Как загрузить код на Ардуино через смартфон

Пишем основной код

Откроем файл «MainActivity.java». Он уже имеет в себе код.

Как загрузить код на Ардуино через смартфон

Нам нужно добавить в него команды:

  1. Активация Bluetooth.
  2. Обработка нажатия кнопок.
  3. Отсылка информации о нажатой кнопке.

Отправлять на Arduino будем 1 байт с числом (двухзначным). Первая цифра – номер пина, к которому будут подключены диоды. Вторая – состояние диода (1 – активен, 0 – неактивен).

Число с командой рассчитывается следующим методом: если нажмем красную кнопку, то берется число 60 (для красной лампочки выберем 6-й пин Arduino) и к нему прибавится 1 или 0 в зависимости от состояния диода.

Для зеленой все так же, только вместо 60 возьмем 70 (подключили его к 7-му пину). В итоге получаем 4 из возможных команд: 70, 71, 60, 61.

Код, который реализует написанное, будет следующим:

Как загрузить код на Ардуино через смартфон

Пишем скетч

Bluetooth-модуль принимает данные через UART со скоростью 9600 бит/с. Сам беспроводной модуль сразу готов к работе, поэтому настраивать его не надо. Скетч в свою очередь должен уметь:

  1. Принимать данный через UART.
  2. Активировать необходимый диод в зависимости от полученного кода.

Как загрузить код на Ардуино через смартфон

Прием данных от устройства

Во фрагменте кода выше обратите внимание на строку, содержащую serialPort.read(mCallback). Здесь функции read передается ссылка на объект Callback , который будет автоматически срабатывать при обнаружении входящих данных

UsbSerialInterface.UsbReadCallback mCallback = new UsbSerialInterface.UsbReadCallback() {
// Определение метода обратного вызова, который вызывается при приеме данных.
@Override
public void onReceivedData(byte arg0) {
String data = null;
try {
data = new String(arg0, «UTF-8»);
data.concat(«/n»);
tvAppend(textView, data);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
};

Полученные данные будут в форме необработанных байтов. Нам придется перекодировать их в читаемый формат, например, UTF-8. Затем они добавляются в TextView с помощью специального метода tvAppend() . Это делается так потому, что любые изменения в пользовательском интерфейсе могут выполняться только в потоке пользовательского интерфейса. Так как данный Callback будет запущен, как фоновый поток, то он не может напрямую повлиять на пользовательский интерфейс.

Private void tvAppend(TextView tv, CharSequence text) {
final TextView ftv = tv;
final CharSequence ftext = text;
runOnUiThread(new Runnable() {
@Override public void run() {
ftv.append(ftext);
}
});
}

Заполняем Activity

На данном экране мы будем иметь 2 кнопки: «включить красный светодиод» и «включить зеленый светодиод». Для того чтобы добавить их, нужно в панели «Package Explorer» открыть «res/layout/activity_main.xml».

Как загрузить код на Ардуино через смартфон

Перетащим кнопки (2 шт) «ToggleButton» на нашу форму. После переключимся на вкладку «activity_main.xml» и увидим следующий код:

Как загрузить код на Ардуино через смартфон

Изменим наши имена компонентов, чтобы было более понятно. Поля android:id изменим следующим способом.

Как загрузить код на Ардуино через смартфон

Также добавим подписи. Изменим размер текста и цвет. Конечный код будет иметь такой вид.

Как загрузить код на Ардуино через смартфон

Проделанные изменения можно выполнить также в графическом режиме, выбрав вкладку «Outline/Properties».

Как загрузить код на Ардуино через смартфон

Программа Bluetooth RC Car — управление роботом-машинкой со смартфона на Android

В свой смартфон я установил программу Bluetooth RC Car. На мой взгляд  — это лучшая софтинка для управления роботом-машинкой.

Программа позволяет передавать команды при нажатии на кнопки или реагировать на данные с акселерометра в смартфоне, регулировать скорость движения ползунком, включать передние и задние фонари, включать и выключать звуковой сигнал, включать и выключать сигнал “аварийка”.

Для работы программы требуется Android версии 2.3.3 или выше. Размер программы 3 мегабайта.

Список команд:

  • F – вперед
  • B – назад
  • L – влево
  • R – вправо
  • G – прямо и влево
  • I – прямо и вправо
  • H – назад и влево
  • J – назад и вправо
  • S – стоп
  • W – передняя фара включена
  • w – передняя фара выключена
  • U – задняя фара включена
  • u – задняя фара выключена
  • V – звуковой сигнал включен
  • v – звуковой сигнал выключен
  • X – сигнал “аварийка” включен
  • x — сигнал “аварийка” выключен
  • 0 – скорость движения 0%
  • 1 – скорость движения 10%
  • 2 – скорость движения 20%
  • 3 – скорость движения 30%
  • 4 – скорость движения 40%
  • 5 – скорость движения 50%
  • 6 – скорость движения 60%
  • 7 – скорость движения 70%
  • 8 – скорость движения 80%
  • 9 – скорость движения 90%
  • q – скорость движения 100%

Как вы видите, полигон для творчества вполне неплохой. Я бы еще добавил возможность раздельного включения правых и левых фонарей для передних и задних фар.

Жирным я выделил команды, поддержка которых уже реализована в скетче. Остальные я собираюсь использовать по другому назначению.

Принцип передачи команд: при нажатии на кнопку в программе, команда передается по Bluetooth один раз, а при отпускании кнопки сразу передается команда S-остановка.

Arduino Bluetooth Control

Приложение ABC – это простое приложение, которое предназначено для того, чтобы контролировать контакты Arduino, и иметь доступ основным функциям управления. Arduino Bluetooth Control используется для управления и/или мониторинга контактов Arduino через Bluetooth. Приложение является автономным, и вся инициализация выполняется из Arduino

Популярные статьи  Как плести рыболовную сеть. Ю.И. Маслов

Важно понимать, что приложение предназначено именно для контактов ардуино, а не для управления

Работа приложения осуществляется при помощи нескольких инструментов:

  1. Metrics – этот инструмент осуществляет передачу данных с устройства ардуино, которые передают сигнал на телефон о сбоях или об изменениях значений. После того как кнопка сигнализации срабатывает, на телефон поступает уведомление о приостановки работы. Также есть функция встряхивания, при помощи которой отправлять данные путем встряхивания телефона.
  2. Кнопки со стрелками – здесь работа осуществляется кнопками, которые полностью регулируют отправку данных на плату.
  3. Терминал – стандартный терминал, получающий и отправляющий данные на плату с отметками времени.
  4. Кнопки – в горизонтальной ориентации доступно 6 полностью функционированных кнопок для отправки данных на системную плату ардуино.
  5. Accelometer – используются команды при помощи жестов. Ваш смартфон может стать рулем для управления вашим роботом.
  6. Голосовое управление – если вы когда-либо хотели пообщаться с роботами, то этот инструмент для вас. При помощи голосовой связи можно создавать собственные команды и использовать их для управления ардуино.

Рейтинг на Google Play: 4.2 из 5

Количество скачиваний: более 50.000

Как подключить блютуз модуль к Ардуино

Для этого занятия потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega;
  • Bluetooth модуль HC-05/06;
  • светодиоды и резисторы;
  • сервомотор;
  • провода «папа-папа» и «папа-мама».

Обратите внимание, что при подключении любого модуля к портам TX и RX на Arduino, скетч загрузить в плату не получится — у вас будет выходить ошибка, что Arduino Nano не доступна. Перед загрузкой скетча — отключайте Bluetooth модуль

Во-вторых, вам потребуется установить приложение на смартфон для отправки данных на блютуз модуль hc-05/06, скачайте приложение здесь и загрузите на телефон с компьютера.

Как загрузить код на Ардуино через смартфон
Схема подключения блютуз модуля к Ардуино

Для начала мы будем дистанционно включать и выключать светодиод, подключенный параллельно к 13 порту на Ардуино и, расположенный на самой плате. После установки приложения на смартфон или планшет и загрузки скетча (скачать архив со скетчем можно далее), подключите блютуз модуль к Ардуино, как изображено на схеме выше. До сопряжения устройств, светодиод на модуле HC-05 начнет быстро мигать.

Скетч для Bluetooth модуля Arduino

int val; // освобождаем память в контроллере для переменой

void setup() {
  Serial.begin(9600);  // подключаем последовательный порт
  pinMode(13, OUTPUT); // объявляем пин 13 как выход
}

void loop() {
  if (Serial.available()) // проверяем, поступают ли какие-то команды
  {

    val = Serial.read(); // переменная val равна полученной команде

    if (val == '1') {digitalWrite(13, HIGH);} // при 1 включаем светодиод
    if (val == '0') {digitalWrite(13, LOW);}  // при 0 выключаем светодиод

  }
}

Соединение с телефоном Bluetooth модуля

Для сопряжения смартфона с Bluetooth модулем HC-06 и HC-05 перейдите в настройки телефона и включите блютуз. У вас активируется поиск устройств, кроме названия HC-05 или HC-06, вы увидите адрес устройства. Для подключения потребуется ввести пароль, обычно, это «1234» или «0000». Пароль потребуется ввести только один раз, при последующих подключениях сопряжение будет происходить автоматически.

Как загрузить код на Ардуино через смартфон
Соединение между смартфоном и блютуз модулем HC-05

Далее откройте приложение, которое вы установили на смартфон или планшет и нажмите на кнопку «Подключить Блютуз». У вас появится список устройств с адресами — выберите нужное устройство. Если сопряжение прошло успешно, то светодиод на модуле начнет мигать реже — примерно 1 раз в две секунды. Теперь вы можете дистанционно включать/выключать светодиод на Ардуино, используя блютуз модуль.

Как загрузить код на Ардуино через смартфон
Приложение для управление Ардуино через блютуз модуль

В следующем примере мы добавим к светодиоду сервопривод. Вы уже знаете, как подключить сервомотор к Ардуино, осталось лишь загрузить в плату новый скетч. Скачать скетч и приложение для смартфона можно одним архивом здесь.

Скетч для управления блютуз модулем

#include <Servo.h> // подключаем библиотеку для работы с сервоприводом
Servo servo1;      // объявляем переменную servo типа "servo1"

int val; // освобождаем память в контроллере для переменой

void setup() {
  servo1.attach(11);   // привязываем сервопривод к аналоговому выходу 11
  Serial.begin(9600);  // подключаем последовательный порт
  pinMode(13, OUTPUT); // объявляем пин 13 как выход
}

void loop() {
  if (Serial.available()) // проверяем, поступают ли какие-то команды
  {

    val = Serial.read(); // переменная val равна полученной команде

    if (val == '1') {digitalWrite(13, HIGH);} // при 1 включаем светодиод
    if (val == '0') {digitalWrite(13, LOW);}  // при 0 выключаем светодиод

    if (val == '4') {servo1.write(0);}   // ставим угол поворота 0
    if (val == '5') {servo1.write(90);}  // ставим угол поворота 90
    if (val == '6') {servo1.write(180);} // ставим угол поворота 180

  }
}

Пояснения к коду:

  1. кроме цифр можно отправлять команды в виде букв латинского алфавита, при этом важен регистр — заглавная или строчная буква будет получена;
  2. перед загрузкой скетча — отключайте Bluetooth модуль от портов TX и RX;
  3. приложение подходит только для ОС Android. Вы можете сделать собственное приложение, воспользовавшись нашими уроками в разделе Программирование.

Приложение Blynk для разработки проектов

Приложение Blynk является отличной разработкой для создания проектов. Гибкость и простота приложения обеспечивают интуитивный подход к триггеру событий на вашей плате. Работа с Blynk требует наличия соединения с интернетом, поскольку приложение использует свой собственный сервер. Вы можете использовать либо Wi-Fi, либо мобильные данные для обеспечения доступа к приложению Blynk, и эта возможность отлично подходит для смартфонов.

Одно из самых сильных мест приложения – это вариативность подключений к устройству. При наличии поддержки практически всех разработческих плат, вы можете соединиться с сервером на беспроводной основе, или используя ethernet и даже компьютер через USB. Сервис отлично документирован, а его интуитивное приложение обеспечивает простоту интеграции кастомизированного контроля над вашим проектом. Библиотека Blynk для Arduino IDE следит за всеми коммуникациями.

Если вы предпочитаете включать вашу кофемашину с использованием смартфона до того, как встали с постели рано утром, это приложение, действительно, для вас!

Blynk является не единственным сервисом в этой категории

Стоит обратить внимание и на такой исключительно кастомизированный сервис как Thinger.io и практически безлимитный, хотя и чрезвычайно трудный OpenHAB. Из этих трех сервисов Blynk является самым быстрым при запуске и работе, хотя в долгосрочной перспективе изучение OpenHAB является отличной идеей

Машинка на arduino и Bluetooth — аппаратная часть.

Первое что необходимо это шасси, то есть корпус с колесами и моторчиками, который и будет ездить на радость нам и окружающим. В моем случае был использован корпус от радиоуправляемой игрушки в которой выгорела силовая часть. Перспектива ремонта мне показалась унылой, да и хотелось чего то нового для своих детей. Так и родился этот проект. В корпусе стоят два двигателя которые приводят в движение колеса по бортам машинки, как у танка. Вся электронная начинка отправилась на запчасти.

Для управления электродвигателями нашего будущего творения понадобится Н-мост на микросхеме L298N Ссылка на Али, я брал у именно этот. Картинка кликабельна.

Как загрузить код на Ардуино через смартфон

Н-мост для arduino

Может управлять двумя двигателями в диапазоне напряжений 5 — 35 вольт. Поддерживает ШИМ, то есть можно регулировать обороты двигателей. На плате есть вывод стабилизированного напряжения 5 вольт для питания ардуино.

Схема подключения проста и незатейлива:

Как загрузить код на Ардуино через смартфон

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

Следующей неотъемлемой частью электронной начинки нашего проекта является bluetooth модуль HC-06. Самый обычный модуль для ардуино, настолько популярен что в дополнительном описании не нуждается.

Как загрузить код на Ардуино через смартфон

HC-06 bluetooth for arduino

Основным элементом и мозгом в моем случае выступает arduino nano, тут даже фото выкладывать не буду ибо все о ней знают и умеют с ней работать. Кстати подойдет любая плата ардуино, лишь бы в корпус поместилась 

Аккумуляторы и провода для пайки в определении спецификации не нуждаются. Выбор аккумуляторов зависит от рабочего напряжения электродвигателей.

Схема подключения Arduino с модулем Bluetooth

 Само собой в нашем случае первым делом будет физическое подключение, а затем и программное обеспечение. Так вот, начнем с подключения. Если у вас есть Ардуино UNO и модуль Bluetooth HC-06 или 05, то подключать надо будет следующим образом. При этом на схеме ни коим образом не отражено подключение для управляющих цепей. То есть приведено подключение непосредственно модуля Bluetooth HC-06 к Ардуинке.

Само собой если у вас управляющими будут выходы 11 и 13, как в нашем случае, смотрите статью далее, то к ним и будет подключаться силовой блок или просто светодиод. Важным будет то, что при подключении модуля RX на одном устройстве идет к TX на другом и наоборот. Учтите это!

Популярные статьи  Оригами танк - инструкция по сборке и изготовлению танков из бумаги

Инфракрасный контроль

Если вы в поиске универсального инструмента коммуникации с вашим Arduino или вам хотелось бы сыграть роль легендарного секретного агента Макгайвер, то снимите инфракрасный приемник (ИТ) с вашей старой стереоустановки или VHS плеера и используете его для коммуникации с вашей Arduino платой!

Этот способ коммуникации потребует наличия на вашем устройстве Android  инфракрасного бластера. Эта специфичный метод коммуникации доступен для многих приложений, хотя из их числа Mi Remote controller является бесплатным и функционирует со многими другими домашними девайсами.

Как загрузить код на Ардуино через смартфон

После загрузки приложений и начала их использования, вам необходимо создать простую схему для «обнаружения» инфракрасных сигналов.

Этот метод работает только в пределах линии видимости. Но этот способ беспроводной коммуникации с вашей платой является самым дешевым. Даже если вы не сможете использовать подержанные комплектующие, инфракрасный приемник стоит менее одного доллара. Для статичных девайсов, например потолочных светодиодных лент, использование инфракрасного контроля является отличным решением простой проблемы.

03.05.2018 в рубрике Блог

Сборка «умного дома»: пошаговая инструкция

Вот в какой последовательности необходимо действовать.

Подключение исполнительных и сенсорных устройств

Подключаем все компоненты согласно схеме.

Сборка системы в основном сводится к подключению исполнительных устройств к соответствующим контактам процессорной платы

Разработка программного кода

Пользователь пишет всю программу целиком в оболочке Arduino IDE, для чего последняя оснащена текстовым редактором, менеджером проектов, компилятором, препроцессором и средствами для заливки программного кода в микропроцессор платы Arduino. Разработаны версии IDE для операционных систем Mac OS X, Windows и Linux. Язык программирования — С++ с некоторыми упрощениями. Пользовательские программы для Arduino принято называть скетчами (sketch) или набросками, программа IDE сохраняет их в файлы с расширением «.ino».

Функцию main(), которая в С++ является обязательной, оболочка IDE создаёт автоматически, прописывая в ней ряд стандартных действий. Пользователь должен написать функции setup() (выполняется единоразово во время старта) и loop() (выполняется в бесконечном цикле). Обе эти функции для Arduino являются обязательными.

Заголовочные файлы стандартных библиотек вставлять в программу не нужно — IDE делает это автоматически. К пользовательским библиотекам это не относится — они должны быть указаны.

В IDE предусмотрен минимум настроек, а возможность настройки компилятора отсутствует вовсе. Таким образом, начинающий программист застрахован от ошибок.

Вот пример самой простой программы, заставляющей каждые 2 секунды мигать подключённый к 13-му выводу платы светодиод:

Однако в настоящий момент перед пользователем далеко не всегда встаёт необходимость лично писать программу: в сети выложено множество готовых библиотек и скетчей (загляните сюда: http://arduino.ru/Reference). Имеется готовая программа и для системы, рассматриваемой в этом примере. Её нужно загрузить, распаковать и импортировать в IDE. Текст программы снабжён комментариями, поясняющими принцип её работы.

Все программы на Arduino работают по одному принципу: пользователь посылает запрос процессору, а тот загружает необходимый код на экран компьютера или смартфона

Когда пользователь нажимает в браузере или установленном на смартфоне приложении кнопку «Refresh» (Обновление), микроконтроллер Arduino осуществляет отсылку данных этому клиенту. С каждой из страниц, обозначенных как «/tempin», «/tempout», «/rain», «/window», «/alarm», поступает программный код, который и отображается на экране.

Установка клиентского приложения на смартфон (для ОС Android)

Для получения данных от системы «умный дом» в сети можно скачать готовое приложение.

Вот что необходимо сделать владельцу гаджета:

  1. Скачайте файл SmartHome.apk.
  2. Отправьте его на телефон.
  3. Открыв «Менеджер файлов», разместите этот файл.
  4. Щёлкните на нём и выберите «Установить» (должна быть отмечена «галочка», позволяющая осуществлять установку программ вне сервиса Google Play).
  5. Когда установка будет завершена, активируйте приложение.
  6. Выполните его настройку.

С помощью этого приложения можно не только получать информацию от системы «умный дом», но и управлять ею — включать и отключать сигнализацию. Если она включена, то при срабатывании датчика движения приложению будет отправлено уведомление. Опрос системы Arduino на предмет срабатывания датчика движения приложение выполняет с периодичностью раз в минуту.

Активировав иконку «Настройки», можно отредактировать свой IP-адрес.

Настройка браузера на работу с «умным домом»

В адресной строке браузера следует ввести XXX.XXX.XXX.XXX/all, где «XXX.XXX.XXX.XXX» — ваш IP-адрес. После этого появится возможность получать данные от системы и осуществлять управление ею.

Представленный здесь программный код позволяет через браузер включать и выключать свет, тогда как в приложении для Android-смартфона такая функция не реализована.

Работа с роутером

Далее на маршрутизаторе необходимо открыть порт:

  • открываем настройки маршрутизатора;
  • прописываем адрес Arduino IP;
  • открываем порт 80.

Настройка учётной записи на noip.com

Этот этап не является обязательным, но он необходим, если вы хотите присвоить адресу доменное имя. Для этого надо зарегистрироваться на сайте https://www.noip.com/, перейти в раздел «Add host» и ввести IP-адрес системы.

После регистрации на сайте noip.com доступ к системе можно получать не только по IP-адресу, но и по полному доменному имени

Создание проекта завершено, можно проверять работоспособность системы.

Что потребуется

  • смартфон на Android с поддержкой режима USB хоста (т.е. поддержка OTG) – большинство устройств, работающих с Android 3.1 и выше, поддерживают этот режим. Проверьте свой телефон с помощью USB Host Diagnostics App из Play Store;
  • Arduino – любая версия. Я буду использовать Uno R3;
  • USB кабель для Arduino;
  • USB OTG кабель – он необходим вам, чтобы подключить USB кабель Arduino к порту micro-USB телефона;
  • Android Studio – вам необходимо установить его. Это довольно просто сделать. Android Studio делает разработку приложений проще, благодаря своим предположениям и генерации кода. Это одна из лучших IDE. Вы также можете использовать эту статью в качестве руководства по установке Android IDE.

Шаг 3. Начинаем собирать схему

Цепь в нашем уроке настолько проста и мала, что нам нужно сделать всего несколько соединений:

Arduino Pins___________Bluetooth Module Pins
RX (Pin 0)___________________TX
TX (Pin 1)___________________RX
5V_________________________VCC
GND_______________________GND

Подключите минус светодиода к GND на Arduino, а плюс к контакту 13 через сопротивление 220 Ом — 1 кОм. В целом, на нашем рисунке ниже всё довольно наглядно.

Как загрузить код на Ардуино через смартфон

Теперь нам нужно написать программу и загрузить её в наш Arduino. Если вы этого пока еще не умеете делать — скачайте книги . Код ниже именно то, что нам нужно загрузить в Ардуино.

/* Bluetooh Basic: LED ON OFF
* Coder — Mayoogh Girish
* Website — http://bit.do/Avishkar
* Download the App: https://github.com/Mayoogh/Arduino-Bluetooth-Basic
* This program lets you to control a LED on pin 13 of arduino using a bluetooth module
*/
char data = 0; //Variable for storing received data
void setup()
{
Serial.begin(9600); //Sets the baud for serial data transmission
pinMode(13, OUTPUT); //Sets digital pin 13 as output pin
}
void loop()
{
if(Serial.available() > 0) // Send data only when you receive data:
{
data = Serial.read(); //Read the incoming data and store it into variable data
Serial.print(data); //Print Value inside data in Serial monitor
Serial.print(«\n»); //New line
if(data == «1») // Checks whether value of data is equal to 1
digitalWrite(13, HIGH); //If value is 1 then LED turns ON
else if(data == «0») // Checks whether value of data is equal to 0
digitalWrite(13, LOW); //If value is 0 then LED turns OFF
}
}

Программирование платы Arduino с помощью технологии Bluetooth

Для беспроводного программирования платы Arduino первым делом мы должны написать программу чтобы плата Arduino отвечала на AT команды. Для этого подключите плату Arduino к компьютеру с помощью USB кабеля и загрузите в нее следующий код программы:

Arduino

#include <SoftwareSerial.h>
SoftwareSerial HC05(2,3);
void setup()
{
Serial.begin(9600);
Serial.println(«Enter AT commands:»);
HC05.begin(38400);
}
void loop()
{
if (HC05.available())
Serial.write(HC05.read());
if (Serial.available())
HC05.write(Serial.read());
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

#include <SoftwareSerial.h>

SoftwareSerialHC05(2,3);

voidsetup()

{

Serial.begin(9600);

Serial.println(«Enter AT commands:»);

HC05.begin(38400);

}

voidloop()

{

if(HC05.available())

Serial.write(HC05.read());

if(Serial.available())

HC05.write(Serial.read());

}

В первых двух строках этого кода программы происходит подключение библиотеки последовательной связи SoftwareSerial и указываются передающий и приемный контакты, с помощью которых будет происходить взаимодействие с модулем Bluetooth. Библиотека SoftwareSerial позволяет организовать последовательную связь (последовательный порт) на любых двух цифровых контактах платы Arduino. Также с помощью этой библиотеки можно организовать сразу несколько последовательных портов в плате Arduino.

Популярные статьи  Витраж выполненный на стекле

Arduino

#include <SoftwareSerial.h>
SoftwareSerial HC05(2,3);

1
2

#include <SoftwareSerial.h>

SoftwareSerialHC05(2,3);

Далее в функции setup мы установим скорость последовательной передачи данных для аппаратного и программного созданного (с помощью библиотеки SoftwareSerial) последовательных портов – 9600 и 38400 бод соответственно.

Arduino

void setup()
{
Serial.begin(9600);
Serial.println(«Enter AT commands:»);
HC05.begin(38400);
}

1
2
3
4
5
6

voidsetup()

{

Serial.begin(9600);

Serial.println(«Enter AT commands:»);

HC05.begin(38400);

}

Затем в функции loop мы будем использовать два условия (с помощью оператора if). В первом условии мы будем проверять поступает ли какая либо информация от модуля HC05 – если да, то мы будем передавать ее по аппаратному последовательному порту платы Arduino. Во втором условии мы будем проверять поступают ли какие либо команды из окна монитора последовательной связи (Arduino Serial Monitor) – если да, то мы будем передавать их модулю HC05.

Arduino

void loop()
{
if (HC05.available())
Serial.write(HC05.read());
if (Serial.available())
HC05.write(Serial.read());
}

1
2
3
4
5
6
7

voidloop()

{

if(HC05.available())

Serial.write(HC05.read());

if(Serial.available())

HC05.write(Serial.read());

}

Далее подключим модуль HC05 к плате Arduino чтобы она работала в режима приема (и исполнения) AT команд. Схема этого подключения представлена на следующем рисунке:

Как загрузить код на Ардуино через смартфон

Перед подключением платы Arduino к компьютеру нажмите key button на Bluetooth модуле и затем подключайте плату к компьютеру. Держите key button в нажатом состоянии до тех пор пока светодиод на Bluetooth модуле не начнет мигать с интервалом 2 секунды. В режиме команд (command mode) светодиод Bluetooth модуля мигает медленнее чем в обычном режиме функционирования.

Теперь откройте монитор последовательного порта и вводите в нем следующие представленные команды. В ответ на эти команды плата должна отвечать сообщением «OK» если команда была выполнена успешно.

Если все представленные AT команды успешно протестированы, разберите схему и соберите новую схему, представленную на следующем рисунке:

Как загрузить код на Ардуино через смартфон

Внешний вид этой схемы, собранной на макетной плате, выглядит следующим образом:

Как загрузить код на Ардуино через смартфон

Используйте адаптер питания или батарейку 9V чтобы подать питание на плату Arduino. После этого зайдите в «устройства» (‘Devices’) вашего компьютера (ноутбука) и включите Bluetooth, после чего соединитесь по Bluetooth с модулем HC05.

После того, как Bluetooth соединение между устройствами будет установлено, необходимо определить COM порт компьютера/ноутбука, к которому подключился Bluetooth модуль HC05. Для этого зайдите в диспетчер устройств (‘Device Manager’) и проверьте в нем устройства, которые подключены по COM портам. Там должно показываться два порта: один для входящей и один для исходящей связи. Нам будет необходим номер второго из этих COM портов поскольку мы собираемся передавать код программы в плату Arduino.

Как загрузить код на Ардуино через смартфон

Теперь откройте Arduino IDE и в ней выберите пример программы с миганием светодиода, затем выберите необходимый COM порт и нажмите кнопку загрузки программы (upload button). Если все прошло хорошо, то встроенный в плату Arduino светодиод начнет мигать с интервалом в 1 секунду.

Как загрузить код на Ардуино через смартфон

Описание модуля Bluetooth HC 06

Все существующие типы модулей Bluetooth имеют свои особенности, но по функциям и действию они похожи. Одним из видов модулей является Bluetooth HC 06. Со стороны Ардуино модуль выглядит как обычный последовательный интерфейс, поэтому можно сразу наладить взаимодействие с устройством на компьютере.

Основные характеристики модуля:

  • Питание 3,3В – 6 В;
  • Максимальное входное напряжение 5 В;
  • Максимальный ток 45 мА;
  • Скорость передачи данных 1200–1382400 бод;
  • Рабочие частоты 2,40 ГГц – 2,48ГГц;
  • Поддержка спецификации bluetooth версии 2.1;
  • Малое потребление энергии;
  • Высокий уровень защиты данных;
  • Дальность связи 30 м;
  • Для подключения к смартфону используются следующие данные – пароль «1234», скорость передачи данных 9600, имя модуля HС-06.

Модуль имеет следующие контакты:

  • VCC , GND – плюс и минус питания;
  • RX и TX – приемник и передатчик;
  • MCU-INT – выводит статус;
  • Clear (Reset) – сбрасывание и перезагрузка модуля. Последние два вывода обычно не задействованы в работе, поэтому сейчас производятся модули без этих контактов.

Модуль HC-06 используется только в режиме slave, то есть он не может самостоятельно подключаться к другим устройствам Bluetooth. Все настройки для подключения «пароль, скорость передачи данных» можно изменить при помощи АТ-команд.

В комплектацию модуля не входят соединительные провода.

ArduinoDroid

Как загрузить код на Ардуино через смартфонArduinoDroid

ArduinoDroid – это бесплатное приложение, которое позволяет редактировать, компилировать и загружать эскизы к вашей плате Arduino прямо с телефона или планшета Android. Отличительной чертой этой программы является то, что в нее можно загружать уже готовый запрограммированный код или создавать новый. В случае с неполадками или сбоями программы, открытый код можно всегда отредактировать.

В настоящее время поддерживаются только платы Arduino Uno R3 и платы на базе FTDI (Duemilanove, Diecimila), но планируется поддержка Mega, Due и Nano. Другие функции, которые необходимо реализовать, включают расширенную настраиваемую подсветку синтаксиса, интеллектуальные подсказки кода (автозаполнение) и интеграцию сторонних приложений (руководства, запросы на компиляцию эскизов).

Стоит отметить то, что с помощью этого приложения начинают все осваивать ардуино, к тому же клон-плата Arduino и USB кабель OTG обойдутся всего в пару долларов.

Рейтинг на Google Play: 4.1 из 5

Количество скачиваний: более 500.000

Arduino Bluetooth-контроллер

Следующим в нашем списке является точно названное приложение Arduino Bluetooth Controller. Это приложение не столько для программирования Arduino на лету, сколько для запуска изменений в загруженном эскизе. Приложение отправляет данные на вашу доску через Bluetooth, что позволяет отправлять последовательные данные нажатием кнопки в приложении. Вам понадобится Модуль Bluetooth для вашей доски, хотя HC-06 Модуль широко используется и доступен всего за 3 доллара на момент написания.

Чтобы получить отличную информацию о начале работы с этими дешевыми небольшими модулями, посмотрите это видео от Tinkernut Labs:

В приведенном выше видео рекомендуется другое приложение, хотя некоторые пользователи сообщают, что оно не работает на современных смартфонах. Контроллер Bluetooth Arduino, похоже, не страдает от этой проблемы. Стоит отметить, что приложение загружается не на итальянском, а на английском, как показано на картинках Play Store!

Скетч для Arduino дабы он работал с модулем Bluetooth

Теперь о скетче, то есть о ПО, которое заставляет работать нашу аппаратную платформу, выразимся так. Все очень просто. Смотрим.

Int val;
int LED = 13;
int LED1 = 11;
void setup()
{
Serial.begin(9600);
pinMode(LED, OUTPUT);
digitalWrite(LED, HIGH);
}
void loop()
{
if (Serial.available())
{
val = Serial.read();
// При символе «1» включаем светодиод 13
if (val == «1»)
{
digitalWrite(LED, HIGH);
}
// При символе «0» выключаем светодиод 13
if (val == «0»)
{
digitalWrite(LED, LOW);
}
// При символе «2» выключаем светодиод 11
if (val == «2»)
{
digitalWrite(LED1, HIGH);
}
// При символе «0» выключаем светодиод 11
if (val == «3»)
{
digitalWrite(LED1, LOW);
}
}
}

Собственно здесь идет назначение переменных, два светодиода на 11 и на 13 ножку в нашем случае. Потом с помощью Serial.begin(9600) мы подключаем наш блютуф. Ну и собственно осталось найти программку для управления блютуф.

Модернизация Motor Shield

Получилось так, что производители модуля Motor Shield лишили своих покупателей возможности устанавливать поверх своего продукта другой модуль. Видимо им нравится быть сверху или просто зажали нормальную панельку контактов.

Как загрузить код на Ардуино через смартфон

Меня этот нюанс совсем не устраивает. Именно поэтому я решил взяться за паяльник и привести Motor Shield к удобному для меня виду.

Как загрузить код на Ардуино через смартфон

Аккуратно выдрал родные панельки контактов и выкинул их нафиг.

Как загрузить код на Ардуино через смартфон

Установил на их место нормальные.

Как загрузить код на Ардуино через смартфон

В таком виде модулем стало пользоваться гораздо удобнее. Теперь я смогу нормально подключить провода от Bluetooth в разъемы, а не припаивать их намертво к контактам на Motor Shield.

Оцените статью
Денис Серебряков
Добавить комментарии

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Как загрузить код на Ардуино через смартфон
Вкусные блюда из простых ингредиентов.