--- date: 2015-12-12 title: Weather snowman image: /images/weather-snowman/snowman-glowblue.jpg --- I add a WiFi chip to a snowman to change the color based on the weather forecast. It's christmas time! As a kind of pre-christmas gift, I built an Internet of Things enabled snowman for one of my best friends. Like in [my last project]({{< ref "internet-is-magic.md" >}}), I used an ESP8266 again, some LEDs and an old acrylic snowman that I cut open. ![blue glowing snowman](/images/weather-snowman/snowman-glowblue.jpg) _The electronics were cheaper than the snowman._ Inside the snowman was a fading RGB led, a switch and batteries. Boring! I replaced it with the ESP8266, which had 3 LEDs attached to it (red, green, blue). Via a USB cable and a voltage converter, I powered it: ![inside setup](/images/weather-snowman/leds.jpg) _Luckily, you don't see how messy it really becomes once you put all this in that tiny snowman…_ ![inside setup, top view](/images/weather-snowman/leds-esp.jpg) Coding took a while. The ESP creates a wireless access point with a web server after powerup and asks you to enter your WiFi credentials. After first setup and whenever the module is started again, it connects to your wireless network and queries [OpenWeatherMap](http://openweathermap.org/) every hour for a 3 hour forecast. Depending on the forecast, the blue and red LEDs glow in different patterns. If a rainy day is to be expected, the top red LED lights up and the bottom blue LED fades in and out. A storm at night is displayed via a deep blue head and a blinking snowman's body. If you inspect [the source code](https://git.schneefux.xyz/electronics/weather-snowman), you'll see that there also is an Android app. The app simplifies the setup and runs a background service that makes your snowman's green LED flash on new notifications. ![new notification snowman](/images/weather-snowman/snowman-blink.jpg) _Gotta check my mails._ ![blue and red glowing snowman](/images/weather-snowman/snowman-glowbluered.jpg)