Now you can take a little piece of the outdoors and place it on your nightstand. The Storm Glass actually recreates the weather conditions outside to give you a weather forecast for the day. It does this by checking the weather periodically online, and if it's a rainy day you can expect to see some rain falling in the Storm Glass Lamp. If it's partly cloudy you should see some clouds forming and some sunshine interspersed here and there.

This project was inspired by the open tempescope, but it was adapted for off-the-shelf parts. An added bonus is that it costs much less too.

The Storm Glass lamp is powered by a $10 Raspbery Pi Zero W micro-controller which has built in wifi to check the weather, and some IO pins that allow you to control the various parts. Ready to dive in? Here is what you need to get started:

  • Raspberry Pi Zero W (Make sure it has the W for wifi and Bluetooth support)
  • Speaker Bonnet from Adafruit for easy connection and sound
  • Glass water bottle
  • Mini ultrasonic USB diffuser/humidifier
  • Mini 5V water pump (Brushless for quiet operation.)
  • 12 Neopixel LED ring
  • 2.5 amp micro USB power supply
  • 4GB Micro SD card or greater
  • Two TIP 120 transistors
  • Two 2.2K resistors
  • Lots of hot glue
  • Tubing for moving water about
  • Some 3D printed parts

All the parts run off of 5v so no power converters are required, and it conveniently can be controlled via the raspberry pi. In-all it shouldn't cost more than $80 in parts.

Step 1: Print the Parts

I designed a base where we can house the Raspberry Pi microcontroller as well as some speakers for sound. It also holds a microphone and the extra electronics that we put together for the motors to interface with the Raspberry Pi. (More on that later.)

We also have a bottom cap with the integrated supports to hold the speakers and electronics in place. It press fits into the bottom of the base, and it has an allowance for the power cord to route through.

The top cap press fits over the glass bottle. This part is critical as it contains all the holes for the water to flow out of to produce the rain effect. It also connects to the tube which brings the water up to the lid. It does need to be removable to fill it up with water as needed.

We also have the second glass cap that does quite a lot. It is the main body that houses the ultrasonic diffuser, the lights, a small water reservoir, the holes for the drainage and the rain tube, and on the bottom it interfaces with the pump. It also press fits into the body which allows you to assemble the glass and then press it all together without screws.

In total there are five printed parts. The two glass bottle lids, the base, the bottom cap and a small retaining ring that is used to hold the ultrasonic mister into place.

Step 2: Sanding and Finishing

For finishing I used a belt sander to remove all the 3D printed ridges from the parts. Then I gave them a finish sanding by hand. After a few coats of paint it really started to look great. Unfortunately, I sprayed an acrylic finish over it and for whatever reason it bubbled a lot so I ended up sanding some of it off. Either way I got my parts and I was happy enough with them so on to the next step!

Step 3: Connect Electronics

Don't let the wires fool ya. This really isn't as complicated as it looks. We have the raspberry pi with the IO pins. The speaker bonnet plugs right into those, and it conveniently has all the solder points on it for easy soldering of the other components.

The Neopixel LED ring was connected first. It requires a positive 5V as well as a ground connection and a signal connection that has to be connected to a PWM enabled pin. I used pin 13 because it uses a separate channel from the speaker bonnet. (More on this later.)

The LED neopixel lights are a lot of fun to work with. These lights can be programmed to display any color and animation you could imagine. They also put out a descent amount of light. Seriously, don't stare too long it kind of hurts.

Then you just place the LED ring and the diffuser into their corresponding places. Don't forget to cut a little piece of foam to act as a wick for the diffuser. (I just used some felt rod and shoved it into the little hole under the diffuser.) I also poured some hot glue on top of the LED ring to water proof it. I also used the heat gun to re-melt it and get the glue to flow better. Then I pressed the diffuser retaining ring into place.

It's not really good practice to connect things directly to a raspberry pi, but since it's just $10 I thought I would give it a try. From what I read connecting to the 5v DC and GND on the Zero is like connecting directly to the power supply. The Pi Zero does not have the same voltage regulation and protection that the others do. I calculated that the setup would pull about 2.5 amps so we are really running at the limits of the Raspberry Pi and the power supply.

With that said, the rain pump and cloud generator need to be controlled by one of the output General Purpose Input Output (GPIO) pins which only output 3.3V so we need to amplify that signal by using a transistor. I used a TIP 120 Power transistor to switch the higher 5V on and off. (Notice I used a 2.2K resistor on the base for each GPIO pins on the Raspberry Pi Zero.)

You definitely want a resistor here our you may draw too much current from the output pins permanently damage them. It's also probably a good idea to put a diode on the pump motor to eliminate any voltage spike from flowing back into the GPIO pins. I also had some problems with the ultrasonic driver board which sometimes caused some interference. I tried bridging the power leads to the board with a ceramic capacitor with great results. I admit I omitted the capacitor on the cloud generator and the diode for the pump in the final build, but I would recommend you at least consider adding them. Then again if something burns up it's just $10 bucks. I know, I know, sometimes I like to live on the edge.

