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
Transferable and Generic Skills
Having successfully completed this module you will be able to:
- Effectively communicate technical work
- Undertake practical laboratory experiments
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- Approaches for efficiently powering embedded IoT devices
- IoT system design and sensor networks
- Software development techniques and tools/frameworks for embedded IoT systems
- The architecture, operation, and constraints of an embedded IoT system
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Program microcontrollers, such as those in embedded IoT systems
- Consider the design trade-offs between different components of an embedded IoT system
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 |
|---|---|
| Practical classes and workshops | 15 |
| Assessment tasks | 40 |
| Revision | 24 |
| Preparation for scheduled sessions | 15 |
| Independent Study | 20 |
| Lecture | 30 |
| Tutorial | 6 |
| Total study time | 150 |
Assessment
Summative
This is how we’ll formally assess what you have learned in this module.
| Method | Percentage contribution |
|---|---|
| Coursework | 40% |
| Final Assessment | 60% |
Repeat Information
Repeat type: Internal & External