Programming #
The NORVI EC-M11-EG-C5-B95 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 controllers with the 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
}
NB-IoT Module #
Modem | NB-101 |
RX | GPIO25 |
TX | GPIO26 |
POWER | GPIO22 |
RESET | GPIO17 |
Programming NB-IoT #
const int GSM_RST = 17; // Define the pin for modem reset
const int GSM_PWR_KEY = 22; // Define the pin for modem power key
const int MODEM_RX = 25; // Define the pin for ESP32's RX to modem's TX
const int MODEM_TX = 26; // Define the pin for ESP32's TX to modem's RX
void setup() {
pinMode(GSM_RST, OUTPUT);
pinMode(GSM_PWR_KEY, OUTPUT);
digitalWrite(GSM_PWR_KEY, HIGH); // Set modem to flight mode
digitalWrite(GSM_RST, HIGH);
delay(1000);
digitalWrite(GSM_RST, LOW);
delay(1000);
digitalWrite(GSM_RST, HIGH);
delay(1000);
Serial.begin(9600); // Initialize the serial monitor
Serial2.begin(9600, SERIAL_8N1, MODEM_RX, MODEM_TX);
// Initialize communication with modem
Serial.println("SIM AT START >>>>>>>>>>>>>>");
delay(2000);
Serial.flush();
Serial2.println("AT+NCONFIG=AUTOCONNECT,TRUE");
delay(2000);
while (Serial2.available()) {
char response = Serial2.read();
Serial.write(response);
}
Serial2.println("AT");
delay(2000);
while (Serial2.available()) {
char response = Serial2.read();
Serial.write(response);
}
Serial2.println("AT+CEREG?");
delay(2000);
while (Serial2.available()) {
char response = Serial2.read();
Serial.write(response);
}
Serial.flush();
}
void loop() {
Serial.print(".");
Serial2.println("AT");
while (Serial2.available()) {
char response = Serial2.read();
Serial.write(response);
}
delay(5000);
Serial2.println("AT+CEREG?");
delay(2000);
while (Serial2.available()) {
char response = Serial2.read();
Serial.write(response);
}
}