XStore
View Categories

EC-M11-EG-C3-LTE – USER GUIDE

3 min read

Programming  #

The NORVI EC-M11-EG-C3-LTE 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 controllers with the Arduino IDE.

SoC: ESP32-WROOM32
Programming Port: USB UART

8-pin Connector and wire harness #

Pin Description #

8P MaleWire colorI/O Configuration
1WhiteA+
2BrownA-
3GreenB+
4YellowB-
5GrayRS-485A
6PinkRS-485B
7BluePower+
8RedPower-

Load Cell Inputs #

Programming Load Cell Inputs #

Number of Load Cell Inputs1
Module TypeHX711
PD SCKGPIO32
DOUTGPIO33
#include "HX711.h"
const int LOADCELL_DOUT_PIN = 33;
const int LOADCELL_SCK_PIN = 32;
HX711 scale;
void setup() {
  Serial.begin(115200);
  Serial.println("HX711 Demo");
  Serial.println("Initializing the scale");
  scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
  scale.set_scale(2280.f);                      // this value is obtained by calibrating the scale with known weights; see the README for details
  scale.tare();                // reset the scale to 0
  Serial.println("After setting up the scale:");
  Serial.print("read: \t\t");
  Serial.println(scale.read());                 // print a raw reading from the ADC
  Serial.print("read average: \t\t");
  Serial.println(scale.read_average(20));       // print the average of 20 readings from the ADC
  Serial.print("get value: \t\t");
  Serial.println(scale.get_value(5));   // print the average of 5 readings from the ADC minus the tare weight, set with tare()
  Serial.print("get units: \t\t");
  Serial.println(scale.get_units(5), 1);        // print the average of 5 readings from the ADC minus tare weight, divided
  Serial.println("Readings:");
}
void loop() {
  Serial.print("one reading:\t");
  Serial.print(scale.get_units(), 1);
  Serial.print("\t| average:\t");
  Serial.println(scale.get_units(10), 1);
}

RS-485 Communication #

DriverMAX485
UART RXGPIO4
UART TXGPIO2
Flow ControlGPIO13
GPIO Connections of RS-485

Programming RS-485 #

NORVI EC-M11-EG series RS-485 connection uses a half-duplex mode of MAX485 transmitter with UART
Communication.

#define RS485_FC 13
void setup() { 
   Serial.begin(115200); 
   Serial.println("Device Starting"); 
   pinMode(RS485_FC, OUTPUT); 
} 
void loop() { 
  digitalWrite(RS485_FC, HIGH); // Turns on Transmitter Mode            
  Serial.println("RS-485 Sending");  
  delay(500); 
}

LTE1 Communication #

Model of LTE ModemSIM7000-E
FCC ID2AJYU-SIM7000
TAC86615402
RXD GPIO25
TXDGPIO26
RESETGPIO17
POWERGPIO22
GPIO Connections of LTE1 Communication

LTE2 Communication #

Model of LTE ModemSIM7500
FCC ID2AQ9M-SIM7500
TAC86147503
RXDGPIO25
TXDGPIO26
RESETGPIO17
POWERGPIO22
GPIO Connections of LTE2 Communication

Programming LTE Communication #

#define MODEM_RESET 17
#define MODEM_FLIGHT 22
#define MODEM_RX 26
#define MODEM_TX 25
long timer1;

void setup() {           // initialize both serial ports:
  Serial.begin(115200);
  pinMode(MODEM_FLIGHT , OUTPUT);       // FLIGHT MODE ENABLE
  pinMode(MODEM_RESET , OUTPUT);       // MODEM RESET PIN
  digitalWrite(MODEM_FLIGHT, HIGH);   // FLIGHT MODE 
  MODEM_RESET_CYC();
  delay(2000);
  Serial2.begin(115200, SERIAL_8N1, MODEM_RX, MODEM_TX);
  Serial.println("SIM AT ATART >>>>>>>>>>>>>>");
  delay(2000);
  Serial2.println("AT");
  delay(2000);
  Serial2.println("AT+CPIN?");
  delay(2000);
  Serial2.println("AT+CNMP?");
}

void loop() {
  delay(3000);
  timer1 = millis();
  Serial2.println("AT");
  while(millis()<timer1+10000){
    while (Serial2.available()) {
    int inByte = Serial2.read();
    Serial.write(inByte);
    }
  }
  timer1 = millis();
  Serial2.println("AT+CPIN?");
  while(millis()<timer1+10000){
    while (Serial2.available()) {
    int inByte = Serial2.read();
    Serial.write(inByte);
    }
  }
  Serial.println("AT SCAN DONE");         // read from port 0, send to port 1:
  while (Serial.available()) {
    int inByte = Serial.read();
    Serial2.write(inByte);
  }
  while (Serial2.available()) {
    int inByte = Serial2.read();
    Serial.write(inByte);
  }
}

void MODEM_RESET_CYC() {
  digitalWrite(MODEM_RESET,HIGH );
  delay(1000);
  digitalWrite(MODEM_RESET,LOW );
  delay(1000);
  digitalWrite(MODEM_RESET, HIGH);
}