Как подключить ардуино к компьютеру по bluetooth

Содержание

Установка приложения Bluino Loader

Далее нам нужно установить приложение Bluino Loader из Google Play Store.

Первое приложение, которое вам нужно знать — это «Bluino Loader» для Andorid 4.0 или выше с доступным соединением Bluetooth. Вы можете скачать или установить его из магазина Google Play:

Bluino Loader — версия для Arduino IDE

или

Pro-версия для поддержки разработчика Bluino Loader Pro для Arduino IDE

Это приложение предназначено для работы с Arduino Uno, вы можете писать, редактировать и загружать эскизы в Arduino uno по bluetooth HC-05. Приложение легкое для понимания, как Arduino IDE, есть много примеров эскиза, а также вы можете добавить некоторые библиотеки, просто скопируйте папку библиотеки в папку BluinoLoader / libraries.

Вы можете изменить тему цвета редактора, размера текста и многих функций. Если вы хотите получить функцию Serial Monitor, удалить рекламу и иметь возможность сканировать любое имя bluetooth (не только Bluino # …), вы можете купить PRO-версию.

Загрузка эскиза работает очень хорошо по Bluetooth. Так что можно поставить этому приложению оценку 4 из 5.

Сборка

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

Из инструментов могут понадобиться:

  • Ручной или электрический лобзик (я пользовался ручным), чтобы отрезать нужные куски от материала.
  • Дрель или шуроповёрт, свёрла.
  • Крепёжные элементы — болты, гайки и саморезы любого подходящего диаметра.

Получилось дёшево и сердито. А главное работает.

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

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

Платы в идеале лучше прикручивать короткими болтами с диаметром 3 мм. Но и таких у меня не оказалось. Поэтому пришлось делать в оргстекле отверстия 2 мм и прикручивать платы саморезами. Держится вполне нормально.

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

Аккумулятор крепится аналогично Bluetooth модулю, только снизу.

И обязательно прикручиваем мебельное поворотное колесо, которое станет опорным, и не будет приводным. Следите за тем, чтобы вся конструкция была в горизонтальном положении, когда стоит на всех трёх колёсах.

Объяснение программы для Raspberry Pi

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Программировать плату Raspberry Pi в нашем проекте мы будем с использованием языка Python3. Также можно использовать и язык C/C++ как и в плате Arduino, однако в данном случае преимуществом написания программы на языке python является то, что на нем написана специальная библиотека для работы с модулями nRF24l01, которую можно скачать с ее официальной страницы на github. Но здесь необходимо отметить, что наша программа на python и указанная библиотека должны находиться в одном и том же каталоге, иначе программа на python не сможет найти библиотеку. После скачивания библиотеки извлеките ее из архива и создайте отдельный каталог, в котором будут храниться все программы и библиотеки вашего проекта. Когда установка библиотеки будет закончена, можно приступать к написанию программы.

Первым делом в программе необходимо подключить (импортировать) все используемые библиотеки.

Python

import RPi.GPIO as GPIO
import time
import spidev
from lib_nrf24 import NRF24

1
2
3
4

importRPi.GPIO asGPIO

importtime

importspidev

fromlib_nrf24 importNRF24

Далее установим режим работы контактов (GPIO mode) платы Raspberry Pi «Broadcom SOC channel», что будет означать что мы будем обращаться к контактам платы по их физическим номерам (а не по их номерам на плате).

Python

GPIO.setmode(GPIO.BCM)

1 GPIO.setmode(GPIO.BCM)

Далее в программе мы зададим адреса каналов (pipe address) – они будут нужны для взаимодействия с приемной частью проекта на основе платы Arduino. Адреса укажем в шестнадцатеричном коде.

Python

pipes = , ]

1 pipes=0xE0,0xE0,0xF1,0xF1,0xE0,0xF1,0xF1,0xF0,0xF0,0xE0

Инициализируем модуль nRF24l01 используя контакты GPIO08 в качестве CE и GPIO25 в качестве CSN.

Python

radio.begin(0, 25)

1 radio.begin(,25)

Установим размер пакета (payload size) 32 бита, адрес канала 76, скорость передачи данных 1 Мбит/с и выходную мощность модуля на минимум.

Python

radio.setPayloadSize(32)
radio.setChannel(0x76)
radio.setDataRate(NRF24.BR_1MBPS)
radio.setPALevel(NRF24.PA_MIN)

