Главная » Статьи » Как подключить

RF модули HC-12 с UART интерфейсом

 Прикупил на пробу парочку новых беспроводных модулей HC-12. Эти модули работают на частоте 433 МГц и, если верить описанию, работают на дистанции до 1,8 км. при максимальной мощности передатчика 100 мВт. Но самый смак в том, что они подключаются к устройству по стандартному протоколу UART, также присутствует поддержка AT-команд, для кое-каких настроек.  И все это по 4$ за один модуль.

 Модуль построен на трансивере SI4463  и микроконтроллере STM8S003F3SI4463 это универсальная микросхема трансивер от Silicon Labs, способная работать на частотах 119-1050 МГц, и скоростью передачи данных до 1 Мбит/с. Интерфейс для подключения используется SPI. Но микроконтроллер берет на себя всю работу с трансивером, и нам не нужно заботится о тонкостях работы с ним. Помимо стандартной обвязки трансивера на модуле имеется понижающий стабилизатор, поэтому модуль можно запитывать от 5 вольтового источника питания. Ниже кратенько приведу характеристики модуля:

  • Диапазон рабочих частот: 433,4 – 473,0 МГц
  • Выбор частоты с шагом 400 кГц
  • 8 уровней мощности передатчика, максимальная мощность 100 мВт
  • Дальность связи до 1,8 км
  • Напряжение питания в диапазоне 3,2 - 5,5 В
  • Размеры модуля 28х14 мм

Вид со стороны элементов

 

С обратной ничего нет, только маркировка

 

 

 Сложностей в работе с модулями никаких нет, подключай и передавай. По умолчанию они работают на частоте 433,4 МГц (канал 001), мощность передачи выставлена 100мВт,  скорость порта 9600 бод. Все эти параметры можно изменить с помощью специальных АТ-команд. Для того чтобы модуль перевести в режим настроек необходимо ножку SET замкнуть на землю. Список поддерживаемых команд ниже:

 

 АТ-команда  Описание команды
 АТ   Тестовый запрос. Модуль должен ответить "ОК"
 AT+Bxxxx   Установка скорости порта. Доступные значения 1200, 2400, 4800, 9600, 19200, 38400, 57600 и 115200 бод. По умолчанию стоит 9600 бод.
 AT+Cxxxx   Установка канала связи от 001 до 100. Изменение частоты работы происходит с шагом 400 кГц. По умолчанию модуль работает на канале 001, что соответствует частоте 433,4 МГц.
 AT+FUx

 Установка режима работы (FU1, FU2, FU3, FU4).

 FU1 - режим сохранения энергии, потребляемый ток 3,6 мА.

 FU2 - экстремальный режим сохранения энергии, потребляемый ток 80 мкА.

 FU3 - режим полной скорости, потребляемый ток 16 мА. (режим стоит по умолчанию)

 FU4 - режим максимальной дальности, потребляемый ток 16 мА. скорость порта понижается до 1200 бод.

 AT+Px   Установка мощности передачи данных (от 1 до 8). По умолчанию стоит значение 8, что соответствует максимальному значению мощности (100 мВт)
 AT+RB   Запрос установленной скорости порта UART (baud rate)
 AT+RC   Запрос установленного канала связи (проще говоря, узнаем частоту работы трансивера)
 AT+RF   Запрос установленного режима работы
 AT+RP   Запрос установленной мощности передачи
 AT+RX   Эта команда объединяет 4 предыдущие и позволяет узнать все установленные параметры
 AT+V   Запрос версии прошивки
 AT+SLEEP   Перевод модуля в спящий режим, в котором потребление составляет около 22 мкА.  Вывод из спящего режима происходит автоматически при поступлении любых данных.
 AT+DEFAULT   Сброс всех настроек по умолчанию

 

Пример запросов установленных параметров

 

 Самым интересным для меня было проверить максимально возможное расстояние, на котором модуль сможет передавать/принимать данные. Поэтому настроил на обоих модулях режим максимальной дальности FU4, остальные настройки оставил по умолчанию (мощность 100 мВт, частота связи 433,4 МГц).  Первый модуль использовал как репитер, замкнув ножки Tx и Rx, запитал от Li-Ion аккума и закрепил его на крыше. Второй модуль подсоединил к минитерминалу, взял с собой GPS трекер, сел на велосипед и поехал в сторону где меньше всего построек на пути сигнала.  По пути отправлял минитерминалом какое-нибудь сообщение, до тех пор пока сообщения не перестали возвращаться. Добавлю, что дело происходило за пределами города, поэтому помехи и сторонние сигналы сведены к минимуму.

