Quick IoT connectivity from specialized development kits
Specifically designed development kits provide hardware, software, firmware and tools for the IoT system, letting the developer concentrate entirely on the application development for his unique implementation. With such a wide variety of development kits available, getting an IoT system up and running has never been easier.
By Mark Patrick, Mouser Electronics Download PDF version of this article
The Internet of Things (IoT) is the main topic of conversation throughout the industry at the moment. Some experts will tell you that it is the next big thing, while others will tell you that it is already here. Whatever side of the discussion you are on, it is important to understand the concept behind the IoT and how it is supposed to benefit designs.
In its purest of forms, the IoT is all about connecting things (non-human) together to make decisions as quickly and accurately as possible. The things can come in many different forms – from smart objects, such as phones and watches, to small standalone nodes, the size of a postage stamp, but in general they all have common components and traits. These things are part of a larger system, and they generally acquire data from the environment through sensors, the data is then processed by a microcontroller and the processed data is sent back to a node to be passed on through the Internet to a server, which then may make a decision to take action on the data, or store it for future use.
Designing products for the IoT is much the same as designing microcontroller-based products for any other application; usually the first step is choosing the correct development kit, and to do that requires a thorough understanding of the target application. For IoT applications there could be three different types of projects. Cloud Connected: these projects can be the largest of all. They have the potential to connect systems from around the world to a cloud infrastructure. The cloud is made up of servers using dedicated software to analyze and process the data collected from the systems. Local Networked: these systems are generally a set of systems tied to a single location and may use a local intranet to communicate. Gateways: gateway systems are often used to retrofit existing systems to the Internet.
Developing products for cloud-connected systems highlights the main differences between developing for the IoT and developing a traditional embedded system. As mentioned already, the cloud consists of one or more servers to provide storage and services for the overall system. The nodes that make up the things of the IoT connect to these cloud servers. While the nodes gather the data, the cloud stores the information to build a historical picture of the operation of the system, and analyzes and processes the data in real-time to tailor the system to its optimal efficiency.
Trying to build a cloud connected IoT system from the ground up has the potential to be a daunting task. It could be expensive and time consuming and require expertise in many different engineering disciplines. The servers need to be set up with hardware and software. Drivers and application code would also be required for both the server and the IoT node. The hardware would need to be designed for the node. After this, the whole system would be required to be tested and debugged to ensure the connectivity between the servers and the node was seamless. All the tasks described would need to be completed before the application code for the system was written. Luckily for developers, there are cloud development tools available that can provide an ecosystem with various connectivity options and application code that already has been tried and tested. These tools can allow the developer to get a prototype up and running in a short amount of time – sometimes under a day.
To give an example of the different options that one manufacturer can offer developers, Intel has two boards designed to facilitate cloud development, or even be used as end devices. The Intel Edison measures only 25 mm x 35.5mm, enabling it to be integrated into products that need to be situated in small areas. Although small, the board packs a powerful punch through its 22nm Intel Atom SoC with a dual-core, dual-threaded CPU running at 500MHz, as well as a 32-bit Quark MCU running at 100MHz. The processors are supported by ample memory of 4GByte flash and 1GByte RAM. To provide the connectivity required for IoT applications, WiFi and Bluetooth are included. To support the board and make the server aspect of the system easier to integrate, Intel offers Intel IoT Analytics Cloud Server. This allows to collate, store and analyze data from the Edison without having to develop a custom server solution. The cloud server also acts as a development tool. To support application development and debug on the Edison, Intel provides an Arduino development environment.
Figure 1. The Intel Galileo development board
The second Intel IoT board is larger and offers more features over the Edison. The Intel Galileo Gen 2 Arduino-certified board has a 400MHz 32-bit Intel Quark X1000 SoC at its heart and offers a raft of common embedded connectivity options, including SPI and UART. Connection to the Internet is taken care of with 10/100 Ethernet. As with the Edison board, the Galileo 2 is supported in the cloud by IoT Analytics Cloud Server. Both the Edison and the Galileo 2 development kits allow the gathering and transportation of data, with easy integration to cloud services. They are basic kits that offer easy initial migration to IoT development, but in some cases a more comprehensive solution with more powerful features may be required.
Microchip take the IoT concept a stage further with a cloud development platform that uses Amazon Elastic Compute Cloud (EC2) infrastructure. EC2 allows communication in both directions, both from the node to the cloud and back from the cloud to the node. This ability allows the Microchip development platform to be controlled directly from the cloud without any human intervention whatsoever.
The main difference between developing for cloud systems and locally networked IoT implementations is that the local network may not necessarily require a TCP/IP communications link like Ethernet or WiFi. Bluetooth and Zigbee are two very popular standards which can be used for this type of networking and have other useful features such as lower power consumption and more resistance to industrial interference.
The Texas Instruments (TI) CC2650STK SimpleLink Bluetooth Smart SensorTag loT Kit is a good example of a development kit intended for a local network IoT application. The kit allows the developer to gather information as well as process the data and send it on. To facilitate the gathering, the board includes ten sensors for different applications including acceleration, temperature and ambient light measurement. The kit can also use an Android or iOS app, which connects to the development kit via Bluetooth. The app is used to display the readings from the sensors and provide basic analytics. It can also be used to control the sensors.
Another kit that provides a similar set of capabilities is the Sensor Puck from Silicon Labs. This kit offers a wide variety of sensors for ambient light, UV index, ambient temperature and humidity. The Sensor Puck kit also boasts an app for iOS or Android, which is connected to the board through a Bluetooth Low Energy (BLE) link. A useful feature on the Sensor Puck board is support for BLE broadcast, which can allow the app to collect data from multiple Sensor Puck kits. The developer can then write an application that analyzes the data from multiple sources.
Figure 2. The XBee ZigBee Cloud Kit translates the ZigBee data into TCP/IP packets and forwards it to the Cloud via Ethernet or WiFi.
Gateway devices allow data to be sent to the cloud from devices that are not able to support TCP/IP connections. These devices communicate using wireless standards like ZigBee instead of WiFi or Ethernet. Because ZigBee isn’t based on TCP/IP, it doesn’t assign IP addresses. Therefore, if the developer wants to send the data over the Internet without the extensive time and money penalties that bespoke development would bring, a gateway has to gather the information from the ZigBee network and translate it. For these types of applications, Digi has launched its XBee ZigBee Cloud Kit. The Cloud Kit translates the ZigBee data into TCP/IP packets and forwards it to the cloud via Ethernet or WiFi. Digi has a sponsored device cloud account to host the data uploaded from the gateway. The developer can then use a browser to access the cloud control panel and interact with the data through the XBee Cloud Kit. Intel also has a solution for gateways, intended for IoT designs that are more complex. As well as supporting 10/100/1000 Ethernet and WiFi, the DK300 Series Gateway Solution also can send data to the Internet through cellular 2G/3G/4G. To gather the initial data from the nodes, the gateway boasts Bluetooth, USB, serial ports and ZigBee.
A developer starting from the ground up will have to consider the cost and time to design the complete system, as well as the numerous different types of specialist skills that are required to implement such a system. The company would have to have access to personnel with expertise in wired and wireless communications, embedded hardware and software design, and driver development for the data gathering nodes, as well as the skills such as cloud and mobile app development for the IT side of the system.