潮汐时钟的制作教程

电子说

1.2w人已加入

描述

步骤1:硬件列表

TTGO T5板$ 17

Adafruit TPL5110板$ 5

Adafruit Perma-Proto四分之一板(可选)$ 0.71(最低订单$ 8.50)

锂聚合物电池1200毫安10美元(或其他合适的电源)

JST PH 2针电缆 - 公头#0.75

220 uF电容器

步骤2:工具

烙铁

剥线器

锂电池充电器,如此。

步骤3:组装硬件

时钟

时钟

时钟

时钟

时钟

如图所示,组装硬件非常简单。我使用了Adafruit Perma-proto板,它像普通的原型板一样,除了它像面包板一样布局,与面包板具有相同的电气连接,这很不错。由于我只需要几个连接,并希望将整个组件装入一个小盒子,我用Dremel切割轮将其中一块板切成四分之一。

220 uF电容非常重要。没有它,TPL5110将永远不会打开T5。有点不清楚为什么,但使用TPL5110的其他人也遇到了同样的问题。也许ESP32在启动时比TTL5110可以提供更多的电流?

不要硬连接电池。使用JST-PH电缆,您可以断开电池充电。如果TPL5110“打开”,可能有办法从T5通过TPL5110向T55110充电,但是我不能保证这种技术。

我做了一个木箱作为外壳,但任何最小内部尺寸为1.5“x 2.75”x 1“的东西都可以使用。

步骤4:调整时序

TPL5110板上有一个微调电位器,用于设置TPL5110唤醒的时间间隔。用一把小螺丝刀逆时针旋转。在我的电路板上,这将间隔设置为145分钟,实际上超过规定的最大值120分钟,但它的工作和一致性将比每120分钟唤醒更省电,所以我使用它。您不需要精确地知道间隔,因为目标只是每天大约凌晨4点大致下载一次数据。您可以在env_config.h中指定间隔(例如,145分钟)和唤醒时间(例如,凌晨4点)。

(如果您想更好地控制其他项目的时序,TPL5110板已经有了您可以切断背面的迹线以禁用电位计。然后根据此图表将电阻连接到延迟引脚,电阻确定间隔。)

步骤5:软件

您将需要带有ESP32软件包的Arduino IDE。在IDE中,将您的电路板设置为“ESP32开发模块”。

该草图可在https://github.com/jasonful/Tides获得,需要3个库:

“ESP8266气象站”,可从Arduino图书馆经理(或此处)获得。您只需要这6个文件:ESPHTTPClient.h,ESPWiFi.h,OpenWeatherMapCurrent.cpp,OpenWeatherMapCurrent.h,OpenWeatherMapForecast.cpp,OpenWeatherMapForecast.h并可以删除其余文件。

“Json Streaming Parser”可从Arduino Library Manager(或此处)获得

https://github.com/LilyGO/TTGO-Epape-T5-V1.8/tree/master/epa2in13-demo即使代码没有打包成真正的库,你也可以将它复制到你的库目录下并包含它。

步骤6:配置软件

您需要设置几个参数(以及一些您可能想要设置的参数)在env_config.h文件中,包括:

WiFi SSID和密码

NOAA工作站ID(换句话说,你在哪里)

OpenWeatherMap AppID,你需要注册(它很简单,免费)

OpenWeatherMap LocationID(再次,你在哪里)

CONFIG_USE_TPL5110,它允许你在没有TPL5110的情况下使用T5 。相反,软件将进入深度睡眠模式。 T5板在深度睡眠时吸收大约8毫安,所以我只希望电池可以使用几天。

第7步:软件如何工作

(如果你不在乎,你可以跳过这部分。)

目标是每天醒来一次,但由于TPL5110的最大间隔时间仅为2小时或者说,T5必须经常醒来。因此,在下载潮汐和天气数据后,它会计算从现在到明天早上4:00之间的2小时间隔中有多少。由于TPL5110完全切断了T5的电源,这有点复杂,这对电池有利,但这意味着我们失去了RAM和实时时钟。这就像每天早上醒来失忆。因此,要弄清楚现在是什么时候,它会从NOAA的HTTP标头中提取它。并且为了记住剩余的2小时间隔,它写入与非易失性存储(闪存)的对应。每次唤醒时,它会检查计数器,减少它,存储它,如果它大于零,它会立即向TPL51110发送信号(“完成”),告诉它让它进入睡眠状态。当计数器达到零时,代码将下载新数据,并重新计算并重置计数器。

步骤8:运行它

时钟

确保T5左侧的开关处于向上(开)位置,上传草图到T5,并在几秒钟内屏幕应更新潮汐和天气信息。

如果您需要调试软件,请更改Tides.ino顶部的“#define DEBUG 0” “#define DEBUG 1”。这将打开串行调试输出,并在电子纸的底部显示下载新数据之前剩余的重启次数,以及上次下载数据的时间。

步骤9:未来方向

使用TPL5110与电子纸显示相结合是显示任何不经常更改的数据的好方法,具有出色的电池寿命。

当我设计时,我考虑使用TrigBoard,这是一块带有TPL5111板的ESP8266板。它需要像这样或那样获得一个单独的电子纸显示器和电子纸驱动板。或者像这样或者这样的驱动程序+板组合。要将代码移植到ESP8266,我认为SSL代码必须使用指纹而不是证书,非易失性存储代码需要使用EEPROM或RTC内存。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分