Programming # The NORVI EC-M11-EG-C5-S has a mini USB port for serial connection with the SoC for programming. Any ESP32-supported programming IDE can be used to program the controller. Follow this Guide to programming NORVI ESP32-based Based Controllers with Arduino IDE.
SoC: ESP32-WROOM32 Programming Port: USB UART
8-pin Connector and wire harness # Pin Description # 8P Male Wire color I/O Configuration 1 White SCL 2 Brown SDA 3 Green – 4 Yellow – 5 Gray 3.3V+ / 5V+ 6 Pink – 7 Blue Power+ 8 Red Power-
I2C Communication # IC Type ADS 1115 Module Address 0x49 SDA GPIO16 SCL GPIO17
Programming I2C Communication # #include <Wire.h>
// Define the I2C device address
#define DEVICE_ADDRESS 0x49
void setup() {
Wire.begin(16, 17); // SDA on GPIO16, SCL on GPIO17
Serial.begin(115200);
}
void loop() {
// Write data to the I2C device
Wire.beginTransmission(DEVICE_ADDRESS);
Wire.write(0x01); // Replace with your data
Wire.write(0x02);
Wire.write(0x03);
Wire.endTransmission();
delay(100);
// Read data from the I2C device
Wire.requestFrom(DEVICE_ADDRESS, 3); // 3 bytes of data
if (Wire.available() >= 3) {
byte data1 = Wire.read();
byte data2 = Wire.read();
byte data3 = Wire.read();
Serial.print("Read Data: ");
Serial.print(data1, HEX);
Serial.print(" ");
Serial.print(data2, HEX);
Serial.print(" ");
Serial.println(data3, HEX);
}
delay(1000); // Delay for demonstration purposes
}
LoRa Transceiver Module # Specification Long Range(LoRa) RF Transceiver Order depending on regional regulations SPI MISO GPIO19 SPI MOSI GPIO23 SPI SCK GPIO18 NSS GPIO26 DIO0 GPIO25 DIO1 GPIO27 DIO2 NOT CONNECTED RESET GPIO15
Programming LoRa Modules # #include <lmic.h>
#include <hal/hal.h>
#include <SPI.h>
#define CONFIRMED_MSG_RETRY_COUNT 3
static const u1_t PROGMEM APPEUI[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
void os_getArtEui (u1_t* buf) {
memcpy_P(buf, APPEUI, 8);
}
static const u1_t PROGMEM DEVEUI[8] = {0x4B, 0x11, 0x3F, 0xB1, 0x3C, 0xBE, 0xD6, 0x56};
void os_getDevEui (u1_t* buf) {
memcpy_P(buf, DEVEUI, 8);
}
static const u1_t PROGMEM APPKEY[16] = {0xF9, 0x65, 0xE4, 0xED, 0xFF, 0x8A, 0x89, 0x27, 0x23, 0xA6, 0xB7, 0x42, 0x2F, 0x05, 0x8E, 0x9F};
void os_getDevKey (u1_t* buf) {
memcpy_P(buf, APPKEY, 16);
}
static uint8_t mydata[] = "Hello, world!";
static osjob_t sendjob;
const unsigned TX_INTERVAL = 60;
const lmic_pinmap lmic_pins = {
.nss = 26,
.rxtx = LMIC_UNUSED_PIN,
.rst = 15,
.dio = {25, 27, -1},
};
void printHex2(unsigned v) {
v &= 0xff;
if (v < 16)
Serial.print('0');
Serial.print(v, HEX);
}