A picture of Sjors van Holst playing VR in nature
A picture of nature
A picture of nature

Toolenburgerplas

A website displaying real-time swimming conditions for Toolenburgerplas lake, using a custom temperature sensor, OpenAI API, and OpenWeather API, built with Next.js, SCSS, TypeScript, and Supabase.

I often go swimming with Wouter de Bruijn in a local lake near our homes called Toolenburgerplas. For years, Wouter and I have been thinking about creating a website to show the water temperature and whether or not it's comfortable for swimming.

Last year, we finally created a temperature sensor. It consists of a 3D-printed enclosure with an antenna, Arduino 3G, internal and external temperature sensors, and batteries with a wireless charging circuit, ensuring we can charge it while underwater. This device, called ‘The Buoy,' is installed in the Toolenburgerplas.

I then created the website, which receives hourly data about the temperature. I use OpenAI API and OpenWeather's API to generate a short summary of the current swimming conditions. I've designed variants for the ‘No' and ‘Yes' pages with different doodles and colors to reflect the weather.

Wouter connected and programmed the electronics, while we both worked on the enclosure. I created the website using Next, SCSS, TypeScript, and Supabase for the database and edge functions. I've also used the aforementioned APIs to create the website. Working on this project took a while as I'm unfamiliar with hardware production.

And you could tell we're not hardware pro's. It didn't take long for The Buoy to break down, which led to a series of bad decisions that ended The Buoy. We ended up going with an off-the-shelf LoraWAN-powered sensor, but for the whole saga you can check out this blog post about it from Wouter.

I'm very proud of the project as it's been running for more than a year now. We also launched and installed another sensor for the Haarlemeersebos in Hoofddorp. During the peak of the summer, the sites attracted thousands of views. It's very exciting knowing people actually use your services.