Case study: IoT air disinfection device
BACnet beside AWS IoT on an ESP32 air disinfection device with FreeRTOS
An IoT air purification maker runs the CAS BACnet Stack on an ESP32 with FreeRTOS, so the same device reports temperature and occupancy to building management systems over BACnet and to the cloud through AWS IoT.
The challenge
An IoT device lives in two worlds. Its maker wants the data in the cloud for its own dashboards and analytics; the building it sits in wants the same readings in the building management system, which speaks BACnet.
The device was already an ESP32 running FreeRTOS and talking to AWS IoT. Adding BACnet had to fit beside that on the same small microcontroller, without a second processor.
Why the CAS BACnet Stack
- The CAS BACnet Stack runs on the ESP32 under FreeRTOS, compiled with the embedded build target so only the services and objects the device uses take memory.
- The stack never owns the data or the network: the device supplies values and a socket through callbacks, so the same readings feed both AWS IoT and BACnet.
- Source is included and royalty-free, which suits a connected device sold in volume.
The solution
- Temperature and occupancy sensors
- ESP32 with FreeRTOS
- CAS BACnet Stack (BACnet server) and an AWS IoT client
- Building management system and AWS IoT
The CAS BACnet Stack runs in a FreeRTOS task on the ESP32 as a BACnet server, presenting its temperature and occupancy readings as BACnet objects. The same firmware sends the readings to AWS IoT.
The building management system sees an ordinary BACnet device. The cloud sees an ordinary IoT device. It is one board.
Results
- Building management systems read the device’s temperature and occupancy data over BACnet.
- The same device reports to AWS IoT, with no second processor.
More of what manufacturers build with it
- HVAC controller: BACnet/IP in a commercial equipment controller
- Ultra-low temperature freezers: a BACnet/IP server on a TI AM335x Linux controller
- Fan coil units: a BACnet MS/TP server on an STM32 with an RTOS
- Lighting and shading control: a BACnet/IP server on a DIN-rail ESP32
- Air curtain controller: BACnet/IP and BACnet MS/TP on embedded Linux
- Compressor fleet management: BACnet/IP on a custom ARM controller
- Digital twin for data centers: the BACnet API inside a software platform
Have a similar project?
Building something like this?
Tell Chipkin your platform, whether your device is a BACnet server or a client, and the data link you need. A Chipkin engineer replies with how the stack fits and where to start.
- Consultation: talk directly with BACnet specialists about your project.
- Run an example: every profile example project publishes a Windows and a Linux binary.