Live Weather Satellite Image Clock

by 陳亮 in Circuits > Arduino

5704 Views, 65 Favorites, 0 Comments

Live Weather Satellite Image Clock

Live Weather Satellite Image Clock

This instructables show how to use a ESP32-S3 dev device build a clock with live weather satellite image as background image.

Supplies

Any ESP32 dev devices with (Micro-)SD card slot, display and PSRAM should be ok.

In this project, I am using:

Waveshare ESP32-S3 TOUCH LCD 3.49

You also requires a Micro-SD card that formatted in FAT32 format

What Is Weather Satellite?

NOAA-M.jpg
FY_stellar.jpg.png
A weather satellite or meteorological satellite is a type of Earth observation satellite that is primarily used to monitor the weather and climate of the Earth.

This project use the live image from FengYun (FY-4B) satellite.

FY-4 is the second generation of China's geostationary meteorological satellite series. FY-4B, the second of its series, was launched on June 3rd, 2021, aiming to serve as an operational satellite.


Ref.:

https://en.wikipedia.org/wiki/Weather_satellite

https://www.nsmc.org.cn/nsmc/en/satellite/FY4B.html

Earth Timelapse

ezgif.com-optimize.gif

FY-4B is a geostationary satellite, it hovering over the same spot on the equator. so we can see the same place image from time to time. If we play the last few hours images in sequence, it become an live Earth Timelapse animation.


Ref.:

https://www.nmc.cn/publish/satellite/fy4b-visible.htm

How Does It Works?

ESP32 family dev device most have WiFi capability, so it can gather the latest information from the Internet.

  1. The first information requires gather is the current time. If the dev device does not have RTC module, it can gather from public NTP service on the Internet.
  2. Weather satellites require time to process and transfer the image to the Earth, so it is expected some time delay. FY-4B provides images to public in 15 minutes interval and have around 45 minutes delay.
  3. According to the interval pattern, we can download the satellite image every 15 minutes.
  4. The downloaded images are saved to Micro-SD card in the folder pattern "/fy4b/yyyy/mm/dd/HHMM.jpg"
  5. While waiting next download interval, we can play downloaded image in sequence every few seconds.

Note:

At the beginning, only 1 downloaded image in the card, so it only display a still image. After power on 6 hours, it can display 6 hours Timelapse animation.

More Weather Satellie Image Source

螢幕截圖 2025-10-15 上午6.45.04.png
螢幕截圖 2025-10-15 上午6.46.30.png
螢幕截圖 2025-10-15 上午6.46.45.png
螢幕截圖 2025-10-15 上午6.47.01.png

FengYun (FY-4B) satellite keeps hovering over around Asia area on the equator. If you would like to view other area satellite images, you may use the image from other weather image web site.

E.g.:

Europe

  1. https://www.met.ie/latest-reports/satellites/europe-infrared-radar

India

  1. https://mausam.imd.gov.in/imd_latest/contents/satellite.php

Japan

  1. https://www.data.jma.go.jp/mscweb/en/index.html

NASA

  1. https://weather.ndc.nasa.gov/goes/

World Wide

  1. https://zoom.earth
  2. https://www.accuweather.com/en/hk/national/satellite

Software Preparation

Arduino IDE

Download and install Arduino IDE latest version if not yet:

https://www.arduino.cc/en/software

Arduino-ESP32

Follow installation step to add Arduino-ESP32 support if not yet:

https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html

Arduino_GFX Library

Open Arduino IDE Library Manager by selecting "Tools" menu -> "Manager Libraries...". Search "GFX for various displays" and press "install" button.

You may refer my previous instructables for more information about Arduino_GFX.

Dev Device Pins

Open Arduino IDE Library Manager by selecting "Tools" menu -> "Manager Libraries...". Search "Dev Device Pins" and press "install" button.

JPEGDEC

Open Arduino IDE Library Manager by selecting "Tools" menu -> "Manager Libraries...". Search "JPEGDEC" and press "install" button.


Note:

You may refer to Arduino Documentation for the details on how to install/import library to Arduino IDE.

Sample Code

Please download the sample code at GitHub:

https://github.com/moononournation/WeatherPanel.git

This project is WeatherSatelliteImageClock.ino under WeatherSatelliteImageClock folder.

Upload Program

Esp32-s3-touch-lcd-3.49-10.png
  1. Open WeatherSatelliteImageClock.ino in Arduino IDE
  2. The first 2 lines are the WiFi station connect details, please replace with your WiFi details
  3. Insert Micro-SD into the dev device
  4. Set the board parameter settings according to your dev device
  5. Press upload button and wait...

Ref.:

https://www.waveshare.com/wiki/ESP32-S3-Touch-LCD-3.49#Arduino_Project_Parameter_Setting

Enjoy!

IMG_6808.jpeg

Now you have a decent clock showing live weather satellite image on your desk!

Customization: Image Source

At the header of WeatherSatelliteImageClock.ino have a image source URL template:

const char *SATELLITE_URL_TEMPLATE = "https://image.nmc.cn/product/%d/%02d/%02d/WXBL/medium/SEVP_NSMC_WXBL_FY4B_ETCC_ACHN_LNO_PY_%d%02d%02d%02d%02d00000.JPG";

You may change the URL to your preferred web site.

Notes on Importing Root CA Cert

Import HTTPS web page root CA Cert to Arduino project

This project requires download live satellite image on the web using HTTPS protocol. The download code is base on the ESP32 HTTPS client sample code. It requires prepare the web site root CA Cert first.

The sample code is set the nmc.cn root CA Cert for download FengYun (FY-4B) satellite images. If you would like to use other web site images, please follow the above video import the correct root CA Cert to the code.

Customization: Image Crop Area

The image downloaded from image.nmc.cn has size 860x540 but the display is 640x172. So you can select the cropping area your would like to display:

jpeg.setCropArea(220, 280, 640, 172);

The above sample code crop to the area around South China and Hong Kong.

More Possibility

This Waveshare dev device is actually have RTC (Real Time Clock) and can be battery powered. Someone suggest it can become a keychain or bag charms!!

The touchscreen can provide more user interaction. E.g. adjust image crop area, switch to show Infra red image...etc.

Housekeeping Storage

The image files use around 10 MB every day, and does not cleanup old files in the sample program. For a 128 MB Micro-SD card, it will disk full within 2 weeks and 4 GB card full around 1 years. If you found cannot download display image, simply reformat the card to FAT32 format can resume the function.