Lesson 1: Planning an IoT Implementation
Topic A: Select a General Architecture for an IoT Project Topic
Topic B: Identify Benefits and Challenges of IoT
IoT in Industry
Industrial Controllers
Industry 4.0
Four Ps of Planned Maintenance
Identifying Business Benefits of IoT
Business Benefits
Business Challenges
Differences from Traditional IT
Technical Challenges
Societal Impact
Identifying Potential Challenges of IoT
Lesson 2: Constructing and Programming an IoT Device
Topic A: Select and Configure a Processing Unit
Microcontrollers
Comparison Between Microprocessors and Microcontrollers
Common Microcontroller Products
FPGAs
Selecting Processors for an IoT Project
Development Boards and Shields
Maker/Hobbyist Platforms
On-Chip Peripherals
I/O
Digital Representation of On or Off State Values
Analog Representation of Continuous Values
Analog to Digital Conversion
Signal Conditioning
Transmission of Digital Values
Differential Signaling
Digital Sensors
Microcontroller I/O Pins
Components Used for Digital and Analog Conversion
PWM
Quadrature Encoder
Guidelines for Selecting and Configuring a Microcontroller
Case Study: ESP8266 MCU
Preparing a Microcontroller for IoT Prototyping
Topic B: Select a Microcontroller Power Source
Power Requirements
Logic Level Voltage and Power Regulation
Voltage, Current, and Resistance
Semiconductors
Semiconductor Care and Handling
USB Power During Development and Testing
USB Specifications
Power After Deployment
Power Grid
Conversion Between AC and DC
Backup Generators
PoE
Batteries
Lithium Cells
Solar Panels
Wind Power
Water Power
Energy Harvesting
Power Management
Guidelines for Reducing Power Consumption
Attaching a Microcontroller to a Power Source
Topic C: Use a Software Development Kit to Program an IoT Device
Embedded Devices vs. General Purpose Computers
Embedded Systems Programming
Development Toolkits
Programming Languages
IoT Operating Systems
Real-Time Operations
Embedded Device Operating Systems
Microcontroller Firmware
The Build Process
Debugging
Guidelines for Selecting a Software Development Kit
Case Study: ESP8266 SDKs
Uploading a Program to an IoT Device
Lesson 3: Communicating with an IoT Device
Topic A: Communicate Using Wired Connections
Wired Data Communication Standards
Industrial Ethernet Standards
Industrial Data and Information Management Standards
OPC
DDS
OPC-UA vs. DDS
Legacy Field Buses
Legacy Serial Communication
Data Communication During Development and Testing
Guidelines for Communication Using Wired Connections
Communicating over a Wired Serial Connection
Topic B: Communicate Using Wireless Connections
Wireless Communication
Near Range Wireless Communication
Medium Range Wireless Communication
Zigbee
Zigbee Topologies
Z-Wave
6LoWPAN and Thread
WirelessHART
Long Range Wireless Communication
Guidelines for Communication Using Wireless Connections
Testing Wi-Fi Communication with a Microcontroller
Wireless IoT Device Configuration
Guidelines for Providing a Wi-Fi Configuration Manager
Providing a Wi-Fi Configuration Manager
Topic C: Communicate Using Internet Protocols
The Internet Protocol Suite
HTTP and HTTPS Web Protocols
Send Data with a Request
Web Protocols in IoT
IP Addressing
Encapsulation
Connect Different Networks
IoT Gateway as a Means to Connect Different Networks
Smart Home Hubs
Routing and QoS
Networking Abstraction
SDN
Network Function Virtualization
Communicating with an IoT Device Using HTTP
Lesson 4: Processing IoT Data
Topic A: Process IoT Device Input and Output
DAQ
Sensors
Multiplexing
Location, Bearing, and Speed Sensors
Proximity Sensors
Environment and Weather Sensors
Cameras and Imaging Sensors
Energy and Force Sensors
Chemical Sensors
Timer
Guidelines for Selecting Sensors
Selecting Sensors for IoT Applications
Location Awareness
Actuators and Other Output Devices
Case Study: Analog Light Sensor
Reading Analog Sensor Data
Case Study: Digital Humidity and Temperature Sensor
Reading Digital Sensor Data
Topic B: Process Data in the Cloud
Deployment Models
Cloud Computing
Cloud Service Models
Cloud Platforms
Virtualization Technologies
Guidelines for Evaluating Cloud Platforms
IoT Services Performed in the Cloud
Device Registry and Management
Data Management
IoT Data Analytics Tools
Components of a Real-Time Analytics System
AI
AI Tools
Drawbacks of Centralized Cloud Computing in IoT
Where to Perform Processing Tasks
Guidelines for IoT Processing and Analytics
Planning IoT Processing
Topic C: Provide Machine to Machine Communication
Industrial M2M Communication
IoT M2M Communication
Communication Patterns
Messaging Protocols
AMQP
MQTT
Premises Underlying MQTT
MQTT Communication Process
Message Persistence
Web-Based Communication
REST APIs
WebSocket
CoAP
Guidelines for M2M Communication
Case Study: MQTT
Launching and Testing an MQTT Broker
Using MQTT to Send Data from an IoT Device
Using MQTT to Receive Control Instructions
Lesson 5: Managing Risks on IoT Projects
Topic A: Identify IoT Security and Privacy Risks
The Rationale for IoT Security
Case Study: Mirai Botnet
Fronts of Attack
Attack Phases and Techniques
The OWASP Top Ten
Identifying the Rationale for IoT Security
Case Study: Threats to MQTT Messaging
Building Security In
Identifying Security Problems in an IoT Application
Topic B: Manage IoT Security and Privacy Risks
Cybersecurity Strategies
CIA Triad
AAA
Defense in Depth
Layered Defenses for Constrained Devices
Encryption on Constrained Devices
Encoding
Data Integrity
Blockchain
Privacy
Privacy by Design
Data Anonymization
Firmware and Software Countermeasures
Case Study: Protecting MQTT Messaging
Guidelines to Prevent IoT Vulnerability Defects
Protecting Data in Transit
Preventing Unauthorized Use of Messaging Services
Topic C: Manage IoT Safety Risks
Physical/Loss of Life Accidents
Infrastructure Outages
Supply Chain Risks
IoT Safety Risk Management
Identifying Safety Risks and Remediations
Lesson 6: Undertaking an IoT Project
Topic A: Identify Real World Applications for IoT
IoT Market Sectors
Smart City
Industry
Buildings
Connected Cars
Energy and Utilities
Health, Medical, and Life Science
Supply Chain
Agriculture
Retail
Defense
Connected Services
Guidelines for Using IoT to Solve Problems
Using IoT to Solve Problems
Topic B: Follow the IoT Development Lifecycle
Complexity of IoT Projects
The IoT Development Lifecycle
Return on Investment
Focus on Business Goals
Cybersecurity Throughout the IoT Lifecycle
Guidelines to Prepare for an IoT Initiative
Preparing for an IoT Initiative
Appendix A: Mapping Course Content to Certified Internet of Things Practitioner (CIoTP) (Exam ITP-110)
Course-specific Technical Requirements
Hardware
For this course, you will need one computer for each student and one for the instructor. Each computer will need the following minimum hardware configurations:
1 GHz or faster 32-bit (x86) or 64-bit (x64) processor
2 gigabyte (GB) RAM (32-bit) or 4 GB RAM (64-bit)
20 GB available hard disk space (32-bit) or 24 GB (64-bit)
Keyboard and mouse (or other pointing device)
1,024 x 768 or higher resolution monitor
Network cards and cabling for local network access
Internet access
Projection system to display the instructor's computer screen
Please note that this class should not be run on VMs.
Electronics Kit
In this course, the instructor and each student will require a small kit of electronic components that they will use to prototype and program an Internet of Things device. The kit is provided as part of the courseware and has been partially assembled and tested to save time in class.
The course was designed around specific components that you can obtain through a variety of sources. If you source the components yourself, be careful to obtain the exact components specified below. Otherwise, you may have to make slight adjustments in the course activities and code.
Components include:
NodeMCU ESP8266 CP2102 microcontroller with pre-soldered header pins
400 tie points prototyping breadboard
Tinned 24 AWG bus wire to make jumper connections on breadboard
Short micro USB 3.0 data cable
GL5516 photoresistor
10K-ohm ¼ watt carbon film resistor
DHT11 digital humidity and temperature sensor with three-pin circuit board that includes onboard resistor and male to female DuPont wires to connect to breadboard