当前位置:首页>> 如何轻松搭建一个IoT通知设备

如何轻松搭建一个IoT通知设备

发布时间:2017-09-24作者:林静

在物联网世界中,各种电子设备通过无线电通信。比如基于802.11 b/g/n的WiFi协议和BLE(低功耗蓝牙)允许这些电子设备使用其通信方案共享数据。像ESP8266和ESP32这样的无线芯片使得厂商和工程师能够轻松进行物联网产品开发和试验。在本项目系列中,你将使用无线平台监控和控制各种电子电路以及配件,借此你将加深对 IoT 概念的理解。

作为该系列的启动项目,首先你将构建一个 IoT 通知设备,当被外部设备触发时,它会发送邮件到你的桌面电脑、笔记本电脑或者移动设备(手机或者平板)。为了构建这套系统,你需要一个Arduino Uno开发板、 littleBits cloudBit、物联网移动设备应用程序以及一些常用的电子元器件。

零件清单

触觉按钮开关

Arduino UNO 开发板

LED 灯

330欧、1/4瓦电阻

1千欧、1/4瓦电阻,

littleBits cloudBit

littleBits proto-modules,2个

littleBits USB电源(参见 littleBits cloudBit 链接)

littleBits 安装板(参见 littleBits proto-modules 链接)

无焊面包板

littleBits电源适配器(参见 littleBits cloudBit 链接)

跳线帽

IFTTT (IF This Then That) Applet

blob.png


图1物联网通知设备系统框图 littleBits cloudBit 模块介绍

在正式构建项目之前,你需要先了解一下 littleBits 这个很有意思的 WiFi 模块。cloudBit模块使得各种电子设备和器件能够轻松连接到家庭WiFi网络。这个模块非常小巧,依靠它 PCB 板上的 IC 技术可轻松实现联网,从而监控和控制其他的 littleBits 模块。

此外,硬件开发套件(HDK)也为 littleBits 以外的模块提供电路接口。cloudBit模块的系统架构由9个子电路组成。

blob.png


图2 littleBits cloudBit:用于IoT原型开发的WiFi模块

littleBits 系统架构包含如下内容:

电源

Setup 按键

WiFi无线网卡(USB HOST)

模拟输入

模拟输出

micro SD 卡(用于安装Linux软件)

RGB LED

512M DDR

i.MX23 处理器

如何轻松搭建一个IoT通知设备


图3 9个子电路构成了 cloudBit 系统架构

cloudBit 模块的 WiFi 无线收发器封装在一个 USB 适配器中,生产厂商是 Dynamode,其部件号为 WL-700N-XS, 它是符合802.11n / g标准的 WiFi 设备。其工作频率范围从2.4到2.4835GHz, 该范围使得这款模块能够运用于ISM(工业、科技和医疗)领域。此外,这款由 Dynamode 打造的 USB 接口的WiFi适配器仅需5V DC电源即可供电,非常方便,同时它的功耗极低,只有0.6W。

blob.png


图4 cloudBit WiFi 芯片组高度封装在一个 USB 适配器中

基于 Linux 的 WiFi 软件存储在 microSD 卡中,其接口在 cloudBit PCB 板的右下角。RGB LED 灯用来指示 cloudBit 处于运行还是设置状态。cloudBit 的 Setup 按键是一个非常小巧的瞬时开关,cloudBit 通过它开启对家庭网络的检测和连接。cloudBit 模块中最核心的部件是 NXP 的 i.MX23 处理器。

除了处理外部 IO 信号以外,i.MX23 处理器的内部电路提供无线(WiFi)控制功能。cloudBit 模块通过外扩一个512M DDR SDRAM 芯片,来帮助 i.MX23处理器更好地处理大量的 WiFi 数据。DDR SDRAM 的 WiFi 数据传输速率需要 16条地址线、15条数据线和13条控制线的支持。 cloudBit模块通过模拟 IO 口和其他 littleBit 模块以及开发者自研的电路建立连接,从而实现信号传输和调制。

blob.png


图5 cloudBit WiFi 模块的组件

如你所见,cloudBit 模块尺寸小巧,提供的无线功能却不失强大。通过上文你应当已经大致了解了 cloudBit 的架构,那么接下来就可以开始动手构建 IoT 硬件了。

构建 IoT 通知设备

我们将使用 Arduino 搭配简单的外围电路来实现一个激活 cloudBit 的触发器。对触觉开关进行编程,可以使其触发 cloudBit 发送邮件、短信或者执行其他更加丰富的动作。当 cloudBit 接收到触发信号时,它将通过你的家庭网络执行发送邮件的动作。

因此,该项目的第一步就是搭建触发电路(很简单,你可以使用面包板,如下图所示)。

blob.png


图6 Arduino触发电路连线图。需要注意加入 切换开关

这是 Arduino 触发电路的原理图:

blob.png


图7 Arduino 触发电路原理图

Arduino 触发电路搭建完毕,就可以添加 cloudBit 模块了。使用 littleBits 组件提供连接 Arduino 触发电路和 cloudBit 模块的电气接口。proto-module 是主要使用的组件,它有三个引脚:接地(gnd)、信号(sig)和Vcc。

blob.png


图8 proto-module 的信号引脚图

下图展示了构建 IoT 通知设备所需的所有连线情况。

blob.png


图9 IoT 通知设备的完整电气连线图

