M2M & IoT Interface Design & Protocols for Embedded Systems (Coursera)

M2M & IoT Interface Design & Protocols for Embedded Systems (Coursera)

This course can also be taken for academic credit as ECEA 5348, part of CU Boulder’s Master of Science in Electrical Engineering degree. M2M and IoT Interface Design and Protocols is the third of three classes in the Embedded Interface Design (EID) specialization, an online version of the on-campus EID class taught in graduate embedded systems design. This course is focused on connecting devices to each other and to the cloud to create prototypes and actual systems that flow data from devices to consumers. The class includes an introduction to M2M (Machine-to-Machine) and IoT (Internet of Things) concepts, using the cloud to develop IoT systems (specifically AWS (Amazon Web Services) and its IoT framework), a review of common communications protocols at every level of connected devices, and other IoT design concerns such as security, message queuing approaches, and the use and design of APIs and microservices .

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

The content ranges from general design best practices to specifics for select tools and methods, but all are presented to support developing embedded devices in IoT applications. The class includes practical projects that let you try some of standard methods in software development of prototype graphical user interfaces for devices using AWS, Python, and optionally Node.JS. This course can be taken for academic credit as ECEA 5348, part of CU Boulder's Master of Science in Electrical Engineering degree.
Course 3 of 3 in the Embedded Interface Design Specialization

Syllabus

WEEK 1
Introduction to M2M & IoT
An introduction to M2M (Machine-to-Machine) and IoT (Internet of Things) definitions, differences, and the importance of these elements in modern use and industry. Also a review of basic cloud architectures, and related terms and concepts. We also review system design and architecture tools like UML, use cases, and architectural patterns. Finally, we look at the class projects for demonstrating IoT and cloud-connected (virtual) devices and systems, and start to prepare for working with AWS, Python, and Node.JS.

WEEK 2
Cloud for IoT
Review of key protocols and elements to build cloud-connected IoT systems, including the most common IoT application protocols that connect devices to the cloud - MQTT, CoAP, WebSockets. We then examine what cloud systems must provide to support IoT design, elements like over-the-air updates, digital twins, and serverless processes. Finally we review the make up of one of the most complete cloud environments, AWS, and also look specifically at how it provides a framework for IoT connected devices and systems. We also provide the first cloud-connected IoT coding exercise for the course.

WEEK 3
Communications Protocols
This module focuses on connections between devices and the protocols that enable those connections at several levels. We start at the board level of devices, and then look at low-level communications with protocols such as I2C, SPI, and UART. We then move up into personal, local, and wide area network protocols, both wired and wireless: Ethernet, USB, WiFi, Zigbee, etc. Finally we look specifically at long distance protocols for devices that will run on batteries for over ten years - cellular protocols like LTE-M and NB-IoT, and non-cellular protocols such as LoRaWAN and SIGFOX. We'll also create a second program to extend the first coding exercise to explore other cloud services and APIs.

WEEK 4
Other Cloud and IoT Elements
Here we review the final elements that we will include in our tool sets for designing cloud-connected IoT systems. We will look at alternative cloud platforms to AWS, both commercial and open source. We consider cybersecurity issues for IoT devices and systems, ways to test, harden, and prepare our systems for public exposure. And we consider some underlying software technologies that enable the structure of an IoT system: message queuing, APIs, and microservices. We will close with peer review of ours and other's coding exercises, and (optionally) prepare for the final exam.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Moving to the Cloud (Coursera) Coursera
University of Melbourne

Moving to the Cloud (Coursera)

The cloud is taking business by storm. In fact, due to the extraordinary growth of the cloud, it has been described as a tornado, not a fluffy white floating object! Commercial research analysts consider cloud as one of the most significant trends with a potential to change the whole global IT industry. Governments, including those in the US, Britain, and Australia, have cloud-first policies now in place which mandate cloud over non-cloud services in ICT procurement.

Jun 15th 2026
5-12 Weeks
Configuration Management and the Cloud (Coursera) Coursera
Google

Configuration Management and the Cloud (Coursera)

In this course, you’ll learn how to apply automation to manage fleets of computers. You’ll understand how to automate the process for deploying new computers, keeping those machines updated, managing large-scale changes, and a lot more. We'll discuss managing both physical machines running in our offices and virtual machines running in the Cloud.

