The Electric Imp Platform is a highly secure foundation for Internet of Things (IoT) applications.
The Electric Imp Platform starts with the imp, a range of powerful modules which offer communications (via WiFi, Ethernet and cellular, depending on the model) and the capability to run your application. The combination of the imp module, your imp-hosted application code and your peripheral hardware — for example, sensors, actuators and displays — forms the device: your product and the ‘thing’ in Internet of Things parlance.
Each device, no matter what kind of imp it contains, has a unique identifier: its device ID. This ID is exposed to the program code which runs on the device’s on-board imp, and to the server-based agent code. Devices are initially represented in Electric Imp impCentral™ by their IDs, though for convenience impCentral allows each device to be given a more human-friendly alias.
Every device is paired with its own agent, a go-between hosted within the impCloud™ which mediates and secures all of the device’s communications with Internet-connected resources, including your own and third-party servers, and the mobile app you will provide to your end-users to allow them to interact with their device. The agent is also a powerful micro-server that is able to host a web interface of its own.
Agents can make use of both rich REST APIs to interact with web services and messaging protocols such as MQTT, and they themselves have a rich set of capabilities to manage and parse incoming HTTP requests. Each agent is accessed through its unique agent URL. The URL is not made public, but provided on a ‘need to know’ basis. Customers can layer security on top of their APIs to suit their application.
The agent is entirely customizable. Just as you develop the software which runs on the device to process local input and output, so too you develop agent code. Together, agent code and device code form your unique Electric Imp application. Both your agent and your device code run securely in virtual machines hosted by, respectively, the device-side impOS™ and our impCloud-hosted agent server. Each of these application components are able to take advantage of our rich application foundation, the imp API.
In addition to your agent and device code, some applications will also make use of a mobile app, used by the end user to provision devices in the field. This app will typically integrate BlinkUp™ technology. BlinkUp is our patented device configuration and enrollment system, which transmits local network setup information and device-authorization data optically from the mobile display to the device. For imps that support BLE, this secure provisioning step can be carried out over BLE too.
When a new end-user device is configured with BlinkUp, it connects to the Internet and obtains permission to access the impCloud. At this point, a dedicated instance of your agent code is started, and your mobile app is informed that device enrollment was successful. This is in addition to and separate from any account system of your own implemented in the app. End-users do not require an Electric Imp account.
You use the BlinkUp SDK to incorporate BlinkUp into your mobile app, but this is required only for end-user devices. During development, you add your imp-based hardware to your own Electric Imp account using Electric Imp’s own mobile app.
Extend your knowledge of the Electric Imp Platform with the following documentation.