The rain maker is a tiny 5v centrifuge pump I got online, which pumps water along some glass tubing and into the lid where the rain fall from. I simply used copious amounts of glue to hold it in place under the bottom cap which houses the water reservoir. I then soldered the leads to the motor to the +5 V on the speaker bonnet, and then the ground was soldered onto the small transistor board I put together. I kept getting small leaks so I just glued the whole motor on as well as the tubing that connects to the top.

The cloud generator is an USB powered ultrasonic diffuser/humidifier. I just pulled out the guts and got rid of the rest. Make sure to keep the electronics which create the ultrasonic signal which drives the diffuser. I connected the positive and negative on the ultrasonic driver board to the +5v on the speaker bonnet and the ground was soldered onto the small transistor board just like the rain pump as shown in the schematic. I then un-soldered the leads to the piezo transducer on the humidifier and used an older headphone wire to wire it up along with the Neopixel ring so that I had plenty of wire length to work with.

Then to keep things from shorting out I used some heat shrink tubing to encase the transistor and electronics as well as the ultrasonic driver PCB for the cloud generator.

Now pat yourself on that back that was the longest and hardest part of the build.

Step 4: Put It All Together

Here is where it all comes together. First there is a little prep work that we need to do. Harvest the water bottle glass. The water bottle is perfect for this project because it has a nice glass container where the weather can be housed. The caps just unscrew and you now have a nice glass container.