1
2
3
4

radio.setPayloadSize(32)

radio.setChannel(0x76)

radio.setDataRate(NRF24.BR_1MBPS)

radio.setPALevel(NRF24.PA_MIN)

Откроем каналы и начнем в них запись данных. Также будем выводить на экран основные параметры (details) работы модуля nRF24l01.

Python

radio.openWritingPipe(pipes)
radio.printDetails()

1
2

radio.openWritingPipe(pipes)

radio.printDetails()

Подготовим сообщение в форме строки. Это сообщение мы будем передавать плате Arduino UNO.

Python

sendMessage = list(«Hi..Arduino UNO»)
while len(sendMessage) < 32:
sendMessage.append(0)

1
2
3

sendMessage=list(«Hi..Arduino UNO»)

whilelen(sendMessage)<32

sendMessage.append()

Начнем запись информации в радио модуль и будем продолжать запись пока не закончится вся строка для передачи. Одновременно с этим зафиксируем текущее время и выведем на экран сообщение об успешной передаче (в целях отладки).

Python

while True:
start = time.time()
radio.write(sendMessage)
print(«Sent the message: {}».format(sendMessage))
send
radio.startListening()

1
2
3
4
5
6

whileTrue

start=time.time()

radio.write(sendMessage)

print(«Sent the message: {}».format(sendMessage))

send

radio.startListening()

Если передача сообщения завершена и радио канал закрыт (не доступен) более 2-х секунд, то выведем на экран сообщение о том, что время истекло (timed out).

Python

while not radio.available(0):
time.sleep(1/100)
if time.time() — start > 2:
print(«Timed out.») # print error message if radio disconnected or not functioning anymore
break

1
2
3
4
5

whilenotradio.available()

time.sleep(1100)

iftime.time()-start>2

print(«Timed out.»)# print error message if radio disconnected or not functioning anymore

break

Закрываем прослушивание (listening) радио канала, закрываем соединение и заново открываем соединение спустя 3 секунды чтобы передать другое сообщение.

Python

radio.stopListening() # close radio
time.sleep(3) # give delay of 3 seconds

1
2

radio.stopListening()# close radio

time.sleep(3)# give delay of 3 seconds

Возможности BLE в модуле NRF24L01

Технология BLE работает в диапазоне ISM (2,4 ГГц), который во многих странах разрешен для безлицензионного использования (то есть не нужно получать никаких разрешений в радиочастотных органах) в промышленности, науке и медицине. ISM диапазон занимает полосу частот от 2400 МГц до 2483.5 МГц и разделен на 40 каналов. Три из этих 40 каналов имеют статус «информационных», они используются устройствами для передачи специальных приветственных пакетов с информацией о своем состоянии – это позволяет другим устройствам BLE устанавливать с ними связь.

В этой статье мы рассмотрим как использовать модуль NRF24L01 в качестве BLE трансивера (приёмопередатчика). BLE функциональность данного модуля будет продемонстрирована на примере передачи данных температуры в смартфон. Данные температуры будут считываться с датчика DHT11, а управлять всем процессом передачи данных будет плата Arduino. На смартфоне для приема этих данных можно использовать, например, приложение для android под названием Nordic BLE.

Скетч для Arduino

Мы будем использовать для работы такой скетч:

Хотя nRF8001 является 3.3В устройством, Vcc и контакты данных устойчивы к 5В, так что вы можете использовать и то, и другое. Эскиз для демонстрации проекта основан на примере, представленном в библиотеке в разделе «examples» как «echodemo».

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

Попробуйте набрать какой-нибудь текст и нажмите «send», и он появится в серийном окне. Введите текст в серийное окно и отправьте его, и оно появится на вашем телефоне.

В измененном примере ниже, я добавил красный, зеленый и синий светодиод на плату, и вы можете мигать ими, введя r, или b, или g с телефона. При вводе слова со всеми тремя, например, «grab» будут мигать все три. У меня старый Samsung Galaxy и работало всё просто отлично.

На этом всё. Оставляйте вопросы или комментарии ниже, наше сообщество поможет в любой ситуации.

Демонстрация работы

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

Очень часто в ваших проектах возникает необходимость в дистанционном управлении или передачи данных с ваших телефонных гаджетов.

