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

二 硬件准备

序号
名称
规格/型号
数量
1
老式风扇
三档手动调速
一台
2
机智云开发板
Gokit2
一套
3
无线发射模块
L24YK-TXH
一个
4
4路功率驱动模块
TB6612FNG
一个
5
无线接收模块
L24YK-RX4
一个
6
电源模块
AC220V/DC3.3V
一个
7
继电器模块
4路光耦
一个
8
电阻,电容,LED灯等
200Ω,1K,RGB共阴极LED
若干

项目完成后的图片
1)Gokit+无线发射模块
 
2)接收板
4路功率驱动模块+无线接收模块+电源模块+继电器模块

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

三 软件开发环境

  • 机智云账号一个

用于使用机智云的物联网云服务和开发工具,如自动代码生成等,这方面的教程机智云社区的前辈们已经介绍的非常详细,在此就不再啰嗦了。

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

  1. void wifiStatusHandle()
  2. {
  3. if(myGizwits.wifiHasBeenSet(WIFI_SOFTAP))
  4. {
  5. Serial.println(F("WIFI_SOFTAP!"));
  6. ControlFan_1();        //Soft AP模式,向无线接收模块发送红灯点亮和启动第一档风量数据
  7. }
  8. if(myGizwits.wifiHasBeenSet(WIFI_AIRLINK))
  9. {
  10. Serial.println(F("WIFI_AIRLINK!"));
  11. ControlFan_2();        //AirLink模式,向无线接收模块发送蓝灯点亮和启动第二档风量数据
  12. }
  13. if(myGizwits.wifiHasBeenSet(WIFI_STATION))
  14. {
  15. Serial.println(F("WIFI_STATION!"));
  16. }
  17. if(myGizwits.wifiHasBeenSet(WIFI_CON_ROUTER))
  18. {
  19. Serial.println(F("WIFI_CON_ROUTER!"));
  20. ControlRst();//配置成功后,关闭远程设备。
  21. }
  22. }

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

2)添加逻辑控制代码

  1. void loop() {
  2. bool varR_Switch = 0;//系统根据数据点自动生成的开关变量,以下相同。
  3. bool varR_Fan_1 = 0;//风量一档
  4. bool varR_Fan_2 = 0;//风量二挡
  5. bool varR_Fan_3 = 0;//风量三档
  6. KEY_Handle();//key handle , network configure
  7. wifiStatusHandle();//WIFI Status Handle
  8. //手机发过来的开关事件
  9. if(myGizwits.hasBeenSet(EVENT_Switch))
  10. {
  11. myGizwits.read(EVENT_Switch,&varR_Switch);
  12. if(varR_Switch == 1)//当开关为开状态时
  13. {
  14. ControlFan_1();//默认风量一档开启
  15. }
  16. else{
  17. ControlRst();//当开关为关闭时,风扇停止。
  18. }
  19. }
  20. //手机发过来的第一档风量事件
  21. if(myGizwits.hasBeenSet(EVENT_Fan_1))
  22. {
  23. myGizwits.read(EVENT_Fan_1,&varR_Fan_1);//Address for storing data
  24. if(varR_Fan_1 == 1)//接收到云端一档时
  25. {
  26. ControlFan_1();//风量一档开启
  27. }
  28. else{
  29. ControlRst();//当开关为关闭时,风扇停止。
  30. }
  31. }
  32. //手机发过来的第二档风量事件
  33. if(myGizwits.hasBeenSet(EVENT_Fan_2))
  34. {
  35. myGizwits.read(EVENT_Fan_2,&varR_Fan_2);//Address for storing data
  36. if(varR_Fan_2 == 1)//接收到云端二档时
  37. {
  38. ControlFan_2();//风量二档开启
  39. }
  40. else{
  41. ControlRst();//当开关为关闭时,风扇停止。
  42. }
  43. }
  44. //手机发过来的第三档风量事件
  45. if(myGizwits.hasBeenSet(EVENT_Fan_3))
  46. {
  47. myGizwits.read(EVENT_Fan_3,&varR_Fan_3);//Address for storing data
  48. if(varR_Fan_3 == 1)//接收到云端三档时
  49. {
  50. ControlFan_3();//风量三档开启
  51. }
  52. else{
  53. ControlRst();//当开关为关闭时,风扇停止。
  54. }
  55. }
  56. myGizwits.process();
  57. }
  58. //关闭设备函数
  59. void ControlRst(){
  60. val = 0;
  61. for(int i = 9;i <= 11;i++){
  62. pinMode(i,OUTPUT);
  63. digitalWrite(i,HIGH);
  64. }
  65. }
  66. //风量一档控制函数
  67. void ControlFan_1(){
  68. ControlRst();//启动设备前,先关闭其他档位的风量
  69. digitalWrite(Pin9,LOW);//向接收端无线模块发送开关启动信号
  70. }
  71. //风量二档控制函数
  72. void ControlFan_2(){
  73. ControlRst();//启动设备前,先关闭其他档位的风量
  74. digitalWrite(Pin10,LOW);//向接收端无线模块发送开关启动信号
  75. }
  76. //风量三档控制函数
  77. void ControlFan_3(){
  78. ControlRst();//启动设备前,先关闭其他档位的风量
  79. digitalWrite(Pin11,LOW);//向接收端无线模块发送开关启动信号
  80. }

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

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

  • 1)本文提到的模块,电路图,完整代码等请参照附件的资料
  • 2)本文使用的手机APK是机智云提供的标准测试调试软件,大家请上云端下载就可以了。

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

