带有nRF52832上的E-PAPER的Arduino温度计和湿度计-或制造商忘记发布的东西

向所有Habr读者致以问候! 在下一篇文章中,我将再次讨论ARDUINO。 我想与您分享我的下一个在nRF52832微控制器上实现的项目。 这是sht20上的温度和湿度传感器| ( 数据表 )带有单色电子墨水显示屏(E-INK | E-PAPER),它是MySensors生态系统的一部分。


它的主要功能是监视房间中的温度和湿度,将数据发送到智能家居的控制器或直接发送到执行器。 好吧,附加功能只是将数据从sht20传感器,网络信息和电池电量输出到监视器。 在我的实现中,这只是直接与执行器(加热系统控制器)直接交互。 从MySensors的角度来看,该实现是非常规的,我添加了主从模式,传感器类型和空气捕捉的功能。 另外,在我的实现中,更改了传输层的初始化过程,因为 MySensors逻辑对于独立设备不是很好。 但这一切都是稍有不同的故事,也许值得单独发表,但就目前而言,有关MySensors协议传统的有关该设备的文章。

具有这种功能的设备的想法已经很长时间了,我的第一次尝试是在atmega328微控制器上实现该想法的。 原则上是这样做的,但是我想要提高能源效率,在显示屏上显示更多彩色的信息。

atmega 328的版本



在介绍传感器时,社区有时会提到小米公司的设备,他们说已经是。 但是有一点不同,小米有一个显示设备,在我的情况下,它是一个具有显示功能的智能家居系统传感器。 为什么要显示? 有时候我只是想朝传感器的方向转动头,看看房间的温度:)。



该传感器在两块板上实现;显示电路的基础取自常见的Waveshare显示器| Datashit 。 没错,后来做了些微改动。 传感器的大脑是HOLYIOT模块化实施的nRF52832芯片。 模块本身值得特别注意,就Arduino IDE的工作而言,这是最无问题的实现。 设备使用的模块-YJ-16048。



与显示器一起工作的软件实现的基础是在Waveshare Electronics网站上分发的“实例” 。 是的,这里并非没有完善。

显示器消耗的测量值与数据表中所述的值相对应,最重要的是该显示器可以休眠并且数据保留在屏幕上。 没错,将显示器变成梦想并不能立即生效,Waveshare的实施不允许这样做。

传感器中的电源由两块cr2450电池供电,将具有良好性能的TPS62745DSSR1芯片降低至3.3V正常工作电压| 数据表 。 目前,我们可以放心地说此设备(描述的版本)可以使用1年。

深度睡眠模式下的功耗-〜25μA(使用测试程序)。 工作模式下的平均功耗约为9mA。

该项目是开放的,可以在OpenHardVar网站上找到gerber文件,可以在这里找到程序代码和库( 谷歌驱动器 ),为什么没有GitHub? 就这样,在最后的重新格式化(v2)中也将存在。

对于那些决定重复使用此设备的人,应该进行单独的谈话,其主题是将所需字体的字符转换为C数组。 我的经验是使用TheDotFactory进行转换。

我将尝试用图片描述过程:)


























几乎任何字体都仅受nRf52内存功能的限制... ...存储所有字符毫无意义,如果只需要数字,则可以节省很多空间。

遇到的另一个问题是更新屏幕上的信息。 在这些显示器上,可以对屏幕上的所需区域进行部分更新,这在能耗方面是绝对的加分,但是减数是从先前字符更新数据的区域中出现的伪像。



但是这个问题解决了(请参阅程序代码)。 它最终像这样:









视频演示了显示器的操作。


改进后,这演示了屏幕上数据的更新:


这个实现不是最终的,该项目以Arduino模块的形式留给重复。 没有计划向其派兵。 现在,从这个项目中,有几个逻辑上的连续诞生。 未来V2的主要区别是由单个电池,三色显示器和外壳组成。

触发三色显示的示例:


强烈建议(对于那些想重复的人)在此项目的.org论坛上阅读我的主题(英语)。 如果语言有问题,我将始终乐意为聊天中的每个人提供帮助(安装板,在Arduino环境中使用nRF5微控制器,有关使用mysensors协议的技巧- @mysensors_rus

Source: https://habr.com/ru/post/zh-CN452532/


All Articles