Беспроводное программирование платы Arduino Uno по Bluetooth

Плата Arduino Uno является чрезвычайно удобным инструментом для тех, кто хочет попробовать свои силы в изучении и программировании микроконтроллеров. Но одним из ее недостатков является то, что для ее программирования необходимо подключение платы к компьютеру по USB кабелю, а это не всегда представляется возможным, например, в случаях, когда плата уже "упакована" внутрь какого-нибудь устройства в закрытом корпусе. Единственно возможным решением в данном случае является беспроводное программирование или, как его еще называют – "программирование по воздуху" (OTA – Over the Air). Подобный вид программирования достаточно легко реализуется в таких микроконтроллерах как ESP8266 и ESP32 поскольку они имеют встроенный контроллер Wi-Fi. Но в Arduino для реализации беспроводного программирования нам необходимо будет задействовать Bluetooth модуль – рассмотрением данных вопросов мы и займемся в данной статье.

Внешний вид беспроводного программирования платы Arduino Uno по Bluetooth

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Bluetooth модуль HC05 (купить на AliExpress).
  3. Резисторы 1 кОм, 2,2 кОм (купить на AliExpress).
  4. Конденсатор 0,1 мкФ (купить на AliExpress).
  5. Адаптер питания.
  6. Макетная плата.
  7. Соединительные провода.

Bluetooth модуль HC05

Модуль HC05 представляет собой модуль Bluetooth связи, передающий принятую информацию по последовательному порту, специально спроектированный для осуществления беспроводной связи между микроконтроллерами. Bluetooth модуль HC05 позволяет работать как в режиме ведущего (master), так и в режиме ведомого устройства (slave), и переключаться между этими режимами. Его можно подключить с использованием последовательного порта, работающего со скоростью 9600 бод, что позволяет без проблем подключать его к большинству современных микроконтроллеров. Модуль HC05 работает от питающего напряжения 3.3V, но мы можем непосредственно подключать его к напряжению 5V, поскольку в его составе есть встроенный понижающий регулятор напряжения с 5V до 3.3V.

Внешний вид Bluetooth модуля HC05

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

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

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

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

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

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

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

Подключения модуля HC05 к плате Arduino для ее работы в режима приема (и исполнения) AT команд

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

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

AT+ORGL
AT+ROLE=0
AT+POLAR=1,0
AT+UART=115200, 0, 0
AT+INIT

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

Схема для беспроводного программирования платы Arduino Uno по Bluetooth

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

Внешний вид собранной схемы на макетной плате

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

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

Определение COM порта компьютера, к которому подключен Bluetooth модуль HC05

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

Выбор необходимого COM порта в Arduino IDE

Исходный код программы (скетча)

Видео, демонстрирующее работу проекта

(Проголосуй первым!)
Загрузка...
198 просмотров


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *