Introduction: Desktop Weather Station With WIFI
Life is more than making a living. Life-Hacks and DIYs can make your days more enjoyable. By being a designer of your own house, you don't have to follow the latest fashion. For some time, simple changes make a big difference and can bring you great satisfaction. When tech, Open-source hardware and Design meet each other there would be amazing chemical reactions.
We have to be kind to every single day of our life. For this project, I made the shell like a cloud, which stands pure and lovely.
Step 1: Components Lists
Step 2: Modeling
Product measurements is important for building an aethetic appearance.A caliper can save your time.
Step 3: Loading Arduino Libraries
For beginners, you can either download libraries to local folder or make an automated install from the IDE nav bar.
Adafruit GFX Library
Adafruit ILI9341 Library
WIFIManager for esp8266
JSON Streaming Paser
Step 4: Wiring
Step 5: Api Key
Wunderground API helped me with the weather data.
And it's free to create a new account for your email.
And you have to replace the default ones in setting.h file. It is very important that you remember that key.
Step5 Configure Setting
set your language ,country and city to show the correct weather report
check following code in setting.h
1. // Wunderground setting
2. const boolean IS_METRIC = false ;
3. const String WUNDERGRROUND_API_KEY = “api_key_here” ;
4. const String WUNDERGRROUND_LANGUAGE = “ZH” ;
5. const String WUNDERGROUND_COUNTRY = “China” ;
6. const String WUNDERGROUND_CITY = “shanghai” ;
Step 6: Run the Project
When you run the project for the first time, the screen would show you the instruction. Connect to the wifi of ESP8266 and configure wifi.
Step 7: Sleep and Power Saving Mode
The screen was set to enter sleep mode in 10 sec.And it would be wake up when you touch the screen.You can custom that period of time by applying changes to the code in weather_station_color.ino.
// for AWAKE_TIME seconds we'll hang out and wait for OTA(over the air) updates
for (uint16_t i=0; i
// Handle OTA update requests