Sensor Networks with Arduino ESP32 and Python

Internet of Things (IoT)

From Sensor Measurements to Maps with MicroPython and the Arduino Nano ESP32

A two-day course in which you’ll learn to work with microcontrollers, IoT sensors, and geodata. You’ll build your own IoT sensor that takes measurements and makes them available as GeoJSON for maps and geo-applications.
In this course, we’ll program a microcontroller with MicroPython on an Arduino Nano ESP32. This makes the course particularly accessible to those with Python experience.


No prior knowledge of electronics or embedded systems is required.

Course duration: 2 days
Nederlands

Introduction to the Internet of Things (IoT) and Sensor Networks

The Internet of Things (IoT) is playing an increasingly important role in the collection of geodata. Sensors, microcontrollers, and GPS make it possible to link measurements directly to a location (geolocation) and share this data via the internet.

More and more datasets start with a physical measurement in the real world. Sensors measure, for example, temperature, air quality, soil moisture, or other environmental factors. These sensor measurements form the basis for applications such as smart cities, environmental monitoring, and digital twins.

However, there is an entire chain of technology between a sensor measurement and a dataset that you can use in a map or analysis. A microcontroller reads sensor data, adds location data via GPS, and sends the data via Wi-Fi to an API. The data is then stored in a database and made available as geodata.

In this course, we’ll build the entire IoT and geodata chain ourselves.

We’ll be working with an Arduino Nano ESP32, a powerful microcontroller with built-in Wi-Fi. Instead of C++, we’ll use MicroPython, a Python implementation for microcontrollers. This allows you to work with familiar Python concepts while controlling hardware.

We send the sensor data via Wi-Fi to a backend. This backend runs in Docker and is built with Python (FastAPI) and PostgreSQL/PostGIS. The measurements are stored there and published as GeoJSON, a widely used standard for geodata on the web.

This way, you’ll learn about the entire pipeline:

sensor → microcontroller → IoT device → Wi-Fi → API → database → GeoJSON → map

Setting up and using the database is outside the scope of this course; see our follow-up course on that topic: xxx

During the course, we’ll also examine the architecture behind these types of systems. You’ll gain insight into how IoT sensors, web APIs, databases, and geodata standards together form a modern geodata infrastructure.

What you’ll learn in this course

During this two-day course, you’ll learn how to build and program an IoT sensor using MicroPython, and how sensor data is ultimately made available as geodata.

You will learn, among other things:

  • how microcontrollers work
  • how to program a microcontroller with MicroPython
  • how to connect sensors and read sensor data
  • how to use a GPS module for geolocation
  • how to combine sensor data with location data
  • how IoT devices send data to an API via Wi-Fi
  • how sensor data is stored in a database
  • how data is made available as GeoJSON
  • how the entire IoT and geodata chain works

By the end of the course, you will have built a working prototype of a geo-sensor.

Why choose this course

Many IoT courses focus solely on electronics or solely on software. In this course, we combine both and also establish a clear link to Geo-ICT and geodata.

A key advantage is that we use MicroPython. This allows people with Python experience to start programming hardware relatively quickly.

You’ll learn not only how a microcontroller works, but also how sensor data ultimately becomes part of a geodata system or mapping application.

Who is this course for

This course is intended for professionals and students who want to understand how IoT sensors and geodata come together.

The course is suitable for:

  • GIS specialists
  • geodata analysts
  • Python developers
  • researchers conducting field measurements
  • anyone interested in IoT and geodata

No prior knowledge of electronics or embedded systems is required. Basic knowledge of Python is helpful but not required.

Enroll

€1195,- (VAT included)
  • Course duration: 2 days
Register for this course

Daily schedule

Day 1 - Programming Microcontrollers and Sensors with MicroPython

The first day focuses on the basics: understanding how a microcontroller works and how to connect and read data from sensors.

We’ll start with an introduction to IoT devices, sensors, and microcontrollers. Then we’ll install the development environment and write our first programs in MicroPython.

Topics for Day 1

  • Introduction to IoT (Internet of Things) and sensor technology
  • What is a microcontroller and how does an IoT device work
  • Introduction to the Arduino Nano and ESP32
  • Installing the MicroPython development environment
  • Basic principles of programming with MicroPython
  • Uploading code to the microcontroller
  • Controlling an LED (first hardware exercise)
  • Working with digital pins
  • Connecting and reading sensors
  • First experiments with sensor data

By the end of Day 1, you will understand how a microcontroller works and how to program an IoT device using Python.

Day 2 - From IoT Sensor to Geodata and GeoJSON

On the second day, we’ll expand the system into a full-fledged geosensor.

We connect a GPS module to the microcontroller so that every sensor reading is automatically assigned a geolocation. Then we organize the data and send it via Wi-Fi to a backend.

Topics for Day 2

  • Connecting and using a GPS/GNSS module
  • Working with latitude and longitude (geolocation)
  • Combining sensor measurements with location data
  • Structuring data as JSON
  • Sending sensor data via Wi-Fi
  • Communicating with a REST API
  • how data is stored in a database
  • how sensor data becomes available as GeoJSON geodata

The end result of the course is a working IoT prototype:
a sensor that takes measurements, determines its own location, and sends the data as GeoJSON to a server.

Course duration: 2 dagen
Sign me up

Leerdoelen

By the end of this course, you will be able to:

  • explain how Internet of Things (IoT) sensor networks are structured and how sensors, microcontrollers, and data streams work together.
  • connect sensors to an Arduino Nano ESP32 and read sensor measurements.
  • program a microcontroller with MicroPython to collect sensor data.
  • send sensor data via Wi-Fi to a server or web API.
  • structure sensor measurements in JSON and make them available for further processing.
  • Read, analyze, and visualize sensor data using Python.

 

Want to know more?

Do you have questions about the course content? Or are you unsure whether the course aligns with your learning goals or preferences? Would you prefer an in-house or private course? We’d be happy to help.

Frequently Asked Questions About the Internet of Things (IoT)

A sensor network consists of multiple sensors that measure physical parameters such as temperature, humidity, or motion. These sensors are connected to a microcontroller—such as an Arduino or ESP32—which collects and processes the measurements. The data can then be transmitted via a network connection to a computer, server, or application, where it is stored and analyzed.

The ESP32 is a popular microcontroller for IoT applications because it is relatively powerful and comes with built-in Wi-Fi and Bluetooth connectivity. This allows the device not only to read sensor data but also to transmit it directly to other systems over a network. This makes the ESP32 ideal for building sensor networks and smart devices in Internet of Things projects.

Python can be used to process, analyze, and visualize data from sensors. In many projects, Python communicates with a microcontroller via serial communication or a network connection. This allows sensor measurements, for example, to be stored, processed in scripts, or used in dashboards and analyses. Python is widely used because the language is easy to learn and offers robust support for data analysis.

IoT sensor projects often use different types of sensors, depending on the application. Common examples include temperature sensors, light sensors, motion sensors, and distance sensors. These sensors measure changes in the environment and send the data to a microcontroller, which can process the data or forward it to other systems