Dear all,
I’m new in Arduino and Lora technology. I want to send data from a CAN BUS shield (I have the CAN BUS shield V2.0 from Seeed, CAN-BUS Shield V2 from DFROBOT and CAN BUS shield from SparkFun) to the TTN Gateway. I´’m using two shields: one acting as a slave, connected to Arduino Leonardo and sending data to the master (receiver) which is connected to the TTN Uno.
Now the next step is to send the received data by the TTN Uno to the TTN Gateway. I really don’t know how to integrate the code which is receiving data from the slave with the one sending data from the ttn uno to the ttn gateway.
Here’s the master’s receiver code on the ttn uno:
// demo: CAN-BUS Shield, receive data with check mode
// send data coming to fast, such as less than 10ms, you can use this way
// loovee, 2014-6-13
#include <SPI.h>
#include “mcp_can.h”
// the cs pin of the version after v1.1 is default to D9
// v0.9b and v1.0 is default D10
const int SPI_CS_PIN = 9;
MCP_CAN CAN(SPI_CS_PIN); // Set CS pin
void setup()
{
Serial.begin(115200);
while (CAN_OK != CAN.begin(CAN_500KBPS)) // init can bus : baudrate = 500k
{
Serial.println(“CAN BUS Shield init fail”);
Serial.println(" Init CAN BUS Shield again");
delay(100);
}
Serial.println(“CAN BUS Shield init ok!”);
}
void loop()
{
unsigned char len = 0;
unsigned char buf[8];
if(CAN_MSGAVAIL == CAN.checkReceive()) // check if data coming
{
CAN.readMsgBuf(&len, buf); // read data, len: data length, buf: data buf
unsigned long canId = CAN.getCanId();
Serial.println("-----------------------------");
Serial.print(“Get data from ID: 0x”);
Serial.println(canId, HEX);
for(int i = 0; i<len; i++) // print the data
{
Serial.print(buf[i], HEX);
Serial.print("\t");
}
Serial.println();
}
}
Can anyone help me with it please? Thank you so much!