The University of Sheffield
Department of Computer Science

COM3505 The Internet of Things

Summary Low cost networked computers add eyes and ears (or sensors) and arms, legs and voices (or actuators) to the Internet. These devices are then connected to on-line 'brains' (using big data, machine learning and analytics in the cloud). This field is called the Internet of Things (IoT). Will the result be a 'world robot'?! No matter, in a world of many more devices than people, engineers who know how the new tech works and how to secure it will be in high demand. The COM3505 module covers the context and history of the IoT, the hardware, communications protocols and security systems it relies on, and the cloud-side analytics that make sense of the data produced. It gives practical hands-on experience of common IoT devices (sensors, actuators, microcontrollers), and look at a range of commercial platforms. Each student is given an ESP32 wifi microcontroller to keep and we program live IoT applications using that device. Students will have the opportunity to use the Diamond electronics lab and the iForge project space to complete their own IoT device with a range of hardware and capabilities. [Students should be competent programmers to take this course, be ok using Git and the command-line, and be aware that there are limited places available].
Session Spring 2023/24
Credits 10 credits
Assessment
  • Assessed Labs
  • Formal examination

Lab 1 & the exam are Pass/Fail, Grading based on Lab 2

Lecturer(s) Prof. Hamish Cunningham
Resources
Aims

This module aims to...

  • prepare students for tasks that commission, design and develop Internet of Things (IoT) technologies
  • cover a broad range of IoT history, approaches, commercial devices and platforms
  • deliver practical experience programming IoT devices, capturing their data and developing visual analytics of that data
Learning Outcomes 

By the end of the module, a student will be able to...

  • summarise the history and development of the Internet of Things (IoT)
  • analyse and evaluate competing approaches to IoT devices and platforms
  • create an IoT device that operates within tight compute and cost constraints
  • capture IoT device data in the cloud and analyse that data
  • demonstrate a practical application of an IoT device
Content
  • Week 1:
    L1: Click Here to Kill Everyone
  • Week 2:
    L2: Revolutionary Code: from MIT Printers to the Arduino
  • Week 3:
    L3: Small but Perfectly Formed... Digging into the ESP32
  • Week 4:
    L4: Country of the Blind: Networking Devices Without UIs
  • Week 5:
    L5: Sensing and responding
  • Week 6:
    reading week / lab assessment 1
  • Week 7: mock exam;
    L6: Connectivity and Provisionning: Joinme/WiFi, Sigfox, LoraWan and NB-IoT
  • Week 8:
    L7: unPhone Yourself - an IoT Projects Platform
  • Week 9:
    L8: Projects Q&A
  • Week 10:
    L9: WaterElves, Gripples and Fish Poo: IoT Case Studies
  • Week 11:
    L10: IoT: Review
  • Week 12:
    lab assessment 2 (projects); exam
Restrictions Maximum capacity of 120 students; these will be considered and accepted on a first request basis. Students should be competent programmers to take this course and capable of using Git and the command-line.
Teaching Method One hour lecture each week and two hours labs, mainly based in the Diamond electronics lab.
Feedback During lab sessions and via mock exam.