The Internet of Things (IoT) stands to be the next revolution in computing. Billions of data-spouting devices connected to the Internet are already fundamentally changing the way we live and work. This course teaches a deep understanding of IoT technologies from the ground up. Students will learn IoT device programming (Arduino and Raspberry Pi), sensing and actuating technologies, IoT protocol stacks (Zigbee, 5G, NFC, MQTT, etc), networking backhaul design and security enforcement, data science for IoT, and cloud-based IoT platforms such as AWS IoT. Students will be guided through laboratory assignments designed to give them practical real-world experience, where they will deploy a distributed wifi monitoring service, a cloud-based IoT service platform serving tens of thousands of heartbeat sensors, and more. Students will emerge from the class with a cutting-edge education on this rapidly emerging technology segment, and with the confidence to carry out tasks they will commonly encounter in industrial settings. Important: This whole series of courses consists in part of practical experimentation using actual hardware, which you will need to acquire. (Cost may vary between 100 and 200 USD depending on your location). Most parts that are needed for the first course, will be re-used in the following courses.
Week 1: Orientation, Basics and Lab instructions
Welcome to our first course on Internet of Things! You will become familiar with the course and our learning environment. The orientation will also help you obtain the technical skills required to navigate the course.In this week you'll see that The Internet of Things is amazing, but it's not like it's some completely new thing. The amazing devices and technologies being are made up of systems, protocols, and architectures that have been around for decades. So in order to understand IoT, it's important to understand some key pieces of the Internet. We'll also get you started on the lab project - the best way to get your hands on things. In this practical lab we will guide you to gain experience with Internet of Things devices. You will do this by implementing a 2019 Honda Civic. In particular, you will be implementing a vehicular network and computation infrastructure comparable to that in the 2019 Honda Civic. Your infrastructure will perform real-time communications within the automobile to perform life-saving features such as obstacle avoidance and lane departure mitigation. Doing this will give you strong experience in programming IoT components, as well as teach you about vehicular networks, an emerging powerful use case for IoT.
Week 2 - Devices: IoT circuits
In this week we will describe the foundational notions of electricity and IoT circuits you will need to build real IoT devices. We will start off by describing what electricity is and how it flows through electronics. We will present what electronic components are out there, how to choose the set you need for your target system, and how to construct the circuitry between them to build the logic underlying your device.
Week 3 - IoT Devices Architecture
In computing, we have the concept of architecture as well. You don't just design computing systems. In this module, you will learn about how IoT systems are architected. We will start off by describing the higher-level components used to build IoT systems such as ICs and breakout modules. We will present computational platforms used in constructing real IoT devices, typical components used therein, and alternative designs used to connect them together.
Week 4 - Devices: Arduino Programming and Lab Submission
In this week, we will study the design of IoT platforms - how their components are assembled together, and how software running on top orchestrates their actions to perform their intended purpose. We'll also collect your submission of the lab project you started in week 1.