开源智能插座/zh

来自Microduino Wikipedia
Hustshenyang@126.com讨论 | 贡献2016年1月5日 (二) 09:10的版本 (Created page with "{| style="width: 800px;" |- | ==概述== *项目名称:Microduino开源智能插座 *目的:手机控制插座通断 *难度:低 *耗时:2小时 *制作者: *简介:...")
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

概述

  • 项目名称:Microduino开源智能插座
  • 目的:手机控制插座通断
  • 难度:低
  • 耗时:2小时
  • 制作者:
  • 简介:

智能插座主要由控制模块和电路部分组成,用户可以使用手机连接蓝牙模块(Microduino-BT/zh)并发送命令、接收电路状态,核心控制模块(Microduino-Core/zh)对数据进行分析之后控制继电器对电路进行控制。

材料清单

  • Microduino设备
模块 数量 功能
Microduino-Core/zh 1 核心板
Microduino-USBTTL/zh 1 下载程序
Microduino-BT/zh 1 蓝牙通信
  • 其他设备
模块 数量 功能
底壳+电路板 1 核心板
外壳 1 下载程序
长螺丝 1 固定外壳与底壳
短螺丝 1 固定底壳与电路板
M3螺丝刀 1 拧螺丝

实验原理

  • 电路控制原理

智能插座的电源控制分为两部分,分别是电压转换和继电器控制两部分。 首先介绍一下电压转换部分,由于家庭中的电源多为220伏特的交流电,而Microduino-Core工作在5伏特的直流电压环境下,这部分的功能就如同一个变压器,像手机的充电插头一样转换了电压。 另一部分是继电器控制,继电器是当输入电压的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。由于Microduino-Core核心控制引脚输出的电压很小,不能直接给电器供电,因此需要通过控制继电器从而间接控制家庭电源。

  • 无线通信原理

本套件使用了蓝牙无线通信模块Microduino-BT,由于Microduino的蓝牙模块很好的屏蔽了底层的协议,所以关于蓝牙协议这里不再赘述,使用它只需确认蓝牙串口的接法,默认是D2,D3。,给出一张蓝牙通讯所使用的串口图,所有的串口连接方法都涵盖在该图中:

Microduino-BT-2Big1.jpg
  • 主要器件

Microduino-BT/zh

文档

百度盘地址:http://pan.baidu.com/s/1jGjOrR4 提取码:hk0i

调试过程

  • 程序下载

将Microduino Core、Microduino USBTTL堆叠在一起.用数据线将写好的程序通过Microduino USBTTL上传到Microduino Core上。 注意:最好不要将所有模块堆叠在一起之后再上传程序

Download1.jpg

打开Aroduino IDE,若电脑中没有安装,则参照附录中的安装方法,先安装Aicroduino IDE。点击左上【文件】选项→点击【打开】。

在弹出的对话框中找到MicroduinoBluControlOutlet.ino并双击打开

之后点击左上角的"√"进行编译,点击上边栏的工具,确认板卡(Microduino-Core)处理器(Atmega328P@16M,5V)和端口号(COMX)。三项都如图确认无误之后点击"→"按钮下载程序到开发板上

  • 搭建

先使用三个4mm螺丝将电路板固定在底壳上

将Microduino-BT与Microduino-Core插接好并插接在智能插座的底板上

将智能插座外壳扣入底壳并使用8mm长螺丝旋入,固定上下外壳,至此智能插座部分搭建完成

将智能插座插入家中的插座。手机充电器插在智能插座上,并按下开关钮,可以看到指示灯亮起,手机开始充电。调试智能插座。图中: ①为开关按钮 ②是上电指示灯 ③是智能插座通断指示灯

Chazuo4.jpg
  • 手机端APP

首先使用手机扫描二维码,下载蓝牙App,下载完成后打开

点击SCAN,搜索周围蓝牙设备,发现并点击Microduino

等待1-2秒,待屏幕上出现ready字样可以开始操作智能插座

点击屏幕中间的按钮开关就可以控制智能插座的通断了,同时插座上的按键也可以控制插座的通断,手机APP上可以实时同步开关的状态

注意问题

  • 与电接触很危险,注意用电安全!一切安装操作都不能接电!安装好接电后就算智能插座是关闭状态,也一定不要触摸电源插口!
  • 如果蓝牙采用了蓝牙原理图中的Serial10跳线法,在用Microduino-Core和Microduino-USBTTL组合烧录程序时,不要将蓝牙模块也叠上去,会引起串口冲突,正确的做法是将程序烧录完毕后,拔下Microduino-USBTTL,再将蓝牙与Microduino-Core模块叠放在插座底板上。

程序说明

  • 主程序部分
void loop() 
{ 
    // 如果串口有数据就读取串口中的数据,串口每次传输一个字符,因此要进行转换 
    while (my_Serial.available() > 0) 
    { 
 
        tmp += char(my_Serial.read()); 
        delay(2); 
    } 
    //如果从串口中读取的内容不为空,进行状态判断 
    if (tmp.length() > 0) 
    { 
        if(tmp == "on")      //如果收到的内容为on 
        { 
            Serial.println("power on");  //串口显示:上电 
            digitalWrite(outletPin, HIGH); //将开关指示灯点亮 
            swith = true; 
        } 
        else if(tmp == "off")  //如果收到的内容为off 
        { 
            digitalWrite(outletPin, LOW); //关闭开关指示灯 
            Serial.println("power off");//串口显示:关闭 
            swith = false; 
        } 
        tmp = ""; 
    } 
 
    if(key_get(Button_Pin, 0)) //用于物理按钮,当每次按键按下并松开后 
    { 
        delay(300); 
        swith = !swith; //翻转开关状态 
    } 
 
    if(change != swith) //如果开关状态有变化 
    { 
        change = swith; //用change记录本次操作的开关状态 
        if(swith)   //如果是开状态 
        { 
            digitalWrite(outletPin, HIGH); //点亮指示灯 
            my_Serial.println("ON");     //告知蓝牙模块开启智能插座 
        } 
        else 
        { 
            digitalWrite(outletPin, LOW);  //关闭指示灯 
            my_Serial.println("OFF");     //告知蓝牙模块关闭智能插座 
        } 
    } 
}

视频