Передача данных по 433.

fsdb
Offline
Зарегистрирован: 24.10.2015

Добрый день. в интернете очень много примеров как передать данные по 433, но ниодного примера как передать большие данные. больше чем 35 байт за раз. можно ли как то увеличить объем передачи данных

например мне нужно передать строку по радиоканалу такую:

4400 4400 500 1700 450 1750 500 1700 500 600 500 600 500 650 450 650 450 600 500 1700 550 1650 550 1700 500 600 500 600 500 600 500 600 500 650 450 1700 500 1700 500 1750 450 600 500 650 450 700 450 600 450 650 500 600 500 600 500 600 550 1700 450 1700 500 1750 450 1750 450 1700

 

куда и в каком направлении двигаться. что делать?

 

Araris
Offline
Зарегистрирован: 09.11.2012

Двигайтесь в направлении разбивки длинной строки на части и передачи по частям.

Что-то типа 

маркер начала передачи - часть1 - часть2 ... - частьпоследняя - маркер окончания передачи.

Туда же можно прицепить длину строки, количество частей, контрольную сумму и прочие навороты для надежности и достоверности.

IMHO, 433 мГц - не самый лучший канал для обмена сколько-нибудь длинными данными.

ImaSoft
ImaSoft аватар
Offline
Зарегистрирован: 22.09.2015

Попробуйте использовать библиотеку EasyTransferVirtualWire

Вот пример на основе датчика DHL11-> 

https://www.youtube.com/watch?v=gPGOPkj9sSQ&feature=youtu.be

Я лично этот пакет еще не использовал, но как понял с мануала, там создается структура и в ней можно задать какое количество переменных вы хотите передать (как насчет ограничения не в курсе), думаю для вашего случая пойдет...

fsdb
Offline
Зарегистрирован: 24.10.2015

EasyTransferVirtualWire

Там написано что структура не может превышать 26 байт

ImaSoft
ImaSoft аватар
Offline
Зарегистрирован: 22.09.2015

fsdb пишет:

EasyTransferVirtualWire

Там написано что структура не может превышать 26 байт

Пардон не увидел, тогда действительно надо разбивать на разные пакеты с разными ID и так передавать...

fsdb
Offline
Зарегистрирован: 24.10.2015

это очень печально

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Чего ж тут печального? Тем более "очень печального".

Совершенно стандартная практика.

Возможно, Вы будете удивлены, но вся информация в компьютере хранится в секторах дисков с обычным размером 512 байт. И больше в один сектор не впихнуть никаким способом. Тем не менее, ничто не мешает спокойно работать с многомегабайтными файлами даже при том, что сектора, относящиеся к файлу, могут располагаться в совершенно различных частях диска. А в некотороых случаях даже на разных дисках.

fsdb
Offline
Зарегистрирован: 24.10.2015

это все понятно. так много библиотек и нет реализации в передачи данных в ногу со временем

Araris
Offline
Зарегистрирован: 09.11.2012

Это 433 мГц с модуляцией ASK/ООК - в ногу со временем ??

Не делайте мне смешно.

axill
Offline
Зарегистрирован: 05.09.2011

В ногу со временем берите модуль esp8266, это wifi

Инициализируйт tcp/ip соединение и шлите столько данных сколько заблагорассудится. Можно два модуля связать через домашнюю точку доступа или напрямую

стоит модуль кстати сопоставимо с вашим

fsdb
Offline
Зарегистрирован: 24.10.2015

esp8266 вроде как не стабилен

ImaSoft
ImaSoft аватар
Offline
Зарегистрирован: 22.09.2015

fsdb пишет:

esp8266 вроде как не стабилен

Недавно пару дней назад разберался с ПО модулей SI4432, заказал себе две штуки, так вот там буфер может быть 255 байт, но реально заданно в библиотеке 50байт, думаю ввм как раз подойдет, это модули приемо-передатчика(модем433мГц) бьют вроде очень далеко, библиотека RF22(как-то так, по памяти пишу с мобилы) ищите примеры на ютубе у дмитрия осипова.

fsdb
Offline
Зарегистрирован: 24.10.2015

ImaSoft - ты супер!)

мне такой способ подходит. и число байт нормальное по длине

и я умещаюсь в числа от 0 до 255 потому что все мои числа кратны всегда 50 и максимальное число одним байтом я могу передать 12750. т.е. сначала разделить на 50 а когда придет умножить на 50

4400 4400 500 1700 450 1750 500 1700 500 600 500 600 500 650 450 650 450 600 500 1700 550 1650 550 1700 500 600 500 600 500 600 500 600 500 650 450 1700 500 1700 500 1750 450 600 500 650 450 700 450 600 450 650 500 600 500 600 500 600 550 1700 450 1700 500 1750 450 1750 450 1700