Sei sulla pagina 1di 8

IoT Lab Training Schedule for first year students from Coursera & edx

online courses. (6 Months)


1.Introduction to the Internet of Things and Embedded Systems

What Is the Internet of Things (IoT)?


The Internet of Things (IoT) is a popular buzzword right now, but unlike many fads which have come and gone,
the Internet of Things describes an important trend which is having lasting effects on society at large. The term
itself, Internet of Things, is used to mean a variety of ideas, depending on the motivation and background of
the speaker. This course will start by providing a definition of the term. We will talk about how various
trends have enabled the Internet of Things, and how it changes the way design is performed. We will
also discuss some of the ramifications that IoT is having on society today.

Embedded Systems
In Module 1, we introduced the concept of the Internet of Things at a high level, defining the term and outlining
its implications. In this module we explore some of the details involved in the design and implementation of IoT
devices. Unlike traditional computer-based systems, IoT devices are embedded within other devices in order to
provide enhanced functionality without exposing the user to the complexities of a computer. The users interact
with the device in a natural way, similar to their interactions with any other objects in the world. In this way, an
embedded system has an interface that conforms to the expectations and needs of the users. Establishing a
natural interface requires that the embedded system interface with the physical world directly through sensors,
which read the state of the world, and actuators, which change the state of the world. In this module we will
discuss the structure of embedded systems and describe these interactions with the physical world.

Some ARM based Experiments


Study of ARM evaluation system
Interfacing ADC and DAC.
Interfacing LED and PWM.
Interfacing real time clock and serial port.
Interfacing keyboard and LCD.
Interfacing EPROM and interrupt.
Interrupt performance characteristics of ARM and FPGA.
Flashing of LEDS.
Interfacing stepper motor and temperature sensor.
Implementing zigbee protocol with ARM.
8 Bit LED and Switch Interface
Buzzer Relay and Stepper Motor Interface
Time delay program using built in Timer / Counter feature
External Interrupt
4x4 Matrix Keypad Interface
Displaying a message in a 2 line x 16 Characters LCD display
ADC and Temperature sensor LM 35 Interface
I2C Interface 7 Segment display
I2C Interface Serial EEPROM
Transmission from Kit and reception from PC using Serial Port
Generation of PWM Signal
Networking and the Internet
An important aspect of the Internet of Things is that devices are networked in some way, and often connected to
the Internet. Networking enables devices to communicate with other IoT devices and larger cloud-based servers.
IoT devices can often be thought of as small parts of a much larger collective system which includes large
servers based in the cloud. This module will introduce the basics of networking and the Internet protocol
in particular. Eventually, most IoT devices are connected to the Internet, so understanding the protocols
associated with the Internet is important to the design of IoT devices. We will also introduce the concept
of a Mobile Ad Hoc Network, or MANET, which describes small, local networks of IoT devices.

Hardware and Software


IoT devices are implemented using both hardware and software components. Dedicated hardware components
are used to implement the interface with the physical world, and to perform tasks which are more
computationally complex. Microcontrollers are used to execute software that interprets inputs and controls the
system. This module discusses the roles of both the hardware and software components in the system.
The functions of common hardware components are described and the interface between the software
and hardware through the microcontroller is explained. IoT devices often use an operating system to
support the interaction between the software and the microcontroller. We will define the role of an
operating system in an IoT device and how an IoT operating system differs from a standard one.

2. Internet of Things: How did we get here?


Circuit Switched Networks
In order to answer the big question, how did we get here? we must start from the beginning. The
beginning of what you may ask, well the beginning of telecommunication! In this course we will cover the
birth of the telephone and its gradual evolution through different networks. Humans love to talk, which
might explain the speedy growth of telephony networks.
20 videos, 3 readings

Packet Switched Networks


Now that we have looked at circuit switched networks, we will begin to talk about packet switched
networks. Digital networking will change in the telephone industry is what allowed all of the exciting new
features we see on mobile phones. In this course, we will clarify differences between circuit and packet
switched networks, as well as reveal what digital networking allows us to do.

Computer Telephony
The convergence begins! Computers and telephones start working together which served a great opportunity
for business in many ways. Imagine a world without caller ID or voicemail, scary isnt it? Telephony begins
to take the digital route, which brings a whole new experience in telecommunications. The digitization of
telephones wasnt all positive, for it created the possibility of hackers accessing personal information.

