“开源智能插座/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
文档
第1行: 第1行:
{| style="width: 800px;"
+
{| style="width: 840px;"
 
|-
 
|-
 
|
 
|
 
==概述==
 
==概述==
*项目名称:Microduino开源智能插座
+
*项目名称:Microduino开源智能插座(ESP8266连接Blynk)
*目的:手机控制插座通断
+
*目的:手机远程控制插座通断
 
*难度:低
 
*难度:低
 
*耗时:2小时
 
*耗时:2小时
*制作者:
+
*制作者:ray
*简介:
+
 
智能插座主要由控制模块和电路部分组成,用户可以使用手机连接蓝牙模块([[Microduino-BT/zh]])并发送命令、接收电路状态,核心控制模块([[Microduino-Core/zh]])对数据进行分析之后控制继电器对电路进行控制。
+
简介:
 +
*智能插座主要由控制模块和电路部分组成
 +
*用户可以使用手机上网连接Blynk发送命令
 +
*核心控制模块[[Microduino-Core+/zh]]接收到指令之后控制继电器开关
 +
*WiFi无线模块[[Microduino-Module WIFI,ESP/zh]]负责进行无线通讯
 
[[File:123.png||300px|center]]
 
[[File:123.png||300px|center]]
 +
 
==材料清单==
 
==材料清单==
 
*Microduino设备
 
*Microduino设备
第17行: 第22行:
 
|模块||数量||功能
 
|模块||数量||功能
 
|-
 
|-
|[[Microduino-Core/zh]]||1||核心板
+
|[[Microduino-Core+/zh]]||1||核心板
 
|-
 
|-
 
|[[Microduino-USBTTL/zh]] ||1||下载程序
 
|[[Microduino-USBTTL/zh]] ||1||下载程序
 
|-
 
|-
|[[Microduino-BT/zh]] ||1||蓝牙通信
+
|[[Microduino-Module WIFI,ESP/zh]] ||1||连接网络
 
|}
 
|}
 
*其他设备
 
*其他设备
第32行: 第37行:
 
|外壳||1||下载程序
 
|外壳||1||下载程序
 
|-
 
|-
|长螺丝 ||1||固定外壳与底壳
+
|长螺丝 ||4||固定外壳与底壳
 
|-
 
|-
|短螺丝 ||1||固定底壳与电路板
+
|短螺丝 ||3||固定底壳与电路板
 
|-
 
|-
 
|M3螺丝刀 ||1||拧螺丝
 
|M3螺丝刀 ||1||拧螺丝
 
|}
 
|}
 +
 
==实验原理==
 
==实验原理==
[[File:Chazuotheory.jpg||600px|center]]
+
电路控制原理
*电路控制原理
+
*智能插座的电源控制分为两部分,分别是电压转换和继电器控制两部分
智能插座的电源控制分为两部分,分别是电压转换和继电器控制两部分。
+
*由于家庭中的电源多为220伏特的交流电,智能插座需要把高压交流电转换为Microduino的5V工作电压
首先介绍一下电压转换部分,由于家庭中的电源多为220伏特的交流电,而Microduino-Core工作在5伏特的直流电压环境下,这部分的功能就如同一个变压器,像手机的充电插头一样转换了电压。
+
*Microduino核心模块控制继电器开关从而控制家用电器开关
另一部分是继电器控制,继电器是当输入电压的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。由于Microduino-Core核心控制引脚输出的电压很小,不能直接给电器供电,因此需要通过控制继电器从而间接控制家庭电源。
+
*它实际上是用小电流去控制大电流运作的一种“自动开关”
 
*无线通信原理
 
*无线通信原理
本套件使用了蓝牙无线通信模块Microduino-BT,由于Microduino的蓝牙模块很好的屏蔽了底层的协议,所以关于蓝牙协议这里不再赘述,使用它只需确认蓝牙串口的接法,默认是D2,D3。,给出一张蓝牙通讯所使用的串口图,所有的串口连接方法都涵盖在该图中:
+
本套件使用了WiFi无线通信模块[[Microduino-Module WIFI,ESP/zh]],与Blynk远端进行连接
[[File:Microduino-BT-2Big1.jpg||600px|center]]
+
 
 
*主要器件
 
