Article

Key concepts and skills for getting started in IoT

Do you have what it takes to be successful in IoT?

By

Anna Gerber,

Jim Romeo

The Fourth Industrial Revolution, or Industry 4.0, is the fourth major industrial shift since the Industrial Revolution of the 18th century. It is preceded by three others: the first involved coal and steam; the second evolved through electricity and the automobile; the third followed with the computing explosion called the Internet of Things (IoT). IoT is the bedrock of Industry 4.0, and uses a network of interconnected devices to deliver data via the Internet. IoT is used across a broad range of industries: healthcare, manufacturing, automotive, retail, and building automation, among others.

The value of IoT is recognized in its capture of big data used to drive decisions and improve operational efficiency. With the pace of rapid IoT adoption, the demand for skilled IoT developers rises in tandem, as IoT transforms the way we live and work.

Developers who want to make the most of the opportunities of IoT should foster skills across a range of key topic areas including:

  • Hardware
  • Networking
  • Application design
  • Application development
  • Security
  • Data and artificial intelligence (AI)

Hardware

At the heart of IoT are connected devices. These include digital-first devices, which connect with other devices (machine-to-machine), and physical-first devices, which has embedded circuitry on a sensor, which transmits to a specified destination – a dashboard, remote monitoring platform, or other central point of data reception. Data includes images, text and other parameters, which serves to provide information.

The devices, with their sensors and properties, involve knowing a bit about hardware design. The interconnectivity and overall network configuration entails network design skills. Both types of designs may use engineering design software and integrate with other software to form a highly intelligent network of devices, machines, and systems, all coordinated to achieve design objectives and provide intelligent information.

Device design includes process and storage capability. Devices may use either a microcontroller or a more detailed System-on-a-Chip (SoC), which combines more components such as a CPU and I/O devices with an integrated circuit.

IoT devices are embedded and must be designed with respect to salient characteristics of intended design objectives. These characteristics include:

  • Environmental conditions
  • The type of sensors to be used
  • The volume of data to be aggregated
  • The required power, range, and speed afforded by the device design
  • The unit cost of the devices and their total cost of ownership

IoT device design may be prototyped using platforms such as Arduino or single-board-computers like the Raspberry Pi, with custom printed circuit boards (PCBs) developed at a later stage.

Prototyping with these platforms requires circuit design skills, as well as micro-controller programming, and an understanding of hardware communication protocols like serial, I2C, or SPI that are commonly used to establish communication between the micro-controller and the connected sensors and actuators. The embedded programs are often developed using C++ or C, however Python and JavaScript are becoming more popular for prototyping IoT devices.

Networking

Connectivity is another key aspect of IoT, which enables devices to communicate with other devices as well as communicate with applications and services that are running in the cloud. Network design and management are essential skills within IoT, due to the sheer volume of connected devices and due to the impact that network design decisions can have at scale.

For example, mesh networks are a highly scalable and robust network topology design, and are frequently adopted within IoT; however, the distributed nature of mesh networks makes the system more complex and also increases latency and power requirements for each of the devices in the network.

In addition to network design, developers should have a working knowledge of network standards, protocols, and technologies. These include Wi-Fi, Low Energy Bluetooth, Zigbee, cellular, RFID technologies that are used in consumer applications, and Low Power Wide-Area Network (LPWAN) technologies like LoRa. LPWAN also includes SigFox and NB-IoT (narrow band IoT) that offer lower cost, low-power long-range wireless connectivity, which are better suited to large-scale and industrial IoT applications.

Application design and development

Web and mobile applications provide user interfaces for interacting with and consuming data from IoT devices. IoT devices, however, may have their own user interfaces (UIs). Voice-based and gesture-based interfaces are gaining traction within IoT, particularly for home automation, while augmented reality interfaces provide exciting possibilities for overlaying IoT data over the physical world. As a result, UI and UX design skills are some of the hottest skills in IoT right now.

Web and mobile applications are developed using high-level languages, with Java, Swift, and Node.js among the top languages for IoT app development. GPS programming skills are in particular demand, as many IoT applications, including wearables and smart vehicles, are location-aware. Developers should keep track of emerging frameworks and developer kits that they can leverage for rapid prototyping, as well as IoT platforms that provide infrastructure and tools to help automate building, deploying, managing, and operating IoT applications.

Security

Cybersecurity is paramount in any IoT discussion. IoT devices are quite vulnerable to security compromises. Many enterprises have reported being attacked. Others may well have been attacked, without even knowing it.

Operational technology - IoT devices and their networks - are at great security risk. Such risk, however, is often addressed in the mix of ordinary IT department cybersecurity measures. This may not suffice. Organizations that use IoT should employ distinct policies for operational technology, disparate from other networks within the organization. This should include drills, incident response, disaster recovery plans, and specific policies for ransomware attacks.

Security must be built-in at every step of the design of the system, not added as an afterthought. Critical issues that are closely related to security include data ethics, privacy, and liability.

IoT security considerations should include, at a minimum:

  • Endpoint access
  • Data encryption where necessary
  • Appropriate authentication

As millions of new devices enter the IoT landscape each day, the gateways of attack grows. IoT devices have been used to launch Distributed Denial of Service (DDoS), as well as other severe and damaging attacks.

For IoT security guidance, the National Institute of Standards and Technology (NIST) Framework for Improving Critical Infrastructure Cybersecurity is recommended.

With so much at stake, security engineering skills are highly regarded within IoT. These include threat assessment, ethical hacking, encryption to ensure data integrity, securing network architectures and applications, as well as event monitoring, activity logging, and threat intelligence.

Data and AI

Artificial Intelligence (AI) has become an intrinsic part of IoT networks. This is due to a proliferation of data, the application of better, tailored, algorithms to such data, and the improvement in the power and storage capabilities of devices.

Intelligent big data analytics involves applying cognitive computing techniques drawn from data mining, modeling, statistics, machine learning, and AI. These techniques can be applied in real time to sensor data streams for predictive analysis or to autonomously make decisions in response to incoming data and can also be applied to historical data to identify patterns or anomalies in the data.

Many IoT devices generate latency or time-sensitive data, so it is necessary to filter or discard irrelevant data. Key technologies and platforms for data analytics that IoT developers should develop skills in include Hadoop, Spark, and NoSQL databases.

IoT developers, now and into the future, will require greater machine learning and AI skills.

Are you ready to get started developing IoT solutions?

The technologies involved in developing IoT applications are rapidly evolving. Developers should be prepared to cultivate a diverse set of skills, and be agile and willing to adapt to new processes, platforms and tools.