Wireless Technologies
Telephones eventually become a new entity which we might recognize as the cell phone. Phone mobility
revolutionizes the telecommunications market, phones are no longer apply to homes but rather to people.
Cell phones were a game changer for telephone companies.
21 videos, 1 reading
Features and Apps
Phone applications are born! This is probably the greatest contribution to the telephone industry because
now phone dont just make phone calls and take messages, but also handle finances, entertain, educate,
control your home, turn on your car and anything you can imagine! The limits of a technology have never
been more endless, if you can think it you can sure build an app for it.
7 videos, 1 reading

3. The Arduino Platform and C Programming

Arduino Environment
This module provides an introduction to the Arduino environment which is composed of three things: the Arduino
board, the Arduino IDE, and the Arduino-compatible shields together with their libraries. We first investigate the
board, discussing all of its main components, inputs, and outputs. We discuss how each component is used and
we examine the board schematic to see how they are connected. We then discuss the Arduino Integrated
Development Environment (IDE) which is used primarily to write, compile, and upload code. We survey the
interface of the IDE and discuss how to install and use it. We also examine the use of shields to extend the
functionality of an Arduino-based system. We discuss how shield libraries provide a useful abstraction to
facilitate programming.

C Programming
This module covers the basics of the C programming language which will be used to write code for the Arduino.
The course first covers basic syntax, variables, and types. Most of the basic C operators are presented.
Conditional statements (if, switch) and loops (while, for) are described. The concept of functions is presented
together with how to define and call functions. Creation and use of global variables is explained.

Arduino Programs
This module describes the composition of an Arduino program, or sketch, and the process by which it is
compiled and uploaded. The Arduino IDE is a user interface for the software tools which actually compile and
upload the program. We outline the use of these tools in the build process. We describe the basic structure of a
sketch, including the use of the setup() and loop() functions. The main interface of an Arduino is through its pins,
so we describe how to access those pins from a sketch.

UART
This module is an introduction on debugging embedded software on an Arduino. We discuss the basic
debugging requirements: controllability and observability. The debugging environment available for an Arduino
UNO is limited, so we describe how to use the UART communication protocol to gain controllability and
observability. We present the use of the Serial library to communicate with the Arduino through the serial
monitor.

4. Interfacing with the Arduino

Module 1
IoT devices involve a combination of software and hardware. This module provides background on the basics of
hardware design and wiring needed to build useful circuits. This module describes the functions of basic passive
components and describes how to use them in simple circuits. This module also describes how to wire circuits
together using a breadboard. The goal of this module is to enable students to design and implement the circuits
they need to interact with basic sensors and actuators.

Module 2
This module introduces sensors and actuators and discusses how to interface with them. Well examine different
classes of sensors and actuators. For each type of sensor/actuator, well examine the circuitry needed to
interface with it. Additionally, well take a look at the Arduino code needed to communicate with the sensors and
actuators.

Module 3
This module introduces the use of software libraries with an Arduino sketch. One of the best aspects of the
Arduino environment is that the use of good libraries allows a programmer to use complicated hardware without
dealing with the complexity. The Arduino environment is supported by many libraries and this module examines
the use of several of the more common libraries that allow the use of hardware peripherals in the
microprocessor.

Module 4
In this module well examine Arduino shields and how they are used to extend the capabilities of an Arduino-
based system. Shields are printed circuit boards that are stacked on top of the Arduino together with libraries
that enable the new hardware to be used through an Arduino sketch. Well describe the benefits of shields and
their basic construction as well as the use of libraries in interfacing with each shield. This module also describes
how to connect your IoT device to the Internet using shields. We focus on an Ethernet shield in order to establish
a wired network connection, and a WiFi shield to establish a wireless connection.

Some Arduino Based Projects


Arduino Touch Screen Calculator using TFT LCD
How to Control Stepper Motor using Potentiometer and Arduino
AC Voltmeter using Arduino

5. The Raspberry Pi Platform and Python Programming for the Raspberry Pi

