ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

珍惜生命,远离毒气,就用智能开窗,你值得拥有!

2021-10-25 11:04:22  阅读:196  来源: 互联网

标签:毒气 data devid 甲醛 window 开窗 珍惜 type


前言

​ 周末闲着无聊,准备搞一个家居安全应用,前面我已经弄了一个自动开窗器和甲醛检测的设备,今天准备弄一个气体与开窗组合的场景应用,甲醛中毒、煤气中毒等案例经常能在日常生活中遇到,而本人也是一个比较爱惜生命(给大家免费翻译一下:就是怕死)的人,所以就打算搞一个在家里自己用,毕竟自己动手,丰衣足食 (~ ̄▽ ̄)~ 。
在这里插入图片描述

设备讲解

这次用到的设备就是之前介绍过的俩个设备:智能开窗甲醛检测设备

1、智能开窗
在这里插入图片描述
2、甲醛检测设备
在这里插入图片描述

应用讲解

在这里插入图片描述

上面就是智能开窗应用的界面了,很漂亮对不对!!!要不要给我扣波666!
在这里插入图片描述
可以看到上面应用中有一个添加设备的按钮,点击按钮可以添加气体设备和开窗设备,应用大致逻辑就是手动滑动窗户会进行开关窗。与此同时,气体超过危险值也会进行自动开窗。目前也就只加了甲醛检测设备,后面的升级版可能会添加更多的气体检测设备,到时候也给大家看看最后的成品。

代码分析

整个应用项目前端用的vue框架,后端用的是javascript,主要依赖于Edgeros上的JSRE运行时;
又到了我给你们长见识的时候了,话不多说,贴!!!┗( ▔, ▔ )┛

	devManager.generateController(devid).then((controller) => {
			const type = getDeviceType(dev);
			if (type && type !== 'window') {
				// 气体
				clearInterval(times[devid]);
				times[devid] = undefined;
				times[devid] = setInterval(() => {
					devManager.sendDeviceInfo(devid, { method: 'get', obj: [type] }).catch(() => {
						console.error(`Failed to get ${type} real-time value.`);
					});
				}, 3000);
			}
			controller.on('message', ({ data }) => {
				// 开窗器需要记录当前位置	
				if (type === 'window') {
					socketIO.emit('message', { devid, data: data.window_percent })
					gas_window_scene.devs = gas_window_scene.devs.map((item) => {
						if (item.devid === devid) {
							return {
								...item,
								settings: {
									window_percent: data['window_percent']
								}
							}
						}
						return item
					})
					updateSceneDB();
				} else {
					socketIO.emit('message', { devid, data: data[type] }); // 气体
					if (GAS_DEFAULT_ALARM_VALUES[type] < data[type]) {
						// 气体超标 找到窗户设备
						const window_dev = gas_window_scene.devs.find((item) => {
							const d = devManager.devMap.get(item.devid);
							if (d && getDeviceType(d) === 'window') {
								return true
							}
							return false
						});
						if (window_dev) {
							devManager.sendDeviceInfo(window_dev.devid, { method: 'set', window: 'right' }).catch(() => {
								console.error(`Failed to open window value.`);
							});
						}
					}
				}
			});
			resolve(controller);
		}).catch(() => {
			reject(`no permission.`);
			emitError(`应用缺少控制${dev.alias}的权限!`)
		})

上面后端代码主要就是用到了之前基于 device 模块封装的设备管理模块来管理终端设备,在甲醛气体检测值超过危险值的时候自动发送命令打开窗户,从而达到一个排除毒气的效果,我这边的话将甲醛危险值设置到了0.02,方便平常时候测试。最终效果还是不错的。前端代码就不贴了,都是基础操作,主要是怕闪瞎各位老板的慧眼。

场景演示

1、手动滑动控制窗户

请添加图片描述

2、甲醛超标开窗

emmm...
纠结了很久,还是决定告诉大家一个沉重的消息!
我这边环境空气太好了,测不了甲醛!不好意思,让大家失望了,hhh(* ̄︶ ̄)
在这里插入图片描述

总结

做了这么多场景,感觉今天这个应用场景在生活中还是相对很有用的,后面的话自己也会将应用和设备弄得更完善一点,打算在自己家里也来装一套。家里需要经常通风或者用燃气的老铁们可以自己搞一套,目前只支持了甲醛检测设备,后面会加上燃气检测和天气检测处理。最后送大家一句话,珍惜生命,远离毒气,就用智能开窗,你值得拥有!!!
差点忘了加项目地址了,今天就放在最后好了,测试项目地址,随便伸手吧,别客气,绅士们!(就问你们不点赞好意思不!)
在这里插入图片描述

标签:毒气,data,devid,甲醛,window,开窗,珍惜,type
来源: https://www.cnblogs.com/inspiration-desktop/p/15457494.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有