Протокол связи для радио модулей HC-12

CraCk
Лейтенант
Сообщения: 632
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 10

Протокол связи для радио модулей HC-12

#21

Сообщение CraCk » 06.03.2017{, 20:58}

Я их и взял. Но там только трансмитер переделан. Другие те же. Попробовал ардуинки проводами соединить. Но проблема осталась, трансмиттер перестает передавать после второго ресета ресивера. Значит модули не причем.

golowa70
Сержант
Сообщения: 195
Зарегистрирован: 20.02.2016{, 00:05}
Репутация: 6

Протокол связи для радио модулей HC-12

#22

Сообщение golowa70 » 07.03.2017{, 00:41}

CraCk писал(а): Но проблема осталась, трансмиттер перестает передавать после второго ресета ресивера.
Приеду домой проверю.
Попробуйте вставить блок приемника после блока передатчика ,можно без настроек, просто чтобы цикл удлинить.

Добавлено (07.03.2017, 00:41)
---------------------------------------------
Очень странный глюк, ресет на приемнике вешает наглухо передатчик. Похоже что-то с таймингами не айс, будем разбираться.
Но если добавить блок приёмника, всё работает.

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

Протокол связи для радио модулей HC-12

#23

Сообщение Boroda » 07.03.2017{, 00:50}

golowa70 писал(а):Очень странный глюк, ресет на приемнике вешает наглухо передатчик
CraCk писал(а):Во время работы если ресетнуть приемник второй раз. После первого ресета соединение восстанавливается. Тогда невозможно восстановить связь.
Вот поэтому я и отказался от виснущих nRF24L01, RFM73, постоянно выгорающих nRF24L01+PA+LNA, и всяких подобных китайских железяк на STM с кривыми прошивками.

golowa70
Сержант
Сообщения: 195
Зарегистрирован: 20.02.2016{, 00:05}
Репутация: 6

Протокол связи для радио модулей HC-12

#24

Сообщение golowa70 » 07.03.2017{, 01:02}

Boroda писал(а):Вот поэтому я и отказался от виснущих nRF24L01, RFM73, постоянно выгорающих nRF24L01+PA+LNA, и всяких подобных китайских железяк на STM с кривыми прошивками
Здесь проблема скорее с библиотекой, потому как при проводном соединении такой же глюк. Нужно разбираться, описание только на английском, поэтому могу что-то недопонять)))
А вообще как готовое решение PJON выглядит заманчиво.

CraCk
Лейтенант
Сообщения: 632
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 10

Протокол связи для радио модулей HC-12

#25

Сообщение CraCk » 08.03.2017{, 00:56}

golowa70 писал(а):Попробуйте вставить блок приемника после блока передатчика ,можно без настроек, просто чтобы цикл удлинить.
Проверил так работает хорошо. Ресетил приемник две минуты. Всегда связь восстанавливалась.
golowa70 писал(а):Похоже что-то с таймингами не айс, будем разбираться.
Может сама библиотека PJON рассчитана на то что в коде программы должен присуствовать приемник и передатчик. Все таки это имитация полноценной двусторонней связи. 
Boroda писал(а):и всяких подобных китайских железяк на STM с кривыми прошивками
Пока что проблем с модулем не замечал при тестирование PJON. Как работает с проводами так и по радио. За 3$ хорошего по дальности ничего не нашел. А заказывать на слепо, без каких нибудь обзоров, уже устал. целый пакет насобирал nRF, esp, fs1000a, радиобрелков половина из них убитые. Наверное и я рукожопый, и так их жгу. 
И вообще брал модули для Модбаса. Подключил и пользуйся. Но как оказалось не все так просто.

golowa70
Сержант
Сообщения: 195
Зарегистрирован: 20.02.2016{, 00:05}
Репутация: 6

Протокол связи для радио модулей HC-12

#26

Сообщение golowa70 » 08.03.2017{, 05:14}

CraCk писал(а):Может сама библиотека PJON рассчитана на то что в коде программы должен присуствовать приемник и передатчик. Все таки это имитация полноценной двусторонней связи
Как по мне, то здесь имеет место быть очень хитрый глюк, не поддающийся логическому обьяснению. Передача данных прекращается исключительно после ресета на стороне приемника, не потеря связи, не ошибка в данных, а именно ресет. Причём если ресетнуть при отключеном TX на приемнике, то передатчик продолжает работать нормально, только без подтверждения.

Добавлено (08.03.2017, 05:14)
---------------------------------------------
В примерах и в описании не упоминается, что нужно обязательно использовать в одном цикле и функцию приёма и функцию передачи.

