使用不同通讯协议模组开发智能烧水壶

精准控温使用的是日本芝浦/华工高理温度传感器,感温精确达到±1%(B=3950,R=10K)。

温度检测电路图如下:

下图为英国STRIX温控器正反面照片:

无源蜂鸣器控制电路如下所示:

其中,

预留该管脚,用作后续功能扩展。

本方案设计中在触摸焊盘上加了导电泡棉,增强导电性。

导电泡棉

触摸按键

按键检测芯片

选用TS02N作为按键检测芯片。TS02N是双通道电容式传感器,具有自动灵敏度校准功能,其电源电压范围为2.5~5.5V。通过并联输出端口(OUT1和OUT2),芯片由低电平触发,可以检测触摸感知的结果。由于有了SYNC功能,两个TS02N可以同时在一个应用程序上工作。

管脚分配

TS02N使用说明

触摸焊盘P1时,P8输出低电平;同理,触摸焊盘P2时,P7输出低电平。

触摸检测电路

主控板上设有主控芯片,无线信号接收及发生装置与主控芯片集成为一体或相互独立。

主控板上设有煮沸控制开关和保温控制开关。

电源板上设有继电器,继电器包括继电器线圈和继电器开关,继电器线圈通过电源板与主控板电性连接,继电器开关与加热电路电性连接、并控制加热电路的通断。

BLE模组方案使用涂鸦BLESDK和Telink芯片平台TLSR825x进行开发,以下为搭建开发环境的步骤。

我们将在\ble_sdk_multimode\tuya_ble_app中进行智能烧水壶应用代码的编写。

将代码导入Eclipse,可以直接在Eclipse进行代码修改,也可以先使用自己熟悉的代码编辑器。

温度采集代码

初始化温度采集所用的ADC设备,再采集温度。

//初始化adc设备voidb3950_init(void){/*createadcdevice,gethandle*/temper_adc=(tuya_adc_t*)tuya_driver_find(TUYA_DRV_ADC,TUYA_ADC2);/*adc_devcfg*/TUYA_ADC_CFG(temper_adc,TUYA_ADC2,0);/*adc_devinit*/tuya_adc_init(temper_adc);}//获取温度值intcur_temper_get(){intRt=0;floatRp=100000;floatT2=273.15+25;floatBx=3950;floatKa=273.15;inttemp=0;/*CollectADdataandstoreitinadc_buffer*/tuya_adc_convert(temper_adc,&adc_buf,1);/*req_val(0-4096)-V(0-2.4)*/volt=(float)adc_buf*2.4/4096;//volt=adc_buf;Rt=(3.3-volt)*20000/volt;PR_DEBUG("Rt:%d",Rt);temp=(int)(1/(1/T2+log(Rt/Rp)/Bx)-Ka+0.5);PR_DEBUG("volt:%f",volt);returntemp;}温度显示代码

温度显示流程为每2秒采集一次温度,并将温度值上报到云端。

利用蜂鸣器报警,当测得温度高于105摄氏度时说明水壶已经没水了,此时驱动蜂鸣器响动并上报干烧状态到云端。

功能简述

智能烧水壶设备上提供煮沸、保温两个按键。

离线控制代码

为了后期的程序扩展,采用回调函数注册的方式实现按键控制。

按键驱动代码如下:

主线程代码。按键或云端触发会控制水壶处于不同的模式,此时主线程根据不同模式进行对应的处理。

实现云端控制首先要实现dp数据触发的执行函数,下面我们将实现这些执行函数

实现煮沸控制的执行函数

此执行函数需要根据下发的DP数据控制水壶的煮沸功能,开启和关闭触发后要实现的具体功能如下:

开启:

关闭

具体代码实现,需要在kettle_app.c中增加执行函数

实现设定保温温度的函数

设定保温温度的函数是通过云端设定进行触发,触发后要实现的具体功能如下:

staticvoiddp_keep_warm_set_handle(INintvalue){set_kettle_keep_warm_temper(value);//设置保温温度,注意设定保温温度不会直接触发保温report_one_dp_status(DP_TEMP_SET);//上报dp_keep_warm_set这个dp点的设定值到云端}//保温温度设置范围为45~90摄氏度voidset_kettle_keep_warm_temper(intvalue){if(44

实现保温控制的执行函数

云端可以控制界面上的保温按钮决定是否开启保温,触发后要实现的具体功能如下:

关闭:切换烧水壶的工作状态到自然模式(无操作)

staticvoiddp_keep_warm_handle(INBOOL_TbONOFF){ //保温开启,水质模式为自来水模式,烧水壶进入保温1模式(先煮沸再保温)if(bONOFF==TRUE&&(get_water_type()==tap_water)){set_kettle_work_status(keep_warm_mode1);set_dp_keep_warm_switch(TRUE);set_dp_boil_value(FALSE);PR_DEBUG("keep_warm_mode1");//保温开启,水质模式为纯净水模式,烧水壶进入保温2模式(直接保温)}elseif(bONOFF==TRUE&&(get_water_type()==clear_water)){set_kettle_work_status(keep_warm_mode2);set_dp_keep_warm_switch(TRUE);set_dp_boil_value(FALSE);PR_DEBUG("keep_warm_mode2");}else{//关闭保温set_kettle_work_status(nature);set_dp_keep_warm_switch(FALSE);PR_DEBUG("closekeepwarm");}//上报dp数据report_one_dp_status(DP_KEEP_WARM);report_one_dp_status(DP_BOIL);}此时保温设置的执行函数已实现。

实现水质选择设定函数

云端可以控制水质选择,触发后要实现的具体功能如下:

具体代码实现,需要在kettle_app.c中增加执行函数。

voiddp_water_type_handle(intvalue){if(value==tap_water||value==clear_water){//设置水质模式tuya_hal_mutex_lock(mutex);kettle_work_information.water_mode=value;water_type_s.value=value;tuya_hal_mutex_unlock(mutex);//此时水壶处于自来水保温状态,且此时云端控制水质模式切换为纯净水,水壶状态切换到纯净水保温模式if(get_kettle_work_status()==keep_warm_mode1&&get_water_type()==clear_water){set_kettle_work_status(keep_warm_mode2);//此时水壶处于纯净水保温状态,且此时云端控制水质模式切换为自来水,水壶状态切换到自来水保温模式}elseif(get_kettle_work_status()==keep_warm_mode2&&get_water_type()==tap_water){set_kettle_work_status(keep_warm_mode1);}PR_DEBUG("waterchoose:%d",value);report_one_dp_status(DP_WATER_TYPE);}}//获取当前水壶的工作状态intget_kettle_work_status(){returnkettle_work_information.status;}//获取当前的水质模式intget_water_type(){returnkettle_work_information.water_mode;}此时水质选择设定函数已实现。

云端定时煮沸功能

云定时煮沸开启:

云端控制代码实现

上面已经实现了相应的执行函数,下面我们将实现App下发DP数据控制设备的功能。

云端控制代码实现:

指示灯驱动控制

指示灯作为烧水壶状态指示和配网指示,驱动形式为电平驱动,基本设置如下:

代码实现:

继电器的通断用于控制加热电路,驱动形式为电平驱动,基本设置如下:

#defineP_RELAY GPIO_PD3/*P14*//*继电器端口初始化*/voidrelay_init(void){ gpio_set_func(P_RELAY,AS_GPIO); gpio_set_output_en(P_RELAY,1); gpio_write(P_RELAY,0);}/*继电器通断控制*/voidset_relay(boolb_on_off){staticbools_last_status=0;if(s_last_status!=b_on_off){if(b_on_off==ON){ gpio_write(P_RELAY,1);}else{ gpio_write(P_RELAY,0);}s_last_status=b_on_off;}}蜂鸣器驱动控制

蜂鸣器作为按键提示音和故障报警提示音,驱动形式为方波信号驱动,基本设置如下:

为了后期的程序扩展,采用注册回调函数的方式实现按键检测与处理

a.按键注册信息及初始化

用户可注册内容设定如下:

#defineKEY1_CODE 0x01#defineKEY2_CODE 0x02#defineKEY_PRESS_SHORT_TIME50然后编写定时循环的按键状态扫描函数和按键处理函数:

a.温度采集

NTC端口设置如下:

a.初始化函数与主循环函数的编写

每2秒更新一次温度值,如果发生温度变化,则将数据更新上报至云端,并进行一次故障检测;如果故障状态变化,更新故障信息至云端:

按键信息注册如下:

根据功能设定,我们将烧水壶的工作模式拆分为以下4个模式:

要实现和云端进行数据交互,首先要使设备配网。根据功能简述中介绍可知,我们需要先进行以下配网检测处理:

下面我们介绍配网状态检测与处理的实现过程。

a.在上电初始化时,先对蓝牙连接状态进行判断和标记:

#defineTIME_ALLOW_CONNECT(3*60*1000)/*3min*/staticuint32_tsg_ble_tm=0;FLAG_BITg_kettle_flag;#defineF_BLE_BONDINGg_kettle_flag.bit0#defineF_WAIT_BLE_CONNg_kettle_flag.bit1/*等待蓝牙连接*/staticvoidwait_ble_connect(void){ /*3分钟定时*/if(!clock_time_exceed(sg_ble_tm,TIME_ALLOW_CONNECT*1000)){return;}F_WAIT_BLE_CONN=CLR;/*关闭等待连接标志*/set_led_green_mode(LED_MODE_FIX);/*绿灯停止闪烁*/bls_ll_setAdvEnable(0);/*关闭蓝牙广播*/}/*更新蓝牙状态*/staticvoidupdate_ble_status(void){if(F_BLE_BONDING==CLR){ /*未绑定?*/if(F_WAIT_BLE_CONN==SET){ /*等待连接标志打开?*/wait_ble_connect(); /*等待蓝牙连接*/}}}c.在蓝牙连接状态发生改变时做如下处理:

/*蓝牙连接状态改变时的处理函数*/voidtuya_app_kettle_ble_connect_status_change_handler(tuya_ble_connect_status_tstatus){if(status==BONDING_CONN){/*蓝牙已连接?*/report_all_dp_data();/*上报所有DP数据,保证APP显示与设备状态一致*/if(F_WAIT_BLE_CONN==SET){/*等待连接标志打开?*/F_BLE_BONDING=SET;/*标记为已绑定*/F_WAIT_BLE_CONN=CLR;/*停止配网等待*/set_led_green_mode(LED_MODE_FIX);/*停止闪烁*/}}if(status==UNBONDING_UNCONN){/*设备被解绑?*/F_BLE_BONDING=CLR;/*标记为未绑定*/bls_ll_setAdvEnable(0);/*停止蓝牙广播*/}}/*处理BLESDK消息的callback函数[tuya_ble_app_demo.c]*/staticvoidtuya_cb_handler(tuya_ble_cb_evt_param_t*event){ ...caseTUYA_BLE_CB_EVT_CONNECTE_STATUS: /*在状态改变事件发生时调用*/tuya_app_kettle_ble_connect_status_change_handler(event->connect_status);TUYA_APP_LOG_INFO("receivedtuyableconncetstatusupdateevent,currentconnectstatus=%d",event->connect_status);break;...}d.保温键长按5秒时,重新尝试等待配网的执行函数如下:

在设备配网后,就可以使用APP来控制设备和查看设备上报的数据,下面是数据上报的实现过程。

在App上改变设备状态时,会从云端下发控制数据,设备在接收到数据后进行如下处理,即可实现云端任务。

预约功能可通过云定时功能实现,即在涂鸦IoT平台上产品开发的功能定义页中,打开高级云功能的云定时功能:

至此智能恒温烧水壶就完成了,它可以APP远程控制,按键控制。具有水质模式切换,保温温度设定,定时烧水,故障告警等功能。在这款智能烧水壶的基础上还有很多功能可以深入开发,使体验更加人性化,智能化。同时您可以基于涂鸦IoT平台丰富它的功能,也可以更加方便的搭建更多智能产品原型,加速智能产品的开发流程。

THE END
1.电水壶内部电路,看懂了自己就可以修电水壶内部电路,看懂了自己就可以修我是大俵哥 江苏 0 打开网易新闻 体验效果更佳一灯双控的工作原理和实物接线,一目了然 我是大俵哥 打开APP 插头烧坏了,2种解决方案供大家参考 我是大俵哥 打开APP 接触器入门知识,不会这些只能当个学徒工,赶快来学习一下 我是大俵哥 打开APP 讲真,是球网先动手的!https://m.163.com/v/video/VRGHHD9V3.html
2.电热水壶工作原理及内部结构图电热水壶是一种常见的家用电器,它通过加热水来快速提供开水。下面将详细介绍电热水壶的工作原理和内部结构图。 1.工作原理 电热水壶的主要元件是加热管、热控开关、温度传感器等。当使用者按下开关时,电源就会给加热管供电,加热管内的电能被转化为热能,使得水温升高。当水温达到设定温度时,温度传感器会传回信号给热https://m.eefocus.com/e/500247.html
3.电热水壶原理图和工作原理电热水壶原理图和工作原理 2024-01-27 10:04:01 晨欣小编 一、电热水壶的外观和结构 电热水壶是一种常见的家用电器,外观上通常由一个容量适中的壶体和一个手柄组成。壶体通常由不锈钢材料制成,提供了耐用和不易受热损伤的特性。手柄则通常由塑料材料制成,便于握持和倒水操作。 https://bomyg.com/detail/193593.html
4.电热水壶电路图原理图解养生壶电路图资源电热水壶是一种常见的家用电器,其工作原理主要依赖于电路图来实现控制和功能。电路图是电热水壶设计中的重要组成部分,它不仅显示了电热水壶的组成部分,还揭示了这些组件之间的电气连接和工作原理。 电热水壶的基本组成包括蒸汽开关、防干烧开关、工作指示灯和加热电阻丝。蒸汽开关位于水壶手柄部分,负责监测水沸腾后的蒸汽https://download.csdn.net/download/weixin_38719643/12617002
5.电热水壶的原理及维修.ppt介绍电热水壶的类型 1 电热水壶结构 2 温控原理 3 工作原理 4 常见故障及解决方法 5 电热水壶的类型 电热水壶结构 简单原理图 电热水壶的原理及维修 来自淘豆网www.taodocs.com转载请标明出处. 文档信息 页数:16 收藏数:0 顶次数:0 上传人:qujim2013 https://www.taodocs.com/p-2213874.html
6.茶之友C107型电热水壶电路工作原理摘要: 该型电热水壶带有自动加水、调温及数码显示功能。它由壶体、电热丝、温度探头、温控器及控制面板等组成.为2011年初产品。根据实物绘制的电路如附图所示。图中各处电压值为水壶内无水时,用500型万用表在“-P-”显示状态下测得的。 此电热水壶的开关电源芯片U2(VIPer22A)及变压器TI组成12Y开关电源,为微https://www.hqew.com/tech/news/1045007.html
7.转DIY制作智能电热水壶(程序设计原理等)电路方案之前设计了一个智能电热水瓶,采用18B20测温,使用近2年,由于塑料长期高温烘烤,变脆了,上部支撑水箱的架完全烂掉不得不换新的。新买的电热水瓶拆开一看,不愧是山寨货,电路极其简单,使用一个突跳式温控器,而且连变压器也省了,用电容降压? 如下图: 于是重新设计电路,采用STC12C2052AD单片机控制,这次采用热敏电阻作为测https://www.cirmall.com/circuit/5403/
8.电水壶温控开关最佳答案: 先检查是“电热丝”坏了,还是“温控器'坏了?一般是“温控器'坏的情况比较多。去买个“温控器'换上。 1)通电后不加热,指示灯不亮。 故障常是电源 更多关于电水壶温控开关的问题>>zhidao.baidu.com/quest 【电热水壶原理】电水壶原理解析 电水壶温控器的应用原理_知识 https://www.bimetalfuse.cn/news/comnews/571.html
9.电热水壶加热原理总的来说,电热水壶通过电流加热电热管,再利用热量加热水,从而实现快速沸腾的效果。展开 01-01 清淡留香拒聊 现在很多家庭为了图方便,都会利用电热水壶来代替饮水机使用,所以该产品已经成为了很多家庭中缺一不可的东西,同时在日常生活中的使用频率也是比较高的,这种产品的加热原理就是水壶当中都有自带的加热管,https://m.jia.com/wenda/mip/a-659008.html
10.电热水壶的原理及维修20220414130440.ppt电热水壶的原理及维修.ppt,第1页,共15页。 目录 介绍电热水壶的类型 1 电热水壶结构 2 温控原理 3 工作原理 4 常见故障及解决方法 5 第2页,共15页。 电热水壶的类型 第3页,共15页。 第4页,共15页。 第5页,共15页。 第6页,共15页。 第7页,共15页。 第8页,共15页。 电https://max.book118.com/html/2022/0414/8100070037004072.shtm
11.电水壶灯不亮不加热维修图解大全,电热水壶常见故障维修指南电水壶是家庭、办公室方便实用的饮用开水器具,它电路结构简单, 操作使用方便。其实电热水壶的结构和电路原理以及故障现象和维修方法都完全相同。现以常见的电热磁化开水器为例介绍其工作原理及常见故障检修。 一、电水壶工作原理 其中为电热元件,阻值在左右为加热指示灯, 为保温指示灯,两指示灯阻值很大,均为兆欧级。https://www.marketup.cn/marketupblog/yxzx/14173.html
12.[电热烧水壶]图片价格正品怎么样考拉海购电热烧水壶专题,是国内正品电热烧水壶网上购物商城,提供电热烧水壶价格,评论,图片,品牌等信息。考拉海购正品保障,假一赔十。https://www.kaola.com/cp/30071.html
13.热水壶开关弹簧原理图解电热水壶的温控一般分为电子式和机械式。电子式非常精准,可以把温度控制在一度误差以内,而且还要有延时动作或彻底切断电路的设计,否则电路就会在临界点反复启动甚###出现震荡。所以电路比较复杂,在单独的电热壶上用的不多。 目前用的###多的还是机械式温控开关,也被称为蒸汽开关。提问中的簧片应该就是指这种开关。http://www.chinadianji.com/diangongjichu/1634343751547.htm
14.电水壶整机结构设计3d模型图纸下载瓶子容器图纸电水壶整机结构设计3d模型。电热水壶的工作原理为,水沸腾时产生的水蒸汽使蒸汽感温元件的双金属片变形,这种变形通过杠杆原理推动电源开关断电。其断电是不可自复位的,故断电后水壶不会自动再加热。https://www.mfcad.com/tuzhi/shuihu/822319.html
15.保温电水壶有什么优点保温电水壶保温原理→MAIGOO知识2、真空保温的电水壶原理 保温电水壶隔热技术是在电热水壶的三层不锈钢之间,分别加入高真空断热层和空气断热层,通过双重隔热,从而将热量保留在壶内。 保温电水壶在壶壁的外表面包裹着保温层,保温层外侧装有保护层。由于在壶壁外面包裹着保温层,这样可以减少壶壁的散热,减少能量损失达到节能保温的效果,由于保温层外https://m.maigoo.com/goomai/178103.html
16.请问水壶里的水开了鸣叫是什么原理?小编这里建议大家在购买电热水壶的时候首先要注重电热水壶本身的质量。在保证质量的情况下,正确使用电磁炉,保证质量!首页 装修问答 家居产品 请问水壶里的水开了鸣叫是什么原理?相关问答标签 水壶 热水器漏水是什么原因 加湿器的原理是什么 壶里的水垢怎么去除 阳光木门怎么样 楚楚吊顶怎么样https://m.to8to.com/ask/k4817699.html