139 lines
7.5 KiB
C++
139 lines
7.5 KiB
C++
/*
|
|
* LoRa E220
|
|
* Get configuration.
|
|
* You must uncommend the correct constructor.
|
|
*
|
|
* by Renzo Mischianti <https://www.mischianti.org>
|
|
*
|
|
* https://www.mischianti.org
|
|
*
|
|
* E220 ----- WeMos D1 mini ----- esp32 ----- Arduino Nano 33 IoT ----- Arduino MKR ----- Raspberry Pi Pico ----- stm32 ----- ArduinoUNO
|
|
* M0 ----- D7 (or 3.3v) ----- 19 (or 3.3v) ----- 4 (or 3.3v) ----- 2 (or 3.3v) ----- 10 (or 3.3v) ----- PB0 (or 3.3v) ----- 7 Volt div (or 3.3v)
|
|
* M1 ----- D6 (or 3.3v) ----- 21 (or 3.3v) ----- 6 (or 3.3v) ----- 4 (or 3.3v) ----- 11 (or 3.3v) ----- PB10 (or 3.3v) ----- 6 Volt div (or 3.3v)
|
|
* TX ----- D3 (PullUP) ----- TX2 (PullUP) ----- TX1 (PullUP) ----- 14 (PullUP) ----- 8 (PullUP) ----- PA2 TX2 (PullUP) ----- 4 (PullUP)
|
|
* RX ----- D4 (PullUP) ----- RX2 (PullUP) ----- RX1 (PullUP) ----- 13 (PullUP) ----- 9 (PullUP) ----- PA3 RX2 (PullUP) ----- 5 Volt div (PullUP)
|
|
* AUX ----- D5 (PullUP) ----- 18 (PullUP) ----- 2 (PullUP) ----- 0 (PullUP) ----- 2 (PullUP) ----- PA0 (PullUP) ----- 3 (PullUP)
|
|
* VCC ----- 3.3v/5v ----- 3.3v/5v ----- 3.3v/5v ----- 3.3v/5v ----- 3.3v/5v ----- 3.3v/5v ----- 3.3v/5v
|
|
* GND ----- GND ----- GND ----- GND ----- GND ----- GND ----- GND ----- GND
|
|
*
|
|
*/
|
|
|
|
#include "Arduino.h"
|
|
#include "LoRa_E220.h"
|
|
|
|
// ---------- esp8266 pins --------------
|
|
//LoRa_E220 e220ttl(RX, TX, AUX, M0, M1); // Arduino RX <-- e220 TX, Arduino TX --> e220 RX
|
|
//LoRa_E220 e220ttl(D3, D4, D5, D7, D6); // Arduino RX <-- e220 TX, Arduino TX --> e220 RX AUX M0 M1
|
|
//LoRa_E220 e220ttl(D2, D3); // Config without connect AUX and M0 M1
|
|
|
|
//#include <SoftwareSerial.h>
|
|
//SoftwareSerial mySerial(D2, D3); // Arduino RX <-- e220 TX, Arduino TX --> e220 RX
|
|
//LoRa_E220 e220ttl(&mySerial, D5, D7, D6); // AUX M0 M1
|
|
// -------------------------------------
|
|
|
|
// ---------- Arduino pins --------------
|
|
LoRa_E220 e220ttl(4, 5, 3, 7, 6); // Arduino RX <-- e220 TX, Arduino TX --> e220 RX AUX M0 M1
|
|
//LoRa_E220 e220ttl(4, 5); // Config without connect AUX and M0 M1
|
|
|
|
//#include <SoftwareSerial.h>
|
|
//SoftwareSerial mySerial(4, 5); // Arduino RX <-- e220 TX, Arduino TX --> e220 RX
|
|
//LoRa_E220 e220ttl(&mySerial, 3, 7, 6); // AUX M0 M1
|
|
// -------------------------------------
|
|
|
|
// ------------- Arduino Nano 33 IoT -------------
|
|
// LoRa_E220 e220ttl(&Serial1, 2, 4, 6); // RX AUX M0 M1
|
|
// -------------------------------------------------
|
|
|
|
// ------------- Arduino MKR WiFi 1010 -------------
|
|
// LoRa_E220 e220ttl(&Serial1, 0, 2, 4); // RX AUX M0 M1
|
|
// -------------------------------------------------
|
|
|
|
// ---------- esp32 pins --------------
|
|
// LoRa_E220 e220ttl(&Serial2, 15, 21, 19); // RX AUX M0 M1
|
|
|
|
//LoRa_E220 e220ttl(&Serial2, 22, 4, 18, 21, 19, UART_BPS_RATE_9600); // esp32 RX <-- e220 TX, esp32 TX --> e220 RX AUX M0 M1
|
|
// -------------------------------------
|
|
|
|
// ---------- Raspberry PI Pico pins --------------
|
|
// LoRa_E220 e220ttl(&Serial2, 2, 10, 11); // RX AUX M0 M1
|
|
// -------------------------------------
|
|
|
|
// ---------------- STM32 --------------------
|
|
//HardwareSerial Serial2(USART2); // PA3 (RX) PA2 (TX)
|
|
//LoRa_E220 e220ttl(&Serial2, PA0, PB0, PB10); // RX AUX M0 M1
|
|
// -------------------------------------------------
|
|
|
|
void printParameters(struct Configuration configuration);
|
|
void printModuleInformation(struct ModuleInformation moduleInformation);
|
|
|
|
void setup() {
|
|
Serial.begin(9600);
|
|
while(!Serial){};
|
|
delay(500);
|
|
|
|
Serial.println();
|
|
|
|
|
|
// Startup all pins and UART
|
|
e220ttl.begin();
|
|
|
|
ResponseStructContainer c;
|
|
c = e220ttl.getConfiguration();
|
|
// It's important get configuration pointer before all other operation
|
|
Configuration configuration = *(Configuration*) c.data;
|
|
Serial.println(c.status.getResponseDescription());
|
|
Serial.println(c.status.code);
|
|
|
|
printParameters(configuration);
|
|
|
|
ResponseStructContainer cMi;
|
|
cMi = e220ttl.getModuleInformation();
|
|
// It's important get information pointer before all other operation
|
|
ModuleInformation mi = *(ModuleInformation*)cMi.data;
|
|
|
|
Serial.println(cMi.status.getResponseDescription());
|
|
Serial.println(cMi.status.code);
|
|
|
|
printModuleInformation(mi);
|
|
}
|
|
|
|
void loop() {
|
|
|
|
}
|
|
void printParameters(struct Configuration configuration) {
|
|
Serial.println("----------------------------------------");
|
|
|
|
Serial.print(F("HEAD : ")); Serial.print(configuration.COMMAND, HEX);Serial.print(" ");Serial.print(configuration.STARTING_ADDRESS, HEX);Serial.print(" ");Serial.println(configuration.LENGHT, HEX);
|
|
Serial.println(F(" "));
|
|
Serial.print(F("AddH : ")); Serial.println(configuration.ADDH, HEX);
|
|
Serial.print(F("AddL : ")); Serial.println(configuration.ADDL, HEX);
|
|
Serial.println(F(" "));
|
|
Serial.print(F("Chan : ")); Serial.print(configuration.CHAN, DEC); Serial.print(" -> "); Serial.println(configuration.getChannelDescription());
|
|
Serial.println(F(" "));
|
|
Serial.print(F("SpeedParityBit : ")); Serial.print(configuration.SPED.uartParity, BIN);Serial.print(" -> "); Serial.println(configuration.SPED.getUARTParityDescription());
|
|
Serial.print(F("SpeedUARTDatte : ")); Serial.print(configuration.SPED.uartBaudRate, BIN);Serial.print(" -> "); Serial.println(configuration.SPED.getUARTBaudRateDescription());
|
|
Serial.print(F("SpeedAirDataRate : ")); Serial.print(configuration.SPED.airDataRate, BIN);Serial.print(" -> "); Serial.println(configuration.SPED.getAirDataRateDescription());
|
|
Serial.println(F(" "));
|
|
Serial.print(F("OptionSubPacketSett: ")); Serial.print(configuration.OPTION.subPacketSetting, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getSubPacketSetting());
|
|
Serial.print(F("OptionTranPower : ")); Serial.print(configuration.OPTION.transmissionPower, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getTransmissionPowerDescription());
|
|
Serial.print(F("OptionRSSIAmbientNo: ")); Serial.print(configuration.OPTION.RSSIAmbientNoise, BIN);Serial.print(" -> "); Serial.println(configuration.OPTION.getRSSIAmbientNoiseEnable());
|
|
Serial.println(F(" "));
|
|
Serial.print(F("TransModeWORPeriod : ")); Serial.print(configuration.TRANSMISSION_MODE.WORPeriod, BIN);Serial.print(" -> "); Serial.println(configuration.TRANSMISSION_MODE.getWORPeriodByParamsDescription());
|
|
Serial.print(F("TransModeEnableLBT : ")); Serial.print(configuration.TRANSMISSION_MODE.enableLBT, BIN);Serial.print(" -> "); Serial.println(configuration.TRANSMISSION_MODE.getLBTEnableByteDescription());
|
|
Serial.print(F("TransModeEnableRSSI: ")); Serial.print(configuration.TRANSMISSION_MODE.enableRSSI, BIN);Serial.print(" -> "); Serial.println(configuration.TRANSMISSION_MODE.getRSSIEnableByteDescription());
|
|
Serial.print(F("TransModeFixedTrans: ")); Serial.print(configuration.TRANSMISSION_MODE.fixedTransmission, BIN);Serial.print(" -> "); Serial.println(configuration.TRANSMISSION_MODE.getFixedTransmissionDescription());
|
|
|
|
|
|
Serial.println("----------------------------------------");
|
|
}
|
|
void printModuleInformation(struct ModuleInformation moduleInformation) {
|
|
Serial.println("----------------------------------------");
|
|
Serial.print(F("HEAD: ")); Serial.print(moduleInformation.COMMAND, HEX);Serial.print(" ");Serial.print(moduleInformation.STARTING_ADDRESS, HEX);Serial.print(" ");Serial.println(moduleInformation.LENGHT, DEC);
|
|
|
|
Serial.print(F("Model no.: ")); Serial.println(moduleInformation.model, HEX);
|
|
Serial.print(F("Version : ")); Serial.println(moduleInformation.version, HEX);
|
|
Serial.print(F("Features : ")); Serial.println(moduleInformation.features, HEX);
|
|
Serial.println("----------------------------------------");
|
|
}
|
|
|