Доброго времени суток.
Перерыл весь форум и не нашел примера, как работать с такими радиомодулями.
Если у кого-то есть инфа или простой пример, поделитесь пожалуйста.
Работа с радиомодулями HM-R868S и HM-Т868S
Сообщений 1 страница 7 из 7
Поделиться12016-08-25 16:15:55
Поделиться22016-08-25 22:28:59
А что с ним не понятно, загоняешь данные, на другом конце HM-R433 получаешь..
Поделиться32016-08-26 04:05:37
Для контроля целостности полученного, используем проверку CRC.
Отредактировано sasha_1973 (2016-08-26 04:06:05)
Поделиться42016-08-26 09:06:04
Вот, наконец-то что-то получилось:
Передатчик:
$regfile = "ATtiny13a.dat"
$crystal = 9600000
$hwstack = 32
$swstack = 8
$framesize = 16
Dim A As Byte
Dim B As Byte
Config Portb.4 = Output
Open "comb.4:600,8,n,1" For Output As #1
A = 100
B = 20
Do
Printbin #1 , 65
Waitms A
Printbin #1 , 65
Waitms A
Printbin #1 , 70
Waitms B
Printbin #1 , 70
Waitms B
Printbin #1 , 50
Waitms B
Printbin #1 , 38
Waitms B
Printbin #1 , 90
Waitms B
Loop
Приемник:
$regfile = "ATtiny13a.dat"
$crystal = 9600000
$hwstack = 32
$swstack = 8
$framesize = 16
Config Portb.0 = Output 'светодиод
Config Portb.1 = Output ' enable
Portb.1 = 0
Dim A As Byte
Dim B As Byte
Dim N As Byte
Portb.0 = 0
Wait 1
Portb.0 = 1
Wait 1
Portb.0 = 0
Open "comb.4:600,8,n,1" For Output As #1
Open "comb.3:600,8,n,1" For Input As #2
Portb.1 = 1
Do
Inputbin #2 , A
Printbin #1 , A
Loop
В терминале получаю символы AAFF2&Z, в принципе приходит без ошибок с расстояния до 10м, дальше не проверял.
Как сделать проверку контрольной суммы? если можно то примером кода...
Поделиться52016-08-26 14:48:08
Формируешь пакет нужной длины + контрольная сумма сзади. Типа: [ПАКЕТ + КОНТРОЛЬКА] и отправляешь в передатчик. На приёмной стороне разворачиваешь пакет и проверяешь контрольную сумму.
Можно сделать и посложнее... [ДЛИНА ПАКЕТА + CRC + САМ ПАКЕТ ДАННЫХ] так получается универсальнее. Только фантазии прибавить 
Поделиться62016-08-26 15:06:04
Передатчик
Dim A(10) As Byte 'Массив переменных, десятый байт - CRC (контрольная сумма) предыдущих девяти байт
'+------------------------ в этой переменной будет CRC следующих (A(1);A(2);A(3);A(4);A(5);A(6);A(7);A(8);A(9)
'| +------------- с какой переменной начинаем счёт
'| | +------ сколько переменных считаем
'| | |
A(10) = Crc8(a(1) , 9)
Приёмник
Dim B(10) As Byte 'Массив переменных, десятый байт - CRC (контрольная сумма) предыдущих девяти байт
If B(10) = Crc8(b(1) , 9) Then
'Если CRC соответствует, делаем то, что надо
Else
'Иначе обрабатываем ошибку приёма данных
End If
Поделиться72016-09-06 00:55:58
А да это для передачи непосредственно сигнала а не данных, модем будет программный. Рекомендую протокол посложнее придумать что бы исключить перехват. Я использую динамическое шифрование (меняется каждый пакет ключ, а ключ вычисляется по определённому алгоритму из передаваемых байтов), гарантия не возможности клонирования, период повтора 16бит, сессия меняется каждую нажатие кнопки для пультов или каждую передачу, код передачи каждый пакет 8бит, можно вычислить прохождение пакетов.
Но перед этим рекомендую проверить приёмники, я когда купил готовые был шокирован их работе, полоса широченная, ФНЧ ломовой что на тактовой частоте 4КГц не фига работать уже нельзя. ФНЧ я подстроил под полосу, по РЧ сузил до 20КГц (полосовик на 20КГц 10.7МГц) стало на порядки лучше, передатчики не когда готовые для частот до 900МГц не юзал, брелок работает на 2-4 км (порядка 100мВт выход антенна телескопическая 10см) 433.920 +/- 1КГц. После замены фильтра подстройка гетеродина необходима как и у фильтров разброс так и гетеродин не в частоте и того можно на 10-30КГц уйти от канала.
Приёмник проверяй а то можешь долго гадать почему не проходит. У меня лично если усиление раскрутить на всю (УВЧ регулируемый) то уже меньше чем с 5-7м не принимает (ДД приёмника слабоват), но в городе крутить усиление на всю не приходится один фиг один шум, да и антенна на крыше спасает ситуацию увеличивая расстояние до 7-10м.
Хотя у меня передатчики не такие, меньше 100мВт, норм антенны, а последний пульт трансивер на 1Вт вообще затыкает приёмник как не крути, использую еще локальный трансивер.
Это всё относится к ASK конечно FSK таким не страдает, но там и энергоэффективность хуже.
Отредактировано RadioHAM-433 (2016-09-06 01:07:16)