利用机智云物联网平台实现老式风扇改造

利用机智云物联网平台实现老式风扇改造,第1张

如今相当一部分的家庭依然使用着一些老式家电,扔掉浪费,继续使用又有点土不拉叽的。利用机智云物联网平台可以轻而易举地实现一些智能功能,旧瓶装新酒,让老式电气发出现代异彩,感觉有点像用古代的缶装上现代的人头马XO,把风筝搞成隐形飞行器一样,极具科技感酷劲。为了更利于老式电气的改装,通过手机-gokit-无线模块-风扇等一系列硬件的中继接力,完成对一台老式风扇的调速过程。

 一、硬件准备  

利用机智云物联网平台实现老式风扇改造,56de3cfc-0d40-11ed-ba43-dac502259ad0.png,第2张

 

电路

见原文地址:https://club.gizwits.com/thread-7992-1-1.html

利用机智云物联网平台实现老式风扇改造,56f64edc-0d40-11ed-ba43-dac502259ad0.png,第3张

 

 二、项目完成后的图片  

1)Gokit+无线发射模块

利用机智云物联网平台实现老式风扇改造,573481a2-0d40-11ed-ba43-dac502259ad0.png,第4张


2)接收板
4路功率驱动模块+无线接收模块+电源模块+继电器模块

利用机智云物联网平台实现老式风扇改造,576b0a74-0d40-11ed-ba43-dac502259ad0.png,第5张

 

3)接收板通过一个插座盒安装到老式风扇

利用机智云物联网平台实现老式风扇改造,57b7fcc6-0d40-11ed-ba43-dac502259ad0.png,第6张

 

 软件开发环境  

机智云开发者中心,使用其中的MCU自动代码生成、APP代码自动生成等服务,方便进行移植和功能开发。

 四 代码说明  


通过自动生成的代码+机智云宠物屋的云端部分+添加部分逻辑和自定义函数,就可以完成项目,可靠地进行控制。下面介绍一下逻辑和自定义函数部分的代码:
1)修改原来宠物屋的WiFi配置状态显示代码

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
void wifiStatusHandle(){  if(myGizwits.wifiHasBeenSet(WIFI_SOFTAP))  {    Serial.println(F("WIFI_SOFTAP!"));    ControlFan_1();        //Soft AP模式,向无线接收模块发送红灯点亮和启动第一档风量数据  }
  if(myGizwits.wifiHasBeenSet(WIFI_AIRLINK))  {    Serial.println(F("WIFI_AIRLINK!"));        ControlFan_2();        //AirLink模式,向无线接收模块发送蓝灯点亮和启动第二档风量数据  }
  if(myGizwits.wifiHasBeenSet(WIFI_STATION))  {    Serial.println(F("WIFI_STATION!"));  }
  if(myGizwits.wifiHasBeenSet(WIFI_CON_ROUTER))  {    Serial.println(F("WIFI_CON_ROUTER!"));        ControlRst();//配置成功后,关闭远程设备。  }  }

 

void wifiStatusHandle(),是宠物屋代码里的函数,用于监视Gokit开发板上的Key2状态,也就是手机与硬件设备配置时,自动或手动配置WiFi连接的按钮短按或长按的状态,只不过经过修改以上代码,该设备的Gokit开发板上不会有任何表示,取而代之的是,接收板收到数据后,RGBLDE灯点亮的同时,会以接收到的相应风量指令启动风扇,也就是远程配置。

2)添加逻辑控制代码

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
void loop() {    bool varR_Switch = 0;//系统根据数据点自动生成的开关变量,以下相同。  bool varR_Fan_1 = 0;//风量一档  bool varR_Fan_2 = 0;//风量二挡  bool varR_Fan_3 = 0;//风量三档
  KEY_Handle();//key handle , network configure  wifiStatusHandle();//WIFI Status Handle  //手机发过来的开关事件  if(myGizwits.hasBeenSet(EVENT_Switch))  {    myGizwits.read(EVENT_Switch,&varR_Switch);        if(varR_Switch == 1)//当开关为开状态时        {        ControlFan_1();//默认风量一档开启        }        else{        ControlRst();//当开关为关闭时,风扇停止。        }  }  //手机发过来的第一档风量事件    if(myGizwits.hasBeenSet(EVENT_Fan_1))  {    myGizwits.read(EVENT_Fan_1,&varR_Fan_1);//Address for storing data    if(varR_Fan_1 == 1)//接收到云端一档时        {        ControlFan_1();//风量一档开启        }        else{        ControlRst();//当开关为关闭时,风扇停止。        }  }  //手机发过来的第二档风量事件    if(myGizwits.hasBeenSet(EVENT_Fan_2))  {    myGizwits.read(EVENT_Fan_2,&varR_Fan_2);//Address for storing data    if(varR_Fan_2 == 1)//接收到云端二档时        {        ControlFan_2();//风量二档开启        }        else{        ControlRst();//当开关为关闭时,风扇停止。        }  }  //手机发过来的第三档风量事件    if(myGizwits.hasBeenSet(EVENT_Fan_3))  {    myGizwits.read(EVENT_Fan_3,&varR_Fan_3);//Address for storing data    if(varR_Fan_3 == 1)//接收到云端三档时        {        ControlFan_3();//风量三档开启        }        else{        ControlRst();//当开关为关闭时,风扇停止。        }  }
  myGizwits.process();}//关闭设备函数void ControlRst(){   val = 0;   for(int i = 9;i <= 11;i++){  pinMode(i,OUTPUT);  digitalWrite(i,HIGH);   }}//风量一档控制函数void ControlFan_1(){    ControlRst();//启动设备前,先关闭其他档位的风量        digitalWrite(Pin9,LOW);//向接收端无线模块发送开关启动信号}//风量二档控制函数void ControlFan_2(){        ControlRst();//启动设备前,先关闭其他档位的风量        digitalWrite(Pin10,LOW);//向接收端无线模块发送开关启动信号}//风量三档控制函数void ControlFan_3(){        ControlRst();//启动设备前,先关闭其他档位的风量        digitalWrite(Pin11,LOW);//向接收端无线模块发送开关启动信号}

 

核心功能就是利用三个void ControlFan()风扇控制函数,依次启动ardiuno的9,10,11三个引脚低电位,从而控制连接在三个脚上面的无线发射模块三路开关信号发送出去。当风扇上的无线接收模块收到信号后,会立刻触发对应的继电器闭合,从而启动风扇运行和RGBLED灯点亮。
关闭设备函数void ControlRst(),其实质就是复位三个ardiuno引脚,从而触发接收模块动作,关闭风扇,不管风扇运行在任何风量档位上,都可以立刻关闭。

 

 五 关于模块使用说明,完整代码,测试用APK  

1)本文提到的模块,电路图,完整代码等请参照附件的资料

2)本文使用的手机APK是机智云提供的标准测试调试软件,大家请上云端下载就可以了。

配置前后的图标和界面如下图所示:

利用机智云物联网平台实现老式风扇改造,581a8918-0d40-11ed-ba43-dac502259ad0.png,第7张

  审核编辑:汤梓红

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2711376.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存