Objective of this demo is to showcase some of CycloneTCP / CycloneSSL / CycloneACME protocol implementations. The reference board used in this demo is STM32 Nucleo-144 development board with STM32F746ZG MCU, along side X-NUCLEO-IKS01A2 Motion MEMS and environmental sensor expansion board.

This page has been accessed 352 times.
The Web server supports SSI (Server-Sides Includes) and CGI scripting for dynamic contents. The following properties are dynamically generated each time the page is refreshed (press F5). If your system supports IPv6, try to access the server using its IPv6 link-local address or global address and discover your own IPv6 host address!
System Information
Board: | STM32F746ZG-Nucleo |
MAC Address: | 00-AB-CD-EF-07-A9 |
System Time: | 176h 44min 41s 767ms |
HTTP Connection
Remote Address: | 3.236.237.61 |
Remote Port: | 42410 |
Server Address: | 10.1.14.93 |
Server Port: | 443 |
Document URI: | index.shtm |
Query String: |
IPv4 Configuration
IPv4 Address: | 10.1.14.93 |
Subnet Mask: | 255.255.255.0 |
Default Gateway: | 10.1.14.1 |
Primary DNS: | 10.1.14.1 |
Secondary DNS: | 0.0.0.0 |
IPv6 Configuration
Link-Local Addr: | fe80::2ab:cdff:feef:7a9 |
Global Address: | :: |
Prefix: | ::/0 |
Router: | :: |
Primary DNS: | :: |
Secondary DNS: | :: |
AJAX stands for Asynchronous JavaScript And XML. In a nutshell, it is the use of the XMLHttpRequest object to communicate with servers. It can send and receive information in various formats, including JSON, XML, HTML, and text files. AJAX’s most appealing characteristic is its "asynchronous" nature, which means it can communicate with the server, exchange data, and update the page without having to refresh the page.
Current Temperature: Loading...
Current Atmospheric Pressure: Loading...
Current Humidity: Loading...
AJAX stands for Asynchronous JavaScript And XML. In a nutshell, it is the use of the XMLHttpRequest object to communicate with servers. It can send and receive information in various formats, including JSON, XML, HTML, and text files. AJAX’s most appealing characteristic is its "asynchronous" nature, which means it can communicate with the server, exchange data, and update the page without having to refresh the page.
Accelerometers measure linear acceleration. They can be also used for specific purposes such as inclination and vibration measurement. MEMS accelerometers embed several useful features for motion and acceleration detection, including free-fall, wakeup, single/double-tap recognition, activity/inactivity detection and 6D/4D orientation (more info).
MQTT (Message Queuing Telemetry Transport) is an open OASIS and ISO standard (ISO/IEC 20922) lightweight, publish-subscribe network protocol that transports messages between devices. It is designed for contexts where a "small code footprint" is required or the network bandwidth is limited.
Please follow the instructions below to access our live sensor data through MQTT:
- Open your favourite MQTT client. If you do not already have one, we can suggest MQTT.fx
-
Please use the following information to subscribe to our data feed:
- Broker address: mqtt.oryx-embedded.com
- Broker port: 1883 (MQTT unencrypted)
-
Topics:
- Temperature Data: oryx/demo/temperature
- Humidity Data: oryx/demo/humidity
- Atmospheric Pressure Data: oryx/demo/pressure
The WebSocket APILearn More is an advanced technology that makes it possible to open a two-way interactive communication session between the user's browser and a server. With this API, you can send messages to a server and receive event-driven responses without having to poll the server for a reply.
Click on the button below to receive a picture from the server.
This demo is secured using TLS 1.3, which is the most recent iteration of the Transport
Layer Security (TLS) protocol, which supersedes TLS 1.2. It is designed with improved speed
and performance as well as enhanced
connection security. In 2018, CycloneSSL stack became one of the first commercial embedded
TLS stacks to offer
support for TLS 1.3. For more information about the SSL configuration of this demo,
visit Qualys
Inc SSL Labs.
The Automatic Certificate Management Environment (ACME) protocol is a communications
protocol for automating interactions between certificate authorities and their users' web
servers,
allowing the automated deployment of public key infrastructure at very low cost. It was
designed by the Internet Security Research Group (ISRG) for their Let's Encrypt service.

Let's Encrypt certificate management workflow. (S = Signature, A = Authorized Key, LE =
Let's Encrypt)
image credit: Let's
Encrypt
How this demo is secured using Let's Encrypt & CycloneACME:
- Domain Validation: Let's Encrypt service identifies our demo using a public key. When our demo connected to the Let's Encrypt service for the first time, it generated a new keypair proving to the Let's Encrypt certificate authority that Oryx Embedded controls the domain under which our demo is hosted.
- Certificate Issuance and Revocation: Once we have generated a keypair, then we can easily communicate with Let's Encrypt service through CycloneACME for requesting, renewing and revocation of certificates. All API requests are signed with the authorized keypair generated in the previous step to securely communicate with Let's Encrypt service.
- Certificate Management: Once every two months, our demo sends a request to the Let's Encrypt service to renew our HTTPS server certificate. This process is completely automated thanks to CycloneACME.
Visit Let's Encrypt Docs for more information about this technology.