Получившееся расстояние уверенного приема (кликабельно)

 По итогу могу сказать что в режиме FU4 модуль уверенно бьет на пересечёнке 1,5 км (прямая видимость между модулями пропала через 500 метров), на скриншоте видно что сигнал шел через большой лесной массив. Все это время связь была стабильной. И заглох он только тогда, когда я свернул на трассу вдоль которой идет лесополоса, которая и заглушила весь сигнал. Уверен, что в прямой видимости модуль отработает заявленные 1,8 км. И это на антенну что шла в комплекте, думаю если использовать выносную направленную (для этого как раз есть специальный разъем на модуле) можно выжать из него гораздо большую дистанцию.

 Модуль мне понравился: заявленные характеристики держит, потребление не большое, миниатюрные размеры,  простота работы и самое главное невысокая цена.

 

Ссылка на модуль

Документация на модуль HC-12

 

Категория: Как подключить | Добавлено: 22.08.2016
Просмотров: 32407 | Комментарии: 11 | Теги: радиопередача, uart, Miniterminal | Рейтинг: 5.0/11
Всего комментариев: 11
0  
11 exersizze   (07.05.2017 09:49) [Материал]
Каримов, у меня он автоматически вставлялся поэтому не пробовал без него. Отправка происходит по CR

10 Каримов   (05.05.2017 04:24) [Материал]
День добрый! Подскажите, плиз, в конце команды надо добавлять "конец строки"?

0  
9 RD3AVJ   (24.10.2016 13:35) [Материал]
не, не забыл))). Регулярно восстанавливаю радиоаппаратуру после кривых рук наших радиолюбителей)))

0  
8 exersizze   (21.10.2016 00:03) [Материал]
Один передатчик и несколько приемников? Да, с задачей справятся. В такого рода задачу я бы еще добавил подтверждение получения команды
приемником, чтобы на стороне мастера было видно что сигнал прошел.
Серёг, как паяльник держать надеюсь не забыл? wink

0  
7 RD3AVJ   (20.10.2016 12:51) [Материал]
У меня задача сделать кнопки на постах в отк, по типу пейджинга. По предъявлению продукции мастер давит кнопку, а у моих подчиненных на приемнике загорается номер поста (от 1 до 9) на светодиодном индикаторе или на светодиоде от 1 до 9ти. Я правильно понимаю, что мега 8я в связке с этими модулями сможет выполнить эту задачу?

+1  
6 exersizze   (11.10.2016 21:21) [Материал]
Данные отправляет автоматом по команде перевода каретки. По буферу, верно - 64 байта по описанию. Не проверял как устроен, но думаю по принципу кольцевого буфера - сколько не загружай, отправит последние 64 байта. Скоро приедут новые модули, проверю.

5 top   (11.10.2016 21:04) [Материал]
А что собственно служит командой к отправке?) Модуль после получения данных по УАРТ делает выдержку и если новых данных не поступило - излучает в эфир? Или же передача происходит по символу CR возврата каретки?
Как у него с непрерывным потоком данных? Например если через терминал отправить файл размером несколько килобайт, протянет их по воздуху без потерь? не захлебнется? (если учесть что в эфире ошибок не возникло)
Так же не нашел информации по размеру буфера микроконтроллера модуля. Буфер трансивера известен - 64 байта.

4 amida   (26.08.2016 19:27) [Материал]
Cпасибо

0  
3 exersizze   (24.08.2016 00:58) [Материал]
Да, запросто. Если у всех модулей стоят одинаковые настройки они будут слышать друг друга. Если нужно будет развернуть более сложную сеть, тогда можно раскидать модули по сетке частот.

0  
2 exersizze   (22.08.2016 22:14) [Материал]
Пожалуйста. Не так часто как хотелось бы, но стараюсь)

+1   Спам
1 Scorpushka   (22.08.2016 20:21) [Материал]
спасибо, что радуешь нас новыми статьями!

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]






авторизация