Cumulocity offers a wide range of functionality for interfacing IoT devices and other IoT-related data sources with the Cumulocity IoT platform.
This Device SDK guide provides detailed information on device integration using MQTT, REST and C++.
For interfacing devices with Cumulocity, we recommend to use MQTT and SmartREST, which can be very efficiently implemented using available MQTT client libraries such as Eclipse Paho.
An up-to-date open source reference implementation of a Cumulocity agent for embedded Linux systems with many device management features can be found at https://bitbucket.org/m2m/cumulocity-agents-linux. Note that the reference implementation currently uses SmartREST 1 with the choice to switch between HTTP and MQTT as transport protocol.
For information on the general concept of agents being used for interfacing IoT data sources with Cumulocity, refer to Interfacing devices in the Concepts guide.