智能家居控制模拟套件

智能家居控制模拟套件

针对有编程基础的学生开发的一套蓝牙局域网控制模拟套件。版本号【1.0】
下一版本将更新WiFi远程控制系统。
郑州三松信息技术有限公司出品。


电路图如下:

模拟电路图

1、可实现的功能:

1、手机APP蓝牙控制led。
2、手机APP蓝牙控制舵机。
3、手机APP蓝牙控制直流电机。
4、蜂鸣器交互。


2、元件介绍:

元件 数量 教程 备注
arduino_uno主控板 1块 用于程序主控
舵机 1个 可实现固定角度转动
直流空心杯电机 1个 输入高低电平即可工作
蜂鸣器 1个 可实现声音试人机交互
LED灯 1个 用于模拟日光灯操作

3、手机APP介绍:【此版本为安卓版,目前ios版本正在开发中】

三松信息技术有限公司


4、手机APP功能详解:

APP采用简介明了的交互界面,模拟智能家居的局域网控制。

  1. 点按触发。
  2. 语音控制
  3. 语音反馈
  4. 蓝牙检索
  5. 一键连接

5、手机端使用图解:


1、首先打开APP界面如下:

APP开启
等待语音服务启动完毕,即可进入下一步:


2、蓝牙设备配对:
蓝牙配对

  • 打开手机蓝牙
  • 单击界面上的搜索设备按钮
  • APP将自动搜索局域的蓝牙设备
    如下图:

蓝牙配对
找到HC06的蓝牙设备,单击即可配对,秘钥为“1234”
蓝牙配对


3、APP的使用:

配对成功之后就可以单击界面上的按钮进行局域网控制了,具体单片机接受端的代码见代码详解篇。


4、语音遥控的使用:

单击界面中央的麦克风按钮,即可进行语音识别。
这里写图片描述


5、语音识别口令:
【本版本软件内置六款口令进行模拟实验,仅供参考。】

语音关键字 对应蓝牙串口值 功能 备注
开灯 1 对应实现单片机端LED灯开启
关灯 2 对应实现单片机端LED灯关闭
开门 3 对应实现单片机端舵机动作
关门 4 对应实现单片机段舵机动作
开风扇 5 对应实现单片机端电机启动
关风扇 6 对应实现单片机端电机关闭

备注:所有关键字,只需语音中包含即可。
例如:“请开门”、“开开门”、“芝麻开门”等,均可以实现开门的功能。


//******************//郑州三松信息技术有限公司//***********************//
//******************//智能家居系统模拟1.0//******************//
//arduino手册地址:http://www.ocrobot.com/doku.php?id=learning
#include<Servo.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(0, 1);   // RX, TX,定义0端口是接收端,1端口是发射端
Servo myservo; 
char val='/';
int pos=0;
int Bee=2;//定义蜂鸣器对应单片机端口为2
int LED=3; //定义led对应单片机端口为3
int FAN=4; //定义风扇对应单片机端口为4
int DUOJI=5;//定义开门舵机对应单片机端口为5
void setup()  //开机运行的程序代码
{
  pinMode(2,OUTPUT); //设置2号IO口为输出模式
  pinMode(3,OUTPUT); //设置3号IO口为输出模式
  pinMode(4,OUTPUT); //设置4号IO口为输出模式
  digitalWrite(2,HIGH);//设置2号IO口为初始高电平状态
  digitalWrite(4,LOW);//设置4号IO口为初始低电平状态
  Serial.begin(9600);//设置串口波特率为9600
  myservo.attach(5);//设置舵机连接口为5号IO口
} 
void loop()                         // 循环执行的程序代码
{           
    val=Serial.read();              //接收数据
      switch (val){
      case '1': ledopen();  break;
      case '2': ledclose(); break;
      case '3': dooropen(); break;
      case '4': doorclose(); break;
      case '5': fanopen();  break;
      case '6': fanclose(); break;
      //以上数据对应手机APP控制代码
    }
}
////////////////////////////////////////////
void fanopen() // 定义开风扇函数
{
  bee();
  digitalWrite(4,HIGH);
  }
void fanclose() // 定义关风扇函数
{
  bee();
  digitalWrite(4,LOW);
  }
void dooropen() // 定义开门函数
{  
  bee();
for(pos = 0; pos <= 180; pos += 1) // 此处依靠for循环来实现舵机从0度旋转到180度的控制。 
{                                  
   myservo.write(pos);              
   delay(15);                      
} 
  }
void doorclose() //定义关门函数
{
 bee();
   for(pos = 180; pos>=0; pos-=1) // 此处依靠for循环来实现舵机从180度旋转到0度的控制。   
{                                
    myservo.write(pos);           
    delay(15);                       
}   
  }
void ledopen() // 定义LED开启函数
{
  bee();
  digitalWrite(3,HIGH); 
  }
 void ledclose() //定义LED关闭函数
  {
    bee();
    digitalWrite(3,LOW); 
   }
 void bee() //定义蜂鸣器函数
 {
  tone(2,500,500);
  delay(200);
  tone(2,800,500);
  }

猜你喜欢

转载自blog.csdn.net/switch_love_case/article/details/80026922