G. Menez

Internet of Things (IoT) : software components

The Internet of Things (IoT) creates opportunities for more direct integration of the physical world into computer-based systems, resulting in efficiency improvements, economic benefits, and reduced human exertions. This is a true challenge for deployed technologies and sciences. This course will introduce some issues and candidate solutions from a software standpoint.

In newspapers, TV news, advertisements, etc., you have certainly already heard about IoT (Internet of Things) for use cases such that smartcities, transportation, domotics, energy grids, e-health …

IoT HealthCare Use Case

Arguments and presentations on IoT often focus on risks induced by deployments and uses : life privacy, infringements to freedoms.

For example, recently you could read that the Smartphone App StopCovid was collecting more data than it should.

These are dark sides of IoT, but it should not hide the fact that this is too a great scientific challenge that could improve and help in so many domains : ecology, life protection, …

Futhermore, IoT could be the next “step” in the evolution of computing architectures, generating a disruption wave comparable to the birth of Internet as a wide public networking in the beginning of the century.

Such periods always get along with evolutions (or revolutions) of technologies. Today,

  • Networks,
  • Programming Languages,
  • Databases,
  • App Architectures,
  • Services …

are evolving to build the IoT ecosystem : You should be aware !

The following video : “An IoT overview … beyond sensors!”

is summerizing the perspective of this course … but before you can imagine and contribute to “analytics of things” we have to give some highlights on IoT and on software components involving in this context.

We will not talk about more than necessary of hardware and sensors. But we will talk about evolutions of technologies participating in IoT :

  • Mesh topology,
  • Ipv6,
  • Low energy connectivity,
  • Dynamic Web / Javascript,
  • App Deploying,
  • NoSQL Databases,
  • Edge/Fog/Cloud Computing,
  • Dashboard,
  • Data analytics/Intelligence/Machine Learning

As hardware is so cheap, courses will use an ESP32 dev board to make this teaching as realistic as possible … knowing that issues and business come with hundred of ESP … not with only one device !


  • CCs : Practical courses evaluations
  • CT1 : a report (10 pages max) and a prototype running on IoT board based on a IoT topic chosen in collaboration with the instructor
  • CT2 : a half-hour exam


This course suppose that attendees like to code. We will use many languages and paradigms. You are not supposed to know all of them before the beginning of the course BUT you are supposed to improve your skills in all of them during practical courses. If you don’t code regularly, it will be difficult to catch the train :-(

Hardware Resources (provided during the course)

ESP32 Dev board

Teaching materials