Each laboratory node is equipped with an ESP32-S3 double-core chip. Several peripherals, networks and network services are available for the user. The UI is necessary to observe results in the camera when programming remotely. Thus, a proper understanding of UI programming is essential to successfully using the devices.
The table 1 lists all hardware components of the SUT's ESP32-S3 node and hardware details such as connectivity, protocols, GPIOs, etc. Please note that some pins overlap because buses such as SPI and I2C are shared among multiple components.
The node is present in the figure 1 and reference numbers reflecting components in the table 1.
Component ID | Description | Hardware model (controller) | Control method | GPIOs (as connected to the ESP32-S3) | Remarks |
---|---|---|---|---|---|
1A | 12V PWM controlled fan | Pe60251b1-000u-g99 | PWM | FAN_PWM = 35 | Fan blows air into the pressure chamber (yellow container) to stimulate air pressure changes. |
1B | Pressure and environmental sensor | BME 280 | I2C, address 0x76 | SDA=5, SCL=4 | Spinning of the fan causes air to blow inside the yellow chamber and thus causes air pressure to change. |
2 | Digital potentiometer | DS1803-100 | I2C, address 0x28 | SDA=5, SCL=4, analog input (A/D)=7 | Digital potententiometer's output is connected to the A/D input of the MCU. |
3 | Temperature and humidity sensor 1 | DHT11 | proprietary protocol, one GPIO | control on GPIO 47 | |
4 | Temperature sensor 2 | DS18B20 | 1-Wire | 1-Wire interface on GPIO 6 | |
5 | 2×16 LCD | HD44780 | Proprietary 4 bit control interface | EN=1, RS=2, D4=39, D5=40, D6=41, D7=42 | 4-bit, simplified, one-directional (MCU→LCD) communication only |
6 | ePaper, B&W 2.13in, 250×122 pixels | Pico-ePaper-2.13 | SPI | SPI_MOSI=15, SPI_CLK=18, SPI_DC=13, SPI_CS=10, SPI_RST=9, EPAPER_BUSY=8 | Memory size is 64kB (65536ul) |
7 | OLED, RGB colourful 1.5in, 128×128 pixels | SSD1351 | SPI | SPI_MOSI=15, SPI_CLK=18, SPI_DC=13, SPI_CS=11, SPI_RST=12 | 64k colours RGB (16bit) |
8 | RGB Smart LED stripe | 8*WS2812B | Proprietary protocol, one GPIO | NEOPIXEL=34 | |
9A | Light intensity and colour sensor | TCS 34725 | I2C address 0x29 | SDA=5, SCL=4, Interrupt=16 | The sensor is illuminated by RGB LED (9A) |
9B | RGB LED PWM controlled | PWM | LED_R=33, LED_B=26, LED_G=21 | Each colour can be independently controlled with PWM. The LED is integrated with another, illuminating the colour sensor (9B) so that controlling this RGB LED also directly impacts the other. | |
10 | Standard miniature servo | SG90 or similar | PWM | SERVO_PWM=37 | Standard timings for micro servo: PWM 50Hz, duty cycle: - 0 deg (right position): 1ms, - 90 deg (up position): 1.5ms, - 180 deg (left position): 2ms. |
The MCU standing behind the laboratory node is a genuine ESP32-S3-DevKitM-1-N8 from Espressif [1], present in figure 2:
A suitable platformio.ini file for the correct code compilation is presented below. It does not contain libraries that need to be added regarding specific tasks and hardware used in particular scenarios. The code below presents only the typical section. Refer to the scenario description for details regarding case-specific libraries needed for the implementation:
[env:vrelnextgen] platform = espressif32 board = esp32-s3-devkitc-1 board_build.mcu = esp32s3 board_build.f_cpu = 240000000L framework = arduino platform_packages = toolchain-riscv32-esp @ 8.4.0+2021r2-patch5 lib_ldf_mode = deep+
Figure 3 represents SUT's VREL Next Gen IoT remote lab networking infrastructure and services. Details are described below.
If you're a SUT student or can access the campus network, you can also use 157.158.56.0/24 addresses.
Openthread IP6 network with short addressing (up to 65k devices) is bound to the campus network (UDP forwarding, bidirectional) via Openthread BorderRouter. Refer to the diagram below (figure {ref>sutvrelnextgeninfrastructure}) for details.
The WiFi network, separated (no routing to and from the Internet) for IoT experimentation is available for all nodes:
A public, wired (157.158.56.0/24) network is available only for on-site students and from the SUT's campus network.
It is important to distinguish the network context and use the correct address. Integration services usually have two interfaces: one is available from the IoT WiFi network so nodes can access it, and the other IP address (from the public campus network) is available only for students directly connected to it.
There are currently four application layer services available:
public/
will be routed to the public broker via the MQTT bridge (MQTT broker 2, details on the broker below)
vrel/
or
sut/
will be routed to the MQTT broker in the campus network via the MQTT bridge (MQTT broker 1, details on the broker above)
coap://<ipaddress>/
that brings you a secret code in the message's payload,
coap://<ipaddress>/hello
that brings you a hello world welcome message in the payload.