开发者案例:老a式风扇改造记

如今相当一部分的家庭依然使用着一些老式家电,扔掉浪费,继续使用又有点土不拉叽的。利用机智云物联网平台可以轻而易举地实现一些智能功能,旧瓶装新酒,让老式电气发出现代异彩,感觉有点像用古代的缶装上现代的人头马xo,把风筝搞成隐形飞行器一样,极具科技感酷劲。为了更利于老式电气的改装,通过手机-gokit-无线模块-风扇等一系列硬件的中继接力,完成对一台老式风扇的调速过程。
一、硬件准备
电路图
见原文地址:https://club.gizwits.com/thread-7992-1-1.html
二、项目完成后的图片
1)gokit+无线发射模块
2)接收板
4路功率驱动模块+无线接收模块+电源模块+继电器模块
3)接收板通过一个插座盒安装到老式风扇
三 软件开发环境
机智云开发者中心,使用其中的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是机智云提供的标准测试调试软件,大家请上云端下载就可以了。
配置前后的图标和界面如下图所示:
原文名称:基于arduino uno r3的智能调速风扇
https://club.gizwits.com/thread-7992-1-1.html
方案推荐
机智云电风扇智能化解决方案,免开发接入,赋能企业快速智能化转型。该方案通过整合蓝牙soc免开发方案、pcba公版方案、微信小程序/app、设备管理后台及第三方语音接入等软硬件服务,低成本、高效率实现产品智能化。并且,方案适用于落地扇、塔扇、循环扇、吊扇等多种品类风扇设备。

通过魅族PRO7和魅蓝Note6,魅族终于知道魅友们要的魅族MX7该怎么做了
如何给滑板加装led灯
隧道无线通信覆盖与隧道调频广播覆盖方案
云计算服务的特点
还记得说要引领未来手机的华为荣耀Magic么现在怎么样了?
开发者案例:老a式风扇改造记
安谋科技“周易”NPU软件开源项目上线
无线智能水表阀控盒的原理及设计
如何正确选择内存条
2019年芯片巨头SK海力士运营利润狂跌87%
下一代先进电池市场到2020年前将大幅增长
射频电感器如何选型_射频电感器的五大选型参数介绍
什么是SMT PCB
双速电机工作原理及接线方法
海洋所开发可独立供能的摩擦纳米发电机介绍
人工智能兴起于什么时候
基于S3C2440处理器Linux平台的物流配送系统设计
国产化主板助力智能自助终端,实现提高效率,降低成本
聊一聊智能家居领域的机遇和挑战
中国发展芯片产业面临巨大困难:该如何破局