Developing for the embedded world is a really interesting challenge, as any object may become part of the Internet of Things (IoT). Even though you have “only” few dollars to put in your “Thing” to make it smart, you can still manage to run multiple IoT libraries on it. Using processors like the ARM Cortex-M also enables you to reduce your device’s power consumption and extend your device’s precious battery lifetime.
For my latest demo, I worked on a connected washing machine for both ARM Cortex-M and ARM Cortex-A boards. It could communicate using Bluetooth, MQTT, Z-Wave and LWM2M.
I managed to get many protocols running on the same ARM processor (ARM Cortex-M and Cortex-A), connecting the main board to two servers on a PC, two other ARM microcontroller boards (ARM Cortex-M0+, ARM Cortex-M4) and a couple of hardware elements (Z-Wave lights and the actual washing machine toy).
Thanks to MicroEJ, my main washing machine application is small, efficient and maintainable with elegant architecture choices, appealing with different GUI skins, internationalized with multiple languages, and portable so it can be reused on a wide range of hardware platforms.
A full description about this demo was featured in Eclipse Edje + Eclipse IoT: Towards a full IoT Stack for Microcontrollers.