Bluetooth Communication between Raspberry Pi and Arduino
Some Arduino boards have chip on board to support serial communication over USB, and will appear as a serial device when you connect them with your computer via USB cable. The USB connection can be used on not only uploading the sketch to Arduino board, but also exchanging data between Arduino and computer in real time.
Since Raspberry Pi is a full-featured mini computer, it can talk to Arduino as well, just like those big computers do. Connecting Raspberry Pi and Arduino with USB cable can do a lot of interesting things. We have a open-source project for developing the APIs for controlling Arduino in Raspberry Pi. This is very interesting and you can imagine many ways to use them. USB cable is neat enough if the major of cases. However, what if the Arduino needs to be placed far from the Raspberry Pi?
For example, if you want to put Arduino out of my window and you still want to control it with your Pi on desktop, what to do? A long USB cable may do the trick, if the distance is not that long. But if your Arduino is more than 2M further from your Pi, you should consider a wireless solution, such as using Bluetooth as a serial bridge.
Required Components
You will need the following components to implement such a wireless solution:
- Raspberry Pi
- Arduino Nano (or any other Arduino that has USB port on board)
- Bluetooth USB dongle
- SPP-CA Bluetooth serial module
Wiring Bluetooth Serial Module and Arduino
You can wire your Bluetooth serial module and your Arduino like this (we use Arduino Nano as example).
The Bluetooth serial module has 4 pins on board so it could be plugged into a breadboard. The USB plug in the figure below is just for power supply (DC 5V), and it has nothing to do with the communication.
Remarks: the SPP-CA Bluetooth serial module we use is 3~6V tolerated. If you use a Bluetooth module that only accept 3.3V, you will need to use voltage divider or level-translator between Arduino and the Bluetooth module.
Source Code on Arduino Side
You can use the source code below for testing the Bluetooth module. Before you upload the sketch, make sure to temporarily break the TX/RX wiring between the Bluetooth module and Arduino, or they will affect each other and the uploading will fail.
Arduino.ru
Подскажите как его подключить к arduino mega? Читал в интернете, но пишут все по разному! Одни говорят что надо подключать к 3v3, а другие говорят что надо 5v, далее прочитал что если не правильно подключить, то вообще спалить можно, а этого мне бы не хотелось!
Там показаны входа TX RX, на моем arduino есть TX1 RX1, TX2 RX2, TX3 RX3, к каким входам мне подключать? И можно ли мне остальное подключать как указано на рисунке?
Подскажите пожалуйста, заранее большое спасибо!
по твоей ссылке в описании модуля все есть.
Потребление модуля 150 мА, а пин 3V3 у Мега выдает не более 50 мА . Поэтому либо внешний источник 3.3 В, либо можно и к 5 В — в описании: напряжение питания 3,3-6 В, при этом нет никакой защиты от превышения или переполюсовки, поэтому трижды проверь подключения перед подачей питания.
По той же ссылке есть схема подключения:
TX —> RX1 (цифра любая 1. 3 для меги)
RX —> TX1
VCC —> +5V
GND —> GND
У меня модуль HC-05 , версии 1,06. Подключен к 3, 3 В напрямую к Arduino Mega2560 и прекрасно работает. Ради интереса подключил модуль к лабораторному блоку питания, установил 3,3 В и порог 0,2 А. Потребление 40 мА. Подключил Arduino от лабораторного блока питания через USB ( с загруженным скетчем GPS tracker) , подал 5 В и порог 0,2 А. Потребление 80 мА. Установил GPS shield. Потребление колеблется от 120 мА до 170 мА. Подключил модуль Bluetooth к 3.3 В Arduino. Потребление колеблется от 160 мА до 210 мА. К 5 В тоже самое. Вывод: Bluetooth модуль HC-05 и в ожидании и в процессе передачи данных (скорость 9600) потребляет примерно 40 мА. Есть еще вкусности по сравнению с HC-06 http://www.electronicaestudio.com/docs/istd016A.pdf
Спасибо за пдф. И у меня НС-05 без проблем с МЕГА и ТИВА-С ( в обоих случаях питание 3.3В). Замечу, МЕГА с 5 В уровнями, ТИВА с 3.3В.
Записки склерозника
Bluetooth модуль позволяет подключать модули Arduino к смартфонам, ноутбукам, и любым другим устройствам имеющим Bluetooth, работающий в режиме master.
Позволяет передавать данные на Arduino контроллер через стандартный интерфейс RS-232.
Данные передаются по стандарту UART, который вшит в большинстве встраиваемых систем (этот порт имеется почти во всех микроконтроллерах, либо легко организуется программно). Также возможно управление с помощью AT-команд.
Обозначение контактов:
VCC (напряжение питания);
GND (общий контакт);
RXD (принимаемые данные);
TXD (передаваемые данные).
Также на корпусе есть две клеммы, которые по умолчанию не задействованы, но могут использоваться:
STATE – сюда дублируется сигнал с встроенного светодиода, когда модуль активен светодиод мигает, когда связь установлена – горит;
EN – включение/выключение, если подать на этот контакт логическую единицу (5 В), то модуль выключится, если логический ноль (или пин будет не задействован), то модуль будет работать.
Поскольку основной модуль установлен на подложку, то есть возможность вывести другие сигналы.
Выводы сигналов:
Напряжение питания модуля 3,3В, ток потребления 30 – 40 мА.
На подложк е модуля расположен стабилизатор напряжения с 5 на 3,3 В.
Потому можно подключать напряжение питания 3,6 – 6 В от внешнего источника или 5 В от Arduino.
Линии Bluetooth модуля HC-06 могут работать и с TTL логикой (5 В), что позволяет подключать его UART к Arduino.
Характеристики:
модель: HC-06;
контроллер: BC417 компании Cambridge Silicon Radio;
связь с Arduino: интерфейс RS232;
чувствительность приемника: -80 dBm;
диапазон изменения выходной мощности: от -4 до +6 dBm;
уровень мощности: Bluetooth Class2 (+6 dBm);
аппаратная поддержка: Bluetooth 2.0+EDR (Enhaced Data Rate);
рабочая частота: 2,4 ГГц;
встроенная память: 1 МБ;
напряжение питания: 3,6 – 6 В;
ток потребления: 30 – 40 мА;
возможные скорости передачи данных: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400 бод;
рабочий температурный диапазон: -25 – +75°C;
физические размеры: (Д х Ш х В): 27 × 13 × 2 мм;
вес: 4 г.
Теперь загрузим скетч в arduino.
Во время загрузки скетча необходимо что бы 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 В.
Включаем Bluetooth на телефоне и ищем новые устройства
Находим в списке расстройств «HC-06» и подключаемся к нему.
Телефон спросит пин-код. необходимо ввести «1234» или «0000»
Устройство подключено.
Теперь нужно скачать bluetooth terminal на ваш телефон. Мы рассмотрим на примере платформы Android.
Вы можете установить разные bluetooth терминалы, как правило они отличаются только разными дизайнами, функционал от этого не меняется. Так же можно найти и терминал и для продуктов ios.
После того как мы установили терминал, запускаем его выбираем наш bluetooth модуль HC-06 и подключаемся к нему.
Пришло время попробовать проект в деле. Пишем в терминале цифру «0» и отправляем. Светодиод L который находится на плате arduino рядом с pin 13, должен погаснуть. Теперь отправим через терминал цифру «1» и светодиод L должен зажечься.