- ✓An IoT system typically consists of sensors and actuators at the edge, gateways that aggregate and forward data, and cloud or on-premise platforms that process and store it.
- ✓MQTT is a lightweight publish-subscribe protocol designed for IoT devices with limited processing power and unreliable network connections.
- ✓Resource constraints including limited memory, processing power, and battery life impose significant design constraints on IoT software.
- ✓Security is a critical concern in IoT design; many breaches have exploited poorly secured connected devices to gain access to wider networks.
- ✓IoT devices generate enormous volumes of data; decisions about what to process at the edge versus what to send to the cloud are central to effective IoT architecture.
Listen to the full episode inside the course. Enrol to access all 80 episodes, plus assignments, tutor support and Student Finance funding.
Start learning →Alex: We're starting Unit 14: Internet of Things today. Sam, IoT is everywhere in the news. What does a computing student need to understand about it?
Sam: The IoT represents a fundamental shift in how computing relates to the physical world. Instead of computing being something you do at a desk, IoT means that sensors, processors, and connectivity are embedded in physical objects everywhere: home appliances, industrial machinery, vehicles, agricultural equipment, and medical devices. A computing student needs to understand the architectural patterns, the connectivity technologies, the software development challenges, and the significant security and privacy implications of this shift.
Alex: Let's start with the architecture. How is an IoT system structured?
Sam: A typical IoT architecture has three main layers. At the edge, you have the devices themselves: sensors that measure physical quantities like temperature, pressure, or motion; actuators that take physical actions like switching a relay or driving a motor; and often a local microcontroller that processes data and communicates with the next layer. The middle layer consists of gateways, which aggregate data from multiple devices, potentially perform some local processing, and relay data to the cloud. The cloud or back-end layer provides data storage, processing, analytics, and the application that users interact with.
Alex: What protocols are used to connect IoT devices?
Sam: MQTT, Message Queuing Telemetry Transport, is the most widely used protocol for IoT device communication. It's a publish-subscribe protocol designed for environments with limited bandwidth and unreliable connectivity: an IoT device publishes messages to a broker on a topic, and any subscriber to that topic receives the message. It's lightweight, which is important for resource-constrained devices, and handles unreliable connections gracefully.
Alex: What makes software development for IoT different from conventional application development?
Sam: Several things. Resource constraints: IoT devices often have very limited memory, processing power, and battery life, which places significant constraints on the software. You can't run a full Linux operating system and a Python application on a small sensor; you need to write efficient code for a microcontroller. Connectivity reliability: IoT devices may have intermittent connectivity and the software needs to handle disconnection gracefully, buffering data locally when connectivity is lost. And the long operational lifetime of IoT devices, which may be deployed for years or decades, means software updates need to be managed remotely and reliably.
Alex: And security? That seems like a particular challenge.
Sam: Security is the most pressing concern in IoT, and the industry's track record has been poor. Many IoT devices have been shipped with default credentials that users don't change, no support for encrypted communications, no mechanism for software updates, and poor physical security. This has led to IoT devices being compromised en masse and used in botnets, and to IoT connectivity being used as a route into broader enterprise networks. Security must be designed in from the outset, not bolted on afterwards.
Alex: Brilliant. Thanks Sam. Next we look at planning an IoT application.