In this video, the Arduino is getting the weather data of NYC LGA for the year 2017. The representation of the light is mapped accordingly to the precipitation and rainy days data each month in 2017. In this video, you can see the brightness of the blue light is different according to the amount of precipitation and the frequency of the lights is different according to the amount of rainy days in each month.
Here is the outline of my whole process in making the final project.
- Brainstorm the idea – focusing on interpreting the rain data through light
- Experiment with materials and filters
- Experiment with Arduino code
- Working with Wifi
- Getting weather data from https://api.meteostat.net/
- Parse data through ArduinoJson library
- Map data to led strip
- Final project proposal for potential future installation
Updates since last week:
Arduino Code process:
I was having trouble using the http request to parse it since the http request is String type. If I were to parse it, it should be JSON object. So I spent quite some time figuring out how to use ArduinoJSON library to parse the data to only get precipitation and rainy days.
The JSON library is well documented and although they have the HTTP Client example, it was not exactly what I was looking for so I modified to make it fit into my code, which is suitable if you are working with WifiNina to get the http request with Arduino Nano IoT 33.
Here is an example of the JSON file from the 2017 monthly data in NYC, LGA from https://api.meteostat.net/.
Here, I converted the data from the HTTP request response, which is a strong into a JSON object and parse it with the help of JSON library. In order to calculate the capacity size, you would have to use the JSON Assistant that can not only calculate the size for you, but also generate the code needed to make your life easier.
After getting the individual precipitation data and rainy days data, I found the max and min value of each data and mapped the value into the variables: frequency and lightValue. The frequency determines how many pixels will be skipped while the lightValue determines the brightness and the blue color value of the neopixel.
Up until this point, the code is done.
Final project proposal:
My detailed final project proposal is linked here. It is a work-in-progress since I am trying to create more graphics of what it will look like in a museum/gallery setting through 3D modelling and rendering. I plan to work on it during the summer to have a more comprehensive plan that I can apply for grant for.
Summary of my project:
A light visualization of historical rain data of cities around the globe.
My work will live in transportation stations such as train stations and airports. I want it to be experienced by many travellers. Through the rhythm of the light, controlled by the data precipitation and rain days, I want to create a sense of calmness in the busy spaces while allowing people to travel around different cities/countries through patterns of the rain in each place.
Background and Concept:
There are certain parts of New York that remind me of my hometown back in China. The rainy season in New York makes me think of my family and my childhood. I remember that I loved looking up to the skywindow of the car on the way for my piano lesson especially during the rainy season. Each rain drops at different times, yet the sound is so musically to me. I wanted to create a piece where people can see the music of raindrops through light. And hopefully, they will be taken back to the moments they treasure associated with the rainy season in their hometowns or favorite cities.
This project consists of a rectangular lightbox with a patterned filter that allows light to go through. Inside the lightbox, there is a LED strip, an Arduino 33 IoT, and a portable battery that could be replaced by a 5V wall plug. This project takes the historical weather data from api.meteostat.net and parses it to get the data of the precipitation and rainy days in chosen cities. Then the data will be mapped to the LED strip to show its pattern through light.
For the rough prototype, it is a 13-inch* 3-inch * 2-inch box with the portable battery attached outside of it. It is made of cardboard for the box and the hard paper for the filter.
For the ideal dimension, it would be 45-inch * 2-inch * 1-inch box with a 5v wall plug. The material would be plywood painted white for the box. The filter would be a piece of long black paper with patterned holes on top of it. This ideal piece will be mounted horizontally on a white wall in a room and it is the only light source in it.
Rough Sketch of the Installation:
- Mount the piece onto the wall
- Place it in the center and secure it with screws
- Plug it in to the wall plug
This graph shows the black walls and black box to show the light. Ideally, it would be white room and white box but it is going to be dark.
- Update the presentation
- I would replace the material with wood covered with white paint. I will also secure the inside of the piece with standoffs.
- Create a device where user can input the zip code to display the corresponding historical rain data.