ELE-168 - Developing the Things for Internet of Things

3 credits

This course concentrates on building the "things" for the Internet of Things (IoT). Things are micro-controllers or small computers with network interfaces. These small computers are used to create energy efficient IoT nodes capable of interacting with the physical world. These devices then communicate with an edge computer or a cloud computer used to orchestrate the network of things. Typical examples include the Raspberry PI, Arduino and variations of the these architectures, ESP8266-based boards, BeagleBoard, and Particle based boards.

Configuration and programming interfaces and controller busses such as SPI, I2C, and the CAN to interface with other controllers or peripherals. Some additional circuitry can be added to drive higher power loads, read sensors to measure physical events, and add peripherals for a human-machine interface (HMI). FTDI, USB, SPI, JTAG or similar technologies will be used to flash the programs to the devices. Rapid prototyping new IoT nodes is emphasized with an eye towards commercial deployments.

Students will implement communications using interfaces such as serial, wired and wireless IP networking, Bluetooth, Zigbee, near field communications (NFC), and LoRa. REST, MQTT,  JSON, and similar standards are used to transfer data.

This course includes a "hands-on" lab to build, test, and evaluate the performance & security of an IoT device.

Prerequisite(s): ELE-111 CSE-160 

Corequisite(s): ELE-168L