0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

智能气象站的制作教程

454398 来源:wv 2019-09-09 15:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

第1步:

这个想法是在两个屏幕上显示各种信息,具体取决于方框。表壳呈平行六面体形状,《铺路石,带有一种皮带,可作为支撑使其静止。

加速度计检测运动和方向并触发显示。

为了节省能源,我选择了电子纸屏幕(参见下面的参考资料),即使它们不再供电,也能保持显示。同样对于ESP32,我选择 Lolin32 模块(以节俭而闻名),我必须学习如何管理深度睡眠,以及唤醒中断由加速度计生成。

屏幕通过SPI连接,在找到正确的引脚将它们连接到ESP32之前我搜索了一下,知道我还需要一个用于加速度计的I2C,一个读取DHT22的引脚和另外两个用于电池的引脚电压测量。 ESP32几乎完全充电了!知道某些引脚只读(我用过DHT传感器),其他引脚不能与Wifi一起使用,它是一个找到正确的配置有点复杂。

盒子可以朝向4个方向,加上扁平。总而言之,只需2个屏幕即可显示4 * 2 + 2 = 10种可能类型的信息。所以它允许你展示很多东西:

日期和当天的圣人

当前时间

今天的天气预报

未来几小时的天气预报

未来几天的天气预报

电池充电水平

因为我还有空间,来自专业网站的随机引用。

第2步:你需要什么?

ESP32:Lolin32模块(功率极低,配有电池连接器,可以通过USB加电池充电)

2 epaper显示:4.2英寸和2.9英寸。我选择Good Display商店的模型。

DHT22传感器

MCU6050加速度计 - 陀螺仪I2C传感器

LiPo电池

用于电池电压测量:2个10k电阻,1个100k电阻,1个100nF电容,1个MOSFET晶体管

焊锡和烙铁,印刷电路板

使用3D打印机进行外壳

附图显示了PCB上所有元件的位置:我必须节省空间以适应外壳,不应该太大。

In为了获取天气数据,您还需要在天气API上注册并将您的密钥放在‘Variables.h’文件中的正确位置(见下文)。

天气网站:

apixu

accuweather

第3步:这个项目让我思考和学习了很多。..。..

这个系统应该是低功耗的,所以你不需要每晚给电池充电。..为了节省能源,我选择了电子纸即使它们不再通电也能保持显示的屏幕。同样对于ESP32,我选择了Lolin32模块(以其节俭而闻名),我必须学习如何管理深度睡眠,以及中断唤醒呼叫通过加速度计。

盒子可以朝向4个方向,更平坦。总而言之,要显示4 * 2 + 2 = 10种可能的信息类型。所以它允许你做很多事情:日期,当天的圣人,时间,今天的天气预报,未来几小时或几天的天气预报,电池充电水平以及专业网站的随机报价。

在互联网上寻找的东西很多,如你所知: WiFi是节能的敌人。..。..

所以我们必须管理连接,以便显示最新信息,但不需要花太多时间连接。另一个相当复杂的问题:保持相当准确的时间。我不需要RTC,因为我可以在互联网上找到时间,但ESP32的内部时钟漂移了很多,特别是在睡眠期间。我必须找到一种方法来保持足够准确,同时等待通过互联网重置时钟。我每小时在互联网上重新同步它。

因此,在自治(互联网连接的频率)与所显示信息的准确性之间存在权衡。

另一个需要解决的问题是内存。当ESP32处于深度睡眠状态时,内存将丢失,除了所谓的RTC RAM。该内存宽4MB,其中只有2个可用于该程序。在这个内存中,我必须存储在睡眠阶段之后必须保持从一次执行到下一次执行的各种程序变量:天气预报,时间和日期,图标文件名,引号等。我必须学会处理它。

说到图标,它们存储在ESP32文件系统的 SPIFFS 中。关闭免费的Wunderground天气API后,我不得不寻找其他免费天气数据提供商。我选择了两个:一个用于当天的天气,有12个小时的预测,另一个用于多天的预测。图标不一样,所以它给我带来了两个新问题:

选择图标集

将这些图标与2个网站的预测代码相匹配

此对应关系也存储在RTC RAM中,因此不必每次都重新加载。

图标的最后一个问题。 无法将所有内容存储在SPIFFS中。这个空间太小,不适合我的所有文件。有必要进行图像压缩。我在 Python 中编写了一个脚本,用于读取我的图标文件并将其压缩为 RLE ,然后将压缩文件存储在SPIFFS中。在那里举行。

但是电子纸显示库只采用BMP类型的文件,而不是压缩图像。所以我必须编写一个额外的功能才能显示这些压缩文件中的图标。

互联网上读取的数据通常是 json 格式:天气数据,当天的圣人。我使用了(伟大的) arduinoJson 库。但报价不是那样的。我从一个专门的网站上拿走它们,所以我必须直接查看网页的内容来阅读它们。 我必须写一个特定的代码 t。每天午夜左右,程序进入该站点并读取大约10个随机引号,并将它们存储在RTC RAM中。当外壳朝向大屏幕时,其中一个随机显示。

我告诉你显示重音字符的问题(抱歉,但引号是法语)。..。

当小屏幕亮起时,《显示strong》电池电压,并使用图纸更好地查看剩余电量。有必要制作一个电子组件来读取电池电压。由于测量不应该对电池放电,我使用了互联网上的图表,该图表使用 MOSFET晶体管作为开关,以便仅在测量时消耗电流

为了能够制作这个电路并将所有东西都安装到盒子中,我想要尽可能小的,我必须制作一个PCB来连接系统的所有组件。 这是我的第一个PCB 。我很幸运,因为这一方面第一次运作良好。..

参见植入图:“禁区”是保留用于连接USB线的区域。 Lolin32模块允许您通过USB为电池充电:如果连接USB电缆,电池充电,模块同时工作。

最后一点:字体。不同大小,不管是否大胆,都必须创建和存储它们。一旦您在正确的目录中安装了字体文件,Adafruit GFX库就可以很好地处理这个问题。为了创建文件,我使用了字体转换器网站,非常方便!

请确保选择:

预览显示:TFT 2.4“

图书馆版本:Adafruit GFX字体

所以总结:一个大项目,让我学到了很多东西。

步骤4:使用电子纸显示

这些屏幕的主要缺点在视频中清晰可见:显示的更新需要一到两秒,并通过闪烁(两个屏幕的正常和反转版本的替代显示)完成。这对于天气信息是可以接受的,因为我不经常更新(每小时除了更改盒子的方向)。但不是时间。这就是为什么(并限制消费)我仍然使用HH:MM显示(不是秒)。

所以我不得不寻找另一种更新显示的方法。这些屏幕(其中一些)支持部分更新(应用于屏幕区域或整个屏幕。..。..)但对我来说不好,因为我的大屏幕(显示时间)保持被替换像素的重影。例如,当从10:12到10:13时,‘2’在‘3’内部稍微可见,并且在‘4’,‘5’等之后变得更加明显。我想要指出我的屏幕就是这种情况:我与电子纸显示库 GxEPD2 的作者讨论了这一点,他告诉我他没有用他自己的屏幕观察这种现象。我们试图改变参数而没有成功狩猎幽灵。

所以我们必须找到另一个解决方案:我建议做一个部分双重刷新,这解决了问题(至少这对我来说是令人满意的)。时间过去没有屏幕闪烁,没有鬼魂。但是,转换不是立即的:更改时间需要一秒多一点。

步骤5:实现

为了确保方向改变时内部没有任何东西移动,不同的组件(显示器,电子模块,PCB,电池)被胶合用胶枪。为了在PCB下面布线,我将它安装在用垫片制成的支腿上,电池也是如此。

很快我将安装一个外部USB麦克风连接器,所以我不必打开机箱给电池充电。

也许我也有兴趣通过OTA进行更新来完善它。..。..

