Module overview
This module explores the devices, technologies and software that enable embedded Internet of Things (IoT) systems. Typical architectures of IoT systems are introduced, from microcontrollers to communications with Cloud components. We consider how these systems operate, are programmed, and how they are powered. We also consider the embedded operating systems used by IoT systems, e.g. RIOT-OS and MBED, which provide core libraries for IoT functionality. Students will also learn how to use typical IoT communications technologies, e.g. LoRaWAN (using our campus-wide base stations) and MQTT for passing data messages.
Aims and Objectives
Learning Outcomes
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Design and test an embedded IoT system
- Design, analyse and debug embedded IoT software
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- The architecture, operation, and constraints of an embedded IoT system
- Software development techniques and tools/frameworks for embedded IoT systems
- IoT system design and sensor networks
- Approaches for efficiently powering embedded IoT devices
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Consider the design trade-offs between different components of an embedded IoT system
- Program microcontrollers, such as those in embedded IoT systems
Transferable and Generic Skills
Having successfully completed this module you will be able to:
- Undertake practical laboratory experiments
- Effectively communicate technical work
Syllabus
*Architecture of Embedded IoT Systems*
- Typical device system architecture: microcontroller, sensors/actuators, transceiver, RTC etc
- Basic concepts: storage, input/output, peripherals, power supplies
- IoT radio communications
- Choice of microcontroller family
* Software for Embedded IoT Systems*
- Embedded programming in C: flow control, function decomposition, data representation and structures, structured programming, addressing memory-mapped IO, interfacing with IO, peripherals, timers and interrupts
- Introduction to Micropython
- Software debugging and testability
- Cross compilation
- Operating systems for IoT devices (e.g. RIOT-OS, mbed)
*Powering the Internet of Things*
- Energy for computing and communication, power budgeting, duty cycling
- Battery-powered and self-powered (energy harvesting) system design
*IoT System Design*
- MQTT and CoAP: principles and capabilities
- LoRaWAN, 6LowPAN: how embedded IoT communicate with the Cloud
Learning and Teaching
Teaching and learning methods
Syllabus material will be taught through the module’s lectures, directed reading, and supervised laboratory sessions. Learning will be through a combination of reflection and independent study alongside the taught sessions, coursework, and laboratory sessions.
| Type | Hours |
|---|---|
| Lecture | 30 |
| Assessment tasks | 40 |
| Tutorial | 6 |
| Practical classes and workshops | 15 |
| Preparation for scheduled sessions | 15 |
| Revision | 24 |
| Independent Study | 20 |
| Total study time | 150 |
Assessment
Summative
This is how we’ll formally assess what you have learned in this module.
| Method | Percentage contribution |
|---|---|
| Final Assessment | 60% |
| Coursework | 40% |
Repeat Information
Repeat type: Internal & External