Weathergotchi – 一款开源气候电子宠物
Weathergotchi – an open-source climate Tamagotchi

原始链接: https://github.com/Michael-Manning/E-Paper-Climate-Logger

这是一个开源的电池供电气候数据记录仪项目,配备了常显的 1.54 英寸电子纸显示屏。该设备基于 ESP32-S3 构建,能够记录温湿度、将读数存储在外部 EEPROM 中,并可视化历史数据。它专为超低功耗设计,通过深度睡眠和 RTC 定时器,仅靠小型锂电池即可实现超过一周的续航。 硬件部分包括定制 PCB、参数化 3D 打印外壳,以及用于可靠长期监测的专用电源管理系统。固件基于 PlatformIO 开发,负责传感器集成、显示更新以及通过 LTC2954 控制器的电源循环管理。 项目的关键文件,包括 KiCad 硬件设计、OpenSCAD 外壳模型和完整固件,均已在 GitHub 上开源。尽管该设备经过了能效优化,但为了最大限度延长电池寿命,它优先考虑本地数据可视化而非无线连接。本项目旨在提供一个全面的环境监测 DIY 指南,并提供所有原理图、CAD 文件和构建说明,方便用户进行修改和社区贡献。

关于开源气候项目“Weathergotchi”的 Hacker News 讨论主要集中在名称的恰当性以及对其硬件实现的兴趣上。 一些用户质疑使用“Tamagotchi”(拓麻歌子)这一品牌,认为该名称会造成误导,因为该设备并不具备原版电子宠物所特有的“宠物养成”交互机制。批评者指出,这种命名选择可能会让潜在用户感到困惑,将项目的实际用途与虚假的游戏性承诺混为一谈,从而导致用户流失。 在技术层面,该讨论帖激发了开发者对用于构建类似电子墨水屏项目的硬件平台的兴趣。一名参与者表示希望能有现成的开源设备,以避免重复进行硬件工程设计。对此,其他人建议使用 M5Stack 基于 ESP32 的电子墨水屏开发套件,称其为专注于软件开发的创客们提供了一种可行的现成解决方案。归根结底,尽管其品牌命名仍存在争议,但该项目成功引发了关于 DIY 硬件开发的实际探讨。
相关文章

原文

This project is an open-source, battery-powered temperature and humidity data logger with an always-on e-paper display. It records ambient conditions over time, stores readings in non-volatile memory, and displays current data along with a history graph. The device is designed for low power consumption, over 1 week of operation on a small Li‑Po battery.

Key features:

  • ESP32-S3 with deep sleep & RTC timer to wake up
  • Temperature and humidity sensor with external EEPROM for logging
  • Accurate battery monitoring and charging management
  • Power button controller to turn on/off
  • 1.54‑inch e‑paper display
  • Custom PCB & 3D‑printed case

The entire project is open source, including hardware schematics, PCB layout, firmware, and enclosure CAD files. A detailed build video is available on YouTube: E-Paper Climate Logger.

photo-device-on photo-enclosure photo-pcb

E-Paper Climate Logger

E-Paper-Climate-Logger/
├── CAD/                 # 3D case design (OpenSCAD source and STL exports)
├── PCB/                 # KiCad hardware design, schematics, datasheets, references
├── firmware/            # PlatformIO firmware (ESP32-S3, Arduino framework)
├── LICENSE              # License file
└── README.md            # This file

Contains the parametric OpenSCAD models for the front and back case halves, assembly files, and exported STLs for 3D printing. The design is fully parametric – dimensions can be adjusted by editing constants.scad.

All hardware design files for the custom mainboard (templog_mainboard). This directory includes:

  • KiCad project files (.kicad_sch, .kicad_pcb, .kicad_pro)
  • Schematic sheets for power management and display driver
  • Component footprints and 3D models
  • Datasheets for all major ICs (charger, fuel gauge, RTC, sensors, etc.)
  • Reference schematics from SparkFun and Waveshare

To view or modify the PCB design, install KiCad 9 or later and open templog_mainboard.kicad_pro.

PlatformIO project for the ESP32‑S3 using the Arduino framework. It handles sensor reading, timekeeping, data logging to EEPROM, e‑paper display updates, button handling, and power management (deep sleep, wake sources). See firmware/README.md for detailed build and flashing instructions.

  • Assembled E-Paper Climate Logger PCB (or a hand‑soldered prototype – note that many components are small and may require reflow soldering)
  • 1.54‑inch e‑paper display (compatible with Waveshare pinout)
  • 3D‑printed case (files in CAD/export/)
  • Li‑Po battery (e.g., 400 mAh, single cell)
  • USB‑C cable for charging and programming
  1. Install PlatformIO Core (or use the PlatformIO extension in VS Code).

  2. Navigate to the firmware directory.

  3. Connect the device via USB‑C.

  4. Run:

  5. Monitor serial output (optional):

For detailed firmware documentation, including folder structure, driver details, and low‑power operation, refer to firmware/README.md.

Print the STL files from CAD/export/ using a high‑resolution FDM printer (0.1 mm layer height recommended). The case uses M2 heat set inserts and M2 screws. Insert the PCB and battery, then screw the front and back halves together.

All I2C peripherals (SHT45, DS3231, 24LC512, BQ27441) share the same bus. The e‑paper display is driven via SPI, and the LTC2954 soft power button controls system power-off via the BQ24075.

For complete schematics and PCB layout, open the KiCad project in PCB/templog_mainboard/.

Power Management and Low‑Power Operation

The device is designed to run for over 1 week on a small battery:

  • In deep sleep, the ESP32‑S3 draws less than 20 µA. The DS3231 and BQ27441 remain active with negligible current.
  • The DS3231 alarm wakes the ESP32 at a configurable interval (default: 1 minute). The ESP32 wakes, logs a reading (about 400 ms at 50 mA), updates the display, and returns to sleep.
  • The LTC2954 provides a true on/off capability.
  • Battery accuracy issues: In my testing, the reported battery state of charge is not accurate. I believe this is due to a misconfiguration BQ27441.
  • Low battery issues: In my testing, when the battery is near depleted (3.4V), it can enter an unrecoverable state in which it cannot be powered back on. This can only be fixed by disconnecting the battery, externally recharging it, and reconnecting it. I think this may be caused by the cheap batteries I have been using from Aliexpress.
  • Temperature accuracy during handling: The ESP32 generates heat when active, which can affect the SHT45 reading. The firmware reads the sensor immediately upon wake to minimise this error. Prolonged menu browsing or holding the device will skew the ambient reading for several minutes.
  • Display low‑temperature limit: The e‑paper module is rated for operation above 0°C. Below freezing, the screen may not update reliably. Data logging continues in the background, and display functionality resumes when the temperature rises.
  • No wireless connectivity: This version does not include Bluetooth or Wi‑Fi data export to maximise battery life. Data can be viewed only on the device screen.

Issues, pull requests, and suggestions are welcome. Please follow the existing code style and document any changes to the hardware or firmware.

Refer to the LICENSE file in the root directory for licensing terms (open source, permissive).

  • SparkFun for the Battery Babysitter reference design
  • Waveshare for e‑paper display modules and driver schematics
  • The PlatformIO and GxEPD2 communities

For questions or discussions, open an issue on GitHub or visit the YouTube video comments.

联系我们 contact @ memedata.com