User Guide

Programming #

NORVI IIOT AE01-R / AE01-T 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 the Guide to programming NORVI ESP32 Based Controllers with Arduino

SoC : ESP32-WROOM32
Programming Port : USB UART

Digital Inputs #

Wiring Digital Inputs #

The digital inputs of NORVI IIOT range can be configured as both Sink and Source connection. The inverse of the Digital Input polar should be supplied to common terminal.

NORVI IIOT Digital Input Wiring

Programming Digital Inputs #

Reading relevant GPIO of ESP32 gives the value of the Digital Input. When the inputs are in OFF state the GPIO goes HIGH, and when the input is in ON stage GPIO goes LOW.

Refer to the GPIO Allocation Table for Digital Input GPIO

#define INPUT1 18

void setup() {
  Serial.begin(115200);
  Serial.println("Device Starting");

  pinMode(INPUT1, INPUT);
}

void loop() {
  Serial.print(digitalRead(INPUT1));

  Serial.println(""); 
  delay(500);
}

Relay / Transistor Outputs #

Wiring Relay Outputs #
NORVI IIOT Relay Output Wiring

Wiring Transistor Outputs #
NORVI IIOT Transistor Output Wiring
Programming Relay/ Transistor Outputs #

Reading relevant GPIO of ESP32 gives the value of the Digital Input. When the inputs are in OFF state the GPIO goes HIGH, and when the input is in ON stage GPIO goes LOW.

Refer to the GPIO Allocation Table for Digital Input GPIO

#define OUTPUT1 14

void setup() {
  Serial.begin(115200);
  Serial.println("Device Starting");

  pinMode(OUTPUT1 , OUTPUT);
}

void loop() {
  digitalWrite(OUTPUT1, HIGH);
  delay(500);
  digitalWrite(OUTPUT1, LOW);
  delay(500);

  Serial.println(""); 
  delay(500);
}

RS-485 communication #

RS-485 Wiring

DriverMAX485
UART RXGPIO3
UART TXGPIO1
Flow ControlGPIO4
GPIO Connections of RS-485

Programming RS-485

The UART Connections of RS-485 of NORVI IIOT AE01 series are shared with the UART connections of USB Serial.

#define RS485_FC 4

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);
}

Built-in OLED Display #

Display driverSSD1306
CommunicationI2C
Module Address0x3C
Resolution128 x 64
0.96 OLED Display Specification


Refer to the GPIO Allocation Table for I2C GPIO of the OLED Display

Library Supported Adafruit_SSD0306 Library

Wire.begin(SDA, SCL); is required to initialize I2C on correct pins


#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET     -1 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);


void setup() {
  Wire.begin(16,17);
  
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3C for 128x64
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); // Don't proceed, loop forever
  }

  // Show initial display buffer contents on the screen --
  // the library initializes this with an Adafruit splash screen.
  display.display();
  delay(2000); // Pause for 2 seconds

  }

void loop() {
}

Built-in Buttons #

Read modeADC (Analog to Digital Conversion)
Analog IOGPIO32
Built-in button Internal Schematic

Powered by BetterDocs