A Sun-Exposed Bus Timetable Board That Survives Summer

这篇内容暂时只有 English 版本,以下是原文。

A small esnaf café in Ürgüp asked me to fix the laminated bus timetable they kept taped to the window. Their problem wasn’t the schedule; it was the sun. By August the print had faded to pale yellow, and the tape had cooked into the frame. They’d reprinted it four times in one summer. The board lists roughly 20 daily departures to Nevşehir, Kayseri, and a few village routes, so retyping it wasn’t hard, but re-printing and re-taping was a recurring chore.

I stopped trying to make paper last and moved the data to a cheap e-ink display instead. The parts: a Waveshare 7.5-inch e-ink module, an ESP32 board, and a small 5V supply tapped from the café’s existing lighting circuit. I mounted it inside the window with double-sided foam tape and a thin aluminum shade strip above it.

The firmware polls a tiny JSON file I host on a static endpoint, so the owner can edit departures from a phone without touching the device. The core loop is deliberately boring:

void refreshIfStale() {
  if (millis() - lastRefresh < 6UL * 3600UL * 1000UL) return;
  HTTPClient http;
  http.begin(url);
  if (http.GET() == 200) {
    String payload = http.getString();
    drawTimetable(payload);
    display.display();
  }
  http.end();
  lastRefresh = millis();
}

E-ink was the right call because it holds an image with zero power and no backlight. Direct sun actually helps it; the contrast improves. The tradeoff is refresh time — a full redraw takes about 15 seconds and flashes the panel. I set it to refresh every six hours, plus once at 05:30 before the first bus. That means an edited departure can be stale for half a day. For a village timetable, nobody has complained.

Where this falls apart: heat. The first unit sat against single-pane glass with no shade, and the panel started ghosting after a week of 38°C afternoons. The aluminum strip fixed it, but I wouldn’t trust this in direct afternoon sun without an air gap behind the display. Second, e-ink modules dislike cold; below about 0°C the redraw gets sluggish and can leave artifacts until it warms up. Third, the ESP32’s Wi-Fi drops when the café’s router reboots, and my code only retries on the next six-hour tick. I should have added a watchdog that retries every ten minutes after a failed GET, and I still haven’t.

The owner now edits the JSON from her phone when a driver changes a time, and the board quietly catches up overnight. The old laminated sheet is still taped beside it, faded, as a backup.

If you’ve run e-ink outdoors in Anatolian summer heat, what enclosure or spacing did you use to keep the panel from ghosting?

0
赞同度 100% · 0 条评论 · 1 阅读

0 条评论

支持 Markdown · 回复会实时推送给对方

还没有评论,写下第一条。