gioblu
Рядовой
Сообщения: 3
Зарегистрирован: 08.03.2017{, 11:23}
Репутация: 0
Контактная информация:

Протокол связи для радио модулей HC-12

#27

Сообщение gioblu » 08.03.2017{, 12:27}

Привет, ребята, меня зовут Джованни, и я создатель PJON. Я прочитал ваше обсуждение через Google Translate, и благодаря вашим тестам действительно обнаружил неприятный баг в Arduino Toolchain. Я очень рад, что вы пользуетесь PJON, и надеюсь, что он поможет вам в ваших
экспериментах, так как, с моей стороны, я очень уважаю Российскую инженерную школу и ваш подход к решению проблем!

TX:

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

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.println("I will now freeze you!");
};
RX:

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

void setup() {
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW); // Initialize LED 13 to be off
  Serial.begin(9600);
};

void loop() {
  digitalWrite(13, HIGH); // Initialize LED 13 to be off
  delay(10);
  digitalWrite(13, LOW); // Initialize LED 13 to be off
  delay(30);
};
В общем, не используя библиотеку PJON, я получил те же результаты, что описываете вы: в этом коде ресивер получает функцию begin() и затем циклично мигает, если же я перезагружаю:
- Часто ресивер зависает с включенным индикатором (LED ON) - кажется, это происходит перед установкой (setup)
- Часто ресивер зависает с выключенным индикатором (LED OFF) - а это, кажется, происходит сразу после установки (setup)
- Я заметил, что для того, чтобы ресивер снова замигал, мне приходится одновременно перезагрузить и ресивер, и трансмиттер
- Осциллограф показывает, что трансмиттер передает данные - поэтому, судя по всему, он не зависает
- Тот же баг происходит и с использованием USB порта, подключенного к ресиверу и трансмиттеру, и без (то есть с другим источником питания)

Перегрузка буфера Serial? (Serial buffer overflow?) Или что-то связанное с загрузчиком (boot loader) или с самим процессом передачи входящих данных во время загрузки после перезагрузки (serial incoming Data in the process of boot after reset)? Я уже сообщил об этой проблеме Arduino: https://github.com/arduino/Arduino/issues/6050

После тестирования, я пришел к выводу, что Arduino Duemilanove работает нормально, не зависает, а у Arduino Mega как раз возникают эти проблемы. Скоро планирую протестировать Arduino Leonardo и Uno.
Еще раз спасибо, что обнаружили этот баг, и помогли разобраться в этой проблеме!
Последний раз редактировалось gioblu 08.03.2017{, 12:29}, всего редактировалось 1 раз.

golowa70
Сержант
Сообщения: 195
Зарегистрирован: 20.02.2016{, 00:05}
Репутация: 6

Протокол связи для радио модулей HC-12

#28

Сообщение golowa70 » 10.03.2017{, 16:33}

gioblu писал(а):Привет, ребята, меня зовут Джованни, и я создатель PJON. Я прочитал ваше обсуждение через Google Translate, и благодаря вашим тестам действительно обнаружил неприятный баг в Arduino Toolchain
Ооо, а вот и автор)))
gioblu писал(а):В общем, не используя библиотеку PJON, я получил те же результаты, что описываете вы: в этом коде ресивер получает функцию begin() и затем циклично мигает, если же я перезагружаю:
- Часто ресивер зависает с включенным индикатором (LED ON) - кажется, это происходит перед установкой (setup)
- Часто ресивер зависает с выключенным индикатором (LED OFF) - а это, кажется, происходит сразу после установки (setup)
- Я заметил, что для того, чтобы ресивер снова замигал, мне приходится одновременно перезагрузить и ресивер, и трансмиттер
А вот слона то я и не заметил........

Добавлено (08.03.2017, 12:57)
---------------------------------------------
Нужно протестировать на более старой версии Arduino IDE.

Добавлено (10.03.2017, 16:33)
---------------------------------------------
gioblu писал(а):В общем, не используя библиотеку PJON, я получил те же результаты, что описываете вы:
Я проверил на двух UNO, никакого зависания не было,после перезагрузки всё продолжает работать.
gioblu писал(а):Осциллограф показывает, что трансмиттер передает данные - поэтому, судя по всему, он не зависает
Странно, я подключил логический анализатор saleae logic к RX TX , и вижу что после перезагрузки приемника именно передатчик перестает работать.
Последний раз редактировалось golowa70 10.03.2017{, 17:17}, всего редактировалось 1 раз.

