Weather Simulating Desk Plant

About the project

A Weather Station Which simulate the real-time weather of your location by changing the colors of the showpiece.

Items used in this project

Hardware components

NodeMCU v2-Lua based ESP8266 development kit NodeMCU v2-Lua based ESP8266 development kit x 1
SMD LED - RGB WS2812B (Strip of 50) SMD LED - RGB WS2812B (Strip of 50) x 25
5V 1A USB Port Power Supply 5V 1A USB Port Power Supply x 1

Software apps and online services

Arduino IDE Arduino IDE

Hand tools and fabrication machines

Soldering Station Soldering Station x 1
3D Printer 3D Printer x 1


Weather station in the form of a Desk Plant or you can call it as a Desk Showpiece. This weather station fetches data into ESP8266 from a Website named and changes the RGB colors in the showpiece. The showpiece got many different color combinations ,they changes according to Time and Climate. For example if its raining outside at evening time then the color of cloud becomes combination of red,orange,yellow and it shows that thunderstorm effect .Like this it has many different color combinations.

Step 1: Required Components

*Node MCU(ESP8266)

*WS2812 LED Strip

*5v Micro USB Power Supply

*3D printed parts: Click here for STL files

*Make sure to set the infill value to 0% for 3D printing cloud shape.

Step 2: Circuit Connection

*Make the connections as shown in circuit diagram.

*You can use WS2812B LED Strip instead of individual LEDs.

*The Data pin is connected to pin D4 of ESP8266,GND to GND and 5v to Vin of the NodeMCU.

*Make sure that you use 4 LEDs for each wall(4 LEDs x 4 walls = 16 LEDs),7 LEDs for cloud and 2 LEDs for Sun/Moon(3D printed Small Circe).

*The ESP8266 board is placed under the base , the base has a 3D printed cover to cover it.

Step 3: Planting

*Put the Soil and pant into the box shaped pot.

*Put a polythene cover into the pot.

Step 4: Coding

*Open the code given below in Arduino IDE.

*Make sure that you have included every library's that are mentioned in the code.

*Code: Click here for code

*Now you have to edit this

  1. String OPEN_WEATHER_MAP_APP_ID = "App_ID";
  2. String OPEN_WEATHER_MAP_LOCATION_ID = "Location_ID";

*Open the browser and search for

*Create a account and login into that website.

*Click on API keys copy the key and paste in the program at APP_ID.

*In the same website search your location open the result and copy the last number from URL and paste it at LOCATION_ID.

*The MAP_ID and LOCATION_ID will be similar to mine.

*Enter your Wifi_name at ssid and your Wifi password.

  1. const char* ssid = "Wifi_name";
  2. const char* password = "password";

*Now change the Time zone as per your country Time Zone

  1. int timezone = 5.5 * 3600;

As per India the Time Zone is 5:30 so I have typed 5.5 similarly you can type your Time Zone.

*Now connect the ESP8266 to your PC, select the port and upload the code.

Step 5: Final

Plugin the Micro USB charger and you are done.

Thank You!


Photo of mukesh-sankhla


🧑‍💻Passionate software engineer at Siemens, dedicated to driving digitalization by day. 🧑‍🏭By night, I'm a maker exploring IoT, product design, electronics, CAD, and 3D printing, sharing my projects with the world.


Leave your feedback...