Один из самых популярных и распространенных методов обмена данными посредством Bluetooth.

Сегодня мы разберем простые примеры как можно подключить Bluetooth модуль к Arduino и настроить дистанционное управление с телефона.

Нам понадобится:

  • Набор проводов ПАПА-МАМА
  • HC-06 Bluetooth

Подключать Bluetooth модуль к микроконтроллеру Arduino удобнее всего с помощью проводков ПАПА-МАМА .

Arduino Bluetooth
Pin 1 (TX) RXD
Pin 0 (RX) TXD
GND GND
5V VCC

Будьте внимательны, подключать подключать нужно TX

-> RXD

,RX

-> TXD

.

Теперь необходимо записать пробный код программы:

Во время загрузки скетча необходимо что бы Bluetooth модуль был отключен от микроконтроллера arduino. В противном случае скетч не запишется, потому что связь с Bluetooth модулем происходит по одному и томуже порту RX и TX, что и USB.

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

После того как скетч записан и Bluetooth модуль подключен к Arduino, можно перейти к следующему шагу.

Подключение Bluetooth к телефону

Желательно в качестве источника питания для arduino использовать не USB, а внешний Блок питания на 9 В.

  1. Включаем Bluetooth на телефоне и ищем новые устройства
  2. Находим в списке расстройств «HC-06″

    и подключаемся к нему.
  3. Телефон спросит пин-код. необходимо ввести «1234

    » или «0000

    «
  4. Ура. Устройство подключено.

Теперь нужно скачать bluetooth terminal на ваш телефон. Мы рассмотрим на примере платформы Android.

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

После того как мы установили терминал, запускаем его выбираем наш bluetooth модуль HC-06 и подключаемся к нему.

Пришло время попробовать проект в деле. Пишем в терминале цифру «0» и отправляем. Светодиод L который находится на плате arduino рядом с pin 13, должен погаснуть. Теперь отправим через терминал цифру «1» и светодиод L должен зажечься.

Демонстрация работы:

Домашняя работа:

  • Изменить скетч так, что бы светодиод зажигался и потухал с помощью одной и той же команды например «G».
  • Дописать скетч и научить его преобразовывать текстовые данные приходящие через блютус в цифровые и реализовать димер, зажигать светодиод с помощью ШИМ, на заданную яркость от 0 до 254 приходящую через bluetooth.

Вам необходимо дистанционно управлять вашей Arduino платой, обмениваться данными с другими bluetooth устройствами? Блютуз модули HC-05, HC06 помогут справиться с этой задачей.

В первой части статьи мы расскажем о том, как установить беспроводное соединение между Arduino и компьютером, а во второй части как установить соединение между Arduino и телефоном на платформе Android. .

Данная статья будет составной частью в дальнейшей сборке дистанционно управляемой машинки.

Компоненты для повторения (купить в Китае):

Модули HC-05/06 представляют из себя голые блютузы с дополнительной обвязкой.

А именно: установлены на подложку, на которой расположен стабилизатор с 5 на 3.3Вольта, светодиод, указывающий на состояние модуля (образовано соединение или нет), и конденсаторы на линиях питания. Также на плате установлен mosfet транзистор (Q1), который при надобности может разрывать цепь питания блютуза, тем самым отключая его, но в нашем обзоре это задействовано не будет.

С лицевой стороны модуль выглядит вот так

Как работает nRF8001

Одной из интересных особенностей nRF8001 является то, что его интерфейс для пользователя является UART.

Другими словами, обычный старый серийный Tx и Rx, что делает его очень простым в использовании. Первые три контакта на плате — это интерфейс SPI, SCK — это просто часы, MISO — Master In Slave Out, а MOSI — Master Out Slave In.

Эти четыре контакта идут на Arduino, как показано на схеме, и это не подлежит обсуждению. REQ сигнализирует nRF, что Arduino хочет что-то сказать, а RDY сообщает Arduino, что nRF хочет что-то сказать и должен перейти к одному из выводов запроса прерывания Arduino, т. Е. 2 или 3.

RST является выводом сброса и сбрасывает nRF при запуске. REQ используется аналогично SS, с которым вы, возможно, сталкивались в других приложениях SPI. У Adafruit есть больше деталей относительно его nRF8001 по этой ссылке.

Характеристики Bluetooth модуля HC-06 / HC-05