Module 1
This module describes the basic functionality the Raspberry Pi B+ board. I'll describe how to set up the board,
configure it, and use it. An important point differentiating Raspberry Pi from the Arduino platform which we have
talked about previously is that Raspberry Pi uses an operating system. I'll describe some of the implications of
an operating system on the behavior of the Raspberry Pi as an IoT device.

Module 2
The Raspberry Pi is typically installed with a Linux-based operating system, so we present the basics of Linux
and its use. We describe some of the main features including navigating the file system and managing
processes. We describe the text-based user interface through the shell and we overview the graphic user
interface which is the default with the Raspian Linux distribution.

Module 3
We present the basics of the Python programming language to prepare you for programming on the Raspberry
Pi. Many languages can be used but Python is the most convenient for the Raspberry Pi because convenient
APIs are provided for basic operations such as controlling the pins. Python is a powerful language with useful
features that we will present so that you can use these features to control the Raspberry Pi.

Module 4
In this module we describe how to communicate with devices through the pins of the Raspberry Pi. We examine
the RPi.GPIO library which provides Python functions used to access the pins. We discuss how to set up the
pins, apply digital voltages, and generate Pulse Width Modulated signals. We also describe the Tkinter Python
library and show how it can be used to access pins through a graphic user interface

6. Interfacing with the Raspberry Pi


Module 1
This module presents the use of the Raspberry Pi to connect to the Internet, from a user perspective. The first
way to use the Raspberry Pi as a networked device is to use it as a general-purpose computer rather than as a
programmed IoT device. Using networking with a Raspberry Pi in this way is similar to using the network from
any Linux machine, and we present its use in this module. We also present the standard Internet protocols that
must be understood in order to develop network programs.

Module 2
This module introduces the networking socket interface that is used to transfer data across the network
programmatically. An essential aspect of the Internet of Things is for your IoT device to send and receive data
on the Internet, and the socket interface is key to enabling that. We describe how to use socket in Python to act
as both a client and a server.

Module 3
This module focuses on how to have your Raspberry Pi interact with online services through the use of public
APIs and SDKs. Many interesting and useful services are available in the cloud and this module describes how
to write code that accesses those services. We define what an Application Programming Interface (API) is and
what a Software Development Kit (SDK) is. We present some API examples and we show the use of the Twitter
API in detail using the Twython package.

Module 4
In this module we show how to use the Raspberry Pi to interface with more complicated sensors and actuators.
We explore the use of the Raspberry Pi camera module and the use of a servo. The Raspberry Pi camera
module is used through the picamera library, which we describe. Servos are controlled by generating pulse width
modulated signals and varying their pulse width using library functions.

Some Raspeberry Pi based Experiments

Raspberry Pi Motion Sensor Alarm using PIR Sensor


DIY Web Controlled Raspberry Pi Surveillance Robotic Car
IoT Raspberry Pi Smart Container with Email Alert and Web Monitoring
Voice Typing on 16x2 LCD using Raspberry Pi and Android App
How to Find IP Address of Raspberry Pi using Python Script
Raspberry Pi Based Weight Sensing Automatic Gate
Raspberry Pi Emergency Light with Darkness and AC Power Line Off Detector
Detecting Colors using Raspberry Pi and Color Sensor TCS3200
Measure Distance using Raspberry Pi and HCSR04 Ultrasonic Sensor

7. Programming for the Internet of Things Project

Get Started
This section will answer questions you might have about the project assignment, the grading rubric, and what
you can expect in the upcoming weeks together.

Capstone Design, Part 1


This module will assist you in selecting an idea for your Capstone project. There are many variables to consider
in this decision so it's important to know the parameters and how they impact your choice. Your decision will
then drive the content of the very first step in your Capstone project -- preparing a requirements specification.

Capstone Design, Part 2


With the requirements specification out of the way, it's time to turn your attention to the system-level design of
your project. This module will walk you through the constraints your project will need to satisfy. You'll also be
informed about how to consider alternatives to your design.
Capstone Design, Part 3
Naturally testing is a key component of any technical design. This module will walk you through the important
aspects of a test plan for your design.

Capstone Design, Part 4 (OPTIONAL)


In this final module, you will have the option of actually building out and then demonstrating your final project.
This module is optional because it requires you to have the necessary equipment.