golowa70
Сержант
Сообщения: 195
Зарегистрирован: 20.02.2016{, 00:05}
Репутация: 6

Протокол связи для радио модулей HC-12

#29

Сообщение golowa70 » 10.03.2017{, 17:19}

Пакет данных на скрине. После перезагрузки приемника там пусто
Вложения
2971043.jpg
Последний раз редактировалось golowa70 10.03.2017{, 17:21}, всего редактировалось 1 раз.

CraCk
Лейтенант
Сообщения: 632
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 10

Протокол связи для радио модулей HC-12

#30

Сообщение CraCk » 11.03.2017{, 00:12}

Цитата golowa70 () 200?'200px':''+(this.scrollHeight+5)+'px');">Нужно протестировать на более старой версии Arduino IDE.Не компилируется.
Вложения
0212136.jpg

golowa70
Сержант
Сообщения: 195
Зарегистрирован: 20.02.2016{, 00:05}
Репутация: 6

Протокол связи для радио модулей HC-12

#31

Сообщение golowa70 » 11.03.2017{, 19:31}

CraCk писал(а):Не компилируется
Не, проблема не в IDE, проблема в библиотеке.
Кстати, как с стабильностью? Есть ещё баги помимо известного? Сколько устройств вы используете?
Интересно проверить как будет работать сеть из хотя-бы трёх - четырёх устройств.

gioblu
Рядовой
Сообщения: 3
Зарегистрирован: 08.03.2017{, 11:23}
Репутация: 0
Контактная информация:

Протокол связи для радио модулей HC-12

#32

Сообщение gioblu » 12.03.2017{, 03:38}

Ciao golowa, thank you for reporting the problem of inclusion of Ethernet.h. 
My suggestion is in any case to update, to the new IDE version. To avoid this sort of problems, I am discussing with the creator of the EthernetTCP strategy, Fred Larsen, if to avoid the inclusion and leave to the user to do it before PJON.h 
This could be a fix included in the next release. 

Here you can find a link to the compatibility table:
https://github.com/gioblu/PJON/wiki/Interfacing

To avoid the error you get, look at the configuration page:
https://github.com/gioblu....tion.md

As you can see defining PJON_INCLUDE_TS before PJON.h let you include only the ThroughSerial strategy and avoid this compilation error.
Let me know how goes!

CraCk
Лейтенант
Сообщения: 632
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 10

Протокол связи для радио модулей HC-12

#33

Сообщение CraCk » 12.03.2017{, 19:03}

Цитата golowa70 () 200?'200px':''+(this.scrollHeight+5)+'px');">Есть ещё баги помимо известного? Еще заметил проблему. Если на один из входов трансмиттера поставить счетчик, и не ограничить счет счетчика  до 255. То при достижение значение 255 происходит сброс счета до 0 и начинает счет с начала.
Цитата golowa70 () 200?'200px':''+(this.scrollHeight+5)+'px');">Сколько устройств вы используете? 1. Мега моргает пинами 13 на Нано и ПроМини.
2. Нано отправляет значение анал. входа и считает секунды на Мегу.
3. ПроМини считает секунды на Мегу.
При работе с тремя устройствами начались проблемы с приемом Мегой от двух других устройств. Может принимать только от одного устройства, но отправляет моргание на два устройства. Может я неправильно реализовал прием данных на Меге? Получается что реализацию отправки сделать легко. Создаем несколько блоков трансмитер и на каждом задаем адрес приемника. А от с приемом проблема, имеем только четыре выхода и адрес отправителя на ресивере. Может создать блок как у Слимпера для Nrf24? Чтобы можно было выставлять адрес на блоке от которого мы хотим принимать данные.
Вложения
HC-12_test.rar
(554.55 КБ) 65 скачиваний
2404395.jpg
Последний раз редактировалось CraCk 12.03.2017{, 19:13}, всего редактировалось 1 раз.

golowa70
Сержант
Сообщения: 195
Зарегистрирован: 20.02.2016{, 00:05}
Репутация: 6

Протокол связи для радио модулей HC-12

#34

Сообщение golowa70 » 12.03.2017{, 21:51}

CraCk писал(а):Еще заметил проблему. Если на один из входов трансмиттера поставить счетчик, и не ограничить счет счетчика  до 255. То при достижение значение 255 происходит сброс счета до 0 и начинает счет с начала.
Так и должно быть, байт имеет размер от 0 до 255.
CraCk писал(а):Получается что реализацию отправки сделать легко. Создаем несколько блоков трансмитер и на каждом задаем адрес приемника.
Лучше использовать один блок передачи и задавать ID приёмника перед передачей данных..
CraCk писал(а):А от с приемом проблема, имеем только четыре выхода и адрес отправителя на ресивере.
Можно для приемника создать переменные для каждого передающего устройства и мониторинг адрес отправителя. В зависимости от кого пришли данные в такую переменную и пишем.
CraCk писал(а):Может создать блок как у Слимпера для Nrf24? Чтобы можно было выставлять адрес на блоке от которого мы хотим принимать данные.
Попробуем, у меня пока не на чем тестировать.

golowa70
Сержант
Сообщения: 195
Зарегистрирован: 20.02.2016{, 00:05}
Репутация: 6

Протокол связи для радио модулей HC-12

#35

Сообщение golowa70 » 12.03.2017{, 22:45}

Или так
Вложения
mega_reciver_PJ.rar
(189.53 КБ) 64 скачивания

CraCk
Лейтенант
Сообщения: 632
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 10

Протокол связи для радио модулей HC-12

#36

Сообщение CraCk » 12.03.2017{, 22:50}

golowa70 писал(а):Так и должно быть, байт имеет размер от 0 до 255
Но почему счетчик сбрасывает? Он ни как не привязан к блоку трансмитера.
golowa70 писал(а):Лучше использовать один блок передачи и задавать ID приёмника перед передачей данных..
Какие могут быть проблемы? Если это вредно, тогда может нет смысла доделывать приемник. 
golowa70 писал(а):Можно для приемника создать переменные для каждого передающего устройства и мониторинг адрес отправителя.
Тогда придется много логики строить в FBD. Если будет много модулей значит будет и много памяти занимать. А так в С коде все таки экономичней получится.

golowa70
Сержант
Сообщения: 195
Зарегистрирован: 20.02.2016{, 00:05}
Репутация: 6

Протокол связи для радио модулей HC-12

#37

Сообщение golowa70 » 12.03.2017{, 23:09}

CraCk писал(а):Какие могут быть проблемы? Если это вредно, тогда может нет смысла доделывать приемник.
 Так вы удлиняете цикл программы без особой нужды.
CraCk писал(а):Тогда придется много логики строить в FBD
не много
CraCk писал(а):Если будет много модулей значит будет и много памяти занимать. А так в С коде все таки экономичней получится.
Может и  экономичнее ,но не думаю что существенно.
Через пару недель модули придут , тогда потестирую .
Приемник модифицирую
Последний раз редактировалось golowa70 12.03.2017{, 23:42}, всего редактировалось 1 раз.

CraCk
Лейтенант
Сообщения: 632
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 10

Протокол связи для радио модулей HC-12

#38

Сообщение CraCk » 13.03.2017{, 00:20}

golowa70 писал(а):ли такПрикрепления: mega_reciver_PJ.rar(190Kb)
Залил. Вроде работает. Начал ресетить нано и про мини. Соединение восстанавливается. Потом реши ресетнуть Мегу на 2 сек. тоже восстановилось соединение. Потом Мегу ресетнул на 10 сек. потерял прием от Нано хотя передача на Нано продолжалась. Помог только ресет Наны. Иногда при ресете Меги, пропадает и про мини а Нано продолжает работать.

Добавлено (13.03.2017, 00:20)
---------------------------------------------
Что то явно нелады с приемником

golowa70
Сержант
Сообщения: 195
Зарегистрирован: 20.02.2016{, 00:05}
Репутация: 6

Протокол связи для радио модулей HC-12

#39

Сообщение golowa70 » 13.03.2017{, 00:31}

CraCk писал(а):Потом Мегу ресетнул на 10 сек. потерял прием от Нано
Сделайте ресет на меге при отключеном RX на Нано и Промини, и посмотрите, будет ли восстанавливаться приём на меге
Последний раз редактировалось golowa70 13.03.2017{, 00:32}, всего редактировалось 1 раз.

CraCk
Лейтенант
Сообщения: 632
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 10

Протокол связи для радио модулей HC-12

#40

Сообщение CraCk » 13.03.2017{, 00:46}

Еще заметил если систему оставить в подвисшом состояние. То за некоторое время 5мин. прием на Меге восстанавливаеться.
golowa70 писал(а):Сделайте ресет на меге при отключеном RX на Нано и Промини, и посмотрите, будет ли восстанавливаться приём на меге
Немного лучше. Связь восстанавливается, но обновление данных из двух модулей не обновляется синхронно. Происходит задержка как бы подтормажывает.

Ответить

Вернуться в «Radio 433 MHz»