Bluetooth является сегодня одним из самых популярных типов связи для коротких дистанций, которым пользуются большинство бытовых приборов и электронных устройств — наушники, компьютерные клавиатуры и мышки и другие гаджеты. В робототехнике Bluetooth модуль используют для управления различных устройств на Arduino NANO, например, управление машинкой или катером со смартфона.

HC-05/06 Bluetooth модуль распиновка

Оба устройства построены на чипе CSR BC417, который поддерживает радиосигнал по протоколу Bluetooth со скоростью до 3 Мбит/сек. На самой плате находится антенна из дорожки в виде змейки, обеспечивающая дальность связи до 10 метров. Главным преимуществом можно назвать устойчивость к широкополосным помехам, а значит несколько устройств могут общаться между собой, не мешая друг другу.

Скетч для управления Ардуино через блютуз со смартфона на Android ничем не отличается от скетча, который применяется для управления Ардуино с компьютера. Так как в обоих случаях микроконтроллер будет получать данные по протоколу UART (универсальный асинхронный приемопередатчик) — самый первый и наиболее распространенный сегодня физический протокол передачи данных.

​Bluetooth Modülünü Kullanmaya Başlamadan Önce Şunları Öğrenelim

Bluetooth, cep telefonlarımızdan kulaklıklarımıza kadar neredeyse kablosuz iletişim yeteneğine sahip tüm cihazlarda var olan bir teknolojidir. Arduino projelerimize de bluetooth ekleyebilmemiz için piyasada çeşitli modüller bulunmaktadır. Bunlardan en uygun fiyatlı ve en kullanışlı olanı HC-05 modelidir.

Arduino İle Bluetooth TX ve RX Bağlatılarını Yaparken Neye Dikkat Etmeliyim?

Bluetooth modülü Arduino ile TX/RX protokolü ile birbirine bağlanır. RX “Receive” yani almak, TX ise “Transmit” yani vermek kelimelerinden gelmektedir. Yani kısaca bir alıcı/verici protokolüdür. Bağlantıda önemli olan nokta ise Arduino’nun TX pini Bluetooth modülünün RX pinine bağlanmalı, Arduino’nun RX pini de Bluetooth modülünün TX pinine çapraz şekilde bağlanmalıdır.

HC06 ve HC05 arasında ne gibi farklılıklar var?

HC-05 görünüm olarak HC-06 modülü ile neredeyse tamamen aynıdır. Temelde aynı işlevi görseler de HC-05 modelini kullanarak iki adet HC-05 veya HC-06 modelleri arasında doğrudan iletişim kurulabilmektedir. HC-05’i ayırt etmek için basit bir yöntem vardır: çoğu HC-05 modülün üzerinde ufak bir buton bulunmaktadır. HC-06’da ise bu buton mevcut değildir.

HC05 ve HC06 Bluetooth Modüllerinin Konfigürasyonunu Yapalım

Modülümüzün konfigürasyonunu kolay bir şekilde yapabilmek için aşağıdaki şemaya göre bağlantı yapmamız ve 5V ve GND pinlerini Arduino’ya takarken modül üzerindeki butonu basılı tutmamız gerekir.

Konfigürasyon için kod:

#include <softwareserial.h>

SoftwareSerial mySerial(10, 11); // RX,TX
String isim = "Arduino UNO";
int sifre = 1234;
String uart = "9600,0,0";

void setup() {

  Serial.begin(9600);
  Serial.println("HC-05 Modul Ayarlaniyor...");
  Serial.println("Lutfen 5 sn icinde HC-05 modulun uzerindeki butona basili tutarak baglanti yapiniz.");
  mySerial.begin(38400);
  delay(5000);
  mySerial.print("AT+NAME=");
  mySerial.println(isim);
  Serial.print("Isim ayarlandi: ");
  Serial.println(isim);
  delay(1000);
  mySerial.print("AT+PSWD=");
  mySerial.println(sifre);
  Serial.print("Sifre ayarlandi: ");
  Serial.println(sifre);
  delay(1000);
  mySerial.print("AT+UART=");
  mySerial.println(uart);
  Serial.print("Baud rate ayarlandi: ");
  Serial.println(uart);
  delay(2000);
  Serial.println("Islem tamamlandi.");

}

void loop() {

}

