Python
简化上回的代码
上回做的一个模拟小米新风机的逻辑,因为是一边摸规律一边写的,所以有少许的冗余,所以今天对这个代码进行简化。
小米新风机逻辑猜想
我可以通过小米智能家居APP控制新风机1至7档风速,那么不考虑其产品的隐藏风挡,我认为其有1至7档风。然后参考功能书介绍,其中有一个关于CO2,即二氧化碳浓度的参数,上面说,550以下为优、500至800为良、800至1000为差、1000以上为严重污染。
- 优 550 以下
- 良 550 至 800
- 良 800 至 1000
- 良 1000 以上
摸索时我发现风挡变化的不是即时的,例如上升的时候是以600(大概)为边界,但是下降的时候就是500为边界,等数据出来之后,再拟合曲线。
控制逻辑模仿
下面为相关控制的模仿,也是上次软件逻辑的简化
def Mod_611_CO2_deal(coo,coo_bak):
if coo >= coo_bak:
if coo >= 1000:
fan = 6
elif coo >= 800:
fan = 4
elif coo >=550:
fan = 3
else:
fan = 2
else:
if coo < 450:
fan = 2
elif coo < 700:
fan = 3
elif coo < 900:
fan= 4
else:
fan = 6
print(coo,'\t',fan)
circle = 1
coo_bak = 0
while circle == 1:
print('input CO2')
coo = int(input())
Mod_611_CO2_deal(coo,coo_bak)
coo_bak = coo
实现过程
发现有些冗长,可以再优化一下,不需要这么多。还有延时我没试出来,大概有3到5分钟变化一下的样子,懒得试了,我也就是好奇一下,又不是想自己弄一个出来。
简化再简化
大概了解他的原理了,就是空气差就开高点风机,多吹点经过滤网换进来的新空气,空气好点,风机可以慢点,就不需要换气换这么快。
规律图
至于延迟大概就是一种舒适缓冲,我也不知道怎么表达,反正会给人一种很绅士的感觉,这样空气质量不会骤变。
例如,如果两个区间的边界时500,比500高就上升,比500低就下降,那样就很僵硬了。而改成这样>600上升,<400下降,这样的变化就会舒缓很多。
突然觉得这个功能可以转到游戏上。
比如即时战略游戏,对军队进行指挥的时候,就应该有一点延时,直到指令传达完70%的队伍成员,才能执行。
这样更有一种【拟真感】