Now that we have the parts in order we can put it all together like so:

  1. Glue the bottom end cap onto the glass container (We assembled this in the previous step)
  2. Place the glass tube into the corresponding holes where the pump is connected
  3. Carefully line the top cap up with the tube and press fit it into place. (We still need to add water so don't glue it just yet)
  4. Connect the speakers and the USB microphone
  5. Feed the electronics through the base
  6. Press the glass tube into the base
  7. Carefully tuck in all the electronics and wires onto the bottom cap
  8. Press the bottom cap into place while making sure to run the power wire through the slot at the base
  9. Open the cap and fill it up with water then close the cap
  10. Go make yourself a delicious sandwich (you deserve it) and the excitement begins!

Step 5: Programming and More

I am not going to run you through how to install Raspbian on the Pi. There are already a number of tutorials for that. Like this one: https://www.raspberrypi.org/documentation/installa...

Once you are set up with the Raspbian you can write python scripts and run them. I won't go into the details here either since it is already well documented online.

Then it's time to write and run our script. You will need an API key from weather underground. You can get that here: https://www.wunderground.com/weather/api/

Once you have your API key add it to the appropriate place on the code that I have attached. You will also need to fill out your location as shown in the script.

This is a very basic script that just pulls the weather from weather underground. Then it runs the corresponding weather function to simulate the weather in the weather cube.

This is just a start. Truth is I am new to programming and this is my first attempt at anything like this. I used bits of code from here and there as well as my own custom functions. If you have a better way of doing this please let me know so I can post it and pass it on. Make your own custom animations and add more weather options. With the integrated speakers you could also eventually add effects like thunder clap when the lightning goes off etc.

I also have the Alexa digital assistant installed so I can connect to home automation or internet of things (IoT) devices. Check out my other instructable on how to do that.

Since it has bluetooth and wifi on board you could also connect to your smartphone, play music, or anything else you could imagine. Maybe once I get better at programming I can add this functionality and post it. For now we have a weather simulation lamp that is pretty cool in it's own right.

Step 6: Enjoy the Weather

If you've made it this far then it's time to enjoy the fruits of your labor. Sit back, put your feet up, and relax while you watch the sunset in the comfort of your own home!

Until you see it in person you simply won't get the full effect. The pictures really don't do it justice. Here are a sampling of various weather conditions:

Lightning Storm, Rain, Sunny, Partly Cloudy, Sunset, Sunrise, etc.

This thing is stunning, and I really enjoy watching it!

A few things I learned or that I would recommend:

  • Instead of running constantly I should have programmed it to run for 15 minutes each hour to tell me the current weather.
  • It may be good to add a tiny bit of alcohol or something to keep algae and other disgusting creatures from growing in the lamp.
  • It may be good to apply some rainx or something like it to the inside of the glass. It takes quite a while for fog and rain to clear from the glass.
  • For whatever reason I am unable to use the Alexa assistant when the weather is running. The assistant responds, but the sound it quite terrible. (I believe it is interference with the PWM for the LEDs even though I used a separate channel)
  • I would like to add snow, and I think I could use the double glass wall to incorporate a saturated crystal solution to do that. I will post it when/if I get it working.

If you like my project please consider voting for me in the lights contest!

what plan did you choose for the api? and does it show sunrise/sunset or would i have to program that?
<p>Nice! I'd been looking at doing something like this since I saw the original Tempescope project. Nice work.</p><p>I was looking at using acrylic tube as the container, but I like the glass bottle idea. Any recommendations on a source?</p>
Just search tea infuser glass bottle in Amazon and this exact bottle should come up. Its cheap and it works great!
<p>could you give a link to the actual bottle you bought, please, as this is going to be critical to fit with the 3D parts you've designed.</p><p>Awesome job!!</p>
<p>Awesome project, will do it myself! </p><p>What do you use for the Mini ultrasonic USB diffuser/humidifier? Could you pop a link down so I have a point of reference, cheers</p>
<p>Hey! This looks like an awesome project! I'm going to give it a try.</p><p>Looking to get all the parts now - I'm wondering if this part all that is needed for the cloud generator: <a href="http://allegro.pl/przetwornik-ultradzwiekowy-piezo-do-nawilzacza-20-i6851937592.html" rel="nofollow"> http://allegro.pl/przetwornik-ultradzwiekowy-piez...</a> ? Does it need any extra driver? How can I figure out minimum required voltage?</p>
<p>This is such an awesome Project and i think i`ll make this too! </p><p>Can you add some Light effects for starting up or red flashing light for no wifi connection and orange flashing light for no internet connection? that would be awesome! (you can also add more status lights if you want)</p><p>You can also make the light spinning instead of flashing. Maybe it would look more smooth.</p>
<p>sr for my english</p><p>i have a question. why you dont use arduino (nodemcu, esp8266...) ?<br>I think it cost less than raspberry .<br>Can you post a video about this project.</p>
<p>A Raspberry do have Wifi onboard and can handle the data better than the Arduino. Its also because of the sound i think... </p>
Depends where you live. I can get an RPi Zero W for $10 here in the US at a store (Microcenter). Ordering an ESP8266 with shipping would be about the same.
You may want to jump over to the comments at Raspberry Pi .org and introduce yourself. They did a nice write-up on their blog about your project. https://www.raspberrypi.org/blog/storm-glass/
<p>My only suggestion... relocate the LED ring to the top... other than that...</p><p><strong>FANTASTIC JOB!</strong></p>
<p>I thought about that, only then I would have to figure out to to route a wire up to the top, and I really didn't want to have a wire visible in the glass. It's definately doable it just wouldn't look quite a clean.</p>
A couple of options... print the tube running to the top with two chambers... one for fluid... one for the wires. The wire chamber doesn't need to be large... you can use 30ga for the LEDs.<br><br>Or insert a smaller tube inside the larger tube... increase the larger tube by 1mm... brass or stainless tube inside.<br><br>The other method... just string three 30ga up the glass at 120 degrees offset... it's so thin my would barely notice it... especially if the parts were printed in dark plastic.
<p>Considering that the bottle and the USB diffuser must fit perfectly with the printed parts, can you please provide links to the exact parts that you used?</p>
<p>You bet! I am working on making a video which many of you have requested, and I will be sure to upload a source for all the parts as well. Most are fairly straight forward. (Except for the glass. Search Loose tea infuser glass bottle.) More to come...</p>
Great, thank you!
<p>That is just an awesome idea..! Thanks for sharing it with us. Maybe we could get a video of the finished product in action..?</p>
<p>This is brilliant </p>
<p>Where did you get the water bottle for this storm glass? I assume the 3D printed parts only work with that kind of bottles?</p>
<p><a href="http://goo.gl/XWACOa" rel="nofollow">From Amazon</a></p>
<p>your work mat is so nice, where can i get one? haha</p>
can you upload a video of it working?
<p>Awesome project, congrats. I always loved the tempescope. I can't wait to make my own version :) double voted!</p>
<p>Thanks for your support bud!</p>
<p>I'm excited to try this but could you explain why it shouldn't run constantly?</p>
<p>Mostly because I am using the free version of the api which means I am limited to how many times I can call it a month. If you call it every hour it would already be over 700 calls a month. You could run it constantly though and just call every hour. I also like the idea of the lamp turning on at each hour to show me the weather as a way to let me know when the hour has passed, and it also give the weather time to reset. (The condensation takes a while to clear up.) Really it's just a matter of preference:)</p>
<p>Wow this is really impressive! </p>
<p>Dude, it's awesome!!</p>
<p>Nice project! I think I will give it a try.<br>About the audio issue you are right. Dma is shared between audio output and other systems (also led pwm) and this makes audio quite bad. Only solution I found is to use a small usb audio adapter, so bypassing the dma...</p>
<p>Hey thanks for the tip! Why didn't I think of that? Do you know if this is an issue with the RPI 3 or just the zero since it does not come with an audio jack?</p>
<p>The dma is used the same way for all the models and also the analog output has this issue. Only the digital audio from hdmi should be ok, but of course you will need a dac to use it.</p><p>It seems that wifi connections does not have this problem, but I did not try it. </p><p>Adding a different audio (usb cards are the cheapest hw I found for this) is the only way I found to get good audio...</p>
<p>Beautiful job! I'm definitely making one of these! I'll post it when I'm done!</p>
<p>You won't be disappointed the pictures don't do it justice! Let me know if you have any questions along the way.</p>

About This Instructable




Bio: Here on Modern Inventor I will show you how I take my inventions from idea to company. Follow along and you can invent things too ... More »
More by The Modern Inventor:Storm Glass - the Weather Forecasting Lamp That Simulates Real Weather Conditions! Alexa Assistant with a $10 Raspberry Pi Zero W and Lights Moon Phase Lamp 
Add instructable to: