Как отправить строку с помощью LoRa в центральном режиме из Raspberry Pi в Arduino? - PullRequest
0 голосов
/ 01 марта 2020

Я использую LoRa Dorji DRF1278DM в качестве коммуникационного модуля и устанавливаю его в центральном режиме. Из таблицы данных (http://www.dorji.com/docs/data/DRF1278DM.pdf) центральному модулю необходимо отправить строку с указанным форматом c. Я использую Raspberry Pi для центрального модуля и Arduino для модуля узла (с идентификатором узла = 1). Пробуйте простую программу, чтобы послать строку "привет" из Raspberry в Arduino. Это код:

import serial

if __name__ == '__main__':
    ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
    ser.flush()

    while True:
        ser.write(serial.to_bytes([0x00,0x01,0x68,0x65,0x6c,0x6c,0x6f]))
        time.sleep(5)

* 2 первых байта для узла id, а остальное - "привет" в шестнадцатеричном формате

Arduino получает данные из малины, но не может их получить в строковом типе

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

int=data;

void loop(){
  if(Serial.available()>0){
    data=Serial.read();
    Serial.println(data);}
}

Если я установлю тип данных как целое число, проблем с его получением не возникнет, но я не знаю, как преобразовать его в «привет» обратно. Попробуйте установить тип данных как char, но выдает ошибку "несовместимые типы в присваивании 'int' для 'char'

Есть ли способ получить его как строку? Также есть другой метод, который позволяет мне отправлять данные из raspberry pi без преобразования всех данных в шестнадцатеричный формат и последующей отправки их в байтах с сохранением, включая байты заголовка (идентификатор узла модуля узла)

...