First Technology Transfer

Standard and Advanced Technical Training, Consultancy and Mentoring

Practical Introduction to IoT Programming with Arduino and RaspberryPi

Duration: 5 Days

Intended Audience

This is a course for those with experience of embedded systems programming who wish to learn how to develop IoT applications in C/C++/Python using Arduino and RaspberryPi devices.


This is a 5 day hands on IoT embedded systems programming and development oriented course using C, C++ and Python. Its purpose is to provide practical experience building a wide range of IoT applications using a wide range of application protocols. A good knowledge of Arduino C/C++ programming is assumed as well as a working knowledge of Python. A practical working knowledge of TCP/IP is also assumed.

The course explores the development of IoT from basic embedded networking based systems through to modern smart sensor based systems. Application layer protocols covered include HTTP, UPnP, CoAP, MQTT and XCMPP, as well as implementation of Protocol Gateways, Security and Interoperability aspects of working with the various protocols.

Link layer and network protocols and mobile communications protocols covered will include WiFi, BLE and GSM IoT.GPS and location tracking aspects of IoT will also be discussed. Ways of connecting and working with sensors using e.g. I2C, SPI, as well as on chip sensors will be explored. This will also cover issues such as data digital signal processing and data logging. The final part of the course will be devoted to IoT security and will cover topics such as essential cryptography, attacks and countermeasures, security engineering in the design and development stages, identity and access management. Additionally issues such as mitigating IoT privacy concernts, compliance monitoring and IoT cloud security, and IoT incident response will be explored.

Course Outline

  • A brief history of IoT
  • Sensors, Controllers and Actuators
  • An intensive overview of TCP/IP
  • IoT related protocols - a survey
    • HTTP
    • UPnP
    • CoAP
    • MQTT
    • XMPP
  • Protocol Gateways
  • Overview of security threats and vulnerabilities
  • Prototyping IoT Sensor nodes using Arduino devices - Some Case studies
    • Power switch control applications
    • Smart water flow meter
    • Camera based motion detection sensing
    • Monitoring the environment (temperature, pressure, humidity, light intensity ...) and data logging both locally and to the Cloud.
  • IoT Security
    • A systems level approach to security
    • Vulnerabilities, attacks and countermeasures
    • Security Software and Systems Engineering and the IoT Security Lifecycle
    • Foundations of Cryptography for IoT security
    • Identity and Access Management
    • IoT Privacy and Compliance Monitoring
    • Cloud security and IoT
    • IoT Incident Response and Analysis