This repository contains examples of courses related to tangible user interfaces, electronics, and physical computing at the St. Pölten University of Applied Sciences in Austria.
The following code examples are based on the ESP32 microcontroller and the Arduino framework. They are written in C++ and can be used with the PlatformIO IDE for Visual Studio Code.
The examples are structured in a way that they can be used in a lab setting. Each example contains a README.md
file that explains the setup and the code. The examples are designed to be used in a linear fashion, starting with the ESP32Setup
example.
- ESP32Setup – Setting up the ESP32 with PlatformIO for Visual Studio Code
- BlinkLed – Blinking onboard LED
- SimpleLed – Lighting up an external LED
- DigitalLed – Digitally controlled external LED
- LedFadeDac – Fading an external LED using the digital/analog converter
- LedFadePwm – Fading an external LED using pulse width modulation
- SerialOutput – Outputting data to the serial monitor
- TouchInput – Touch input using capacitive sensing
- LDR – Reading the brightness using a light-dependent resistor
- ESPWebServer – Setting up a web server on the ESP32
- ESP32WebSockets – Transmitting LDR measurements from an ESP32 to a web socket client
These additional examples are more high-level and focus on specific sensors. They are also based on the ESP32 microcontroller and the Arduino framework.
- PulseOximeterAndHeartRateSensor – Reading pulse oximeter and heart rate data from a MAX30102 sensor
- PulseOximeterSparkfun – Reading pulse oximeter and heart rate data from a Sparkfun sensor (MAX30101 & MAX32664) using the Sparkfun library
- PulseSensor – Reading pulse sensor data (very basic example)
- DHT11TemperatureHumidity – Reading temperature and humidity data from a DHT11 sensor (digital)
- ProximitySensor – Reading proximity data from a simple proximity sensor (digital)
- HallEffectSensor – Reading analog data from a Hall-Effect sensor (A3144)
- Microphone – Reading analog data from a microphone sensor (KY-038)
This repository is licensed under the GPLv3 license. See LICENSE for details.