Bluetooth Modülü Nasıl Windows Bilgisayara Tanıtabilirim?

Sıra geldi bluetooth modülümüzü Windows bilgisayarımıza tanıtmaya. Sistem tepsisinde bulunan “Bluetooth Aygıtları” simgesine çift tıklayarak açıyoruz

Arduino’muza bluetooth modülünün takılı olduğundan ve modülün iletişim modunda olduğundan emin oluyoruz (LED’in hızlıca yanıp sönüyor olması gerek). Bilgisayarımız tarama yaparak bluetooth modülümüzü buluyor. Burada, isim olarak konfigürasyon programında yazdığımızı ismi görmeliyiz.

Eşleştirme işlemini başlatınca, bu sefer bilgisayarımız modüle verdiğimiz şifreyi soracak.

Bilgisayarımız aygıt yükleme işlemini tamamladıktan sonra “Denetim Masası”ndan “Aygıtlar ve Yazıcılar” ı seçerek  listenin en altında bulunan bluetooth modülümüze sağ tıklıyor ve “Özellikler”i seçiyoruz. Buradaki pencereden “Donanım”a gelerek burada yazılı olan COM portunun numarasını öğreniyoruz. Benim bilgisayarımda COM5 olarak görünüyor.

Arduino programını açarak “Ayarlar” menüsünden portu değiştirerek bluetooth modülümüze bağlanacak şekilde ayarlıyoruz.

Arduino programından “Seri Port Ekranı”nı açarak baud rate’i 9600 olarak seçiyor ve istediğimiz komutu giriyoruz. q, w, e ve r tuşları sırasıyla 7, 6, 5 ve 4 numaralı pinlere bağlı LED’leri yakar veya söndürür. Z tuşu tüm LED’leri söndürür ve X tuşu tüm LED’leri yakar.

Программа 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

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

Сначала в программе необходимо определить контакты Arduino, на которых мы будем использовать последовательную связь (Rx и Tx).

Arduino

int TxD = 11;
int RxD = 10;

1
2

intTxD=11;

intRxD=10;

Затем установим 2-й и 3-й контакты платы Arduino (к ним подключены светодиоды) в режим вывода данных.

Arduino

pinMode(2, OUTPUT);
pinMode(3, OUTPUT);

1
2

pinMode(2,OUTPUT);

pinMode(3,OUTPUT);

Далее, в функции loop плата Arduino будет непрерывно проверять поступление данных от Bluetooth модуля (который, в свою очередь управляется с помощью голосовых команд) и в соответствии с ними управлять включением/выключением светодиодов. Все принимаемые команды мы будем сохранять в переменной “Value”.

Если значение этой переменной равно «all LED turn on», то мы будем включать оба светодиода. Аналогично этому при поступлении других голосовых команд мы будем соответствующим образом включать и выключать светодиоды в нашей схеме. Более подробно все эти процессы показаны на видео, приведенном в конце статьи.

Arduino

