智能家居制作之WiFi遥控家中设备

2021-03-18 15:21:40 浏览数 (1)

介绍

现如今,智能家居行业发展迅速,得益于物联网和人工智能技术的迭代发展,各类智能家居设备已不知不觉的走进我们的生活中。

智能家居售价不菲,那么我们是否可以通过很少的时间,自己进行制作呢?答案当然是可以的。

如今层出不穷的物联网云平台,如:华为云、腾讯云、阿里云平台。令开发智能家居变得更加容易并且迅速。

今天分享制作的一款遥控控制屋中灯光、风扇(排风机)、加湿器(消防喷头)的产品,是依托于机智云平台制作的设计,旨在带领物联网及智能家居行业初学者制作一款自己的智能设备。

流程

创建产品

  1. 创建新产品

填写相关类型,可以根据自己的需求随便填。

  1. 添加数据点

这里同样是按照自己的需求进行设定数据点,就相当于每一个你要控制或者使用的元素。 3. 生成MCU代码

下载你生成的代码压缩包。 4. 整合代码 将你Gizwits中除了examples以外的所有文件复制,分别粘贴进examples中的两个文件夹里。

WiFi模块联网

因为是MCU模式,我们将WiFi模块只当作一个模块,他自己就是一个独立的开发板,所以我们可以先通过程序,令WiFi模块联网,之后就不需要再次进行联网了,为后续智能控制提供便利。 5. 更改头文件 将上面networkConfig.ino中的文件的#include <Gizwits.h> 更改成#include “Gizwits.h”

  1. 注释掉串口打印代码,以下截图一部分。
  1. 上传至开发板 选择对应Arduino开发板类型,端口号,进行上传。

8.进行配网 打开在官网上下载的APP长按KEY2,进入配置模式。

  1. 查看配置成功的APP页面 当图标亮了的时候,就代表已经配置成功。

库文件及头文件准备

因为我们这里主要是使用RGB灯的不同颜色代替了是进行LED灯亮还是喷头工作,实际上实现这些功能更加简单,只需要定义相关引脚后,输出高电平或者低电平就可实现相应功能。但我们这里为了使实验现象更加明显,利用RGB不同颜色来表示LED灯和加湿器,在风扇转动部分利用纯粹的供电,这样更有利于理解。

  1. 更改头文件 将工程文件中simpleTry.ino中的文件的#include <Gizwits.h> 更改成#include “Gizwits.h”
  2. 移植库文件 我们直接移植RGB有关的库,可以很大的简化我们的开发,大家如果想要了解RGB灯的开发,也可以看一下库文件。 我们将库文件放在:文档–Arduino–libraries中即可 为了节省大家的时间,我将这个库文件放在这里,大家自行下载。

功能实现

  1. 我门需要引用一些库文件,并且添加RGB LED控制函数
代码语言:javascript复制
#include "Gizwits.h"
#include <Wire.h>
#include <SoftwareSerial.h>
#include <ChainableLED.h>
ChainableLED leds(A5, A4, 1);
void LED_RGB_Control(byte red, byte green, byte blue)
{
  leds.setColorRGB(0, red, green, blue);
  }

2. 定义管脚类型

代码语言:javascript复制
  pinMode(5,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(SDA,OUTPUT);
  pinMode(SCL,OUTPUT); 
  digitalWrite(5,LOW);
  digitalWrite(4,LOW);
  1. 实现功能 通过获取手机APP发送的指令,进行不同的操作,最终实现手机控制风扇转动、RGB LED灯亮灭不同颜色。
代码语言:javascript复制
bool varR_LED = 0;
  if(myGizwits.hasBeenSet(EVENT_LED))
  {
    myGizwits.read(EVENT_LED,&varR_LED);
    if(varR_LED==1)
    {
      LED_RGB_Control(0,0,100);
      }
      else
    LED_RGB_Control(0,0,0);
  }
  bool varR_FengShan = 0;
  if(myGizwits.hasBeenSet(EVENT_FengShan))
  {
    myGizwits.read(EVENT_FengShan,&varR_FengShan);
     if(varR_FengShan==1)
    {
      digitalWrite(5,HIGH);
      }
      else
      digitalWrite(5,LOW);
  }
  bool varR_PenTou = 0;
  if(myGizwits.hasBeenSet(EVENT_PenTou))
  {
    myGizwits.read(EVENT_PenTou,&varR_PenTou);//Address for storing data
  if(varR_PenTou==1)
    {
      LED_RGB_Control(0,100,0);
      }
      else
    LED_RGB_Control(0,0,0);
  }
  myGizwits.process();

回复:WiFi遥控家中设备,供大家下载.

0 人点赞