Weather Lamp is a RGB lamp made using Wiznet Pico WizFi360 and WS2812B LED's. The lamp simulates the real-time weather using the openweathermap.org API. It read parameters like cloud intensity, temperature, time and try to mimic the cloud colors, sun/moon and change the base color as temperature range.
Step 1: Designing & 3D Printing
![](https://content.instructables.com/F5A/JP2A/L9PNCZYM/F5AJP2AL9PNCZYM.jpg?auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=758d32b6a63da43c1b4e72a2b7d98536)
![](https://content.instructables.com/F2G/6T3F/L9PNCZYT/F2G6T3FL9PNCZYT.jpg?auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=0c6b7f7efa9ff8b10801ee34bea02b3a)
*I have designed the model in Fusion360.
*Download the STL Files and 3D print them.
*By clicking on the 3D Model Link you can view the model in your PC/Mobile browser and the Model can be edited in Fusion360 software.
Step 2: Circuit Connection
*Connect the WizFi 360 and WS2812B LEDs as shown in circuit diagram.
![](https://content.instructables.com/F90/Y8R3/L9PND0BP/F90Y8R3L9PND0BP.jpg?auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=72c16f1c473bafbd15b7823d05912ae7)
![](https://content.instructables.com/F41/RIQQ/L9PND0BQ/F41RIQQL9PND0BQ.jpg?auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=9a8ab090b747eade4e00ced8ca5ed7ae)
![](https://content.instructables.com/F69/F4Q9/L9PND0BR/F69F4Q9L9PND0BR.jpg?auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=d7c1026d0426ac18f1d8bad3e88187af)
Step 3: Assembly
*Assemble all the parts together using quick glue.![](https://content.instructables.com/FXD/F2E2/L9PND0E1/FXDF2E2L9PND0E1.jpg?auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=a7c086e2cf50aeead4e683e4561cd754)
![](https://content.instructables.com/FV7/L2SG/L9PND0E4/FV7L2SGL9PND0E4.jpg?auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=9d0d13088af6e487c1e871c38fb9c92b)
Step 4: Getting Openweathermap API Key
![](https://content.instructables.com/F28/6574/L9PND4E9/F286574L9PND4E9.png?auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=1dfabfff8005bf605b6b519029f787e0)
*Go to openweathermap.org and create your account and verify it.
*Now login to your account and click on you profile or right-top corner and go to My API Keys.
![](https://content.instructables.com/F9Y/882F/L9PND4AM/F9Y882FL9PND4AM.png?auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=a1f41a8a4ef5b04f5c70de9069739fc0)
*Copy the API Key that you see this will be used later in Step 6.
Step 5: Arduino Libraries Setup
![](https://content.instructables.com/F3K/DLM1/L9PND0UT/F3KDLM1L9PND0UT.png?auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=b46d4c9ddaf13d256e587e7c2c394493)
*First go to Files->Preferences and copy paste the following URL in Additional Boards Manager URLs:
![](https://content.instructables.com/FV2/LYIQ/L9PND0UU/FV2LYIQL9PND0UU.png?auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=ce4c273b3f99c034a306c29c085a6ebe)
*Go to Tools->Boards->Boards Manager and search for Raspberry Pi Pico/RP2040 and dinstall it.
*Download the WizFi360_arduino_library-main.zip , Go to Sketch->Include Library->Add .Zip Library and select the downloaded Zip file.
*Now got to Sketch->Include Library->Manage Libraries and Search for ArduinoJson, Adafruit_NeoPixel and install them.
Step 6: Code Changes
*Download the Arduino Code and make the followig changes
![](https://content.instructables.com/F36/E4O6/L9PND2CM/F36E4O6L9PND2CM.png?auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=7855b2cb94fdd6819137f6701d969f6b)
*At Line.No 20 you have to edit your Wifi Name(SSID) and Password.
char ssid[] = "SSID"; // your network SSID (name)
char pass[] = "PASWORD"; // your network password
![](https://content.instructables.com/F9B/3EDF/L9PND2EV/F9B3EDFL9PND2EV.png?auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=1f55e1669c78d57a2e57039c1437770b)
*At line 153 I have added 5 to hour and 30(Indian time zone IST 5:30) to Minutes and applied a maths to convert the APIs GMT time into ISt time zone.
*You may have to change the number(5 and 30) according to your tiem zone.h = (h + 5) % 24;
h = (h + 5) % 24;
Serial.println(h);
minute = (m + 30) % 60;
![](https://content.instructables.com/FCQ/E9F2/L9PND2DX/FCQE9F2L9PND2DX.png?auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=8a150eb6989ae9c0e878e77d5f5352fe)
*At line 282 you have to enter your locations Longitude, Latitude and You accounts openweathermap API key.
client1.println(F("GET /data/2.5/weather?lat=17.6795&lon=77.6051&appid=43f22249d3d42ec***********ca809b HTTP/1.1"));
Step 7: Code Compile and Uplaod
![](https://content.instructables.com/FX4/GE3M/L9PND5OS/FX4GE3ML9PND5OS.png?auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=7b283f6337fb22b9d6964cb3c8970198)
![](https://content.instructables.com/F5L/QYEN/L9PND5OT/F5LQYENL9PND5OT.png?auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=35bb7f2e641cca2778caf4072a8cc65e)
![](https://content.instructables.com/FQZ/B790/L9PND606/FQZB790L9PND606.png?auto=webp&frame=1&fit=bounds&md=81b99f04eb21fa07a1302f0d6a5df4ce)
*Connect your device usinh MicroUSB cable.
*Select the board type and port from tools.
*Now click on uplaod code, it will automatically compile and uplaod the code.
*After code is succesfully uloaded the device will connect with provided wifi and show the output.
Note: I am using My PCs USB as the power source for the Weather Lamp, you can use a 5V adapter or a 3.7V Lithium Ion battery.
![licensBg](/images/license_bg.png)