esp8266 tft lcd weather station factory

In the previous article (“WiFi OLED Mini Weather Station with ESP8266“) I have used the OLED kit from https://blog.squix.org. And as promised, this time it is about the “ESP8266 WiFi Color Display Kit”:
I had ordered both because I thought that the Color Display kit is needs the other kit as a base. Well, it turned out that both kits work independently. My bad. Actually this is good, as I have now two independent ESP8266 weather stations :-). An addition to that, they can exchange data (e.g. temperature/humidity) with a server, so that makes them a perfect dual weather station.
Example code is available on GitHub (https://github.com/squix78/esp8266-weather-station-color). The code is very well documented I had no issues to make all the needed configuration (WiFi SSID and connection settings). After a few hours I had the ESP8266 weather station up and running in the first prototype of the enclosure:
After a few hours, I have now my second ESP8266 WiFi weather station with touch LCD. It is not looking good and I very much enjoy it. The design is available on Thingiverse (https://www.thingiverse.com/thing:2527282).

This project is a series of enhancements made to the original color weather station for the ESP8266 created by Daniel Eichorn, with contributions by several others. Though the original display layout came from squix78, I"ve made substantial changes to add additional information.
This version of the project was written specifically for the WeMos Mini D1 with the 2.8" or 3.2" color LCD display based on the ILI9341 and XPT2046 touchscreen controller that squix78 used. These can be had very inexpensively from sources such as AliExpress (<$10, shipped to the US, or slightly more for the 3.2" version). You may also want to pick up a cheap stylus for the screen if it doesn"t come with one.
Note that the wiring for this version is somewhat different from prior releases in order to support the touchscreen functions. I have also attempted to deal with some instability issues that occurred with the prior releases. First, I added a short delay following the TFT initialization, which seemed to eliminate some issues with periodic "white screen" displays at power-up. Second, I added a 1000uF capacitor between the VCC and GND pins on the WeMos mini, in order to avoid sags in the voltage during WiFi operations. Third, I soldered jumper J1 on the TFT board to bypass the on-board regulator since the board is being powered directly from the WeMos 3.3V supply. (The additional regulator in-line was causing the voltage to drop below specifications for the TFT display.) All of these changes seem to have resulted in a much more stable station.
This release contains significant changes over prior releases, including support for touchscreen functions. (You may want to review the README files for v8 and v11d in my other repositories, as this version builds on those enhancements.) (Note: As a result of prior changes to the Weather Underground client library to support corrections to the weather icons, I"ve submitted a pull request to merge these changes into the original master. This is still pending, so I"ve included a copy of the changed library in the "/Weather Underground Client Library" folder. Replace your copy in your libraries folder for the IDE with this copy (both the .cpp and .h files). Note that this library version does not include squix78"s most recent updates he made for the MiniGrafx library, including improvements in memory used.)
added a brief (500ms) delay following the TFT initialization and prior to any other display calls to avoid an occasional "white-screen" display state on startup
added configuration item to allow setting an auto-restart frequency in seconds; this is in an attempt to periodically clear fragmented heap that I suspect causes occasional hangs in the station (usually manifested during a call to update WU information), and after the station is running for a week or so. The default is set to 604,800 seconds, or 7 days of runtime. (I suspect some of the remaining stalls that occasionally manifest themselves after 7-10 days of running are due to heap fragmentation due to extensive use of Strings in the code, and this is a crude workaround.)
Wire the WeMos (or equivalent) as noted. For best stability, add a 1000uF capacitor between VCC and GND near the WeMos pins, and solder the J1 jumper on the TFT board to bypass the regulator if powering the display from the WeMos.
Copy/replace the two updated Weather Underground client library files in the folder "/Weather Underground Client Library" into the IDE libraries/ESP8266_Weather_Station folder (temporary fix until my pending changes are merged to the master library).
Run the ESP8266 Data Upload tool located in the Tools menu of the IDE. You should receive information in the IDE indicating the copying of the icon folders located in the "/data" folder to the ESP8266.
On first run, the station will run a display calibration routine to map the touchscreen coordinates to the display coordinates. Follow the on-screen instructions by touching the screen targets as indicated in the upper-left and lower-right corners of the screen. The last step in the calibration allows you to see how closely the coordinates are mapped by displaying the screen coordinates as you touch various locations on the screen. This will time out and continue startup if the screen is not touched for 5 seconds.
The initial configuration is done via a configuration portal or webpage. The first time you bring up the app, if it cannot find previously stored settings, it will bring up an access point and configuration portal. Look for an access point that begins with "ESP..." and connect to it. The access point is password protected, with a default password as "portal-pass". It is a captive portal, and in most cases a browser will open automatically connecting to the portal after connection. If it doesn"t, then type the address "192.168.4.1" in a browser to bring it up once connected to the AP. It should be fairly self-explanatory at that point; enter your WiFi AP/password credentials, WeatherUnderground API key, WU weather station, timezone city from the list, etc., and click "Save". The ESP should restart and try to connect using the new configuration. There"s other features of the configuration portal, such as scanning for all available access points and allowing you to just select one, but again, it"s pretty self-explanatory once you see the configuration page. (If you"ve done this before with a prior release, you"ll need to reconfigure and save the settings, as the SPIFFS format will erase the configuration file stored previously. Note that there are a number of new configuration parameters here from prior versions to allow tweaking the timing of the mid- and bottom-panels to your liking, and to control automatic restarting of the station to clear fragmented heap.
If it doesn"t connect, then you can at any time bring up the configuration portal again manually by touching the time-display region of the screen and holding for 4-5 seconds. You should also see information on the LCD display when it comes up in config mode.
The initial defaults for the configuration portal are located on the "Settings.h" tab as well. If you look through this, you"ll find parameters for the WU API key, the timezone city, weather station, etc. These are currently set for my location and preferences, but you can change them here if you want also.

The device is based on Adafruit"s Feather Huzzah esp8266 and the 2.4" TFT Feather Wing. The enclosure is desigen using Fusion360 and cut out of birchwood using a 140W laser.
This whole project is based on adafruit"s guide which you can find here https://learn.adafruit.com/adafruit-feather-huzzah-esp8266/using-arduino-ide, my only improvement beign the wooden enclosure.
Nice packaging comes with more tham you need to build your weather station. Only thing that was missing was a piece of paper with reference to documentation, which is to be found on the Internets.
What you’ll build in less that 20 minutes of soldering is a device, that (with demo sketch for Arduino IDE) is able to connect to your WiFi and fetch current WeatherStation data for pre-defined location. On first start, it will require to calibrate touch display used to control the device.
Even though it might not be visible at first sight, there’s a tremendous amount of work behind this thing (and by ‘thing’ is meant a combination of software and hardware). When you start installing the sample Weather Station sketch, it appears that you need to install some libraries, all of them by Daniel Eichhorn: ESP8266 WeatherStation which is a WeatherUnderground client, Json Streaming Parser that helps keeping low memory profile while getting huge API responses, and Mini Grafx library that implements a VSYNC equivalent through framebuffer for embedded devices.

1. We have to install it first. Open file / preferences in the Aduino -IDE and insert the following link in the Additional Boards Manager URLs field: http://arduino.esp8266.com/stable/package_esp8266...
Download all librariesThe ThingPulse Weather Station Color depends on a number of other libraries.They need to be made available to the Arduino IDE for them to be compiled and linked into the final application.

Welcome to my new Weather Widget Project. Earlier I have posted an article on the weather widget, that uses a 0.96" OLED display to display the weather parameters. The main problem in the earlier version is that the display is very small in size, so you have to come very close to it for reading the parameters. That"s why it was always in my mind to upgrade it to a larger color display with a nice 3D printed enclosure.
In this post, I will show you how to make a Weather Widget by using ESP8266 and a 2.8" touch screen display. The device retrieves localized weather information from https://openweathermap.org/ by WLAN and displays it on the Display module.
I would like to give credit to my friend Dani Eichhorn who did all of the programming parts. He is updating the software on his Github page regularly with new features. You can visit SquixTechBlog to see more projects on ESP8266.
My plan is to place the weather display circuit inside a 3D-printed enclosure. But the enclosure that I am going to use is very compact, and there is little room to keep the Wemos board along with the connecting wires inside the housing.
The wiring diagram is very straightforward. You have to connect the TFT display module ( ILI9341 ) pins with Wemos pins as per the schematic diagram. The schematic diagram is shown above. You may also follow the following pin mapping
2. Enterhttps://arduino.esp8266.com/stable/package_esp8266com_index.json into the File>Preferences>Additional Boards Manager URLs field of the Arduino IDE. You can add multiple URLs, separating them with commas.
After setting up Arduino IDE and installing all the libraries we can move to upload the code into the ESP8266 board ( Wemos D1 Mini Pro or any other board )
First, you have to unzip the code downloaded in the earlier step and then save it somewhere on your PC or Laptop. Remove the word master from the folder name, the final name shall be " esp8266-weather-station-color "
In one of the tabs, the IDE opened settings.h. Go through the file and adjust the two handfuls of configuration parameters. They are all documented inside the file directly. Everything should be self-explanatory. Most importantly you will need to set the OpenWeatherMap API key you obtained in a previous step.
If you are successfully uploaded the code into the ESP8266, you will immediately notice the display on the front page by searching the WiFi Network for connection. After connecting the device to your WiFi router, it will update the time and weather data from the web.
Now you will be able to see all the weather information along with all other parameters on the TFT display. You can swap between the different pages by using the stylus or touching with your finger.

A number of display resolutions are supported. Assembled 480 x 320 TFT’s that have an SPI interface are rare. The 480 x 320 display supported by the library is an ILI9486 display designed for the Raspberry Pi by Waveshare. Clones are available 3.5″ and 4.0″ for circa $15. This RPi board design uses a 16 bit shift register (2x 74HC4094), a counter (1 x 74HC4040) and a hex inverter (74HC04). Many other RPi interface designs are sold that are not of this design so be careful if you are looking to buy a display!
The ILI9341 is typically a 320 240 TFT, these display drivers are good and almost work at 80MHz SPI clock rate (data sheet spec. is 25MHz). Expect some duff pixels at 80MHz but they seem to work reliably at 40MHz.

This is a continuation from my first iteration ofWIoTweather station. What is WIoT-2? I use it as a cloud-connected (IoT) info center of sorts mounted near our front door. It is a culmination of information my wife or I often look for either on our way out of the house, or when we come home. It displays current/forecast weather from DarkSky.net/WeatherUnderground, weather data from outside the house (from this), date, time, our local waste collection schedule, currency rates, the status of our garage doors (from this), our hot tub temperature (from this), and even allows our kids to check-in when the get home. Read on to find out more about how I built it.
WIoT2 Features:Display current and forecast weather information + alerts. Sources:DarkSky.net API or Weather Underground APIto pull both current and forecast data in JSON format.Display weather datagenerated outside the housevia another ESP unit. It polls temp, humidity and battery info (it’s solar powered) – Integrated with BlynkAllows change of weather to different locations (because why not?!)Displays temperature and humidity from inside the house. Watch out Nest!
Ms.Josey
Ms.Josey