Страница 1 из 1

Загрузка Sketch по Bluetooth

Добавлено: Ср июл 15, 2015 2:13 pm
annakin
Вчера решил прикрутить Bluetooth модуль HC-05 к Arduino что бы можно было заливать Скетчи по БТ без подключения USB шнурка к Arduino.
Покопался в интернете и нашёл кучу мануалов но не один толком не смог заставить работать, и тут начались танцы с бубном вокруг Arduino и HC-05.
В конце концов мне понадобилось 2 дня что бы чегото добиться, в итоге у меня получилось скетчи заливаются в Ардуинку по БТ.
Шас я попытаюсь объяснить как вам это сделать дабы не наступать на теже грабли что и я.
Что нам нужно:
1) Пины на 6 контактов.
СпойлерПоказать
20150715132733.jpg
Пины
20150715132733.jpg (142.86 КБ) 8927 просмотров
2) Сам модуль БТ HC-05
СпойлерПоказать
hc-051.jpg
Сам БТ модуль и нужен именно HC-05.
hc-051.jpg (82.13 КБ) 8927 просмотров
3) Силиконовый пистолет (фоткать его не стал, думаю каждый знает что это такое)
4) Любой Bluetooth USB (у меня был в наличии УСБ Нано от Гембирта, но подойдёт и ноут с УСБ)
5) Само собой Arduino ) без разници какой и использовал Mega 2560 но тестировал на Uno дабы не спалить мегу)
6) Прямые руки (ну хоть чучуть)
7) Паяльник ( я использовал паяльную станцию BAKU)

Итак сам процес:
Подключаем Ардуину УСБ шнурком к компу заливаем скетч:
СпойлерПоказать

Код: Выделить всё

/* Serial Loop */

#include <SoftwareSerial.h>

#define rxPin 8
#define txPin 9

SoftwareSerial mySerial(rxPin, txPin); // RX, TX
char myChar ;

void setup() {
  Serial.begin(9600);   
  Serial.println("AT");

  mySerial.begin(38400);
  mySerial.println("AT");
}

void loop() {
  while (mySerial.available()) {
    myChar = mySerial.read();
    Serial.print(myChar);
  }

  while (Serial.available()) {
    myChar = Serial.read();
    Serial.print(myChar); //echo
    mySerial.print(myChar);
  }
}

 
Далее подключаем сам модуль HC-05 к Ардуинке таким образом.
СпойлерПоказать
bluetooth-setup1.png
bluetooth-setup1.png (6.75 КБ) 8927 просмотров
Вот даташит на модуль HC-05:
http://cdn.makezine.com/uploads/2014/03 ... etooth.pdf
Скажу сразу Key это 34 контакт на плате HC-05, так вот коротим его с +3,3В на время пока мы будем прошивать HC-05 на нужные нам параметры.
Так подключили все это дело к Ардуинке и индикатор на БТ модуле HC-05 должен медленно моргать, если он моргает быстро значит он не стоит в режиме програмирования, проверьте перемычку +3,3В.
После того как у нас модуль уже запущен в режиме програмирования открываете Сериал Порт в IDE и вводим следующие команды:
СпойлерПоказать

Код: Выделить всё

AT+ORGL     

AT+ROLE=0

AT+POLAR=1,0    

AT+UART=115200,0,0    

AT+INIT
На все команды вы должны получать OK.
ПримерПоказать
at_commands21.png
at_commands21.png (43.34 КБ) 8927 просмотров
Всё как только вы закончили програмить Модуль отключаем Ардуинку от УСБ и отпаиваем перемычку 34 пин и +3,3В.
Подключаем обратно Ардуинку к УСБ и на компе начинаем поиск нашего модуля по БТ, как только вы его нашли нужно их спарить ( думаю тут вы сами разберётесь)
И дальше начинается самое интересное собираем вот такую схему:
СпойлерПоказать
bt_shield_circuit3.png
bt_shield_circuit3.png (13.01 КБ) 8927 просмотров
Я собрал её на 6-ти пинах вот так:
СпойлерПоказать
rdy.jpg
rdy.jpg (48.9 КБ) 8927 просмотров
20150715132858.jpg
20150715132858.jpg (113.55 КБ) 8927 просмотров
Как только вы собрали всё, начинайте подключать.
У меня это вот так выглядит:
СпойлерПоказать
20150715132838.jpg
20150715132838.jpg (153.32 КБ) 8927 просмотров
Допустим вы всё подключили и приэтом умудрились не спалить к чертям Ардуинку и сам модуль БТ, запускаем IDE и в портах выбираем Порт исходящий БТ у меня это 8 порт.
Обычно УСБ БТ задействует два порта, на исходящие соединения и на Входящие, так вот нам нужен именно исходящий порт, это вы можете посмотреть в настройках БТ на компе там пишет.
Но по своему опыту скажу что это порт с низким значением, то есть у меня исходящий 8 а входящий 9.
Ну а дальше заливаите скетчи как обычно.

Но во всей этой прекрасной сказке есть одно НООО!!!! После заливки скетчей надо делать ресет ардунке ((
Пока это я не вылечил, если кто сможет устранить этот нюанс пишите.
Всем спасибо за внимание.
с Ув. Николай.

UPD: Оказалось что Ресет Ардуинке не надо делать она сама ресетитса после заливки, при первом испытании проста наверно она у меня подвисла а при повторных двух всё прошло удачно, скетч залилса и Ардуинка ресетнулась. ))

UPD: Вот сделал видео как это работает.
http://youtu.be/kG6I-Js4B5s

Re: Загрузка Sketch по Bluetooth

Добавлено: Ср июл 15, 2015 2:49 pm
Alex
annakin, если вы такой продвинутый, то может быть вы запилите обновление серверных страничек не через сериал, а через сеть (проводную)?

Re: Загрузка Sketch по Bluetooth

Добавлено: Ср июл 15, 2015 2:56 pm
annakin
Alex писал(а):annakin, если вы такой продвинутый, то может быть вы запилите обновление серверных страничек не через сериал, а через сеть (проводную)?
Неа пока я ещё зелёный в этом деле (( я ещё учусь. Потом может быть возмусь за это, но не шас. ))
Для начала меня если чесно устраивает и заливка сетчей по БТ.

Re: Загрузка Sketch по Bluetooth

Добавлено: Вс июл 26, 2015 4:15 pm
chewbakkaz
Ну все мы с чего-то начинали :)
-----------------------
http://americangrill.ru/weber-gift-certificates/

Re: Загрузка Sketch по Bluetooth

Добавлено: Ср июл 29, 2015 7:37 am
shemnik69
А идея интересная. Т.е по сути, если на Ардуино (или клоне. даже просто атмега с загрузчиком) установлен стандартный загрузчик (bootloader) внешним воздействием ресетим (презагружаем) и по сути микроконтроллер готов к приему данных. Это может быть как сетевой адаптер (например на основе роутера) так и типа BT. Ресетить микроконтроллер можно например командой с роутера через его GPIO.

Re: Загрузка Sketch по Bluetooth

Добавлено: Чт янв 05, 2017 12:47 pm
Aleksandr
На схеме ножка TX HC-05 соединяется на землю через резистор 2,2 кОм. На листике с RCT. Как правильно?

Re: Загрузка Sketch по Bluetooth

Добавлено: Чт янв 05, 2017 2:30 pm
immortal
Alex писал(а):annakin, если вы такой продвинутый, то может быть вы запилите обновление серверных страничек не через сериал, а через сеть (проводную)?
Есть библиотека для ардуины OTA, я её юзал для esp8266 http://xn--b1afas9b4a.xn--p1ai/archives/749