|
本帖最后由 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
打赏
-
查看全部打赏
|