[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-6479":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":32,"readmeContent":33,"aiSummary":34,"trendingCount":16,"starSnapshotCount":16,"syncStatus":35,"lastSyncTime":36,"discoverSource":37},6479,"esp32-weather-epd","lmarzen\u002Fesp32-weather-epd","lmarzen","A low-power E-Paper weather display powered by an ESP32 microcontroller. Utilizes the OpenWeatherMap API.","",null,"C",6142,463,65,24,0,10,61,1,75.1,"GNU General Public License v3.0",false,"main",true,[26,27,28,29,30,31],"display","eink","embedded","epaper","esp32","weather","2026-06-12 04:00:28","# ESP32 E-Paper Weather Display\n\nA low-power weather display using a wifi-enabled ESP32 microcontroller and a 7.5\" E-Paper display. Weather data is fetched from the OpenWeatherMap API, and an onboard sensor provides indoor temperature and humidity.\n\n\u003Cp float=\"left\">\n  \u003Cimg src=\"showcase\u002Fassembled-demo-raleigh-front.jpg\" \u002F>\n  \u003Cimg src=\"showcase\u002Fassembled-demo-raleigh-side.jpg\" width=\"49%\" \u002F>\n  \u003Cimg src=\"showcase\u002Fassembled-demo-raleigh-back.jpg\" width=\"49%\" \u002F>\n  \u003Cimg src=\"showcase\u002Fassembled-demo-bottom-cover.jpg\" width=\"49%\" \u002F>\n  \u003Cimg src=\"showcase\u002Fassembled-demo-bottom-cover-removed.jpg\" width=\"49%\" \u002F>\n\u003C\u002Fp>\n\n## Features\n\n- Ultra-low power consumption: ~14μA in sleep, ~83mA during refresh (~15s).\n\n- Long battery life: 6-12 months on a 5000mAh battery with 30-minute update frequency.\n\n- Customizable display: Supports multiple languages, units, time\u002Fdate formats, AQI scales, personalization options, and much more.\n\n- Easy recharging: USB-C charging with battery monitoring.\n\nThe hourly outlook graph (bottom right) shows a line indicating temperature and shaded bars indicating probability of precipitation (or optionally volume of precipitation).\n\nHere are two (slightly outdated) examples utilizing various configuration options:\n\n\u003Cp float=\"left\">\n  \u003Cimg src=\"showcase\u002Fdemo-new-york.jpg\" width=\"49%\" \u002F>\n  \u003Cimg src=\"showcase\u002Fdemo-london.jpg\" width=\"49%\" \u002F>\n\u003C\u002Fp>\n\n## Contents\n\n- [Required Components](#required-components)\n  - [Panel Support](#panel-support)\n  - [Enclosure Options](#enclosure-options)\n  - [Solder-Free Component Selection](#solder-free-component-selection-optional)\n- [Setup Guide](#setup-guide)\n  - [Wiring](#wiring)\n  - [Configuration, Compilation, and Upload](#configuration-compilation-and-upload)\n  - [OpenWeatherMap API Key](#openweathermap-api-key)\n- [Error Messages and Troubleshooting](#error-messages-and-troubleshooting)\n  - [Low Battery](#low-battery)\n  - [WiFi Connection](#wifi-connection)\n  - [API Error](#api-error)\n  - [Time Server Error](#time-server-error)\n- [Licensing](#licensing)\n\n\n## Required Components\n\n  Some links below are affiliate links. Using them helps support the project at no extra cost to you—thanks for your support!\n\n  | Component Type  | Component                                    | Notes                                                     | Link                                                                         |\n  |-----------------|----------------------------------------------|-----------------------------------------------------------|------------------------------------------------------------------------------|\n  | ESP32           | FireBeetle 2 ESP32-E                         | Features low-power design, USB-C, and battery management. | Available [here](https:\u002F\u002Fwww.dfrobot.com\u002Fproduct-2195.html?tracking=PfSxQ8). |\n  | E-Paper Display | See [Panel Support](#panel-support).         | See [Panel Support](#panel-support).                      | See [Panel Support](#panel-support).                                         |\n  | Adapter Board   | DESPI-C02                                    | Waveshare HATs (rev 2.2\u002F2.3) are not recommended.         | Available [here](https:\u002F\u002Fwww.aliexpress.us\u002Fitem\u002F3256804446769469.html).      |\n  | Sensor          | BME280                                       | Temperature, humidity, and pressure. 3.3V\u002F5V compatible.  | Available from multiple vendors.                                             |\n  | Battery         | 3.7V LiPo w\u002F JST-PH2.0 connector             | Any capacity (e.g., 5000mAh for 6+ months runtime)        | Available from multiple vendors.                                             |\n  | Enclosure       | See [Enclosure Options](#enclosure-options). | See [Enclosure Options](#enclosure-options).              | See [Enclosure Options](#enclosure-options).                                 |\n\nOther items needed:\n- Wires (\"Jumper Wires\" if looking to minimize\u002Favoid soldering).\n- Solder Iron + Solder (unless following [Solder-Free Component Selection](#solder-free-component-selection-optional)).\n- Linux, Windows, or MacOS computer (used to configure and install ESP32 firmware).\n- Push Button (optional, if you want a reset button mounted on your enslosure, else you can use the on-board reset button).\n\n### Panel Support\n\n  Waveshare and Good Display make equivalent panels. Either variant will work.\n\n  | Panel                                   | Resolution | Colors          | Notes                                                                                                                 |\n  |-----------------------------------------|------------|-----------------|-----------------------------------------------------------------------------------------------------------------------|\n  | Waveshare 7.5in e-paper (v2)            | 800x480px  | Black\u002FWhite     | Available [here](https:\u002F\u002Fwww.waveshare.com\u002Fproduct\u002F7.5inch-e-paper.htm). (recommended)                                |\n  | Good Display 7.5in e-paper (GDEY075T7)  | 800x480px  | Black\u002FWhite     | Available [here](https:\u002F\u002Fwww.aliexpress.com\u002Fitem\u002F3256802683908868.html).             |\n  | Waveshare 7.5in e-Paper (B)             | 800x480px  | Red\u002FBlack\u002FWhite | Available [here](https:\u002F\u002Fwww.waveshare.com\u002Fproduct\u002F7.5inch-e-paper-b.htm).                                            |\n  | Good Display 7.5in e-paper (GDEY075Z08) | 800x480px  | Red\u002FBlack\u002FWhite | Available [here](https:\u002F\u002Fwww.aliexpress.com\u002Fitem\u002F3256803540460035.html).                                              |\n  | Waveshare 7.3in ACeP e-Paper (F)        | 800x480px  | 7-Color         | Available [here](https:\u002F\u002Fwww.waveshare.com\u002Fproduct\u002Fdisplays\u002Fe-paper\u002Fepaper-1\u002F7.3inch-e-paper-f.htm).                  |\n  | Good Display 7.3in e-paper (GDEY073D46) | 800x480px  | 7-Color         | Available [here](https:\u002F\u002Fwww.aliexpress.com\u002Fitem\u002F3256805485098421.html).                                              |\n  | Waveshare 7.5in e-paper (v1)            | 640x384px  | Black\u002FWhite     | Limited support. Some information not displayed, see [image](showcase\u002Fdemo-waveshare75-version1.jpg).                 |\n  | Good Display 7.5in e-paper (GDEW075T8)  | 640x384px  | Black\u002FWhite     | Limited support. Some information not displayed, see [image](showcase\u002Fdemo-waveshare75-version1.jpg).                 |\n\n  This software has limited support for accent colors. E-paper panels with additional colors tend to have longer refresh times, which will reduce battery life.\n\n### Enclosure Options\n\nYou'll want a nice way to show off your project. Here are a few popular choices.\n\n- DIY Wooden\n  - I made a small stand by hollowing out a piece of wood from the bottom. On the back, I used a short USB extension cable so that I can charge the battery without needing to remove the components from the stand. I also wired a small reset button to refresh the display manually. Additionally, I 3d printed a cover for the bottom, which is held on by magnets. The E-paper screen is very thin, so I used a thin piece of acrylic to support it.\n  - Measurements:\n    - depth = 63mm \u003Cbr>\n      height = 49mm \u003Cbr>\n      width = 170.2mm (= width of the screen) \u003Cbr>\n      screen angle = 80deg \u003Cbr>\n      screen is 15mm from the front\n- 3D Printable\n  - Here is a list of community designs.\n  \n    | Contributor                                                          | Link                                                                                                      |\n    |----------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|\n    | [Kingfisher](https:\u002F\u002Fwww.printables.com\u002F@Kingfisher_32821)           | [Printables](https:\u002F\u002Fwww.printables.com\u002Fmodel\u002F1139047-weather-station-e-ink-frame)                        |\n    | [Francois Allard](https:\u002F\u002Fwww.printables.com\u002F@FrAllard_1585397)      | [Printables](https:\u002F\u002Fwww.printables.com\u002Fmodel\u002F791477-weather-station-using-a-esp32)                       |\n    | [3D Nate](https:\u002F\u002Fwww.printables.com\u002F@3DNate_451157)                 | [Printables](https:\u002F\u002Fwww.printables.com\u002Fmodel\u002F661183-e-ink-weather-station-frame)                         |\n    | [Sven F.](https:\u002F\u002Fgithub.com\u002FSpanholz)                               | [Printables](https:\u002F\u002Fwww.printables.com\u002Fmodel\u002F657756-case-for-esp32-weather-station)                      |\n    | [Layers Studio](https:\u002F\u002Fwww.printables.com\u002F@LayersStudio)            | [Printables](https:\u002F\u002Fwww.printables.com\u002Fmodel\u002F655768-esp32-e-paper-weather-display-stand)                 |\n    | [PJ Veltri](https:\u002F\u002Fwww.printables.com\u002F@PJVeltri_1590999)            | [Printables](https:\u002F\u002Fwww.printables.com\u002Fmodel\u002F692944-base-and-display-holder-for-esp-32-e-paper-weather)  |\n    | [TheMeanCanEHdian](https:\u002F\u002Fwww.printables.com\u002F@TheMeanCanEH_1207348) | [Printables](https:\u002F\u002Fwww.printables.com\u002Fmodel\u002F841458-weather-display-enclosure)                           |\n    | [MPHarms](https:\u002F\u002Fwww.thingiverse.com\u002Fmpharms\u002Fdesigns)               | [Thingiverse](https:\u002F\u002Fwww.thingiverse.com\u002Fthing:6666148)                                                  |\n    | [Plaste-Metz](https:\u002F\u002Fwww.printables.com\u002F@PlasteMetz_576567)         | [Printables](https:\u002F\u002Fwww.printables.com\u002Fmodel\u002F1160924-weather-station-case)                               |\n    | [kenwch92](https:\u002F\u002Fgithub.com\u002Fkenwch92)                              | [Printables](https:\u002F\u002Fwww.printables.com\u002Fmodel\u002F1505838-over-engineered-display-stand-for-esp32-e-paper-we) |\n    | [Eckerput](https:\u002F\u002Fgithub.com\u002FEckerput)                              | [Thingiverse](https:\u002F\u002Fwww.thingiverse.com\u002Fthing:7112836)                                                  |\n    | [Thomax ](https:\u002F\u002Fwww.printables.com\u002F@Thomax_386720)                 | [Printables](https:\u002F\u002Fwww.printables.com\u002Fmodel\u002F1363448-esp32-e-paper-weather-display) |\n\n  - If you want to share your own 3D printable designs, your contributions are highly encouraged and welcome!\n- Picture Frame\n\n### Solder-Free Component Selection (Optional)\n\nThis project can be completed without any soldering, if you choose your component selection carefully.\n- Buy \"Jumper Wires\" to connect your components.\n- Buy the [FireBeetle 2 ESP32-E w\u002F Headers](https:\u002F\u002Fwww.dfrobot.com\u002Fproduct-2231.html?tracking=PfSxQ8).\n- Buy a BME280 with headers soldered from the factory.\n- Buy a reset switch that is compatible with jumper wires.\n\n\n## Setup Guide\n\n### Wiring\n\nThe battery can be charged by plugging the FireBeetle ESP32 into the wall via the USB-C connector while the battery is plugged into the ESP32's JST connector.\n\n  > **Warning**\n  > The polarity of JST-PH2.0 connectors is not standardized! You may need to swap the order of the wires in the connector.\n\nNOTE: Waveshare now ships revision 2.3 of their e-paper HAT (no longer rev 2.2 ). Rev 2.3 has an additional `PWR` pin (not depicted in the wiring diagrams below); connect this pin to 3.3V.\n\nIMPORTANT: The DESPI-C02 adapter has one physical switch that MUST be set correctly for the display to work.\n\n- RESE: Set switch to position 0.47.\n\nIMPORTANT: The Waveshare E-Paper Driver HAT has two physical switches that MUST be set correctly for the display to work.\n\n- Display Config: Set switch to position B.\n\n- Interface Config: Set switch to position 0.\n\nCut the low power pad for even longer battery life.\n\n- From \u003Chttps:\u002F\u002Fwiki.dfrobot.com\u002FFireBeetle_Board_ESP32_E_SKU_DFR0654>\n\n  > Low Power Pad: This pad is specially designed for low power consumption. It is connected by default. You can cut off the thin wire in the middle with a knife to disconnect it. After disconnection, the static power consumption can be reduced by 500 μA. The power consumption can be reduced to 13 μA after controlling the maincontroller enter the sleep mode through the program. Note: when the pad is disconnected, you can only drive RGB LED light via the USB Power supply.\n\n![Wiring diagram with DESPI-C02 driver board.](showcase\u002Fwiring_diagram_despi-c02.png)\n\n\n### Configuration, Compilation, and Upload\n\nPlatformIO for VSCode is used for managing dependencies, code compilation, and uploading to ESP32.\n\n1. Clone this repository or download and extract the .zip.\n\n2. Install VSCode.\n\n3. Follow these instructions to install the PlatformIO extension for VSCode: \u003Chttps:\u002F\u002Fplatformio.org\u002Finstall\u002Fide?install=vscode>\n\n4. Open the project in VSCode.\n\n   a. File > Open Folder...\n\n   b. Navigate to this project and select the folder called \"platformio\".\n\n5. Configure Options.\n\n   - Most configuration options are located in [config.cpp](platformio\u002Fsrc\u002Fconfig.cpp), with a few  in [config.h](platformio\u002Finclude\u002Fconfig.h).\n\n   - Important settings to configure in config.cpp:\n\n     - WiFi credentials (ssid, password).\n\n     - Open Weather Map API key (it's free, see next section for important notes about obtaining an API key).\n\n     - Latitude and longitude.\n\n     - Time and date formats.\n\n     - Sleep duration.\n\n   - Important settings to configure in config.h:\n\n     - Units (Metric or Imperial).\n\n   - Comments explain each option in detail.\n\n6. Build and Upload Code.\n\n   a. Connect ESP32 to your computer via USB.\n\n   b. Click the upload arrow along the bottom of the VSCode window. (Should say \"PlatformIO: Upload\" if you hover over it.)\n\n      - PlatformIO will automatically download the required third-party libraries, compile, and upload the code. :)\n\n      - You will only see this if you have the PlatformIO extension installed.\n\n      - If using a FireBeetle 2 ESP32-E and you receive the error `Wrong boot mode detected (0x13)! The chip needs to be in download mode.` unplug the power from the board, connect GPIO0 ([labeled 0\u002FD5](https:\u002F\u002Fwiki.dfrobot.com\u002FFireBeetle_Board_ESP32_E_SKU_DFR0654#target_5)) to GND, and power it back up to put the board in download mode.\n\n      - If you are getting other errors during the upload process, you may need to install drivers to allow you to upload code to the ESP32.\n\n### OpenWeatherMap API Key\n\nSign up here to get an API key; it's free. \u003Chttps:\u002F\u002Fopenweathermap.org\u002Fapi>\n\nThis project will make calls to 2 different APIs (\"One Call\" and \"Air Pollution\").\n\n- The One Call API 3.0 is only included in the \"One Call by Call\" subscription. This separate subscription includes 1,000 calls\u002Fday for free and allows you to pay only for the number of API calls made to this product.\n\nHere's how to subscribe and avoid any credit card changes:\n   - Go to \u003Chttps:\u002F\u002Fhome.openweathermap.org\u002Fsubscriptions\u002Fbilling_info\u002Fonecall_30\u002Fbase?key=base&service=onecall_30>\n   - Follow the instructions to complete the subscription.\n   - Go to \u003Chttps:\u002F\u002Fhome.openweathermap.org\u002Fsubscriptions> and set the \"Calls per day (no more than)\" to 1,000. This ensures you will never overrun the free calls.\n\n## Error Messages and Troubleshooting\n\n### Low Battery\n\u003Cimg src=\"showcase\u002Fdemo-error-low-battery.jpg\" align=\"left\" width=\"25%\" \u002F>\nThis error screen appears once the battery voltage has fallen below LOW_BATTERY_VOLTAGE (default = 3.20v). The display will not refresh again until it detects battery voltage above LOW_BATTERY_VOLTAGE. When battery voltage is between LOW_BATTERY_VOLTAGE and VERY_LOW_BATTERY_VOLTAGE (default = 3.10v) the esp32 will deep-sleep for periods of LOW_BATTERY_SLEEP_INTERVAL (default = 30min) before checking battery voltage again. If the battery voltage falls between LOW_BATTERY_SLEEP_INTERVAL and CRIT_LOW_BATTERY_VOLTAGE (default = 3.00v), then the display will deep-sleep for periods VERY_LOW_BATTERY_SLEEP_INTERVAL (default = 120min). If battery voltage falls below CRIT_LOW_BATTERY_VOLTAGE, then the esp32 will enter hibernate mode and will require a manual push of the reset (RST) button to begin updating again.\n\n\u003Cbr clear=\"left\"\u002F>\n\n### WiFi Connection\n\u003Cimg src=\"showcase\u002Fdemo-error-wifi.jpg\" align=\"left\" width=\"25%\" \u002F>\nThis error screen appears when the ESP32 fails to connect to WiFi. If the message reads \"WiFi Connection Failed\" this might indicate an incorrect password. If the message reads \"SSID Not Available\" this might indicate that you mistyped the SSID or that the esp32 is out of the range of the access point. The esp32 will retry once every SLEEP_DURATION (default = 30min).\n\n\u003Cbr clear=\"left\"\u002F>\n\n### API Error\n\u003Cimg src=\"showcase\u002Fdemo-error-api.jpg\" align=\"left\" width=\"25%\" \u002F>\nThis error screen appears if an error (client or server) occurs when making an API request to OpenWeatherMap. The second line will give the error code followed by a descriptor phrase. Positive error codes correspond to HTTP response status codes, while error codes \u003C= 0 indicate a client(esp32) error. The esp32 will retry once every SLEEP_DURATION (default = 30min).\n\u003Cbr\u002F>\u003Cbr\u002F>\nIn the example shown to the left, \"401: Unauthorized\" may be the result of an incorrect API key or that you are attempting to use the One Call v3 API without the proper account setup.\n\n\u003Cbr clear=\"left\"\u002F>\n\n### Time Server Error\n\u003Cimg src=\"showcase\u002Fdemo-error-time.jpg\" align=\"left\" width=\"25%\" \u002F>\nThis error screen appears when the esp32 fails to fetch the time from NTP_SERVER_1\u002FNTP_SERVER_2. This error sometimes occurs immediately after uploading to the esp32; in this case, just hit the reset button or wait for SLEEP_DURATION (default = 30min) and the esp32 to automatically retry. If the error persists, try selecting closer\u002Flower latency time servers or increasing NTP_TIMEOUT.\n\n\u003Cbr clear=\"left\"\u002F>\n\n## Licensing\n\nesp32-weather-epd is licensed under the [GNU General Public License v3.0](LICENSE) with tools, fonts, and icons whose licenses are as follows:\n\n| Name | License | Description |\n|---------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------|------------------------------------------------------------------------------------|\n| [Adafruit-GFX-Library: fontconvert](https:\u002F\u002Fgithub.com\u002Fadafruit\u002FAdafruit-GFX-Library\u002Ftree\u002Fmaster\u002Ffontconvert) | [BSD License](fonts\u002Ffontconvert\u002Flicense.txt) | CLI tool for preprocessing fonts to be used with the Adafruit_GFX Arduino library. |\n| [pollutant-concentration-to-aqi](https:\u002F\u002Fgithub.com\u002Flmarzen\u002Fpollutant-concentration-to-aqi) | [GNU Lesser General Public License v2.1](platformio\u002Flib\u002Fpollutant-concentration-to-aqi\u002FLICENSE) | C library that converts pollutant concentrations to Air Quality Index(AQI). |\n| [GNU FreeFont](https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Ffreefont\u002F) | [GNU General Public License v3.0](https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Ffreefont\u002Flicense.html) | Font Family |\n| [Lato](https:\u002F\u002Ffonts.google.com\u002Fspecimen\u002FLato) | [SIL OFL v1.1](http:\u002F\u002Fscripts.sil.org\u002FOFL) | Font Family |\n| [Montserrat](https:\u002F\u002Ffonts.google.com\u002Fspecimen\u002FMontserrat) | [SIL OFL v1.1](http:\u002F\u002Fscripts.sil.org\u002FOFL) | Font Family |\n| [Open Sans](https:\u002F\u002Ffonts.google.com\u002Fspecimen\u002FOpen+Sans) | [SIL OFL v1.1](http:\u002F\u002Fscripts.sil.org\u002FOFL) | Font Family |\n| [Poppins](https:\u002F\u002Ffonts.google.com\u002Fspecimen\u002FPoppins) | [SIL OFL v1.1](http:\u002F\u002Fscripts.sil.org\u002FOFL) | Font Family |\n| [Quicksand](https:\u002F\u002Ffonts.google.com\u002Fspecimen\u002FQuicksand) | [SIL OFL v1.1](http:\u002F\u002Fscripts.sil.org\u002FOFL) | Font Family |\n| [Raleway](https:\u002F\u002Ffonts.google.com\u002Fspecimen\u002FRaleway) | [SIL OFL v1.1](http:\u002F\u002Fscripts.sil.org\u002FOFL) | Font Family |\n| [Roboto](https:\u002F\u002Ffonts.google.com\u002Fspecimen\u002FRoboto) | [Apache License v2.0](https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0) | Font Family |\n| [Roboto Mono](https:\u002F\u002Ffonts.google.com\u002Fspecimen\u002FRoboto+Mono) | [Apache License v2.0](https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0) | Font Family |\n| [Roboto Slab](https:\u002F\u002Ffonts.google.com\u002Fspecimen\u002FRoboto+Slab) | [Apache License v2.0](https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0) | Font Family |\n| [Ubuntu font](https:\u002F\u002Fdesign.ubuntu.com\u002Ffont) | [Ubuntu Font Licence v1.0](https:\u002F\u002Fubuntu.com\u002Flegal\u002Ffont-licence) | Font Family |\n| [Weather Themed Icons](https:\u002F\u002Fgithub.com\u002Ferikflowers\u002Fweather-icons) | [SIL OFL v1.1](http:\u002F\u002Fscripts.sil.org\u002FOFL) | (wi-**.svg) Weather icon family by Lukas Bischoff\u002FErik Flowers. |\n| [Google Icons](https:\u002F\u002Ffonts.google.com\u002Ficons) | [Apache License v2.0](https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0) | (battery**.svg, visibility_icon.svg) Battery and visibility icons from Google Icons. |\n| [Biological Hazard Symbol](https:\u002F\u002Fsvgsilh.com\u002Fimage\u002F37775.html) | [CC0 v1.0](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPublic_domain) | (biological_hazard_symbol.svg) Biohazard icon. |\n| [House Icon](https:\u002F\u002Fseekicon.com\u002Ffree-icon\u002Fhouse_16) | [MIT License](http:\u002F\u002Fopensource.org\u002Flicenses\u002Fmit-license.html) | (house.svg) House icon. |\n| [Indoor Temerature\u002FHumidity Icons](icons\u002Fsvg) | [SIL OFL v1.1](http:\u002F\u002Fscripts.sil.org\u002FOFL) | (house_**.svg) Indoor temerature\u002Fhumidity icons. |\n| [Ionizing Radiation Symbol](https:\u002F\u002Fsvgsilh.com\u002Fimage\u002F309911.html) | [CC0 v1.0](https:\u002F\u002Fcreativecommons.org\u002Fpublicdomain\u002Fzero\u002F1.0\u002F) | (ionizing_radiation_symbol.svg) Ionizing radiation icons. |\n| [Phosphor Icons](https:\u002F\u002Fgithub.com\u002Fphosphor-icons\u002Fhomepage) | [MIT License](http:\u002F\u002Fopensource.org\u002Flicenses\u002Fmit-license.html) | (wifi**.svg, warning_icon.svg, error_icon.svg) WiFi, Warning, and Error icons from Phosphor Icons. |\n| [Wind Direction Icon](https:\u002F\u002Fwww.onlinewebfonts.com\u002Ficon\u002F251550) | [CC BY v3.0](http:\u002F\u002Fcreativecommons.org\u002Flicenses\u002Fby\u002F3.0) | (meteorological_wind_direction_**deg.svg) Meteorological wind direction icon from Online Web Fonts. |\n\n","该项目是一款基于ESP32微控制器的低功耗电子墨水屏天气显示设备，通过OpenWeatherMap API获取天气数据。其核心功能包括超低功耗运行（睡眠模式下约14μA，刷新时约83mA），支持长达6-12个月的电池续航能力（使用5000mAh电池，每30分钟更新一次）。此外，该设备具有高度可定制性，支持多种语言、单位及时间日期格式等个性化设置，并且可以通过USB-C接口轻松充电。此项目非常适合需要长时间显示天气信息而无需频繁维护的场景，如家庭、办公室或公共场所的信息展示板。",2,"2026-06-11 03:07:13","top_language"]