Помогите закончить скетч (MODBUS)

IMS_17
IMS_17 аватар
Offline
Зарегистрирован: 11.10.2018

Добрый день! Помогите закончить скетч. У меня на объекте находится "тележка" которая свою очередь двигается строго от точки А к точке В и обратно. На "Тележке" установлена GPS модуль который определяет место положение и отправляет данные через Радио передатчик(NRF24l01+pa+lna) на приемник (NRF24l01+pa+lna). Этот часть скетча закончена и работает. Теперь необходимо эти данные опросить через ПК используя программу для опроса (в моем случае MasterOPC Universal Modbus Server). Помогите дополнить скетч чтобы я смог опросить данные (значение flat, flon) через ModBus протокол . UART TTL RS-485 имеется. 

 

IMS_17
IMS_17 аватар
Offline
Зарегистрирован: 11.10.2018

IMS_17 пишет:

Добрый день! Помогите закончить скетч. У меня на объекте находится "тележка" которая свою очередь двигается строго от точки А к точке В и обратно. На "Тележке" установлена GPS модуль который определяет место положение и отправляет данные через Радио передатчик(NRF24l01+pa+lna) на приемник (NRF24l01+pa+lna). Этот часть скетча закончена и работает. Теперь необходимо эти данные опросить через ПК используя программу для опроса (в моем случае MasterOPC Universal Modbus Server). Помогите дополнить скетч чтобы я смог опросить данные (значение flat, flon) через ModBus протокол . UART TTL RS-485 имеется. 

 

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
RF24 radio(9,10); // "создать" модуль на пинах 9 и 10 Для Уно
 
byte address[][6] = {"1Node","2Node","3Node","4Node","5Node","6Node"};  //возможные номера труб
 
void setup(){
  Serial.begin(9600); //открываем порт для связи с ПК
  radio.begin(); //активировать модуль
  radio.setAutoAck(1);         //режим подтверждения приёма, 1 вкл 0 выкл
  radio.setRetries(0,15);     //(время между попыткой достучаться, число попыток)
  radio.enableAckPayload();    //разрешить отсылку данных в ответ на входящий сигнал
  radio.setPayloadSize(64);     //размер пакета, в байтах
 
  radio.openReadingPipe(1,address[0]);      //хотим слушать трубу 0
  radio.setChannel(0x60);  //выбираем канал (в котором нет шумов!)
 
  radio.setPALevel (RF24_PA_MAX); //уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX
  radio.setDataRate (RF24_250KBPS); //скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS
  //должна быть одинакова на приёмнике и передатчике!
  //при самой низкой скорости имеем самую высокую чувствительность и дальность!!
  
  radio.powerUp(); //начать работу
  radio.startListening();  //начинаем слушать эфир, мы приёмный модуль  
}
 
void loop() {
    byte pipeNo, gotByte;  
    float flat; 
    float flon;               
    while( radio.available(&pipeNo)){    // слушаем эфир со всех труб
      radio.read( &gotByte, sizeof(gotByte) );         // чиатем входящий сигнал
      radio.read( &flat, sizeof(flat) );  
      radio.read( &flon, sizeof(flon) );
      Serial.print("Recieved: "); Serial.println(gotByte);
      Serial.print("Данные долгота: "); Serial.println(flat,6 );
      Serial.print("Данные широта: "); Serial.println(flon,6 );
   
   }
}
 
DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

IMS_17 пишет:

Помогите закончить скетч. 

Нет.  Ты игнорируешь правила, мы - тебя. 

IMS_17
IMS_17 аватар
Offline
Зарегистрирован: 11.10.2018

DetSimen пишет:

Нет.  Ты игнорируешь правила, мы - тебя. 

Извините, не прочел правила, не вените строго, учусь на ошибках. Можете подсказать или объяснить как и куда обращаться?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017
IMS_17
IMS_17 аватар
Offline
Зарегистрирован: 11.10.2018

Спасибо! Теперь все понятно.

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

IMS_17 пишет:

Спасибо! Теперь все понятно.

не похоже, что вам понятно. Было бы понятно - действовали бы по другому.