The ESP32 is a nice module with plenty of connectivity possibilities, digital IO’s, analog input, and touch pad inputs. When I got my first ESP32 I started playing around with it to explore all its possibilities. The result is a small weatherstation that collects weather information from different sources and displays them on a 1.44″ TFT display.
The result is still on a breadboard and not included into a housing yet.
The main goal was to test as many connectivity options as possible. And right now the application is using a TFT display to show the weather conditions, a TSL2561 and a LDR to measure the brightness/light values, touch pads as user input devices, a DHT11 sensor to measure temperature and brightness, an UDP broadcast listener to receive informations from other sensors in my local network, a HTTP client to receive weather information from Weather Underground a MQTT client to send information to an EMQ MQTT server, a BLE server to send information to a mobile device over Bluetooth low energy and supports OTA for over the air software updates.
Now this is a lot of stuff, so I decided to split details of these functions into several posts. Follow the links below to jump to these posts.
- Display – SPI interface
- Light sensor digital and analog – I2C and AD conversion
- Touch pads
- Temperature and humidity sensor – bit-banging 1 wire protocol
- UDP listener to receive information from other devices
- UDP broadcaster to send weather information to other devices
- Weather Underground HTTP GET
- MQTT client
- BLE server
- OTA update
- Using the multitasking capabilities of the ESP32 / FreeRTOS
- Links to the used parts, libraries and the application source code on Github