if (bluetooth.available())
{
value = bluetooth.readString();

if (value == «all LED turn on»){
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
}

if (value == «all LED turn off»){
digitalWrite(2, LOW);
digitalWrite(3, LOW);
}

if (value == «turn on Red LED»){
digitalWrite(2, HIGH);
}

if (value == «turn on green LED»){
digitalWrite(3, HIGH);
}

if (value == «turn off red LED»){
digitalWrite(2, LOW);
}

if (value == «turn off green LED»){
digitalWrite(3, LOW);
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

if(bluetooth.available())

{

value=bluetooth.readString();

if(value==»all LED turn on»){

digitalWrite(2,HIGH);

digitalWrite(3,HIGH);

}

if(value==»all LED turn off»){

digitalWrite(2,LOW);

digitalWrite(3,LOW);

}

if(value==»turn on Red LED»){

digitalWrite(2,HIGH);

}

if(value==»turn on green LED»){

digitalWrite(3,HIGH);

}

if(value==»turn off red LED»){

digitalWrite(2,LOW);

}

if(value==»turn off green LED»){

digitalWrite(3,LOW);

}

}

List of other recommended Arduino Bluetooth modules

Now that I’ve gone through the above Arduino Bluetooth tutorial, here’s a list of other recommended Arduino Bluetooth modules to try! They are all Grove compatible!

Grove compatible?

Grove system is Seeed very own initiative, mainly aimed at helping users like yourself to easily use different modules, sensors, and more through our plug and play system!

We currently already hold more than 200 Grove modules, including other modules/sensor types for you to choose from!

Don’t believe how easy pairing is made possible with Grove? Below shows a general Arduino Bluetooth module vs one of our Grove – Bluetooth Modules:

  • Typical Arduino Bluetooth pairing circuit
  • With Grove Bluetooth module

Like how simple and less messy it is?

All you need is a Grove Base Shield alongside your Arduino and you’re good to go!

Ok, now let us start with our list of Arduino Bluetooth Modules and Shields!

1. Bluetooth V4.0 option: Grove – Blueseeed (HM11)

The Grove – Blueseeed LE (HM11) is a Low Energy Bluetooth module that utilizes an HM11 with capabilities described as the one above in its datasheet. It can be used with your Arduino board alongside the base shield similar to the earlier tutorial!

With support for a BLE ComAssistant APK, this Bluetooth module can easily communicate with your phone without pairing!

It can be set via AT commands directly as well!

Applicable in many conditions such as robot controls or remote control equipment, this Arduino Bluetooth Module is suitable for both beginners and avid tinkerers!

Interested to find out more?

We’ve provided an easy and convenient command set alongside an Arduino pairing tutorial on our product page!

2) Grove – Serial Blueseeed (CSR BC417)

Looking for an option that rivals the HC-06 Bluetooth Module? The Grove – Serial Blueseeed (CSR BC417) not only matches the Bluetooth V2.0 and hopping spread spectrum technique, but it supports a higher transmission speed and ease of pairing!

When planning to use the HC-06 Bluetooth Module, you have to go through the tedious way of converting voltages, dealing with voltage dividers and electrical circuits which is not apparent on the Grove – Serial Blueseeed!

Thanks to our Grove system, all you need to pair the Grove – Serial Blueseeed with Arduino are plug-and-play Grove cables!

Apart from its ease of pairing, it features a selectable baud rate and a within 30min auto-reconnect when disconnected feature as well!

Interested to find out more?

We’ve provided an easy and convenient command set alongside an Arduino pairing tutorial on our product page!

3) Arduino Bluetooth Shield option: Blueseeed Shield V2 (HM01)

Looking for an Arduino Bluetooth shield option instead? Here’s the first recommended option!

Based on the HM01 Bluetooth module, it’s a low cost and easy to use option with Bluetooth 2.0 technology and integrated Grove ports for you to install our plethora of Grove Modules!

Here are its features and specifications:

  • Seeeduino/Arduino compatible
  • Up to 10m communication distance in house without obstacle
  • A full set of configuration commands
  • UART interface (TTL) with programmable baud rate
  • On board PCB Antenna
  • Input Voltage: 3.3V
  • Baudrate: 9600, 19200, 38400, 57600, 115200, 230400, 460800
  • Default Baud rate: 9600, Data bits: 8, Stop bit: 1, Parity: No parity
  • Default PINCODE:”1234”

Interested to find out more?

We’ve provided an Arduino and Andriod pairing tutorial on our product page!

4) HM11 Shield Option: Seeed Blueseeed Shield (HM11)

Like what you saw about the HM11 Arduino Bluetooth module earlier with the first recommendation? This is a shield version; more functions, and even easier connectivity!

Since it’s packed with exactly what you’ll get from the HM11 module; Bluetooth V4.0, 2.4Ghz band, etc., I’ll just cover its specialties!

For that, we’ll take a look into its hardware:

  • HM-11 module
  • Signal lamp: Lamp will blink if BLE is not connected, but the lamp will keep lighting after BLE has been connected
  • Grove connectors: Two Grove connectors for convenient plugging of Grove products onto the board
  • Hard or Softserial port: You can choose two of seven digital pins as the communication channel, just plug the jumpers into the headers
  • Reserved pinouts from HM-11: There are reserved pinouts from the HM-11 module, such as CTS1, RTS1, and PIO2, etc.
  • Reset Button: For reset of the shield, doesn’t affect the mainboard even if its plugged in

Note: This shield is only best compatible with the following boards:

  • Arduino Uno/Seeeduino v4.2
  • Arduino Leonardo/Seeeduino Lite

Interested to find out more?

We’ve provided an Arduino pairing tutorial on our product page!