some docs

This commit is contained in:
2022-12-15 20:07:15 +01:00
parent 6a6fcc8d01
commit 45dd08e1f0
5 changed files with 44 additions and 13 deletions

BIN
docs/IMG_3853.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

BIN
docs/IMG_3854.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

BIN
docs/IMG_3855.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

BIN
docs/modbus01.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@ -4,6 +4,15 @@
#include <ArduinoModbus.h>
#define RX_PIN 7
#define TX_PIN 6
#define RE_PIN 5
#define DE_PIN 4
#define LED_RED 3
#define LED_GREEN 2
#define LED_BLUE 45
/* OTAA para*/
uint8_t devEui[] = { 0x22, 0x32, 0x33, 0x00, 0x00, 0x88, 0x88, 0x02 };
@ -62,6 +71,7 @@ uint8_t appPort = 2;
uint8_t confirmedNbTrials = 4;
RS485Class* pRS485_1;
ModbusRTUClientClass* pModbusClient;
/* Prepares the payload of the frame */
static void prepareTxFrame( uint8_t port )
@ -73,11 +83,24 @@ static void prepareTxFrame( uint8_t port )
*for example, if use REGION_CN470,
*the max value for different DR can be found in MaxPayloadOfDatarateCN470 refer to DataratesCN470 and BandwidthsCN470 in "RegionCN470.h".
*/
appDataSize = 4;
appData[0] = 0x10;
appData[1] = 0x21;
appData[2] = 0x32;
appData[3] = 0x43;
appDataSize = 8;
Serial.println("modbus operation");
long v1 = pModbusClient->inputRegisterRead(7, 0x01);
Serial.print("v1: ");
Serial.println(v1);
memcpy(appData, &v1, 4);
long v2 = pModbusClient->inputRegisterRead(7, 0x02);
Serial.print("v2: ");
Serial.println(v2);
memcpy(appData+4, &v2, 4);
//appData[0] = 0x10;
//appData[1] = 0x21;
//appData[2] = 0x32;
//appData[3] = 0x43;
}
//if true, next uplink will add MOTE_MAC_DEVICE_TIME_REQ
@ -85,9 +108,17 @@ static void prepareTxFrame( uint8_t port )
void setup() {
Serial.begin(115200);
Serial1.begin(9600, SERIAL_8N1, 7, 6);
pRS485_1 = new RS485Class(Serial1, 6, 5, 4);
ModbusRTUClient.begin(*pRS485_1, 9600, SERIAL_8N1);
Serial1.begin(9600, SERIAL_8N1, RX_PIN, TX_PIN);
pRS485_1 = new RS485Class(Serial1, TX_PIN, RE_PIN, DE_PIN);
pModbusClient = new ModbusRTUClientClass(*pRS485_1);
pModbusClient->begin(9600, SERIAL_8N1);
pinMode(LED_BLUE, OUTPUT);
digitalWrite(LED_BLUE, LOW);
pinMode(LED_RED, OUTPUT);
digitalWrite(LED_RED, LOW);
pinMode(LED_GREEN, OUTPUT);
digitalWrite(LED_GREEN, LOW);
Mcu.begin();
deviceState = DEVICE_STATE_INIT;
@ -97,9 +128,12 @@ void loop()
{
#if 1
digitalWrite(LED_GREEN, HIGH);
switch( deviceState )
{
case DEVICE_STATE_INIT:
digitalWrite(LED_GREEN, LOW);
{
#if(LORAWAN_DEVEUI_AUTO)
LoRaWAN.generateDeveuiByChipID();
@ -113,12 +147,8 @@ void loop()
break;
}
case DEVICE_STATE_SEND:
digitalWrite(LED_BLUE, HIGH);
{
Serial.println("rs485 writing");
pRS485_1->beginTransmission();
pRS485_1->write(0xaa);
pRS485_1->endTransmission();
Serial.println("sending");
prepareTxFrame( appPort );
LoRaWAN.send();
@ -126,6 +156,7 @@ void loop()
break;
}
case DEVICE_STATE_CYCLE:
digitalWrite(LED_BLUE, LOW);
{
// Schedule next packet transmission
txDutyCycleTime = appTxDutyCycle + randr( -APP_TX_DUTYCYCLE_RND, APP_TX_DUTYCYCLE_RND );