Overview
Weather Station
In this project, we'll learn how to make a DIY fully featured weather station using an ESP8266 and a 2.4" TFT touchscreen display. This project pulls weather data using the Wunderground API. It displays the date, time, current weather conditionals, 4-day forecast and even moon phases.
This great code is by Daniel Eichhorn - we just made a lovely case for it!
Prerequisite Guides
We recommend walking through the guides listed here to get a better understanding of the components used in this project.
Parts
You'll need the following parts to build this project.
Tools & Supplies
- Soldering Iron & Solder
- 3D Printer & Filament
- microUSB Data Cable
- 30AWG Silicone Coated Stranded Wire
Page last edited March 08, 2024
Text editor powered by tinymce.
Software
Adafruit Feather HUZZAH with ESP8266 Arduino Libraries
If you're new to the Adafruit Feather HUZZAH ESP8266, you'll need to install the board and libraries in order to compile and upload code to it using the Arduino IDE. Follow the guide below to install the board and libraries, then come back here once you've successfully installed it.
The guide walks you through installing the Arduino IDE as well.
Download & Install Arduino Libraries
You'll need to download and install a few libraries in order to compile the sketch.
The Adafruit libraries are in the library manager so use that to install them:
If using an earlier version of the Arduino IDE (pre-1.8.10), locate and install Adafruit_BusIO (newer versions handle this prerequisite automatically).
Then back to…
Settings
You'll need to manually adjust a few settings in order to properly display weather conditions from your area. In the settings.h file, look for the "WIFI SSID" section. Here, you'll need to enter your WiFi SSID & Password
// Setup #define WIFI_SSID "yourssid" #define WIFI_PASS "yourpassw0rd" #define WIFI_HOSTNAME "ThingPulse-weather-station-color"
Then, lower down find
String OPEN_WEATHER_MAP_LOCATION = "Zurich,CH";
and change it to say
String OPEN_WEATHER_MAP_LOCATION = "New York,US";
Finally, you can set your timezone at this section by adjusting the UTC offset for your location - if you have to deal with DST, there's also code to set that as well!
#define UTC_OFFSET +1
struct dstRule StartRule = {"CEST", Last, Sun, Mar, 2, 3600}; // Central European Summer Time = UTC/GMT +2 hours
struct dstRule EndRule = {"CET", Last, Sun, Oct, 2, 0}; // Central European Time = UTC/GMT +1 hour
// Settings for Boston
// #define UTC_OFFSET -5
// struct dstRule StartRule = {"EDT", Second, Sun, Mar, 2, 3600}; // Eastern Daylight time = UTC/GMT -4 hours
// struct dstRule EndRule = {"EST", First, Sun, Nov, 1, 0}; // Eastern Standard time = UTC/GMT -5 hour
Uploading Sketch to Adafruit HUZZAH with ESP8266
Once your adjustments have been made, you can upload the sketch to the board. Before you do, goto Tools > Board and select Adafruit HUZZAH ESP8266. Then, check the varies options below:
- CPU Frequency: 80 MHz
- Flash Size: 4M (3M SPIFFS) - this is not default!
- Upload Speed: 115200
Plug in a microUSB data cable into the board and connect it to a USB port on your computer. Under the Port section, in the Tools menu, you should see the board listed. (If you're on a Mac, it will be listed as /dev/cu.SLAB_USBtoUART.)
With those options selection, you can now upload the code to the board by clicking the upload button. You'll see the status of the upload in the black window on the bottom of the Arduino IDE.
Page last edited March 08, 2024
Text editor powered by tinymce.
3D Printing
Slice Settings
Depending on your 3D printer, you may need to adjust the slice settings. We tested the enclosure on a Sigma BCN3D, Deltaprintr Go and a Printrbot Play. They do not require any support material and are oriented to print "as is".
- Nozzle: 0.4mm
- Extrusion Multiplier: 1.0
- Extrusion Width: 0.48mm
- Layer Height: 0.2mm
- Nozzle Temperature: 220c
Fusion 360 Design Archive
You can remix the design if you'd like to make any adjustments or reuse components.
Page last edited March 08, 2024
Text editor powered by tinymce.
Assembly
Solder Headers onto Adafruit Feather HUZZAH
First, we'll need to solder on plain male headers onto the pins of the Adafruit Feather HUZZAH. You can follow the detailed instructions on the Adafruit Feather HUZZAH guide.
Mount 2.4" TFT Display to Adafruit Feather HUZZAH ESP8266
With the male headers now soldered to the Adafruit Feather HUZZAH, we can mount it to the back of 2.4" TFT FeatherWing. Line up the pins with the header and press them together until they're fully seated.
Connect Battery (Optional)
If you'd like the Weather Station to be portable, you can connect a battery. Here, we have a 2000mAh lithium ion battery. Plug in the male JST connector to the female JST port on the Adafruit Feather HUZZAH.
Connect Slide Switch (Optional)
If you'd like to turn off the circuit without having to remove the display from the case, you can break out the slide switch. You'll need to wire up a a slide switch. It will need to connect to the EN and GND labeled pins on the 2.4" TFT FeatherWing. Here, we connected the terminals of slide switch to jumper cables. The jumpers can plug into the female headers on the 2.4" display.
I used the tips from male jump cables to create a "slim" version by removing the plastic housing and trimming it short. Then, I soldered the tips to pieces of wire – This way, I can easily plug into the female header on the TFT display.
Install TFT DIsplay to Enclosure Cover
The enclosure cover has four standoffs that match up with the mounting holes on the 2.4" display. Orient the display and the cover so the side with black strip lines up with the opening in the lip.
Install Cover to Case
If you added a battery, place it in the enclosure. Notice the two openings in the enclosure. They're for the microUSB port and the microSD card. Orient the Adafruit Feather HUZZAH so the ports line up with the openings on enclosure. Lay the cover over the enclosure and press the two together. The case has two little nubs on the edge that will click into the dimples on the lip of the cover.
Page last edited March 08, 2024
Text editor powered by tinymce.