IoT Coding for Smart Home

Objective:
To enable students to understand the principles behind IoT devices, develop computational thinking skills, understand basic concepts for HTTP connections and IP networking, practice and develop higher-level skills such as creativity and invention within technical constraints.

Description:
The school will organise a series of workshops for students. Each workshop includes a short section of theoretical background and context about IoT, instructions to follow for achieving a pre-set task, and time for students to adapt and invent their own application of the techniques learned, according to a given context.

Over the course, students will invent their own IoT device or devices to make a system of:

  • A WiFi-enabled microcontroller which is able to measure sensor data and return it via HTTP to other services.
  • The same or another device which can receive data and commands over HTTP and use them to control physical outputs (such as lights, motors or sounds).
  • A mobile application which can both receive data from and send commands to the microcontroller(s).

The final system should tackle a well-defined problem for a well-defined audience. It could be linked to the idea of the Smart Home (such as a smart lighting system which can react to movement or outdoor light levels and be app-controlled, or smart door lock/alarm system), healthcare (such as a smart pill box that monitors usage and generates prompts or alarms for missed medication), fitness (a fitness tracker / notifier), commerce or convenience. For advanced students, adequate time should be allocated for brainstorming and developing their own concepts, rather than being given a pre-set context by their teacher.

Hardware
  • Microcontroller board with IoT kits included WiFi module, sensors, actuators and output peripherals
  • PC / laptop / tablet computer with Internet connection
Software
  • IoT devices SDK / APIs
  • Common programming languages like App Inventor / Javascript / C# / Python / Java / C++
Cloud Services
  • IoT service platform
  • App automation platform
  • App development platform
  • AI service platform with image/voice recognition (optional)
Major Activities
  1. The first half to two-thirds of the course should consist of session covering:
    1. Background theory
      1. Internet of Things
      2. APIs
      3. Working with / coding microcontrollers for input and output
      4. Networking and HTTP, including implementing HTTP connection from the microcontroller
      5. Privacy and security implications of IoT devices and data security
    2. Practical work implementing working example code
    3. A mini-project, where students modify the example code according to their own invention
  2. The final third to one-half of the course should be a project, where students, working in teams:
    1. Invent a concept for an IoT device
    2. Develop their concept into a real, working prototype device or system, consisting of a mobile app and a microcontroller which can
    3. Preferably, present their inventions to their classmates
Learning Objective(s)
  • Enhance students' computational thinking skills, through solving real-world problems in developing an IoT device.
  • Enhance students' ability to apply the IT knowledge and skills learnt
  • Enhance students' non-technical skills including creativity, innovation, collaboration and presentation skills.
Duration
  • Moderate level session: about 24 hours, split over 8-12 workshops.
  • Advance session: additional time for completing more advanced projects, for integrating all the groups' projects into a single system, or for producing product prototypes (with 3D-printed or laser cut cases for the electronics, and a brand and business case for the IoT solution), depending on ambition level.
Difficulty
  • Hard
Target Level
  • Moderate level session : S4 - S6
  • Advanced session : S5 - S6
Target No. of Students About 20 students per workshop