第6步:代码和文件

提供了三个存档文件:

Weather station.zip:使用Arduino IDE上传的Arduino代码

Boite ecran.zip:案例的CAD和3D打印机文件

data.zip:要在ESP32的SPIFFS中上传的文件。

如果你不知道如何将文件上传到ESP32的SPIFFS,只需阅读本教程,它提供了一个非常有用的插件以及如何在Arduino IDE中使用它。

深度睡眠编程与Arduino的标准编程完全不同。对于ESP32,这意味着ESP32唤醒并执行设置,然后进入睡眠状态。所以,循环函数为空,永远不会执行。

某些初始化阶段必须在第一次执行时只运行一次(例如获取时间,天气数据,引号等),所以ESP32需要知道当前的唤醒是否是第一个:为此,解决方案是将变量存储在 RTC RAM 中(即使在深度睡眠阶段),每次唤醒时都会增加。如果它等于1,则它是第一次执行,ESP32运行初始化阶段,否则跳过此阶段。

要唤醒ESP32,有几种可能性:

定时器唤醒:代码计算睡眠前深度睡眠的持续时间。这用于更新时间(每1,2,3或5分钟)或天气数据(每3或4小时)和当天的圣人(每24小时)。

中断唤醒:加速度计发送一个用于唤醒ESP32的信号。这用于检测方向变化并更新显示屏

触摸传感器唤醒:ESP32配备了几个用作触摸传感器的引脚,但它们不能用于定时器唤醒,所以我没有‘使用它。

