sht20温湿度传感器_手把手教你DIY一款性价比爆棚的温湿度计!

大家好,今天笔者要跟大家分享一款“温湿度计”的制作,一说到温湿度检测,或许大家第一个想到的就是DHT11了吧,单总线接口,操作方便,或者就是SHT2X系列的,IIC总线接口,编程也是比较简单。但是你们可能想错了,笔者今天要介绍的主角不是他们。

我们在设计产品的时候,很多时候不仅仅要考虑到体积,同时也要考虑成本,然而上面两类传感器,DHT11的体积显然是比较大的,SHT2X系列的传感器,成本也会让人望而生畏。那么,有没有一款体积又小,价格又相对比较便宜的温湿度传感器呢?答案自然是肯定的!这不,今天笔者要给大家介绍的这款也是由奥松电子出品的温湿度传感器AHT10,既体积小,价格又相对比较便宜,当然,最重要的是精度也不差!

我们先来看一下这款温湿度传感器的参数基本参数,如下图所示:

我们先来看一下这款温湿度传感器的参数基本参数,如下图所示:

3646b9a4e920cf54cb2d6b7b60ca2318.png

接下来,我们再来看一下它的尺寸和封装,双列扁平无引脚SMD封装,体积仅有541.6mm,也算的上是非常的小巧了(当然,比SHT20的尺寸32.41.1来说,还是要大了一点,但是比起DHT11的尺寸15.5125.5mm来说,小了就不是那么一点点了):

e5def05f258542fc3f3d49a3d6006dd2.png

至于价格方面嘛,DHT11在某宝差异比较大,有2块多的,也有5块多的,在某商城的价格基本在4.5左右(含税),SHT20含税在6块多一点,AHT10在某商城没看到,某宝基本在3.5左右!初步看来,AHT10的性价比似乎要高一些。

好了,关于这几款传感器就简单略过,毕竟他们不是本文的重点,因为今天笔者主要是要跟大家介绍AHT10这款传感器的应用。下图是笔者设计的一款产品,至于产品的用途就不多说了,这款板子上所用到的用于温湿度检测的传感器就是这款AHT10:

b354792d692d995c7f40e8c8d7604814.png

为了便于SMT加工,主要元件基本都放置在了板子的背面,我们再来看下板子的正面,是由一个OLED模块和4个按键组成:

7ea7b7d8e04d7822e503b4ca144671fb.png

主控MCU是用的STC8A8K64S4A12这款最新出的单片机,OLED模块用的中景园的IIC接口的0.96寸OLED模块,分辨率是128*64;

5b1620457b4e9a4f0313cd4eaf1d955a.png

ATH10的控制也很简单,直接IIC接口,除电源线外,另外只需2根线(SCL和SDA)即可,只是这里需要注意几点:

  1. 产品在电路使用中主机MCU的供电电压必须与传感器一致;

  2. IIC总线上仅能连接单个AHT10,且不能连接其它IIC器件。

  3. 6909ad28fb116a16b75b5b9a38f74f68.png

好了,硬件部分连线很简单,就不多说了,接下来我们看软体设计部分,我们先来看下OLED界面,即最终我们要显示的效果:

49e98a37fb614ee7a5fdd05bbd2af380.png

OLED界面设计大致思路是这样的:我们将分辨率为128*64的OLED屏分成8行,其中:

  • 第0-1行,用来显示“温湿度计”4个16*16的汉字;

  • 第3-4行,用来显示温度信息;

  • 第6-7行,用来显示湿度信息;

于是,在程序中我们便可以这样设计:

253213de1704b85881d8d9c05f778f11.png

这里用到了三个显示函数, OLED_ShowCHinese()、OLED_ShowNum()和OLED_ShowString(),分别用来显示汉字、数字和字符,其中OLED_ShowCHinese()函数的原型如下,兼容了1616和3232两种大小的字体:

b491de5262c48471e910acde0cbdb23d.png

另外,OLED_ShowNum()函数和OLED_ShowString()函数的原型分别如下图所示:

71e718e8e619e88e33b446dcb4015555.png

跟OLED相关的驱动,基本都是由中景园提供的例程,然后做了一些不同大小字体匹配的修改,大家要是有什么不明白的地方,可以直接查看官方提供的资料,在此笔者也就不多说什么了。

关于字体取模,笔者也简单说下,利用中景园提供的取模软件,大致操作流程如下:

1、    将取模模式设置为“字符模式”:

b5b31d122288ee4d6624c018a15783bb.png

2、    设置字模相关的参数:

b5b31d122288ee4d6624c018a15783bb.png

3、    设置字体及字号,然后输入我们要取模的汉字或字符,点击“生成字模”即可:

3076406bf993fc81c645f6853891cff0.png

接下来,我们只需要将取模生产的文件复制到oledfont.h这个字库文件中即可:

99cfc3e7b62bc9fc578357d624ed9a56.png

当然咯,这个字库文件中本身就给我们提供了不同大小的常用的ASCII表的字库,所以,我们只需要添加其他这个字库中没有的字体即可。大家只要掌握了方法,笔者相信添加字库对大家来说应该是件很简单的事情!最终,笔者的字库文件如下图所示:

c7eb4cb2804acddb5c209a08395918c3.png

接下来,我们就要来看下ATH10的驱动程序,关于AHT10的驱动,官网也提供了基本的例程,所以,笔者也是基于官网例程,再根据身硬件做了一些小改动,官网例程链接:http://www.aosong.com/class-36.html。

dbb34bf279b9b08adc7621ef731d82f9.png

接下来,我们就简单分析一下AHT10驱动相关的程序......

98401201e4e02f6eff82dedcd50dc260.gif

点“阅读原文”,查阅完整内容!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值