*主要器件
[[Microduino-BT/zh]]
+
[[Microduino-Module WIFI,ESP/zh]]
==文档==
 
智能插座代码:【'''[[media:MicroduinoBluControlOutlet-master.zip|插座代码]]'''】
 
  
智能插座Github:[https://github.com/Microduino/MicroduinoBluControlOutlet MicroduinoBluControlOutlet]
+
==调试过程==
 +
 
 +
==获取,配置Blynk==
 +
下面就通过插座的配置过程了解Microduino与Blynk是如何交互的
 +
 
 +
===获取Blynk手机客户端===
 +
*请参考教程:[[https://www.microduino.cn/wiki/index.php/Microduino-Blynk_Getting_start/zh#.E5.88.9B.E5.BB.BA.E9.A1.B9.E7.9B.AE 获取,配置Blynk]]
 +
 
 +
*你可以扫描下方二维码来获智能插座APP
 +
[[File:BlynkOutletLink.png||300px|center]]
 +
*当然你也可以自己动手做一个
 +
*选择自己做的话就为此项目起名为 outlet
 +
[[File:BlynkSettingOutlet2.png||200px|center]]
 +
*接下来点击面板可以调出'''WIDGET BOX''',上边有很多控件供你选择。
 +
[[File:BlynkSetting3.png||200px|center]]
 +
*选择'''Value Display''',输入state表示这个控件是用来获取插座开关状态的
 +
*'''INPUT'''选择V0,'''READING FREQUENCY'''选择1秒表示插座发送状态的频率
 +
[[File:BlynkSettingOutlet4.png||200px|center]]
 +
*接下来放一个led显示控件用来模拟一个LED灯,'''INPUT'''设置成V1
 +
[[File:BlynkSettingOutlet5.png||200px|center]]
 +
*在Microduino端对应的代码是:
 +
<source lang="cpp">
 +
BLYNK_READ(V0) {
 +
  if(digitalRead(outletPin)) {
 +
    Blynk.virtualWrite(V0, "ON");
 +
    ledState.on();
 +
  } else {
 +
    Blynk.virtualWrite(V0, "OFF");
 +
    ledState.off();
 +
  }
 +
}
 +
</source>
 +
*最后选一个按钮控件,'''OUTPUT'''设置为D6,代表控制Microduino的D6引脚
 +
[[File:BlynkSettingOutlet7.png||200px|center]]
 +
*最终,你的手机面板上现在看起来像这样:
 +
[[File:BlynkSettingOutlet8.png||200px|center]]
 +
*按下按钮后会显示插座已经变成开启状态
 +
[[File:BlynkSettingOutlet9.png||200px|center]]
 +
 
 +
==下载程序==
 +
智能插座Github:[https://github.com/Microduino/ESP8266BlynkOutlet ESP8266BlynkOutlet]
 +
 
 +
==程序烧写==
 +
*将[[Microduino-Core+/zh]]、[[Microduino-USBTTL/zh]]堆叠在一起。用数据线连接其中的[[Microduino-USBTTL/zh]]上传程序。
 +
**注意:最好不要将所有模块堆叠在一起之后再上传程序
 +
*打开Arduino IDE for Microduino,环境,(搭建参考:[[AVR核心:Getting started/zh]])
 +
*确认板卡(Microduino-Core+)处理器(Atmega644Pa)选择无误,并选中对应端口号(COMX)
 +
*打开你所下载的项目中“ESP8266BlynkOutlet.ino”程序
 +
*几项都无误后,点击"→"按钮下载程序到开发板上
 +
 
 +
[[File:ESP8266BlynkOutletupload.png||500px|center]]
  
==调试过程==
 
*程序下载
 
将Microduino Core、Microduino USBTTL堆叠在一起.用数据线将写好的程序通过Microduino USBTTL上传到Microduino Core上。
 
注意:最好不要将所有模块堆叠在一起之后再上传程序
 
在弹出的对话框中找到MicroduinoBluControlOutlet.ino并双击打开
 
[[File:bluecontrol.jpg||500px|center]]
 
之后点击左上角的"√"进行编译,点击上边栏的工具,确认板卡(Microduino-Core)处理器(Atmega328P@16M,5V)和端口号(COMX)。三项都如图确认无误之后点击"→"按钮下载程序到开发板上
 
[[File:Chooseboard.jpg||500px|center]]
 
  
*搭建
+
==拼装智能插座==
先使用三个4mm螺丝将电路板固定在底壳上
+
===Step1===
 +
*先使用三个'''4mm螺丝'''将电路板固定在底壳上
 
[[File:Chazuo1.jpg||500px|center]]
 
[[File:Chazuo1.jpg||500px|center]]
将Microduino-BT与Microduino-Core插接好并插接在智能插座的底板上
+
===Step2===
 +
*将[[Microduino-Module WIFI,ESP/zh]]与[[Microduino-Core+]]一起并堆叠在智能插座的底板上
 
[[File:Chazuo2.jpg||500px|center]]
 
[[File:Chazuo2.jpg||500px|center]]
将智能插座外壳扣入底壳并使用8mm长螺丝旋入,固定上下外壳,至此智能插座部分搭建完成
+
 
 +
===Step3===
 +
*将智能插座外壳扣入底壳并使用'''8mm长螺丝'''旋入,固定上下外壳,至此智能插座部分搭建完成
 
[[File:Chazuo3.jpg||500px|center]]
 
[[File:Chazuo3.jpg||500px|center]]
将智能插座插入家中的插座。手机充电器插在智能插座上,并按下开关钮,可以看到指示灯亮起,手机开始充电。调试智能插座。图中:
+
===Step4===
 +
*将智能插座插入家中的插座。
 +
*把家里任何电器的电源线接入智能插座比如电视机,冰箱,加湿器
 +
*这里我们以手机充电器为例,插在智能插座上
 +
*打开Blynk客户端并按下开关钮,可以看到指示灯亮起,手机开始充电
 +
图中:
 
①为开关按钮
 
①为开关按钮
 
②是上电指示灯
 
②是上电指示灯
 
③是智能插座通断指示灯
 
③是智能插座通断指示灯
 
[[File:Chazuo4.jpg||500px|center]]
 
[[File:Chazuo4.jpg||500px|center]]
*手机端APP
 
首先使用手机扫描二维码,下载蓝牙App,下载完成后打开
 
[[File:Chazuo2d.jpg||500px|center]]
 
点击SCAN,搜索周围蓝牙设备,发现并点击Microduino
 
[[File:Chazuoandroid1.jpg||500px|center]]
 
等待1-2秒,待屏幕上出现ready字样可以开始操作智能插座
 
[[File:Chazuoandroid2.jpg||500px|center]]
 
点击屏幕中间的按钮开关就可以控制智能插座的通断了,同时插座上的按键也可以控制插座的通断,手机APP上可以实时同步开关的状态
 
[[File:Chazuoandroid3.jpg||500px|center]]
 
  
 
==注意问题==
 
==注意问题==
*与电接触很危险,注意用电安全!一切安装操作都不能接电!安装好接电后就算智能插座是关闭状态,也一定不要触摸电源插口!
+
*与电接触很危险,注意用电安全!
*如果蓝牙采用了蓝牙原理图中的Serial10跳线法,在用Microduino-Core和Microduino-USBTTL组合烧录程序时,不要将蓝牙模块也叠上去,会引起串口冲突,正确的做法是将程序烧录完毕后,拔下Microduino-USBTTL,再将蓝牙与Microduino-Core模块叠放在插座底板上。
+
*一切安装操作都不能接电!
==程序说明==
+
*安装好接电后就算智能插座是关闭状态,也一定不要触摸电源插口!
*主程序部分
 
<source lang="cpp">
 
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");    //告知蓝牙模块关闭智能插座
 
        }
 
    }
 
}
 
</source>
 
  
 
==视频==
 
==视频==

2016年3月13日 (日) 12:34的版本

概述

  • 项目名称:Microduino开源智能插座(ESP8266连接Blynk)
  • 目的:手机远程控制插座通断
  • 难度:低
  • 耗时:2小时
  • 制作者:ray

简介:

  • 智能插座主要由控制模块和电路部分组成
  • 用户可以使用手机上网连接Blynk发送命令
  • 核心控制模块Microduino-Core+/zh接收到指令之后控制继电器开关
  • WiFi无线模块Microduino-Module WIFI,ESP/zh负责进行无线通讯

材料清单

  • Microduino设备
模块 数量 功能
Microduino-Core+/zh 1 核心板
Microduino-USBTTL/zh 1 下载程序
Microduino-Module WIFI,ESP/zh 1 连接网络
  • 其他设备
模块 数量 功能
底壳+电路板 1 核心板
外壳 1 下载程序
长螺丝 4 固定外壳与底壳
短螺丝 3 固定底壳与电路板
M3螺丝刀 1 拧螺丝

实验原理

电路控制原理

  • 智能插座的电源控制分为两部分,分别是电压转换和继电器控制两部分
  • 由于家庭中的电源多为220伏特的交流电,智能插座需要把高压交流电转换为Microduino的5V工作电压
  • Microduino核心模块控制继电器开关从而控制家用电器开关
  • 它实际上是用小电流去控制大电流运作的一种“自动开关”
  • 无线通信原理

本套件使用了WiFi无线通信模块Microduino-Module WIFI,ESP/zh,与Blynk远端进行连接

  • 主要器件

Microduino-Module WIFI,ESP/zh

调试过程

获取,配置Blynk

下面就通过插座的配置过程了解Microduino与Blynk是如何交互的

获取Blynk手机客户端

  • 你可以扫描下方二维码来获智能插座APP
BlynkOutletLink.png
  • 当然你也可以自己动手做一个
  • 选择自己做的话就为此项目起名为 outlet
BlynkSettingOutlet2.png
  • 接下来点击面板可以调出WIDGET BOX,上边有很多控件供你选择。
BlynkSetting3.png
  • 选择Value Display,输入state表示这个控件是用来获取插座开关状态的
  • INPUT选择V0,READING FREQUENCY选择1秒表示插座发送状态的频率
BlynkSettingOutlet4.png
  • 接下来放一个led显示控件用来模拟一个LED灯,INPUT设置成V1
BlynkSettingOutlet5.png
  • 在Microduino端对应的代码是:
BLYNK_READ(V0) {
  if(digitalRead(outletPin)) {
    Blynk.virtualWrite(V0, "ON");
    ledState.on();
  } else {
    Blynk.virtualWrite(V0, "OFF");
    ledState.off();
  }
}
  • 最后选一个按钮控件,OUTPUT设置为D6,代表控制Microduino的D6引脚
BlynkSettingOutlet7.png
  • 最终,你的手机面板上现在看起来像这样:
BlynkSettingOutlet8.png
  • 按下按钮后会显示插座已经变成开启状态
BlynkSettingOutlet9.png

下载程序

智能插座Github:ESP8266BlynkOutlet

程序烧写

  • Microduino-Core+/zhMicroduino-USBTTL/zh堆叠在一起。用数据线连接其中的Microduino-USBTTL/zh上传程序。
    • 注意:最好不要将所有模块堆叠在一起之后再上传程序
  • 打开Arduino IDE for Microduino,环境,(搭建参考:AVR核心:Getting started/zh
  • 确认板卡(Microduino-Core+)处理器(Atmega644Pa)选择无误,并选中对应端口号(COMX)
  • 打开你所下载的项目中“ESP8266BlynkOutlet.ino”程序
  • 几项都无误后,点击"→"按钮下载程序到开发板上


拼装智能插座

Step1

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

Step2

Step3

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

Step4

  • 将智能插座插入家中的插座。
  • 把家里任何电器的电源线接入智能插座比如电视机,冰箱,加湿器
  • 这里我们以手机充电器为例,插在智能插座上
  • 打开Blynk客户端并按下开关钮,可以看到指示灯亮起,手机开始充电

图中: ①为开关按钮 ②是上电指示灯 ③是智能插座通断指示灯

Chazuo4.jpg

注意问题

  • 与电接触很危险,注意用电安全!
  • 一切安装操作都不能接电!
  • 安装好接电后就算智能插座是关闭状态,也一定不要触摸电源插口!

视频