基于这个原型可以搭建出多种连接方式的系统。我通过给这个原型附加一个智能逻辑探针,搭建了下图所示的系统,用于测试整套 IoT 通知设备的运转,其中 cloudBit 由littleBits 电源适配器供电。

blob.png


图10 作者搭建的 IoT 通知设备原型。安装板用于支持 littleBits 模块,智能逻辑探针用于原型测试。

至此,你已经完成了 IoT 通知设备的电路搭建,下一步需要通过添加 Arduino 代码以实现触发功能。

添加 Arduino 代码

在本小节中,你需要将代码上传到 Arudino 以使 IoT 通知设备能够运转。代码主要修改了 Arduino IDE 中的“Button” 部分,添加了一个数字电平输出用于触发 cloudBit。按下按钮将打开 LED 并将 D6 引脚设置为高电平。

修改的代码片段如下:

// constants won't change. They're used here to // set pin numbers: const int buttonPin = 5; // the number of the pushbutton pin const int ledPin = 13; // the number of the LED pin const int trig_out = 6; // output pin to trigger cloudBit // variables will change: int buttonState = 0; // variable for reading the pushbutton status void setup() { // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT); // initialize the cloudBit trigger pin as an output: pinMode(trig_out, OUTPUT); } void loop() { // read the state of the pushbutton value: buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed. // if it is, the buttonState is HIGH: if (buttonState == HIGH) { // turn LED on and trigger outpin: digitalWrite(ledPin, HIGH); digitalWrite(trig_out, HIGH); } else { // turn LED off and trigger outpin: digitalWrite(ledPin, LOW); digitalWrite(trig_out,LOW); } }

把代码上传到 Arduino 后,你需要把 IFTTT applet 添加到你的 IoT 通知设备原型中来。

添加 IFTTT Applet

借助Facebook、Gmail、Instagram和Twitter网络服务,搭配必要的物理设备(如微控制器),可以预先为 cloudBit 构建 IFTTT applets 的触发器。IFTTT applets 是免费的,它使用条件语句作为目标服务的操作基础。比如在项目中,当 Arduino 触发 cloudBit 时,littleBit applet 得到触发的条件语句将执行发送邮件的操作。

blob.png


图11 Arduino 触发 cloudBit 发送邮件

只有正确地设置 cloudBit ,它才能被你的家庭无线网络检测到。关于 cloudBit 的设置方法, littleBits website 提供了详细说明。此外,你需要在 IFTTT applet service website 创建一个免费的账户,以便使用 littleBits 触发你的 cloud 模块发送电子邮件。在注册帐户时,务必提供你要用于该项目的邮件地址。注册之后,你可以使用设置功能修改 applet。在本例中,我修改了 applet 中 cloudBit 无线传输事件,我把我的别名 MrD 添加在了邮件正文中。

blob.png


图12 通过 cloudBit applet 提供的设置方法,很方便就把邮件正文中设备名称改为”MrD”

applet 配置正确之后,就可以测试你的 IoT 通知设备了。

最终测试

按下面包板上的按钮将促使你的 IoT 通知设备向你发送电子邮件,邮件内容将由主题和你在 applet 中设置的正文组成。

blob.png


图13 IoT 通知设备原型测试

以下是 cloudBit 发送到我邮箱的消息内容:

blob.png


图14 cloudBit 发送的邮件

至此,你拥有了一个带有通知功能的 IoT 设备。回想一下,这个项目通过使用一个Arduino、littleBits cloudBit 、其他的littleBits 模块以及一些现成的电子元器件,实现了一个 IoT 应用。你还可以尝试设置 applet 来显示新的邮件信息,同时把新的观察结果记录下来。在下一个项目中,你将构建一个能够控制各种电路和外设的 WiFi 设备。同时介绍 littleBits 云平台的使用,它可以帮助你监控和控制你的 IoT 原型设备。

公司简介

宜科(天津)电子有限公司是中国工业自动化的领军企业,于2003年在天津投资成立,销售和服务网络覆盖全国。作为中国本土工业自动化产品的提供商和智能制造解决方案的供应商,宜科在汽车、汽车零部件、工程机械、机器人、食品制药、印刷包装、纺织机械、物流设备、电子制造等诸多领域占据领先地位。宜科为智慧工厂的整体规划实施提供自系统层、控制层、网络层到执行层自上而下的全系列服务,产品及解决方案涵盖但不局限于云平台、MES制造执行系统、工业现场总线、工业以太网、工业无线通讯、机器人及智能设备组成的自动化生产线、自动化电气控制系统集成、智能物流仓储系统等,以实现真正智能化的生产制造,从而带来生产力和生产效率的大幅提升,以及对生产灵活性和生产复杂性的管理能力的大幅提升。多年来,宜科以创新的技术、卓越的解决方案和产品坚持不懈地为中国制造业的发展提供全面支持,并以出众的品质和令人信赖的可靠性、领先的技术成就、不懈的创新追求,在业界独树一帜。帮助中国制造业转型升级,加速智能制造进程,成为中国工业4.0智慧工厂解决方案当之无愧的践行者。

更多详情>>

联系我们

  • 联系人:章清涛
  • 热线:18611695135
  • 电话:
  • 传真:
  • 邮箱:18210150532@139.com

Copyright © 2015 ilinki.net Inc. All rights reserved. 智汇工业版权所有

电话:010-62314658 邮箱:service@ilinki.net

主办单位:智汇万联(北京)信息技术有限公司

京ICP备15030148号-1