Image

Specalize Track

Ambient Computing and IoT Specialization

The Ambient Computing and IoT Specialization focuses on building Smart Homes, Offices, Factories, and Cities using Voice computing, Matter Protocol, and Embedded Devices.

Image

AC-361: Embedded Programming using C and Rust

Course Description:

This is an introductory course about using the C and Rust Programming Languages on "Bare Metal" embedded systems, such as Microcontrollers. We will start by introducing embedded systems and move on to learn the C++ and Rust programming languages. We'll learn about basic programming concepts using C and Rust, then we will explore key concepts in electronics, microcontrollers, and embedded programming. It is a fast-paced, thorough introduction to programming with C and Rust that will have you writing programs, solving problems, burning your code on microcontrollers, playing with GPIOs, and making things that work in no time.

Specialized Track

Duration

13 Weeks

Course Outline:

Introduction to the Internet of Things and Embedded Systems (Week 1 and 2)

https://docs.google.com/presentation/d/14OcW4 HfS2i1Db1uKOU6SrckFEFjhSLMgfnHYB3XlEZo/edi t?usp=sharing

  1. What is the Fourth Industrial Revolution?

  2. What is IoT?

  3. Embedded Systems

  4. Hardware and Software for IoT

  5. Edge and Cloud Computing

  6. The future of IoT is AI

  7. Blockchain in the Internet of Things?

  8. IoT + AI + Blockchain: The Fourth Industrial Revolution has begun

  9. How will Matter change the IoT Infrastructure and address issues

  10. Metaverse and IoT

Mid-Term I: Introduction to the Internet of Things (IoT) Quiz in Week 3

Total Questions: 46, Total Time: 60 minutes

The C Reference Book: The C programming language

Embedded Programming book: Internet of things with ESP8266

Download Link:

Introduction to C Part 1 (Weeks 3B, 4, and 5)

C environment Setup for (Windows, Linux, and Mac OS systems)

Chapters 1-2 of “The C programming language”

  1. Variable names types

  2. Data types and sizes

  3. Constants

  4. Arithmetic operations

  5. Logical and relational operators

  6. Type conversions.

  7. Bitwise operators

  8. Conditional expressions

Programming Assignments will also be given.

C Programming Part 2 (Weeks 6 and 7)

Topics 3 and 4 of “The C programming language”

  1. Control flow statements (else if, loops, switch, break continue)

  2. Function and Program structure(Returning and non-returning, scope rules, Recursion)

Programming Assignments will also be given.

Introduction to Embedded systems Part 1 (Weeks 8)

Basic Electronics and Introduction to microcontrollers

Chapter 1 of “Internet of things with ESP8266”

  1. Arduino IDE installation and env setup for ESP8266

  2. Burning your first code on ESP8266

Project-based Assignments will also be given.

Mid-Term II: C Programming Quiz 1 in Week 9

Total Questions: 62, Total Time: 75 minutes

Introduction to Embedded systems Part 2 (Weeks 9-12)

Chapters 2-5 of “Internet of things with ESP8266”

  1. Connecting your hardware to wifi.

  2. Reading data from GPIOs. %20you%20are%20referring%20to.

  3. Controlling LEDs.
  4. Reading data from digital sensors.

  5. Cloud data logging.
  6. https://tttapa.github.io/ESP8266/Chap16%20-%20Data%20Logging.html

  7. https://circuitdigest.com/microcontroller-projects/nodemcu-datalogger-to-save-temperature-and-pressure-data-on-thinger-io-cloud-platform

  8. https://iotdesignpro.com/projects/nodemcu-data-logger-to-upload-data-on-webserver

  9. Displaying data on the cloud.

  10. Controlling controller remotely.

  11. Controlling a lamp anywhere in the world.
  12. Interacting with different web services.

Embedded Programming using Rust (Extra Weeks in the Course)

  1. https://www.rust-lang.org/what/embedded

  2. https://crates.io/crates/esp8266

Hardware Requirements:

  1. Esp8266 (Node MCU)
  2. Jumper Wires
  3. Bread Board
  4. LEDs
  5. Sensors: (Dht11, ultrasonic sensor, IR sensor)

Program Structure

After completing the first three quarters the participants will select one or more specializations consisting of two courses each.