CIS-5710 (Software for the Internet of Things) Home Page
This is the home page for CIS-5710 course notes for the Fall 2019 semester. Here you will find
class handouts, slides used during the lectures, homework assignments, and links to other
references of interest.
- The course syllabus gives an overview of the course and
its content, lists course resources, and describes the grading policy and related issues.
- The official course outline: CIS-5710.
- The homework submission area and grade book are on Canvas but all other course resources
are here.
- Here is a list of the IoT Technologies chosen by the class members
in connection with Homework #3.
- I've prepared some general information on submitting
assignments.
- My home page contains other resources of potential interest.
Topics
This list is only partial.
- Introduction to the course and to IoT systems.
- Introduction to nesC and TinyOS.
- Described how to read mote sensors using nesC and TinyOS.
- Described basic radio communications using nesC and TinyOS.
- Introduced Homework #1. Described spanning tree construction
in sensor networks. Introduced Lightweight Time Syncrhonization.
- Discussed the concepts of staged programming and how it relates to building software for
constrained embedded systems.
- Introduced Contiki and described how to set up a Contiki development system.
- Introduced MQTT and Homework #2.
- Went over some sample code related to Homework #1. Discussed the structure of the a program
that broadcasts sensor data periodically. The sample code did not cover issues related to
receiving packets (and rebroadcasting them), nor how to deal with time and time
synchronization.
- 2019-10-31. Introduced homework-03.html.
Slides
Samples
Papers
A detailed bibliography in BibTeX format.
Homework
- Review the paper IoT: A Survey on Enabling Technologies...
- Get a TinyOS development system set up (see the resources section below for more information).
- Read the paper The nesC Language...
- Homework #1: TinyOS Temperature Sensing. In this assignment
you will write the baseline program for the temperature sensing application.
- Read the paper Lightweight Time Synchronization...
- Get a Contiki development system set up (see the resources section below for more information).
You will want a GUI environment available, so Lemuria isn't an option.
- Homework #2: Contiki Temperature Sensing. In this assignment
you will write a temperating sensing program for Contiki, similar to that in Homework #1,
except that uses the MQTT protocol for handling both commands and temperature data.
- Homework #3: IoT Technologies. In this assignment you will
research an IoT technology of your choice and prepare a short presentation about it.
Demonstrations are encouraged where possible.
Resources
The following are links to relevant resources for this class.
TinyOS
Contiki
- Contiki is an IoT operating system. The
development system is most easily used in a docker
container.
- MQTT is a machine-to-machine (M2M) lightweight
publish/subscribe protocol for IoT applications.
- The Mosquitto MQTT Broker
Other
- RFC-6120 on the Extensible Messaging and
Presence Protocol (XMPP), RFC-6121 on using
XMPP for instant messaging. The XMPP official web site
contains a number of interesting bits of information about the protocol. Here is a description
of how XMPP relates to IoT.
- The Jolie Programming Language. This is a
specialized language used for combining microservices.
- Web of Things. This is an effort to use Web protocols
and applications to implement the Internet of Things.
- OMA SpecWorks is an organization dedicated to
rapidly developing standards for the wireless and IoT communities. It joins together the Open
Mobile Alliance (OMA) and the Internet Protocol for Smart Objects (IPSO) Alliance.
- RFID, QR code, and ucode are some passive identification
technology that can be used to "tag" objects in the Internet of Things.
- Sign up for Azure as a
student. Use your VSC email address (aaannnnn@vsc.edu) to verify your student status.
Last Revised: 2024-11-25
© Copyright 2024 by Peter Chapin <peter.chapin@vermontstate.edu>