Example of a proof of concept
To visualize the entire proof of concept process, let's look at how to integrate the components into an example use case: you want to monitor a high value asset over CANBus. This requires using Arm tools to bring all four IoT elements together into a single product: hardware, software, connectivity and security.
Hardware and connectivity selection
In this example, the asset is stationary but may not have wired access to network infrastructure. It therefore requires medium or short-range connectivity - you won't know exactly which when you manufacture it, because you won't know where it might by deployed.
To get started, you need:
- An Mbed OS development board that supports:
- Device Management Client.
- An expansion shield for Wi-Fi connectivity to Device Management.
- A BLE shield to enable a mobile application that can provide Wi-Fi credentials to a deployed device.
In this example, we're using the following hardware (all supported by Mbed OS):
|The NUCLEO-F429ZI has two CAN interfaces to support CANBus. It also has 144 pins, including Arduino headers to support expansion shields for additional connectivity. It meets all of the Device Management Client requirements, so it can use it to directly connect to Device Management.||The WizFi310 Wi-Fi shield from WIZnet provides Wi-Fi.||The X-NUCLEO-IDB05A1 BLE shield from ST provides BLE.|
In the above diagram, you can see what the topology of this proof of concept might look like. On the device itself, you can see the building blocks of the device firmware that are already provided for you:
- The reference bootloader for the NUCLEO-F429ZI, included in Mbed OS.
- Mbed OS and its drivers, which interface with the device's hardware.
- Device Management Client library, which provides connectivity to the Pelion Device Management platform.
- Wizfi310 Wi-Fi driver and BlueNRG driver, provided by our partners. You need to import them into the project directory of your application.
Getting software components
An easy way to start working with Mbed OS and Device Management Client is the Device Management Client reference application. It includes the following components:
- The newest version of Device Management Client.
- A compatible version of Mbed OS that supports the NUCLEO-F429ZI and includes a bootloader.
- The Update Client to enable firmware update.
Additionally, you will need to configure your application to use the correct Wi-Fi driver and Arm Mbed BLE APIs. See the Mbed OS configuration system documentation for more information on how to configure your application.
The application code
Your application code needs to bring all of these components together:
- Use the Device Management Client to define all of the Lightweight Machine-to-Machine (LwM2M) resources, as well as the logic to update and react to these resources. Please see the documentation on Resource setup for more details.
- Use Mbed OS to interface with the asset over CANBus.
- Use the LwM2M resources mentioned above (from the Device Management Client library) to access data from the device.
- Use the Wizfi310 library to add connectivity. You can do this using the Mbed OS configuration system.
- Use the Arm Mbed BLE APIs to build the logic necessary to commission the device for Wi-Fi networks. You can see our Bluetooth examples for guidance.
Finally, you need to provide the certificates for your device to securely connect to the Device Management server. Because this guide uses the developer workflow, you can easily generate these certificates in both Mbed CLI and the Online Compiler.