快捷搜索:  汽车  科技

德尔玛喷香机自动模式怎么设定(Blinker改造德尔玛自动喷香机)

德尔玛喷香机自动模式怎么设定(Blinker改造德尔玛自动喷香机)ESP8266端代码:电路图是网上随便找的,简单的三极管实现的开关电路,我只需要把直流负载换成喷香机的电磁阀即可,R1 R2其实没有也可以进行控制,毕竟电压很小(最好存在)3、改造计划目前产品痛点有两个:1、喷香剂量不可控,2、喷香时间不可控,针对以上两点进行技术改造。德尔玛喷香机内部是一个芳香喷雾罐(压力罐),喷香功能是通过控制喷香机顶部的电磁阀开关来喷射香水的,喷香机底部是德尔玛控制电路部分,顶部是用于控制压力罐开关的电磁阀,电磁阀通电则开启,进行喷香,关闭后停止喷香,底部控制电路较为简单,一个物理的安全开关,主要用于检测喷香机盖是否关闭,关闭后机器通电,主控电路上也有一个物理按键,主要用于喷香机开机以及手动触发喷香。4、改造方案: 1、需要通过小度音响进行控制,例如:小度小度,太臭了,这时喷香机触发自动喷香 2、喷香剂量可控制:每次喷香剂量可手动控制,屋内太臭的情况下可以增加喷香剂量

德尔玛喷香机自动模式怎么设定(Blinker改造德尔玛自动喷香机)(1)

1、背景

产品:德尔玛自动喷香机(小米自动喷香机)改造原因:原厂不够智能,喷香时间不可调且鸡肋,无法通过手机或者智能音响控制

德尔玛喷香机自动模式怎么设定(Blinker改造德尔玛自动喷香机)(2)

2、产品介绍

德尔玛喷香机自动模式怎么设定(Blinker改造德尔玛自动喷香机)(3)

德尔玛喷香机自动模式怎么设定(Blinker改造德尔玛自动喷香机)(4)

从产品简介上看,该喷香机为普通的非智能控制喷香机(主要是价格低),买回来不到两天时间,问题就出现了,这个喷香机不够智能,开机后自动喷香,每隔20分钟喷一次,喷香时间不可进行调整,这就完全不够人性化了,无论何时每隔20分钟喷一次,每隔20分钟滋~~~每隔20分钟滋~~~,夜晚睡觉比较深的人还好,睡眠比较浅的就数滋滋滋~~~,会一定程度上影响睡眠,其实声音倒不是我最不能忍受的部分了,我最不能忍受的部分是,晚上睡觉一般是关了窗户的,喷香之后房子空间相对密闭,香味持久不散,闻了久了会有点头晕,实在无法忍受这种完全不智能,完全不人性化的设备,作为一个数码爱好者 程序员的结合体显然没法接受这种非智能的产品,于是内心就有了一个大胆的想法。

德尔玛喷香机自动模式怎么设定(Blinker改造德尔玛自动喷香机)(5)

3、改造计划

目前产品痛点有两个:1、喷香剂量不可控,2、喷香时间不可控,针对以上两点进行技术改造。德尔玛喷香机内部是一个芳香喷雾罐(压力罐),喷香功能是通过控制喷香机顶部的电磁阀开关来喷射香水的,喷香机底部是德尔玛控制电路部分,顶部是用于控制压力罐开关的电磁阀,电磁阀通电则开启,进行喷香,关闭后停止喷香,底部控制电路较为简单,一个物理的安全开关,主要用于检测喷香机盖是否关闭,关闭后机器通电,主控电路上也有一个物理按键,主要用于喷香机开机以及手动触发喷香。

德尔玛喷香机自动模式怎么设定(Blinker改造德尔玛自动喷香机)(6)

德尔玛喷香机自动模式怎么设定(Blinker改造德尔玛自动喷香机)(7)

德尔玛喷香机自动模式怎么设定(Blinker改造德尔玛自动喷香机)(8)

德尔玛喷香机自动模式怎么设定(Blinker改造德尔玛自动喷香机)(9)

4、改造方案:
1、需要通过小度音响进行控制,例如:小度小度,太臭了,这时喷香机触发自动喷香
2、喷香剂量可控制:每次喷香剂量可手动控制,屋内太臭的情况下可以增加喷香剂量
3、可以APP手动触发喷香,远程不在家也可以操作
4、定时任务触发喷香,可以自由设置喷香时间
经过分析,以上功能blinker均可实现,目前手头零件有:ESP8266开发板一块 S9013三极管一堆,以及各种电阻一大包,初步想法是,通过blinker提供的官方小度demo来进行改造处理:DuerOS_OUTLET 该案例可通过小度音响进行控制,我只需要在开启和关闭代码里面增加对电磁阀的控制即可,电磁阀的控制需要3V 电压(猜的),通过ESP8266 GPIO口是无法驱动的,因此需要想办法处理,因此使用S9013制作一个开关电路通过ESP8266 GPIO口进行控制,从而控制电磁阀,大概电路图如下:

德尔玛喷香机自动模式怎么设定(Blinker改造德尔玛自动喷香机)(10)

电路图是网上随便找的,简单的三极管实现的开关电路,我只需要把直流负载换成喷香机的电磁阀即可,R1 R2其实没有也可以进行控制,毕竟电压很小(最好存在)

ESP8266端代码:

#defineBLINKER_WIFI#defineBLINKER_DUEROS_OUTLET#include<Blinker.h>BlinkerButtonButton1("btn-open");BlinkerNumberNumber1("num-times");BlinkerSliderSlider1(Slider_1); #defineSlider_1"openTime" charauth[]="d370eb4b5934";charssid[]="PDCN";charpswd[]="YW020230"; intcounter=0;intopen_time=200;boolostate=false; voidduerPowerState(constString&state){BLINKER_LOG("need set power state: " state); if(state==BLINKER_CMD_ON){digitalWrite(LED_BUILTIN LOW);digitalWrite(5 1);delay(open_time);// wait for a seconddigitalWrite(5 0);counter ;Number1.print(counter);BlinkerDuerOS.powerState("on");BlinkerDuerOS.print();oState=true;}elseif(state==BLINKER_CMD_OFF){digitalWrite(LED_BUILTIN HIGH);digitalWrite(5 1);delay(open_time);// wait for a seconddigitalWrite(5 0);counter ;Number1.print(counter);BlinkerDuerOS.powerState("off");BlinkerDuerOS.print(); oState=false;}} voidduerQuery(int32_tqueryCode){BLINKER_LOG("DuerOS Query codes: " queryCode); switch(queryCode){caseBLINKER_CMD_QUERY_TIME_NUMBER:BLINKER_LOG("DuerOS Query time");BlinkerDuerOS.time(millis());BlinkerDuerOS.print();break;default:BlinkerDuerOS.time(millis());BlinkerDuerOS.print();break;}} voiddataRead(constString&data){BLINKER_LOG("Blinker readString: " data); Blinker.vibrate(); uint32_tBlinkerTime=millis(); Blinker.print("millis" BlinkerTime);}voidbutton1_callback(constString&state){BLINKER_LOG("get button state: " state);digitalWrite(5 1);delay(open_time);// wait for a seconddigitalWrite(5 0);counter ;Number1.print(counter);}voidslider1_callback(int32_tvalue){open_time=value*100;BLINKER_LOG("get slider value: " value*100);}voidsetup(){Serial.begin(115200);BLINKER_DEBUG.stream(Serial); pinMode(LED_BUILTIN OUTPUT);digitalWrite(LED_BUILTIN LOW);pinMode(5 OUTPUT);digitalWrite(5 1);delay(100);// wait for a seconddigitalWrite(5 0);Blinker.begin(auth ssid pswd);Blinker.attachData(dataRead);Button1.attach(button1_callback);Slider1.attach(slider1_callback); BlinkerDuerOS.attachPowerState(duerPowerState);BlinkerDuerOS.attachQuery(duerQuery);} voidloop(){Blinker.run();}


代码是第一次写,请指出我的不足,目前能实现我的改造计划(够用)机器在开启时,会进行一次短时间的喷香(开机自检,其实没啥乱用,就是要喷一下,豪横)。
我在blinker的APP里面采用了按钮进行控制,同时对喷香次数进行计数,起到一个简单的监控作用(本地变量),我记得有数据库操作的,但是一切从简,就不弄数据库啥的了,接下来上一下APP图:

德尔玛喷香机自动模式怎么设定(Blinker改造德尔玛自动喷香机)(11)

APP 界面也是那种无脑拖拽即可的,布局上我已导出需要的小伙伴直接复制后导入即可:

{¨config¨{¨headerColor¨¨transparent¨¨headerStyle¨¨light¨¨background¨{¨img¨¨assets/img/bg/1.jpg¨}}¨dashboard¨|{¨type¨¨btn¨¨ico¨¨iconfont icon-fan¨¨mode¨É¨t0¨¨喷香¨¨t1¨¨文本2¨¨bg¨Ì¨cols¨Í¨rows¨Í¨key¨¨btn-open¨´x´Ë´y´Ï¨speech¨|÷¨lstyle¨Ë¨clr¨¨#00A90C¨}{ß9¨num¨ßE¨本次开机喷香次数¨ßBßCßP¨#389BEE¨¨min¨É¨max¨§¨uni¨´次´ßIÉßJËßKËßL¨num-times¨´x´É´y´ÌßN|÷ßOÉ}{ß9¨tex¨ßE¨德尔玛¨ßG¨自动喷香机¨ßIÉßBßCßJËßKÊßL¨德尔玛自动喷香机¨´x´É´y´ÉßN|÷ßOÉßP¨#595959¨}{ß9¨deb¨ßDÉßIÉßJÑßKÌßL¨debug¨´x´É´y´¤C}{ß9¨ran¨ßE¨喷射时间¨ßPßcßV¤KßUÊßIÉßJÏßKËßL¨openTime¨´x´Ë´y´ÌßN|÷ßOÊ}÷}

德尔玛喷香机自动模式怎么设定(Blinker改造德尔玛自动喷香机)(12)

5、总结

喷香时间是通过滑块的形式进行控制,最高设置到2秒(时间可调),这样就可以自己控制喷香的剂量,可长可短,也可以利用binker提供的定时任务触发喷香按钮,达到定时喷香功能,目前由于时间问题,暂时未对喷香机物理开关按键进行改造,理论上原理是一样的,只需要检测ESP8266上某一个GPIO口的状态,从而控制电磁阀开关即可。
感谢大家的观看,以后还有什么好的想法我会再进行分享的,谢谢大家,也希望大家能指出我代码逻辑中的不足(东拼西凑写出来的,别嫌弃)

猜您喜欢: