Как стать автором
Обновить

Комментарии 32

С безопасностью проблемы… это же каждый в радиусе действия блютуза может взять и прошить платку, если она будет использоваться где-нибудь на улице. Нужен какой-то диалоговый код авторизации.
Для этого второй вариант модуля — с кнопкой отключения. Пришёл, включил, перепрошил, отключил, проверил, ушёл. Или совсем снял модуль после перепрошивки — я так и делаю. Ну и модуля есть стандартная процедура «спаривания» с паролем, по дефолту «1234», при настройке можно изменять командой AT+PSWD=1234.
Пароль подбирается, а если модуль можно отключить… так ведь туда можно и подключиться обычным UART-ом… т.е. для внешнего применения «без присмотра» такое решение держится только на своей уникальности, а когда их будет море — проблема безопасной прошивки станет во весь рост.
Надо уже сейчас думать о том чтобы стандартный бутлоадер поддерживал шифрование или по меньшей мере цифровую подпись.
Мне кажется мы выходим за рамки статьи, т.к. ничто не мешает и без этого модуля подсоединиться к ISP-интерфейсу любой атмеги.
Отключенный ISP-интерфейс помешает. Темболее что для этого надо будет разбирать сам девайс, расцарапывать лаковое покрытие и т.д.

Где-то я уже видел тут на хабре такое же применение блютуз-модуля для дистанционного обновления бегущей строки. Вот в таких случаях не помешает безопасное обновление прошивки с отключенным штатным интерфейсом программирования, чтобы усложнить нежелательное использование девайса посторонними в своих целях.
Спасибо! Идея заменить шнурок USB на Bluetooth c сохранением возможности программирования и Serial Monitor в IDE выглядит очень заманчиво.

Зачем нужна кнопка в последнем варианте? Дополните пожалуйста статью его схемой.
Схему добавил. Кнопка (вернее переключатель) отключает питание Blutooth-модуля и линию TX от Arduino, что практически равносильно полному отсоединению модуля. У меня один модуль переносной, а второй — стационарный, с переключателем.
Зачем писать такие банальные статьи? Простой беспроводной uart. Я такой делал год-полтора назад, чтобы дистанционно прошивать гексакоптер, а не тянуть шнурок.
Вы безусловно большой молодец. Кому-то очевидно, кому-то нет. Кто-то вообще не знал что есть такие модули.
Всегда найдется человек который из статьи не найдет для себя ничего нового. И что теперь? Не будем публиковать никакие посты?
ИМХО, на портале, где уровень подготовки читателей выше среднего, не должны появляться посты из разряда «помигать светодиодом».
Я имел ввиду не конкретно эти модули, а в принципе любой радиомодуль с интерфейсом UART
То-есть вы считаете что у всех читателей по всем тематикам ресурса должны быть подготовка выше среднего, а все что ниже в любой из кучи областей тут публиковать не стоит, а также вы являетесь подготовленным по всем хабам выше среднего? На данный момент статью в избранное добавили 72 человека, включая меня, вы можете сказать что все ваши статьи были столь-же полезны или всем что имеют меньше добавлений в избранное не место на ресурсе? Если вы знаете в электронике больше, то это не значит что статей для начинающих быть не должно, как по мне отвратительная позиция: «Если я знаю по какой-то теме больше, то статей проще не должно существовать».
Спасибо за толковую инструкцию — все «грабли» отражены.

Дополните, пожалуйста, блок про AT-команды упоминаниями «AT+NAME» и «AT+PSWD» — переименовать модуль во что-то более удобное и задать PIN — востребованные задачи.
Хорошо, добавлю под спойлер.
А еще можно COM по WIFI пробросить — Hi-Link HLK-RM04.
Спасибо, когда искал как можно пробросить СОМ по воздуху, не нашел этого модуля. Но что-то мне подсказывает что купить его будет сложнее и нужно будет два модуля или какой-то специальный драйвер, а в случае с BlueTooth хватает одного модуля, а с компьютера соединение проходит через стандартный встроенный модуль.
Одного будет достаточно. А купить — от 15 до 20 $. Ваше решение сложнее но дешевле.
Спасибо за инструкцию! У меня самостоятельно подключиться по блютуз так и не получилось. Надеюсь что с Вашей помощью всё получится.
Лежит у меня BT модуль, но все руки не доходят. Начитался что есть разные грабли.
Вот подскажите а почему нельзя использовать HC-06?
И вообще существует какой то метод однозначной идентификации BT модуля?
Прошивка HC-05, в отличие от HC-06, при установке соединения меняет сигнал на 32 выводе — это нужно чтобы хардварно сбросить программируемый Arduino и начать процесс заливки. Можно не перепрошивать, а нажимать кнопку RESET на плате каждый раз перед заливкой, но это утомляет.

