This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:iot-open:practical:hardware:sut:esp32 [2025/01/01 13:13] – [Application Layer Services] pczekalski | en:iot-open:practical:hardware:sut:esp32 [2025/08/31 11:28] (current) – [Application Layer Services] pczekalski | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== SUT ESP32 Laboratory Node Hardware Reference ====== | ||
| + | |||
| + | ===== Introduction ===== | ||
| + | Each laboratory node is equipped with an ESP32-S3 double-core chip. Several peripherals, | ||
| + | <note tip>Note that each node has a unique ID built into the chip, as well as unique MAC addresses for the WiFi and Bluetooth interfaces.</ | ||
| + | ===== Hardware reference ===== | ||
| + | The table {{ref> | ||
| + | The node is depicted in the figure {{ref> | ||
| + | |||
| + | <figure esp32sutnode1> | ||
| + | {{: | ||
| + | < | ||
| + | </ | ||
| + | <table esp32sutnodehardware> | ||
| + | < | ||
| + | ^ Component ID ^ Description | ||
| + | | 1A | 12V PWM controlled fan | Pe60251b1-000u-g99 | ||
| + | | 1B | Pressure and environmental sensor | ||
| + | | 2 | Digital potentiometer | ||
| + | | 3 | Temperature and humidity sensor 1 | DHT11 | proprietary protocol, one GPIO | control on GPIO 47 | ||
| + | | 4 | Temperature sensor 2 | DS18B20 | ||
| + | | 5 | 2x16 LCD | HD44780 | ||
| + | | 6 | ePaper, B&W 2.13in, 250x122 pixels | ||
| + | | 7 | OLED, RGB colourful 1.5in, 128x128 pixels | ||
| + | | 8 | RGB Smart LED stripe | ||
| + | | 9A | Light intensity and colour sensor | ||
| + | | 9B | RGB LED PWM controlled | ||
| + | | 10 | Standard miniature servo | SG90 or similar | ||
| + | </ | ||
| + | |||
| + | The MCU working behind the laboratory node is ESP32-S3-DevKitM-1-N8 made by Espressif ((https:// | ||
| + | |||
| + | <figure esp32s3minidevkit> | ||
| + | {{: | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | 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: | ||
| + | |||
| + | <file ini platformio.ini> | ||
| + | [env: | ||
| + | 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+ | ||
| + | </ | ||
| + | |||
| + | ===== Network configuration and services ===== | ||
| + | |||
| + | Figure {{ref> | ||
| + | |||
| + | <note important> | ||
| + | If you're a SUT student or can access the campus network, you can also use 157.158.56.0/ | ||
| + | |||
| + | 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> | ||
| + | |||
| + | <figure sutvrelnextgeninfrastructure> | ||
| + | {{: | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | ==== Networking Layer ==== | ||
| + | |||
| + | The WiFi network, separated (no routing to and from the Internet) for IoT experimentation is available for all nodes: | ||
| + | * SSID: internal.IOT.NextGen | ||
| + | * PASS: IoTlab32768 | ||
| + | |||
| + | A public, wired (157.158.56.0/ | ||
| + | |||
| + | 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. | ||
| + | |||
| + | ==== Application Layer Services ==== | ||
| + | There are currently four application layer services available: | ||
| + | * MQTT broker 1, available on private WiFi network and on the campus LAN network: | ||
| + | * IP addresses: 192.168.91.5 (from internal IoT WiFi network), 157.158.56.57 (via the campus network); | ||
| + | * Port: 1883 (TCP) | ||
| + | * Security: plain text authentication | ||
| + | * User: vrel | ||
| + | * Pass: vrel2018 | ||
| + | * Notice: all messages with a topic starting with < | ||
| + | * MQTT broker 2, in the cloud segment, available virtually from everywhere: | ||
| + | * IP addresses: mqtt.iot-open.eu - do not use IP but rather DNS resolution as IP address may change without prior notice; | ||
| + | * Port: 8883 (TCP) | ||
| + | * Security: SSL/TLS | ||
| + | * User: vrel | ||
| + | * Pass: vrel2018 | ||
| + | * Notice: all messages with topics starting with < | ||
| + | * CoAP server with two endpoints: | ||
| + | * IP addresses: 192.168.91.5 (from internal IoT WiFi network), 157.158.56.57 (via the campus network); | ||
| + | * Port: 5683 (UDP) | ||
| + | * Endpoints: | ||
| + | * GET method for < | ||
| + | * GET method for < | ||
| + | * OpenThread border router, capable of routing messages from the OpenThread network to the campus LAN: | ||
| + | * Management IP address: 192.168.88.53 (from internal wired network), 157.158.56.57 (via the campus network); | ||
| + | * Port for monitoring/ | ||
| + | * OpenThread network details: | ||
| + | * Channel: 15 | ||
| + | * Wake-up Channel: 21 | ||
| + | * Channel Mask: 0x07fff800 | ||
| + | * Ext PAN ID: dead00beef00cafe | ||
| + | * Mesh Local Prefix: fc00: | ||
| + | * Network Key: 00112233445566778899aabbccddeeff | ||
| + | * Network Name: OpenThread-VREL | ||
| + | * PAN ID: 0x1234 | ||
| + | * PSKc: 104810e2315100afd6bc9215a6bfac53 | ||
| + | |||