项目主要功能: 1,ESP32采集室内温湿度(同时采集了DHT11温湿度和BD1020的温度,DHT11的温度仅作为参考比较) 2,OLED显示温湿度和主卧灯,次卧灯,客厅灯的开关情况。 3,BD1020的温度大于设置温度的话,继电器工作,BD1020的温度小于设置温度的话,继电器关闭。可以夏天接制冷设备,当作空调使用,自动控制房间内的温度。 4,上报温湿度和是否超过设置温度情况到手机小程序界面 5,通过微信小程序可以远程开关主卧灯,次卧灯,客厅灯。 6,可以在网页设置个温度,温度超标的话微信信息提醒。 7,可以通过天猫精灵语音控制主卧灯,次卧灯,客厅灯开关。
先看下实物的组装图片和小程序界面 使用的ESP32,AD采集的误差比较大,程序里做了相应的调整。本项目仅实现功能,对BD1020的温度校准没有太多的处理。
好了,从头开始说,本来准备使用ESP8266的开发板来完成的,后来发现ESP8266的板子的AD口做了电阻的分压处理,导致采集的温度非常不准,后台设置的是50度超标微信短信通知的,结果测出来温度100多度了
果断放弃ESP8266,上ESP32,这个的AD通道比较多,随便选个引脚作为AD口,但是采集出来的误差还是比较大,在计算的时候做了处理 这里的计算电压本来应该是3.3的,但是温度偏差比较大,我就改为3.73了,这样和实际的温度差别就不大了,下面计算温度的公式是官方的程序里的,1.546V对应的是0度时候的电压值,8.2就是温度曲线的斜率,这个是初中时的基本的斜线公式了 手册上的电压和温度的关系图
定时采集到温度以后就和设置的温度比较来控制一个继电器,然后显示,上传到小程序
小程序使用的是第三方贝壳物联平台,下面简单说下平台的操作 添加设备 用户登录后,找到智能设备,点击添加设备 设备名称自行定义,我的就定义成遥控器,你也可以起任何其他名字,是否公开去掉,否则别人可以看到你的设备 然后拉到最下面点击确定,就添加好了。 点击设备列表,可以看到刚添加的设备了。在设备列表记下这两个值ID和APIKEY,可以用记事本记录一下, 后面要在程序里做对应修改,
点击右面的编辑按钮,进去进行设置。设备类型选择万能遥控器,选择这个的话可以通过一个8266控制多个设备,下面公开不要选择了,否则别人可以看到你的设备,图标自行选择定义,加密登陆不能选择,然后拉到网页最下面点击确定。
添加子设备 在左边的项目里选择子设备,添加子设备 名称自行定义,父设备选择上一步中建立的设备,类型根据需要选择,但只能开关类型的(因为继电器只有开关两个状态),添加设备的间隔时间不能太快,如果提示操作太快,稍后再试,一般最长也就一分钟吧
添加完成后的列表,如果设置错误或不满意,也可以点击每一栏最后的修改。 程序的对应几个地方要修改下(在main.h头文件里面)CHILD_ID1对应继电器通道1,CHILD_ID2对应继电器通道2依次对应,刚注册的新用户,可能建立不了8个子设备,那下面空余的就随便填写。
上传的数据增加了3个数据量接口
设置一个温度报警接口,温度超过设定值的话会发微信短信息提醒的
系统硬件结构图
硬件接线图
测试视频,天猫精灵也可以的,没有录视频
|