数码之家

 找回密码
 立即注册
搜索
查看: 4796|回复: 7

[Arduino] Arduino试验:OLED显示湿温度+小爱同学、小度语音查询

[复制链接]
发表于 2020-5-5 18:10:41 | 显示全部楼层 |阅读模式
本帖最后由 mr7 于 2020-5-5 18:21 编辑

夏季已至,制作了一个基于SHT31的湿温度计,以便及时掌握室内温度及湿度。

硬件方面采用SSD1306 0.96寸OLED屏作为显示,传感器是SHT31高精度湿温传感模块(+-0.3℃,+-2%RH),开发板是安信可科技的NodeMcu板(ESP-8266)。开发工具是Arduino IDE,物联网平台推荐Blinker点灯科技,远程查询设备及APP分别是REDMI音箱(内置小爱同学)、小度智能音箱1S(内置小度OS)。试验思路,通过APP远程查看传感器实时数据,同时可通过智能音箱语音查询现场湿温度。示例中如有不足之处敬请指出!

SHT31传感器模块



SSD1306 0.96寸OLED屏



NodeMcu开发板




先行注册Blinker并安装APP,通过APP申请开发者密钥KEY用于程序关联。在APP图形界面下新增3个数据键,2个图表。3个数据键键值分别为"humi"-湿度、"temp"-温度、"Wi-Fi"-信号强度,同时填入对应单位、文本、最大值。2个图表为"humi"-湿度走势、"temp"-温度走势。这里切记各键值必须与后面的源码设置一致。另外需要在小爱音箱和小度智能音箱APP端增加第三方平台设备接入,在上述APP内直接添加Blinker设备即可,捆绑的密码与Blinker APP密码一致。具体见APP截图。

Blinker APP新增温度计设备



湿度键值



温度键值



Wi-Fi信号强度键值



创建湿度走势图表



创建温度走势图表



接着是源码。由于SSD1306 OLED屏没有自带字库,需要使用U8G2库,但U8G2中文字库不是很全,本人使用了字体取模。其实U8G2可以直接自定义中文字库的,但考虑到时间关系以后再搞。本次主要用的库包括Adafruit_SHT31,U8G2,及Blinker。Blinker网:https://doc.blinker.app内可下载APP及库,其他常用库请自行添加。源码内部分代码已注释,个别参考了论坛其他爱好者的公开源码。针对湿温度门限值采用不同颜色表示,同时增加Wi-Fi RSSI场强值用来判断接收无线路由器信号的品质。源码里分别填好自己的Blinker设备开发者key、路由器Wi-Fi ssid及路由器Wi-Fi 密码即可。在这里十分感谢各位Arduino爱好者提供的指导,使本人这位新手能迅速拼好源码。

源码如下:


也可以通过本人公众号帖子获取




硬件连接比较简单,OLED屏SDA接开发板D5脚,SCL接开发板D6脚,GND接GND,VCC接3.3V。为了方便日后外接其他传感器,本次预留了高度和气压的显示位置;传感器SHT31  SCL接开发板D1脚,SDA接开发板D2脚,同样GND接GND,VCC接3.3V。脚位均可在源码里可以自行修改。

SSD1306 0.96寸OLED屏接线



NodeMcu开发板接线



实际通电测试中,Blinker APP可实时监控SHT31和Wi-Fi数据。而小爱音箱和小度智能音箱APP均能识别出本次制作的传感器,同时都能通过语音查询湿温度。根据和小米湿温度计一代(同样采用SHT方案)对比数据,二者差别不大。试验成功!

Blinker APP实时监控界面



串口监视



小爱音箱 APP捆绑传感器界面



小度智能音箱 APP捆绑传感器界面



小米蓝牙湿温度计一代数据对比




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

打赏

参与人数 2家元 +55 收起 理由
家睦 + 40
jjbboox + 15 優秀文章

查看全部打赏

 楼主| 发表于 2020-5-13 08:25:44 | 显示全部楼层
7脚的SPI接口屏建议参考datasheet或U8G2在Arduino库里示例,里面有接线注释的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-22 12:01 , Processed in 0.124800 second(s), 11 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表