Bluetooth чат на Ардуино. Проекты. Ардуино

Подключение Bluetooth модуля к Ардуино
Подключение Bluetooth модуля к Ардуино
Подключение Bluetooth модуля к Ардуино

Привет! В недавнем уроке мы попробовали собрать схему с bluetooth и управляли rgb светодиодом через телефон. Сегодня немного изменим схему и получим беспроводной чат между телефоном и устройством на Ардуино.

Мы будем использовать материалы из предыдущего урока, так что посмотрите его если пропустили или уже забыли.

Bluetooth модуль HM-10 (ZS-040). Урок 14. Ардуино

Для того, чтобы выполнить этот урок нам понадобиться

  • Ардуино UNO
  • Макетная плата
  • Перемычки
  • 3 Резистора номиналом 1 кОм
  • Bluetooth модуль HM-10
  • Кабель USB

Программа и схема

Соберем простую схему для подключения bluetooth модуля. Светодиоды или другие компоненты нам будут не нужны. Мы собираемся просто получить сообщение в монитор последовательного порта с помощью bluetooth. И отправлять сообщения обратно на телефон.

Принципиальная схема подключения bluetooth к Ардуино
Принципиальная схема подключения bluetooth к Ардуино

Контакт TXD опять подключим к контакту 8. А RXD подключаем к 9 контакту через делитель напряжения. 1 кОм с одной стороны и 2 кОм с другой.

Если все подключено правильно, то после подключения питания, светодиод на модуле будет мигать. И можно попробовать найти его среди bluetooth устройств.

Bluetooth модуль ардуино в поиске устройств
Bluetooth модуль ардуино в поиске устройств

Теперь напишем программу для Ардуино. Точнее, используем пример программы Software serial example.

Откроем ее из меню File > Examples > SoftwareSerial

В первую очередь подключим библиотеку и создадим экземпляр объекта для работы с последовательным портом bluetooth.

Не забудьте исправить номера портов, на которые мы подключили RX и TX контакты модуля.

#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 9); // RX, TX

В функции setup() настроим передачу данных в последовательные порты Ардуино и bluetooth. И отправим приветственные сообщения на телефон и в монитор последовательного порта Ардуино.

Также, не забудьте исправить скорость передачи данных на 9600 бод.

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
  Serial.println("Goodnight moon!");
  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
  mySerial.println("Hello, world?");
}

А в функции loop() будем отслеживать состояние буфера последовательного порта, и если в нем есть информация для вывода, печатать ее в монитор порта.

void loop() { // run over and over
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}

Прошиваем программу в Ардуино и переходим к настройке программы в телефоне.

Полный текст программы

#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 9); // RX, TX

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
  Serial.println("Goodnight moon!");
  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
  mySerial.println("Hello, world?");
}

void loop() { // run over and over
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}

Serial Bluetooth Terminal

Опять используем приложение Serial Bluetooth Terminal. Установим его в телефон и найдем наш модуль в устройствах bluetooth.

Наше устройство на экране поиска в Serial Bluetooth Terminal
Наше устройство на экране поиска в Serial Bluetooth Terminal

Подключаемся к модулю, и видим сообщение Connected.

Подключились к нашему модулю
Подключились к нашему модулю

Отправим на модуль сообщение, прочитаем его в мониторе последовательного порта в IDE. И, наоборот, отправим сообщение из монитора последовательного порта в IDE и прочитаем его в телефоне.

Отправляем и принимаем сообщения по bluetooth
Отправляем и принимаем сообщения по bluetooth
Передача сообщений по bluetooth на Ардуино
Передача сообщений по bluetooth на Ардуино

Заключение

Мы использовали пример скетча для передачи и приема сообщений по bluetooth. Соединили наше устройство с телефоном по беспроводной связи.

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

Ваш адрес email не будет опубликован.