在代码的其他地方有其他编程技巧,以保持时间准确,同时节省能源(即每分钟不连接NTP服务器) ),删除Adafruit GFX库不支持的重音,以避免在没有必要时更新显示,设置加速度计参数尤其是中断唤醒,准确计算定时器唤醒时的睡眠时间 - 如果没有连接到IDE,请避免使用串行控制台(为了节省能源),在不需要时断开wifi等等。..。..代码中充满了评论,有助于理解函数。

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

    关注

    1

    文章

    861

    浏览量

    17100
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    车载扬尘监测站,走航式气象站

    气象站
    pingao141378
    发布于 :2026年02月25日 13:58:18

    湿度传感器模块HW2200用于气象站低湿度环境下的高精度精确监测

    气象站作为基础气象监测设备,凭借稳定的运行和精准的数据,广泛应用于能源、乡镇防控、生态科研、市政建设等多个领域。它可实现全天候无人值守,自动采集各类气象要素,实时上传数据,为各行业提供可靠的
    的头像 发表于 02-05 10:00 452次阅读
    湿度传感器模块HW2200用于<b class='flag-5'>气象站</b>低湿度环境下的高精度精确监测

    便携式气象站:移动场景下的气象“感知官”

    便携式气象站:移动场景下的气象“感知官”柏峰【BF-BQX】在野外勘探的深山里,在赛事保障的运动场上,在农业生产的田垄间,精准、实时的气象数据往往是决策的关键。传统固定式气象站受限于安
    的头像 发表于 11-14 09:13 443次阅读
    便携式<b class='flag-5'>气象站</b>:移动场景下的<b class='flag-5'>气象</b>“感知官”

    超声波气象站:精准监测的技术新选择

    超声波气象站:精准监测的技术新选择 柏峰【BF-CSQX】在气象监测技术持续升级的背景下,超声波气象站凭借无机械损耗、高灵敏度、强环境适应性等核心特性,逐渐取代传统机械气象站,成为
    的头像 发表于 10-24 10:12 909次阅读
    超声波<b class='flag-5'>气象站</b>:精准监测的技术新选择

    小型自动气象站:精细化气象监测的技术革新与应用拓展

    小型自动气象站:精细化气象监测的技术革新与应用拓展 柏峰【BF-QX】随着气象服务向“精细化、精准化、智能化”升级,传统气象观测站点密度不足
    的头像 发表于 10-23 10:53 967次阅读
    小型自动<b class='flag-5'>气象站</b>:精细化<b class='flag-5'>气象</b>监测的技术革新与应用拓展

    超声波自动气象站技术方案

    超声波自动气象站技术方案 柏峰【BF-CSQX】一、项目背景与需求分析 1.1 项目背景 传统机械转动式气象站存在部件磨损、易受恶劣天气影响(如风沙堵塞、雨雪结冰)、维护成本高等问题,难以满足现代化气象监测对数据精准性、连续性及
    的头像 发表于 10-16 14:18 529次阅读
    超声波自动<b class='flag-5'>气象站</b>技术方案

    光伏自动气象站技术架构与发电效率保障应用

    光伏自动气象站技术架构与发电效率保障应用 柏峰【BF-GFQX】光伏自动气象站以“精准辐照感知、发电效率评估、运维智能辅助”为核心技术特征,融合光伏专用气象监测与发电性能分析功能,成为
    的头像 发表于 10-15 17:29 1947次阅读
    光伏自动<b class='flag-5'>气象站</b>技术架构与发电效率保障应用

    景区负氧离子气象站

    气象站
    pingao141378
    发布于 :2025年10月14日 14:06:19

    华为推出鸿蒙智能交通气象站

    华为全联接大会2025期间,在气象海洋论坛上,华为联合陕西省气象局发布鸿蒙智能交通气象站,这标志着陕西在落实中国气象局“观测即服务”理念、抢
    的头像 发表于 09-20 14:41 1458次阅读

    北斗自动气象站: 护航无网区的 “气象信使”

    北斗自动气象站: 护航无网区的 “气象信使”柏峰【BF-BDQX】在沙漠深处的油田、高原无人区的牧区,或是地震灾后的通信中断地带,一种能摆脱网络依赖的气象设备正持续传递着关键数据 —— 它就是北斗自动
    的头像 发表于 09-08 11:35 1364次阅读
    北斗自动<b class='flag-5'>气象站</b>: 护航无网区的 “<b class='flag-5'>气象</b>信使”

    防爆工业气象站:工业场景的 “气象监测中枢”

    防爆工业气象站:工业场景的 “气象监测中枢”柏峰【BF-FB】在石油化工、煤矿开采、天然气处理等高危工业场景中,一个容易被忽视却关乎安全生产的问题始终存在:如何在易燃易爆环境下
    的头像 发表于 08-26 12:00 818次阅读
    防爆工业<b class='flag-5'>气象站</b>:工业场景的 “<b class='flag-5'>气象</b>监测中枢”

    智慧农业气象站技术方案

    智慧农业气象站技术方案 柏峰【BF-QX】随着农业现代化进程的加速,传统农业正逐步向智慧农业转型。气象条件对农业生产具有至关重要的影响,精准的气象监测与预测能够帮助农户合理安排农事活动,有效降低
    的头像 发表于 08-21 09:05 945次阅读
    智慧农业<b class='flag-5'>气象站</b>技术方案

    光伏实验气象站的技术架构与应用实践

    光伏实验气象站的技术架构与应用实践 柏峰【BF-GFQX】在光伏产业快速发展与新能源科研不断深入的背景下,光伏实验气象站作为获取精准气象数据与光伏性能参数的核心设备,其技术先进性直接决定了科研成果的可靠性与工程应用的实效性。
    的头像 发表于 08-19 08:57 2285次阅读
    光伏实验<b class='flag-5'>气象站</b>的技术架构与应用实践

    车载气象站在多领域的应用

    在物联网与人工智能深度融合的当下,车载气象站BF-CZ正以“移动感知”为核心,构建起覆盖农业、交通、应急等领域的智能监测网络。这一集成传感器技术、数据分析与通信功能的创新设备,不仅突破了传统固定
    的头像 发表于 07-18 16:57 736次阅读
    车载<b class='flag-5'>气象站</b>在多领域的应用

    给孩子一堂自然课:气象站如何让科学触手可及?

    气象站
    奕帆科技
    发布于 :2025年05月06日 14:57:01