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

来自Microduino Wikipedia
跳转至: 导航搜索
调试过程
操作说明
 
(未显示3个用户的42个中间版本)
第1行: 第1行:
{| style="width: 800px;"
+
{| style="width: 840px;"
 
|-
 
|-
 
|
 
|
 
==概述==
 
==概述==
*项目名称:Microduino开源智能插座
+
*项目名称:Microduino开源智能插座(ESP8266连接Blynk)
*目的:手机控制插座通断
+
*目的:手机远程控制插座通断
 
*难度:低
 
*难度:低
 
*耗时:2小时
 
*耗时:2小时
*制作者:
+
*制作者:ray
 +
 
 
*简介:
 
*简介:
智能插座主要由控制模块和电路部分组成,用户可以使用手机连接蓝牙模块([[Microduino-BT/zh]])并发送命令、接收电路状态,核心控制模块([[Microduino-Core/zh]])对数据进行分析之后控制继电器对电路进行控制。
+
**用户可以使用手机上网连接Blynk进行物联网控制
[[File:123.png||300px|center]]
+
**核心控制模块[[Microduino-Core+/zh]]接收到指令之后控制继电器开关
 +
**WiFi无线模块[[Microduino-Module WIFI,ESP/zh]]负责进行无线通讯
 +
[[File:outletImg.png||600px|center]]
 +
 
 
==材料清单==
 
==材料清单==
 +
 +
{| border="0" cellpadding="10" width="100%"
 +
|-
 +
|width="50%" valign="top" align="left"|
 +
 
*Microduino设备
 
*Microduino设备
 
{|class="wikitable"
 
{|class="wikitable"
第17行: 第26行:
 
|模块||数量||功能
 
|模块||数量||功能
 
|-
 
|-
|[[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||连接网络
 
|}
 
|}
 +
 +
|width="50%" valign="top" align="left"|
 +
 
*其他设备
 
*其他设备
 
{|class="wikitable"
 
{|class="wikitable"
 
|-
 
|-
|模块||数量||功能
+
|设备||数量||功能
 
|-
 
|-
|底壳+电路板||1||核心板
+
|底壳+电路板||1||电路控制
 
|-
 
|-
|外壳||1||下载程序
+
|外壳||1||安全保护
 
|-
 
|-
|长螺丝 ||1||固定外壳与底壳
+
|长螺丝 ||4||固定外壳与底壳
 
|-
 
|-
|短螺丝 ||1||固定底壳与电路板
+
|短螺丝 ||3||固定底壳与电路板
 
|-
 
|-
 
|M3螺丝刀 ||1||拧螺丝
 
|M3螺丝刀 ||1||拧螺丝
 
|}
 
|}
 +
 +
|}
 +
 
==实验原理==
 
==实验原理==
[[File:Chazuotheory.jpg||600px|center]]
 
 
*电路控制原理
 
*电路控制原理
智能插座的电源控制分为两部分,分别是电压转换和继电器控制两部分。
+
*插座控制板上有两个主要器件
首先介绍一下电压转换部分,由于家庭中的电源多为220伏特的交流电,而Microduino-Core工作在5伏特的直流电压环境下,这部分的功能就如同一个变压器,像手机的充电插头一样转换了电压。
+
**'''开关电源''':将220V市电转换为5V工作电压给Microduino模块供电
另一部分是继电器控制,继电器是当输入电压的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。由于Microduino-Core核心控制引脚输出的电压很小,不能直接给电器供电,因此需要通过控制继电器从而间接控制家庭电源。
+
**'''继电器''':Microduino模块通过其对插座进行开关控制
 +
 
 +
*插座上可以接任意电器'''(<1250W)'''
 +
*Microduino核心模块控制继电器开关从而控制家用电器开关
 +
*它实际上是用弱电控制强电的一种智能开关
 
*无线通信原理
 
*无线通信原理
本套件使用了蓝牙无线通信模块Microduino-BT,由于Microduino的蓝牙模块很好的屏蔽了底层的协议,所以关于蓝牙协议这里不再赘述,使用它只需确认蓝牙串口的接法,默认是D2,D3。,给出一张蓝牙通讯所使用的串口图,所有的串口连接方法都涵盖在该图中:
+
**使用了'''[[Microduino-Module WIFI,ESP/zh]]'''WiFi通信模块连入广域网
[[File:Microduino-BT-2Big1.jpg||600px|center]]
+
**利用Blynk APP通过Blynk服务器进行通信
*主要器件
+
 
[[Microduino-BT/zh]]
+
==获取,配置Blynk==
==文档==
+
*下面跟随我们的步骤了解Microduino与Blynk是如何交互的
智能插座代码:【'''[[media:MicroduinoBluControlOutlet-master.zip|插座代码]]'''
+
 
智能插座Github:[https://github.com/Microduino/MicroduinoBluControlOutlet MicroduinoBluControlOutlet]
+
===获取Blynk手机客户端===
 +
 
 +
{| border="0" cellpadding="10" width="100%"
 +
|-
 +
|width="50%" valign="top" align="left"|
 +
*请参考教程:'''[[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
 +
|width="50%" valign="top" align="left"|
 +
[[File:BlynkOutletLink.png||300px|center]]
 +
|}
 +
 
 +
{| border="0" cellpadding="10" width="100%"
 +
|-
 +
|width="50%" valign="top" align="left"|
 +
*当然你也可以自己动手做一个
 +
*选择自己做的话就为此项目起名为 outlet
 +
|width="50%" valign="top" align="left"|
 +
[[File:BlynkSettingOutlet2.png||200px|center]]
 +
|}
 +
 
 +
{| border="0" cellpadding="10" width="100%"
 +
|-
 +
|width="50%" valign="top" align="left"|
 +
*接下来点击面板可以调出'''WIDGET BOX''',上边有很多控件供你选择。
 +
|width="50%" valign="top" align="left"|
 +
[[File:BlynkSetting3.png||200px|center]]
 +
|}
 +
 
 +
{| border="0" cellpadding="10" width="100%"
 +
|-
 +
|width="50%" valign="top" align="left"|
 +
*选择'''Value Display''',输入state表示这个控件是用来获取插座开关状态的
 +
*'''INPUT'''选择V0,'''READING FREQUENCY'''选择1秒表示插座发送状态的频率
 +
|width="50%" valign="top" align="left"|
 +
[[File:BlynkSettingOutlet4.png||200px|center]]
 +
|}
 +
 
 +
{| border="0" cellpadding="10" width="100%"
 +
|-
 +
|width="50%" valign="top" align="left"|
 +
*接下来放一个led显示控件用来模拟一个LED灯,'''INPUT'''设置成V1
 +
|width="50%" valign="top" align="left"|
 +
[[File:BlynkSettingOutlet5.png||200px|center]]
 +
|}
 +
 
 +
{| border="0" cellpadding="10" width="100%"
 +
|-
 +
|width="50%" valign="top" align="left"|
 +
*在Microduino端对应的代码是
 +
|width="50%" valign="top" align="left"|
 +
<source lang="cpp">
 +
BLYNK_READ(V0) {
 +
  if(digitalRead(outletPin)) {
 +
    Blynk.virtualWrite(V0, "ON");
 +
    ledState.on();
 +
  } else {
 +
    Blynk.virtualWrite(V0, "OFF");
 +
    ledState.off();
 +
  }
 +
}
 +
</source>
 +
|}
  
==调试过程==
+
{| border="0" cellpadding="10" width="100%"
*程序下载
+
|-
将Microduino Core、Microduino USBTTL堆叠在一起.用数据线将写好的程序通过Microduino USBTTL上传到Microduino Core上。
+
|width="50%" valign="top" align="left"|
注意:最好不要将所有模块堆叠在一起之后再上传程序
+
*最后选一个按钮控件,'''OUTPUT'''设置为D6,代表控制Microduino的D6引脚
在弹出的对话框中找到MicroduinoBluControlOutlet.ino并双击打开
+
|width="50%" valign="top" align="left"|
[[File:bluecontrol.jpg||500px|center]]
+
[[File:BlynkSettingOutlet7.png||200px|center]]
之后点击左上角的""进行编译,点击上边栏的工具,确认板卡(Microduino-Core)处理器(Atmega328P@16M,5V)和端口号(COMX)。三项都如图确认无误之后点击""按钮下载程序到开发板上
+
|}
[[File:Chooseboard.jpg||500px|center]]
 
  
*搭建
+
{| border="0" cellpadding="10" width="100%"
先使用三个4mm螺丝将电路板固定在底壳上
+
|-
[[File:Chazuo1.jpg||500px|center]]
+
|width="50%" valign="top" align="left"|
将Microduino-BT与Microduino-Core插接好并插接在智能插座的底板上
+
*最终,你的手机面板上现在看起来像这样
[[File:Chazuo2.jpg||500px|center]]
+
|width="50%" valign="top" align="left"|
将智能插座外壳扣入底壳并使用8mm长螺丝旋入,固定上下外壳,至此智能插座部分搭建完成
+
[[File:BlynkSettingOutlet8.png||200px|center]]
[[File:Chazuo3.jpg||500px|center]]
+
|}
将智能插座插入家中的插座。手机充电器插在智能插座上,并按下开关钮,可以看到指示灯亮起,手机开始充电。调试智能插座。图中:
+
 
 +
{| border="0" cellpadding="10" width="100%"
 +
|-
 +
|width="50%" valign="top" align="left"|
 +
*按下按钮后会显示插座已经变成开启状态
 +
|width="50%" valign="top" align="left"|
 +
[[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@16M,5V)'''选择无误,并选中对应'''端口号(COMX)'''
 +
*点击'''【文件】'''->'''【打开】''',浏览到项目程序地址,点击'''“ESP8266BlynkOutlet.ino”'''程序打开
 +
*几项都无误后,点击'''"→"'''按钮下载程序到开发板上
 +
 
 +
==拼装智能插座==
 +
{| border="0" cellpadding="10" width="100%"
 +
|-
 +
|width="50%" valign="top" align="left"|
 +
*'''Step1'''
 +
**先使用三个'''4mm螺丝'''将电路板固定在底壳上,然后准备好'''[[Microduino-Module WIFI,ESP/zh]]'''与'''[[Microduino-Core+]]'''
 +
|width="50%" valign="top" align="left"|
 +
[[File:Chazuo1v1.png||200px|center]]
 +
|}
 +
 
 +
{| border="0" cellpadding="10" width="100%"
 +
|-
 +
|width="50%" valign="top" align="left"|
 +
*'''Step2'''
 +
**将'''[[Microduino-Module WIFI,ESP/zh]]'''与'''[[Microduino-Core+]]'''一起堆叠在智能插座的底板上
 +
|width="50%" valign="top" align="left"|
 +
[[File:Chazuo2v1.png||200px|center]]
 +
|}
 +
 
 +
 
 +
{| border="0" cellpadding="10" width="100%"
 +
|-
 +
|width="50%" valign="top" align="left"|
 +
*'''Step3'''
 +
**将智能插座外壳扣入底壳并使用'''8mm长螺丝'''旋入,固定上下外壳,至此智能插座部分搭建完成
 +
|width="50%" valign="top" align="left"|
 +
[[File:Chazuo3v1.png||200px|center]]
 +
|}
 +
 
 +
==操作说明==
 +
{| border="0" cellpadding="10" width="100%"
 +
|-
 +
|width="50%" valign="top" align="left"|
 +
*将智能插座插入家中的插座。
 +
*把家里任何电器的电源线接入智能插座比如电视机,冰箱,加湿器
 +
*这里我们以手机充电器为例,插在智能插座上
 +
*打开Blynk客户端并按下开关钮,可以看到指示灯亮起,手机开始充电
 +
图中:
 
①为开关按钮
 
①为开关按钮
 
②是上电指示灯
 
②是上电指示灯
 
③是智能插座通断指示灯
 
③是智能插座通断指示灯
 +
|width="50%" valign="top" align="left"|
 
[[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>
 
  
==视频==
+
==疑难解答/FAQ==

2016年3月22日 (二) 13:55的最新版本

概述

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

材料清单

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

实验原理

  • 电路控制原理
  • 插座控制板上有两个主要器件
    • 开关电源:将220V市电转换为5V工作电压给Microduino模块供电
    • 继电器:Microduino模块通过其对插座进行开关控制
  • 插座上可以接任意电器(<1250W)
  • Microduino核心模块控制继电器开关从而控制家用电器开关
  • 它实际上是用弱电控制强电的一种智能开关
  • 无线通信原理

获取,配置Blynk

  • 下面跟随我们的步骤了解Microduino与Blynk是如何交互的

获取Blynk手机客户端

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@16M,5V)选择无误,并选中对应端口号(COMX)
  • 点击【文件】->【打开】,浏览到项目程序地址,点击“ESP8266BlynkOutlet.ino”程序打开
  • 几项都无误后,点击"→"按钮下载程序到开发板上

拼装智能插座

Chazuo1v1.png
Chazuo2v1.png


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

操作说明

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

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

Chazuo4.jpg

注意问题

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

疑难解答/FAQ