源码下载地址:http://club.gizwits.com/thread-7992-1-1.html

转载于:https://www.cnblogs.com/dapangsen/p/7929052.html

基于ArduinoUNOR3的智能调速风扇相关推荐

  1. 基于Arduino的自动调速风扇

    好久没有更新了,家里实在太乱,最近趁着618活动,买了一堆收纳抽屉和置物架,把家里彻底收拾了一下,然后客厅就成了这个奇葩样子,注孤生的节奏了. 话不多说,夏天到了,天气逐渐热起来,风扇成了必不可少的消 ...

  2. 【电路】4线智能调速风扇

    主板4针CPU风扇针脚定义如下: 说明: GROUND:地 PEOWER:电源,一般是12V. SENSE:传感器信号针 CONTROL:风扇转速控制针,通过该针的电压控制风扇转速. PC机内4线风扇 ...

  3. 单片机毕设 人体定位智能调速风扇系统

    文章目录 0 前言 1 主要功能 2 硬件设计 3 核心软件设计 4 实现效果 5 最后 0 前言

  4. 物联网毕设 人体定位智能调速风扇系统

    文章目录 0 前言 1 主要功能 2 硬件设计 3 核心软件设计 4 实现效果 5 最后 0 前言

  5. 嵌入式毕设分享 人体定位智能调速风扇系统

    文章目录 0 前言 1 主要功能 2 硬件设计 3 核心软件设计 4 实现效果 5 最后 0 前言

  6. stm32毕设分享 人体定位智能调速风扇系统

    文章目录 0 前言 1 主要功能 2 硬件设计 3 核心软件设计 4 实现效果 5 最后 0 前言

  7. 51单片机PWM调速风扇转速显示转速设置

    实践制作DIY- GC0029-PWM调速风扇 一.功能说明: 基于51单片机设计-PWM调速风扇 二.功能介绍: STC89C52单片机(AT89C52)+5V4线PWM风扇+LCD1602显示器+ ...

  8. 【毕业设计】基于超声波与红外的自动调速风扇系统(代码开源) -物联网 嵌入式 stm32

    文章目录 1 简介 1 设计概要 2 系统设计 2.1 系统供电问题 2.2 自动/手动模式的切换 2.3 PWM信号的产生 2.4 单片机内部资源的分配 三.硬件搭建 3.1 单片机最小系统 3.2 ...

  9. 毕业设计 超声波红外自动调速风扇系统

    文章目录 1 简介 1 设计概要 2 系统设计 2.1 系统供电问题 2.2 自动/手动模式的切换 2.3 PWM信号的产生 2.4 单片机内部资源的分配 三.硬件搭建 3.1 单片机最小系统 3.2 ...

最新文章

  1. SQL Server,Could not obtain exclusive lock on database 'model'
  2. 交换基本数据类型的方法swap,并影响到主方法
  3. iis html执行脚本,HTML_IIS管理脚本之adsutil.vbs的使用说明,Adsutil.vbs是什么?它是Windows 200 - phpStudy...
  4. oracle 新增加控制文件,Oracle增加控制文件副本
  5. 枚举一个集合的所有子集
  6. [C#.Tips]也来谈谈接口欺诈
  7. 使用二分查询数组中的某一个元素,简单示例,详细注解
  8. 安装linux时找不到硬盘,关于安装LINUX时找不到硬盘问题解决
  9. java调用 火眼臻睛,火眼臻睛车牌识别SDK评测
  10. c语言求最小公倍数——三种方法
  11. css:text-decoration给文字增加上划线、删除线、下划线
  12. [c/c++]trivial/POD类型和standard layout
  13. java18天map和线程
  14. 读书笔记:《产品经理修炼之道》读后感
  15. 前度面试总结,被问的概率极大
  16. 行程卡是怎么记录行程的?
  17. linux ipp,IPP 文件扩展名: 它是什么以及如何打开它?
  18. 视频的帧率和分辨率以及码率的关系
  19. 辽宁师范大学计算机科学技术与,王相海 - 辽宁师范大学 - 计算机与信息技术学院...
  20. 细心的观察,耐心的倾听

热门文章

  1. Qt解决dib图片无法正常显示
  2. 【机器学习】编程入门
  3. 程序员有哪些不可或缺的效率神器?
  4. sping cloud 搭建 微服务
  5. bat批量处理所有子文件夹下的图片,将jpg转换成png
  6. 高性能的Ajax应用-Julien Lecomte
  7. 医院收费小票打印简易版
  8. zoj 2853 Evolution
  9. python计算工资个税
  10. NVIDIA显卡硬编码调研