8. Internet of Things: Setting Up Your DragonBoard Development Platform


About this Course

Do you want to develop skills to prototype mobile-enabled products using state-of-the-art technologies? In
this course you will build a hardware and software development environment to guide your journey through
the Internet of Things specialization courses. We will use the DragonBoard 410c single board computer
(SBC). This is the first in a series of courses where you will learn both the theory and get the hands-on
development practice needed to prototype Internet of Things products. This course is suitable for a broad
range of learners. This course is for you if: You want to develop hands-on experience with mobile
technologies and the Internet You want to pivot your career towards the design and development of
Internet of Things enabled products You are an entrepreneur, innovator or member of a DIY community
Learning Goals: After completing this course, you will be able to:

Configure at least one integrated development environment (IDE) for developing software.
Make use of git, adb and fastboot to flash multiple OS and repair bricked boards.
Install Android 5.1 (Lollipop) and Linux based on Ubuntu.
Create, compile and run a Hello World program.
Describe the DragonBoard 410c peripherals, I/O expansion capabilities, Compute (CPU and
Graphics) capabilities, and Connectivity capabilities.
9. Internet of Things: Sensing and Actuation From Devices
Have you wondered how information from physical devices in the real world gets communicated to
Smartphone processors? Do you want to make informed design decisions about sampling frequencies and
bit-width requirements for various kinds of sensors? Do you want to gain expertise to affect the real world
with actuators such as stepper motors, LEDs and generate notifications? In this course, you will learn to
interface common sensors and actuators to the DragonBoard 410c hardware. You will then develop
software to acquire sensory data, process the data and actuate stepper motors, LEDs, etc. for use in mobile-
enabled products. Along the way, youll learn to apply both analog-to-digital and digital-to-analog
conversion concepts. Learning Goals: After completing this course, you will be able to:

Estimate sampling frequency and bit-width required for different sensors.

Program GPIOs (general purpose input/output pins) to enable communication between the
DragonBoard 410c and common sensors.

Write data acquisition code for sensors such as passive and active infrared (IR) sensors,
microphones, cameras, GPS, accelerometers, ultrasonic sensors, etc.

Write applications that process sensor data and take specific actions, such as stepper motors, LED
matrices for digital signage and gaming, etc.

10. Internet of Things: Communication Technologies


About this Course

Have you wondered how Things talk to each other and the cloud? Do you understand the alternatives for
conveying latency-sensitive real time data versus reliable signaling data? Building on the skills from the Sensing
and Actuation course, we will explore protocols to exchange information between processors. In this course, you
will learn how VoIP systems like Skype work and implement your own app for voice calls and text messages.
You will start by using the Session Initiation Protocol (SIP) for session management. Next, you will learn how
voice codecs such as Adaptive Multi Rate (AMR) are used in 3G networks and use them for voice traffic in your
app. Learning Goals: After completing this course, you will be able to:

Implement session initiation, management and termination on your DragonBoard 410c using SIP.
Discover other users and exchange device capabilities.
Compare and contrast narrowband and wideband codecs and experience the voice quality differences
between them.
Implement and demonstrate VoIP calls using the Dragon Board 410c.

11. Developing IoT Solutions with Azure IoT

Module 1 | IoT and the Azure IoT Hub

Tutorial Lab: Getting Started with Azure

Tutorial Lab: Creating an IoT Hub

Tutorial Lab: Setting Up Your IoT Device


Tutorial Lab: Sending and Receiving Messages

Self-Assessment Lab: Messaging

Module 2 | Data Analysis

Tutorial Lab: Creating a Stream Analytics Job

Tutorial Lab: Using Azure Functions

Self-Assessment Lab: Processing Additional Telemetry

Module 3 | Data Storage and Visualization

Tutorial Lab: Using Long Term Storage

Tutorial Lab: Getting Started with Power BI

Self-Assessment Lab: Creating Additional Power BI Reports

Module 4 | Remote Management of Devices

Tutorial Lab: Implementing a Direct Method

Tutorial Lab: Simulating a Firmware Update

Tutorial Lab: Implementing a Firmware Update (Optional)

Self-Assessment Lab: Implementing a Direct Method

Potrebbero piacerti anche