Jun 16th 2026
4 Weeks
Python Programming Essentials (Coursera) Coursera
Rice University

Python Programming Essentials (Coursera)

This course will introduce you to the wonderful world of Python programming! We'll learn about the essential elements of programming and how to construct basic Python programs. We will cover expressions, variables, functions, logic, and conditionals, which are foundational concepts in computer programming. We will also teach you how to use Python modules, which enable you to benefit from the vast array of functionality that is already a part of the Python language. These concepts and skills will help you to begin to think like a computer programmer and to understand how to go about writing Python programs.

Jun 15th 2026
4 Weeks
Python Data Representations (Coursera) Coursera
Rice University

Python Data Representations (Coursera)

This course will continue the introduction to Python programming that started with Python Programming Essentials. We'll learn about different data representations, including strings, lists, and tuples, that form the core of all Python programs. We will also teach you how to access files, which will allow you to store and retrieve data within your programs. These concepts and skills will help you to manipulate data and write more complex Python programs.

Jun 15th 2026
4 Weeks
Introduction to Architecting Smart IoT Devices (Coursera) Coursera
EIT Digital

Introduction to Architecting Smart IoT Devices (Coursera)

Embedded Systems are so ubiquitous that some of us take them for granted: we find them in smartphones, GPS systems, airplanes and so on. But have you ever wondered how these devices actually work? If so, you're in the right place! In this course, you'll learn about the characteristics of embedded systems: the possibilities, dangers, complications and recipes for success.

Jun 15th 2026
3 Weeks
An Introduction to Interactive Programming in Python (Part 1) (Coursera) Coursera
Rice University

An Introduction to Interactive Programming in Python (Part 1) (Coursera)

This two-part course is designed to help students with very little or no computing background learn the basics of building simple interactive applications. Our language of choice, Python, is an easy-to learn, high-level computer language that is used in many of the computational courses offered on Coursera. To make learning Python easy, we have developed a new browser-based programming environment that makes developing interactive applications in Python simple.

Jun 15th 2026
5-12 Weeks
Introducción a la programación en Python I: Aprendiendo a programar con Python (Coursera) Coursera
Pontificia Universidad Católica de Chile

Introducción a la programación en Python I: Aprendiendo a programar con Python (Coursera)

Decía Steve Jobs que “todo el mundo debería aprender a programar un ordenador porque esto te ayuda a pensar”. Hoy en día la programación es una herramienta fundamental para el desarrollo de la tecnología moderna. Este curso te introduce en el mundo de la programación en el lenguaje Python.

Jun 15th 2026
5-12 Weeks
Python Data Visualization (Coursera) Coursera
Rice University

Python Data Visualization (Coursera)

This if the final course in the specialization which builds upon the knowledge learned in Python Programming Essentials, Python Data Representations, and Python Data Analysis. We will learn how to install external packages for use within Python, acquire data from sources on the Web, and then we will clean, process, analyze, and visualize that data. This course will combine the skills learned throughout the specialization to enable you to write interesting, practical, and useful programs.

Jun 15th 2026
4 Weeks
Programming for Everybody (Getting Started with Python) (Coursera) Coursera
University of Michigan

Programming for Everybody (Getting Started with Python) (Coursera)

This course aims to teach everyone the basics of programming computers using Python. We cover the basics of how one constructs a program from a series of simple instructions in Python. The course has no pre-requisites and avoids all but the simplest mathematics. Anyone with moderate computer experience should be able to master the materials in this course.

Jun 15th 2026
5-12 Weeks
Cloud Computing Applications, Part 1: Cloud Systems and Infrastructure (Coursera) Coursera
University of Illinois at Urbana-Champaign

Cloud Computing Applications, Part 1: Cloud Systems and Infrastructure (Coursera)

Welcome to the Cloud Computing Applications course, the first part of a two-course series designed to give you a comprehensive view on the world of Cloud Computing and Big Data! In this first course we cover a multitude of technologies that comprise the modern concept of cloud computing. Cloud computing is an information technology revolution that has just started to impact many enterprise computing systems in major ways, and it will change the face of computing in the years to come.

Jun 15th 2026
4 Weeks