跳转到主要内容

一个使用Blynk - 1181 Smarthome控制和监测系统IOS和Android应用程序

内容

引用

相关文档和软件,请访问:

//www.xmece.com/亚博电竞菠菜products/greenpak

下载我们的免费GreenPAK设计师软件[1]打开.gp文件[2]和[3]使用GreenPAK开发工具来冻结设计到您自己的定制的集成电路在几分钟内。

yabo国际娱乐对话框半导体应用程序提供了一个完整的图书馆指出[4]以设计实例以及解释的特性和块内集成电路所示的对话框。
  1. GreenPAK设计软件、软件下载、半导体和用户指南,对话框yabo国际娱乐
  2. 一个- 1181 Smarthome控制和监控系统使用Blynk IOSAndroid App.gp半导体,GreenPAK设计文件,对话框yabo国际娱乐
  3. GreenPAK开发工具半导体,GreenPAK开发工具网页,对话框yabo国际娱乐
  4. GreenPAK应用笔记半导体,GreenPAK应用笔记网页,对话框yabo国际娱乐
  5. SLG46538对话框数据表,半导体yabo国际娱乐

介绍

本应用笔记描述了一个原型可以设计为一个基本的智能家居系统。之间建立一个联系GreenPAK™和智能手机应用程序称为Blynk将讨论。所有的下游组件是由GreenPAK控制装置连接。

Blynk是一个平台与iOS和Android智能手机兼容。它可以与各种微控制器(例如Arduino NodeMCU,覆盆子π,Beaglebone黑色粒子光子等)。这是专为物联网(物联网),并能够远程控制硬件,存储/显示数据从传感器(和其他有用的物品),任何想要的项目。Blynk是理想的人没有实质性的知识创建一个复杂的智能手机应用,或者需要物联网快速原型。

如图1所示,智能家居是一个双向的网络结构。它可以解释与两个简单的例子:

图1所示。智能家居建筑

1。控制输出组件:

如果用户希望打开一个灯泡位于家,他们将只需要按下按钮部件与灯泡。生成的请求后,布尔数据(低或高)前往Blynk服务器,告诉Arduino打开灯泡。Arduino然后处理数据和I2C开始传播到GreenPAK (SLG46538V在这种情况下,但它同样可以与SLG46537V SLG46533V和其他常见GreenPAK5)。寄存器的值0 xf4改为0 x01,将第一个注册的I2C块虚拟输出高。这是同时与销7(灯泡)医生设计的最后力量,数字输出接脚高,激励继电器通过创建一个电路。当按钮按钮部件应用un-pressed,输出是关闭的。

2。监控输入传感器:

假设在晚上,当每个人都在睡觉,入侵者决定通过窗户进入房子。就试着打开窗户,警报和特定的灯光将打开(这是设置在GP设计)。Arduino将经常监控GP5所有的连接传感器通过I2C(读寄存器0 xf0),所以它会检测到一个寄存器值的变化。在我们的场景中,将(价值,这将意味着数字输入插口4是活跃,这将最终打开一个小部件和应用程序发送一个通知,提示用户只是为了安全。

Blynk应用程序

下载应用程序,去联系http://docs.blynk.cc/。对于任何人来说,都是非常容易创建自己的Blynk帐户。这个程序为目的的注意,一个项目有一些按钮,发光二极管,标签、电子邮件、通知、滑块,表,图表,和历史图表创建。(图2)。

图2。Blynk智能手机的人机界面

只是一种配置针(硬件直接针,或者只是虚拟针像在这个项目),和其他一些选项为每个部件的人机界面(HMI)准备好运行目标项目。

小部件的理由:

  • 按钮:有两个按钮:一个激活灯泡,另一个激活报警蜂鸣器,都是独立的。
  • led灯:有四个部件,显示每个传感器的状态,如:运动传感器(硕士),门铃按钮(D.B.B.),门传感器(科学博士)和窗口传感器(至此)
  • 标签:支持可选标签组织部件更好。
  • 电子邮件:启用邮件通知
  • 通知:使智能手机通知
  • 滑块:一个滑块设置计数器数据值(0到248在这种情况下)CNT6 / DLY6 GP的设计
  • 计:一个表显示家里的水箱
  • 图:一个图显示家里的水箱水平作为衡量部件(相同)。
  • 史图:给水箱水平通过数据统计的时间(从小时到几个月的数据存储)

通知事件:

支持两种通知:通过电子邮件,通过智能手机(你也可以加入twitter通知)。它只是一个通知小部件添加到应用程序,并从Blynk编写正确的函数库Arduino IDE,启用通知模块。参见图3。

图3。通知的例子

ESP8266无线模块

ESP8266是一种低成本的无线芯片与一个完整的TCP / IP堆栈和微控制器单元的能力。它实际上是一个最便宜的无线模块为物联网的目的而设计的。通过一些图书馆和协议,您不仅可以实现良好的沟通与你的硬件,而且稳定。它可以与任何其他微控制器,通过UART协议或可编程设备,通过预先编程的命令在芯片。

有很多种ESP8266模块,但是对于这个项目ESP8266-01被使用。Arduino是连接如下图所示(图4):

图4。Arduino兆和ESP8266接线图

无线模块适用于3.3 v的水平,所以有两个选择:一个是越容易如图4所示。它包括连接ESP8266 VDD销的Arduino的3.3 v销,和Arduino的TX分压器(转换5 v至3.3 v),然后将输出电压水平的RX销模块。另一个选择是购买一个电压电平转换器芯片(或3.3 v电源板)喂养ESP8266电路。

Blynk库将get请求来控制整个模块通过在命令:从连接到你家里的WLAN,发送和接收你需要尽可能多的数据字节。

图5。GreenPAK设计

在SLG46538V I2C协议是一个非常强大的工具,各种各样的项目。,GreenPAK 5作为I / O销扩展,使几乎所有的针Arduino免费。有些应用程序可用笔记(如- 1107和- 1090),在I2C解释道。几乎所有的GreenPAK设备硬件可以控制从I2C配置一般的微控制器作为一个主人,和GreenPAK奴隶。通过I2C,发送一些字节命令,别针,ASM RAM,计数器,GreenPAK附近地区和许多其他元素可以读取和写入。

GreenPAK设计是基于的别针,和I2C协议工具模块连接。数字输入,如运动传感器,门传感器,传感器和门窗贝尔按钮自动回家与针2、3、4和5。他们可以很容易地读取I2C工具,但盖茨也设计得很好(附近地区)触发一个或两个数字输出包含在这个项目。例如,当一个门铃按钮被按下时,它会激活报警模拟门铃声音。当运动传感器检测到有人会把灯打开(模拟人在一个房间里)。最后,如果门传感器或窗口传感器(通过霍尔效应)检测一些入侵者,他们将触发报警,灯光在同一时间。

还有一个调光灯泡在销10日与两个计数器有销PWM输出,CNT0 / DLY0设置频率(100赫兹)和CNT6 / DLY6设置脉冲宽度从0到255。然而,有大约3%的误差范围设置输出宽度,所以建议从Blynk发送字节从0到248应用程序,得到一个伟大的PWM。

此外,超声波传感器电路的一部分由GreenPAK控制5。它控制模块通过两个计数器的触发脉冲:CNT3 / DLY3设置频率(10 hz)和CNT4 / DLY4设置脉冲宽度必须激活传感器电路过程中,从而创建一个“回声”输出将由Arduino电路板接收处理数据。

I2C块连接为默认与销8 (sci)和销9 (SDA)。设备地址0 x00,但任何其他地址从0 x00 0 xf也可以集。重要的是要知道(基于SLG46538V数据表),I2C写作框架由一个起始位,紧随其后的是一个控制字节、字地址、数据和一个停止位(图7插图)。I2C阅读框是由一个起始位,紧随其后的是一个控制字节、字地址,一个起始位(再一次),控制字节,数据和停止位结束传输(检查应用程序指出一个- 1090关于I2C如何工作的更多信息)。

Arduino代码

Arduino(从硬件的角度来看),没有太多要说的,除了wi - fi连接模块。回声销超声波传感器的输出连接到Arduino的数字输入销12。这样Arduino可以处理回波脉冲数据(多谈论下)。

关于Arduino代码设计,使用了一些图书馆解决许多事情,使编程更加简单。这些库是:“ESP8266_Lib。BlynkSimpleShieldEsp8266 h”。”SimpleTimer h”。”h”和“Silego.h”。代码注释和解释(下载Arduino文件检查一下)。一些一般性的事情解释道:

/ /你应该Blynk应用身份验证令牌。

/ /项目设置(螺母图标)。

char auth [] = " YourAuthToken”;/ /替换“YourAuthToken”牌Blynk项目的数量

/ /你的WiFi凭证。

/ /设置密码”“开放网络。

字符名称[]= " YourNetworkName”;/ /替换“YourNetwokName”网络的名称

char[] =通过“YourPassword”;/ /替换“YourPassword”无线密码

首先,安装项目在家里,身份验证令牌数量必须输入。找到它,就打开Blynk应用,登录你的账户(如果您还没有创建一个,只是注册),创建一个项目,项目设置。那里,身份验证令牌数量(检查中的示例图10)可以看到。一旦你找到它,只是类型Arduino中的数字代码,或使事情更容易,发送代码到你的电子邮件应用程序,然后就可以复制粘贴的电脑。此外,WLAN的名称和密码必须输入,和其他无线电子设备。

图6。项目设置

如果工作领导小部件的应用程序,只需添加尽可能多的WidgetLED对象所需的Arduino代码。对于这个应用程序,所有的传感器,增加了用于构建项目。

还有其他重要的对象来定义,如wi - fi ESP8266库类,从简单的定时器类计时器。

同时,GreenPAK 5的地址必须是定义,在这种情况下0 x00。

ESP8266 wifi (&EspSerial);

WidgetLED movementSensor (V2);/ /创建小部件使用虚拟Blynk别针

WidgetLED doorSensor (V3);/ /有一个大型虚拟针可用使用

WidgetLED windowSensor (V8);

WidgetLED doorBellButton (V4);

SimpleTimer定时器;

对话框silego (0 x00);/ / GreenPAK 5 I2C奴隶地址

如果任何值必须写从应用程序到一个虚拟销,推荐的处理方法是通过一个名为BLYNK_WRITE的函数(虚拟销名称),了解虚拟销从Blynk读。,紧随其后的是打字销的名称作为一个参数的函数。这样,param.asInt()被称为内部函数,该函数返回一个整数值(可以是一个字节或布尔),必须处理创建触发器执行其他代码中的句子。

BLYNK_WRITE (V0) / /按钮部件是销V0写作

{

int statusBulb = param.asInt ();/ /保存灯泡的地位

如果(statusBulb) {

silego。xf4 writeI2C (0, 0 x01);/ /设置GP5销7高(灯泡)的虚拟销0 GP设计

}

其他{

silego。xf4 writeI2C (0, 0 x00);/ /清除注册0 xf4(所有虚拟输入)

}

}

是非常重要的在使用和Arduino Blynk,离开无效循环功能,只有Blynk.run()函数如果可能,并避免任何类型的长延迟毫秒延迟()。的结果可以停止Arduino和Blynk之间的通信,数据传输或延迟。然而,它总是可取的Arduino代码添加了一些其他功能,除了应用程序提供服务,这就是为什么计时器。从“SimplerTimer functionToExecute setInterval(毫秒)。h”函数中使用代码的设置,检查一个通用的项目需要执行它的功能添加其他功能。在这个例子中是计时器。setInterval (100 l, readInputs),这意味着每100毫秒,Arduino将运行这个函数readInputs ()。

无效的设置()

{

pinMode(呼应,输入);/ /回声从超声波传感器连接销12

/ /设置控制台波特率

Serial.begin (74880);/ /任何波特率

延迟(10);

/ /设置ESP8266波特率

EspSerial.begin (ESP8266_BAUD);/ / 74880波特率

延迟(10);

Blynk。开始(auth, wifi,名称,通过);/ /这个函数连接ESP8266 wifi网络

/ /然后与Blynk服务器

计时器。setInterval (100 l, readInputs);

}

readInput()函数,是项目中最重要的功能之一,因为它读取GreenPAK数字输入与I2C工具,然后评估返回的字节数知道传感器被激活。一旦Arduino知道传感器是阅读,它触发(打开)领导的相关部件通过编写虚拟数字对象之前设置。这种方式,用户可以观察到当一个传感器检测到的东西通过检查应用程序,但这也会引发一些通知Blynk.notification()函数;例如Arduino读取GreenPAK 5和知道运动传感器检测到有人,所以它将触发movementSensor.on(),并通知到智能手机说“有人在客厅”。

空白readInputs () {

readingByte = silego.readI2C (0 xf0);/ /读取输入插脚0 xf0寄存器相关联

开关(readingByte) {

例0 x02: / /如果输入插口2高

movementSensor.on ();/ / Blynk运动传感器部件了

doorSensor.off ();

windowSensor.off ();

doorBellButton.off ();

Blynk。通知(“有人在客厅”);/ /将通知发送给你的智能手机

打破;

例0 x04: / /如果输入销3高

movementSensor.off ();

doorSensor.on ();/ / Blynk门传感器部件了

windowSensor.off ();

doorBellButton.off ();

Blynk.notify(“警报。入侵者打开门”);/ /将通知发送给你的智能手机

延迟(10);

Blynk.email (“your_email@mail.com”、“警告”、“入侵者打开门”);/ /将通知发送给你的电子邮件

打破;

最后,这个函数还读超声回波销,通过一个名为pulseIn的函数(),它衡量多久微秒的回波脉冲居高不下,那么它将时间转换为厘米,使用下面的公式:距离=微秒/ 58(检查应用程序指出一个- 1050关于超声波传感器的工作方式的更多信息);一旦距离的值是已知的,Blynk.virtualWrite()函数用于编写任何虚拟Blynk例如这智能家居设计模块,距离值发送给虚拟销6和7,在虚拟销6相关测量部件,和销7图表小部件的应用程序,来展示这个变量的行为(模拟水箱的水位通过距离)。

/ /这部分涵盖了超声波的回波脉冲处理

时间= pulseIn(呼应,高);/ /计算回波销富含微秒的时间并保存

距离=时间/ 58;/ /翻译时间厘米,这样我们就可以知道

/ /例如水和传感器之间的距离在一个水箱

/ /这将计算多少水在水箱在家里,如果你

/ /把它的顶部,面临水

Blynk。virtualWrite (V6,距离);/ /发送两个不同的虚拟价值的距离针X的目的

Blynk。virtualWrite (V7中,距离);/ /内部Blynk应用

如果< 150 > 100 &距离(距离){

Blynk。通知(“坦克水平低于50%”);/ /将通知发送给你的智能手机

}

其他如果< 200 > 160 &距离(距离){

Blynk。通知(“坦克水平低于20%”);/ /将通知发送给你的智能手机

}

}

关于坦克的通知,使用一些基本条件:告诉用户当水位很低,100 - 150厘米之间时(这意味着水位低于50%)。此外,160 - 200厘米之间时,水位低于20%。

注意:只是为了一个简单的模拟的水箱,当水位通知发生视频演示的改变;因此,当100 - 50厘米之间的水,水位低于50%;40-0cm之间时,水位低于20%。可以观察到,条件倒只是为了模拟示范项目的视频。

图7。隔离继电器电路

GPIO相关电路图

一个常见的隔离电路(光耦合器和5 v继电器常开销和120伏交流电输出)是应用于灯泡的数字输出。(见图8)

其余的电路,传感器作为数字输入直接连接到GreenPAK 5。其他数字输出(蜂鸣器和LED)与一些基本的直接连接电阻保护他们。

结论

GreenPAK 5芯片是一个非常强大的设备,当我们把智能家居系统的设计。想象一下设置16 (16)GreenPAK奴隶设备由主微控制器控制,如何控制许多传感器和元素与系统?甚至可以控制整个建筑在许多方面与一个低成本的解决方案,(至少从控制器在系统的架构部分)。

图8。霍尔效应传感器电路

GreenPAK 5是一个伟大的解决方案,在设计时绝对应该考虑成功的智能家居/建筑领域的家庭自动化和物联网。

附录A
狐臭M和工具

项目中使用的组件和工具是:

  1. SLG46538VGreenPAK设备
  2. Arduino超级2560
  3. ESP8266-01
  4. HC-SR501
  5. HC-SR04
  6. US1881 (2)
  7. 警报器
  8. GreenPAK设计师
  9. Arduino IDE
  10. Blynk

其他组件和工具:

  • 发光二极管
  • 抗性
  • 5 v继电器
  • PNP型和NPN型晶体管
  • 按钮
  • 杜邦电缆