Статьи

Включение связи Nucleo ST F401RE mbed с HC-06 Bluetooth

ARM mbed предназначен для предоставления высокопроизводительных решений Интернета вещей. На рынке доступно множество плат с различными конфигурациями от разных поставщиков. Некоторые из самых популярных плат — mbed LPC1768 от NXP, mbed LPC 11U24, Seeeduino-Arch и т. Д.

STMicroelectronics (STMicro) анонсировала плату разработки с поддержкой mbed под названием STM32 Nucleo. Эти платы Nucleo позволят разработчикам повторно использовать IP аппаратного и программного обеспечения для нескольких проектов, что сделает их более масштабируемыми. Это также дарует широкий спектр щитов, которые поддерживают такие функции, как Bluetooth Low Energy (BLE), подключение Wi-Fi, GPS, зондирование близости и т. Д. ST Nucleo F103RB, ST Nucleo L053R8, ST Nucleo F401RE и ST Nucleo F302R8 являются платы от STMicroelectronics.

По умолчанию связь по Bluetooth не включена на плате Nucleo ST F401RE. В этом блоге вы узнаете, как установить связь между модулем Bluetooth HC-06 и Nucleo ST F401RE, платой Nucleo с поддержкой mbed.

Обновление прошивки:

Поскольку на платах Nucleo возникают некоторые проблемы с установленными микропрограммами, на плате обязательно должна быть установлена ​​последняя микропрограмма. Для более плавной работы платы убедитесь, что на ней установлена ​​последняя версия прошивки. Если нет, следуйте инструкциям, приведенным ниже.

  • Скачайте и установите драйверы ST-Link
  • Чтобы установить драйверы ST-Link:
    • Извлеките папку Zip и запустите либо dpinst_amd64.exe, либо dpinst_x86.exe в зависимости от конфигурации ПК.     
    • Следуйте инструкциям и завершите установку
  • Загрузите последнюю версию прошивки отсюда
  • Чтобы проверить обновление прошивки:
    • Загрузите последнюю версию прошивки отсюда
    • Запустите программу STLinkUpgrade.exe и нажмите кнопку подключения
    • Подробные сведения об устройстве будут отображаться, если драйверы ST-Link были установлены правильно, а затем нажмите «Да».
    • Это гарантирует, что прошивка была успешно обновлена 

Bluetooth HC-06 и Nucleo ST F401RE:

На плате Nucleo имеются контакты заголовка, поддерживаемые Arduino, что позволяет использовать плату с другими устройствами / модулями, поддерживаемыми Arduino. В репозитории mbed было множество библиотек и программ, иллюстрирующих связь Bluetooth с использованием разных модулей. Для модуля Bluetooth HC-06 нет библиотек. Поэтому я изучил, как связать подчиненный модуль Arduino Bluetooth HC-06 с Nucleo ST F401RE. Вот шаги, которые необходимо выполнить для установления связи между ними:

Bluetooth HC-06 имеет 4 контакта, а именно RXD, TXD, GND и VCC. Подключите модуль Bluetooth к плате нуклео следующим образом:

Bluetooth HC-06

Nucleo ST F401RE

RXD

Техас

TXD

RX

Помните, что контакты TX / Do и RX / D1 разъемов Nucleo Arduino не включены по умолчанию. Для их включения требуются некоторые конфигурации паяных перемычек (открытие / закрытие некоторых контактов). Вместо того, чтобы использовать эту процедуру, я чувствую себя комфортно при использовании выводов по умолчанию приемника и передатчика платы Nucleo. Контакты D10 и D2 настроены по умолчанию. Ниже описано, как управлять светодиодом с помощью мобильного телефона и ПК.

Подключите модуль HC-06 к разъемам Arduino на Nucleo ST F401RE, как показано на рисунке ниже

схема соединений

  • Подключите плату Nucleo к ПК и убедитесь, что Nucleo обнаружен как диск
  • Перейдите к онлайн-контроллеру mbed, импортируйте любой пример кода и замените его приведенным ниже кодом.

#include "mbed.h"
Serial bt(D10,D2);
Serial pc(USBTX,USBRX);
DigitalOut myled(D13);

int main() {
    bt.baud(9600);

    //prints data on mobile
    bt.printf("Connection Established");

    //print data on pc terminal
    pc.printf("Connection Established");
    while(1) {

        //For reading and writing data from/to bluetooth HC-06
        //check if bluetooth is readable and execute commands to toggle LED
        if (bt.readable()) {
           char input_key=  bt.putc(bt.getc());

            //tutn on LED if "y" is entered
            if(input_key == 'y') {
                myled = 1;
                bt.printf("LED is ON");
            }

            //tutn on LED if "n" is entered
            if(input_key == 'n') {
                myled = 0;
                bt.printf("LED is OFF");
            }
        }

        //For reading and writing data from/to pc terminal
        //check if pc is readable and execute commands  to toggle LED
        if (pc.readable()) {
            char input_key=  pc.putc(pc.getc());
            if(input_key == 'y') {
                myled = 1;
                pc.printf("LED is ON");
            }
            if(input_key == 'n') {
                myled = 0;
                pc.printf("LED is OFF");
            }
        }
    } 

}
  • Скомпилируйте код и сохраните его на плате Nucleo
  • Установите приложение Bluetooth SPP Manager на Android Mobile и программное обеспечение HTerm на ПК
  • Выполните сопряжение и подключите мобильный телефон Android с помощью Bluetooth HC-06
  • На HTerm укажите номер COM-порта и скорость передачи 9600 и нажмите на кнопку подключения.
  • Начните посылать команды с мобильного телефона и Hterm для управления светодиодом
  • Таким образом, связь между модулем Bluetooth HC06 и платой Nucleo может быть установлена ​​с помощью HTerm и Bluetooth SPP Manager.