Идентификацию по внешнему виду можно произвести, если не все ножки Bluetooth-модуля запаяны или есть под рукой мультиметр. У HC-05 к светодиоду, распаянному на самом модуле, идет проводник от ноги 31, а у НС-06 от ноги 24. Кстати, после перепрошивки светодиод на модуле перестанет работать, чтобы вернуть его к жизни, нужно перебросить его с ноги 24 на ногу 31.
  • Силовые цепи — коммутирование 220В. Одна ошибка в соединении и прощай USB-контроллер любимого ситемного блока.
  • Радиочастотные цепи — много наводок по питанию.

Только не говорите мне, что в подобных проектах Вы действительно используете Arduino. Пожалуйста.
Хорошо, я постараюсь не проболтаться, что первая фотка в статье — это 433МГц приемник сигнала с датчика температуры, который не работает при питании от компа из-за наводок по питанию, а второй модуль у меня коммутирует светодиодное табло с довольно мощным блоком питания, и соединенять его с компьютером как-то нет желания. И в обоих случаях прототипирование на беспаечной макетке — самый быстрый и дешевый способ.
Я имел ввиду более сложные устройства и более надежные компоненты.
Боюсь Вас разочаровать, но моя квалификация не позволяет мне собирать что-то более серьёзное, для меня это просто хобби.
«Не выходит каменный цветок»…

У меня Pro Mini и модуль JY-MCU HC-05 — ровно как у вас на первой картинке. Модуль настроен на скорость 57600, при открытии Serial monitor частое мерцание LED на BT-модуле сменяется редким, по экрану бегут отправляемые Ардуиной данные. Т.е. всё подключено верно.

Но вот при попытке прошить получаю ошибку

avrdude.exe: ser_open(): can't open device "\\.\COM4"

Скорость в boards.txt указана верная, те же 57600, провод к 32 ноге припаян аккуратно, конденсатор-резистор-LED спаяны правильно (светодиод загорается).

Что может быть не так, как думаете?
Строчку *.upload.disable_flushing не забыли добавить?
Не забыл.

Единственное подозрение — BT настроен с параметром «AT+UART=57600,1,0» (1 stop bit, no parity bit) а не «AT+UART=57600,0,0», как в вашей инструкции (это я уже посимвольно всё сверяю). Приду домой, поправлю, посмотрю, поможет ли.
стоп-биты отсутствовать не могут(иначе никак не понять где конец а где начало передачи следующего байта), выбор идет между 1-1.5-2 стоп-бита. «0» соответствует скорей всего одинарному стоп-биту и к проблеме врятли приводить будет.
Прочитал документацию на команду

AT+UART=<Param1>,<Param2>,<Param3>
Param1: baud rate (bits/s)
Param2: stop bit
0 — 1 bit
1 — 2 bits
Param3: parity bit
0 — None
1 — Odd
2 — Even


Т.е. у автора — 1 стоп-бит, у меня — два. Надо будет проверить, не в этом ли засада.
если компьютер выдаёт один бит, то модуль вполне может паниковать из-за ошибки «framing error» и не пущать данные дальше. А ведь информация об ошибке остается сугубо внутри модуля…
Проверил. Проблема была именно в стоп-битах.
Спасибо за статью. У меня как раз на даче метеостанция в которую каждый раз для обновления прошивки лазить не удобно.
C Pro Mini срослось, скетч грузится. А вот с UNO -нифига, т.к. скорость загрузки для нее 115200, если ставишь 57600, то загрузка не идет.
Надо попробовать установить AT+UART=115200,0,0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории