HC-12 - протокол общения

Sobbaka6
Offline
Зарегистрирован: 07.09.2019


Недавно начал знакомиться с модулем HC-12, имеется некоторый код, позволяющий по условному ID модуля
выполнять зажигание светодиода. Условно модуль с ID == 1111 отправляет в монитор 3333 и модуль с ID == 3333
зажигает светодиод Собственно в чем проблема: При отправке модули спамят в канал отправленный месендж
по несколько раз, иногда сообщения приходят частями (Вместо формата 2222, приходит данное значение в две
строки или же "Обрубки") Вопрос: Существует ли какая-то документация или пример протокола общения между
модулями, избегающий или фиксящий "шум" на канале общения ?

 

Sobbaka6
Offline
Зарегистрирован: 07.09.2019
#include <SoftwareSerial.h>

SoftwareSerial mySerial( 10, 11 ); / /  RX, TX

int ID = 1111;
int recieveID = 0;
bool onRT = false;

String command_line;

void setup() {
 Serial.begin( 9600);
  pinMode( 3, OUTPUT);
 mySerial.begin( 9600);
}

void loop() {// run over and over
  if(Serial.available() > > 0){
 String input = Serial.readString();
 mySerial.println(input); 
  }
 
  if(mySerial.available() > > 1){
 String input = mySerial.readString();
    if (input.toInt() != recieveID) {
 onRT = true;
 recieveID = input.toInt();
      }

    if (recieveID == ID) {
      digitalWrite( 3,HIGH);
      }
    else {
      if (onRT) {
 mySerial.println(recieveID);
        digitalWrite( 3 ,LOW);
 onRT = false;
        }
      }
 Serial.println(input); 
  }
  delay( 20);
}
///

 

b707
Offline
Зарегистрирован: 26.05.2017

нужен протокол с заголовком и контрольной суммой, можно написать самому или взять готовый

вот это посмотрите

http://forum.amperka.ru/threads/%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0-wirelessuart-%D0%B4%D0%BB%D1%8F-434mhz-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5%D0%B9-hc-11-hc-12-%D0%B8%D0%BB%D0%B8-%D0%B8%D0%BC-%D0%BF%D0%BE%D0%B4%D0%BE%D0%B1%D0%BD%D1%8B%D1%85.9255/