在国际中,各种电子设备经过无线电通讯。比方根据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
图1物联网告诉设备体系框图 littleBits cloudBit 模块介绍
在正式构建项目之前,你需求先了解一下 littleBits 这个很有意思的 WiFi 模块。cloudBit模块使得各种电子设备和器材能够轻松衔接到家庭WiFi网络。这个模块十分细巧,依托它 PCB 板上的 IC 技能可轻松完成联网,然后监控和操控其他的 littleBits 模块。
此外,硬件开发套件(HDK)也为 littleBits 以外的模块供给电路接口。cloudBit模块的体系架构由9个子电路组成。
图2 littleBits cloudBit:用于IoT原型开发的WiFi模块
littleBits 体系架构包括如下内容:
电源
Setup 按键
WiFi无线网卡(USB HOST)
模仿输入
模仿输出
micro SD 卡(用于装置Linux软件)
RGB LED
512M DDR
i.MX23 处理器
图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。
图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 模块以及开发者自研的电路树立衔接,然后完成信号传输和调制。
图5 cloudBit WiFi 模块的组件
如你所见,cloudBit 模块尺度细巧,供给的无线功用却不失强壮。经过上文你应当现已大致了解了 cloudBit 的架构,那么接下来就能够开端着手构建 IoT 硬件了。
构建 IoT 告诉设备
咱们将运用 Arduino 调配简略的外围电路来完成一个激活 cloudBit 的触发器。对触觉开关进行编程,能够使其触发 cloudBit 发送邮件、短信或许履行其他愈加丰厚的动作。当 cloudBit 接收到触发信号时,它将经过你的家庭网络履行发送邮件的动作。
因而,该项意图第一步便是建立触发电路(很简略,你能够运用面包板,如下图所示)。
图6 Arduino触发电路连线图。需求留意参加 切换开关
这是 Arduino 触发电路的原理图:
图7 Arduino 触发电路原理图
Arduino 触发电路建立结束,就能够增加 cloudBit 模块了。运用 littleBits 组件供给衔接 Arduino 触发电路和 cloudBit 模块的电气接口。proto-module 是首要运用的组件,它有三个引脚:接地(gnd)、信号(sig)和Vcc。
图8 proto-module 的信号引脚图
下图展现了构建 IoT 告诉设备所需的一切连线状况。
图9 IoT 告诉设备的完好电气连线图
根据这个原型能够建立出多种衔接办法的体系。我经过给这个原型附加一个智能逻辑探针,建立了下图所示的体系,用于测验整套 IoT 告诉设备的工作,其间 cloudBit 由littleBits 电源适配器供电。
图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 得到触发的条件句子将履行发送邮件的操作。
图11 Arduino 触发 cloudBit 发送邮件
只要正确地设置 cloudBit ,它才干被你的家庭无线网络检测到。关于 cloudBit 的设置办法, littleBits website 供给了具体阐明。此外,你需求在 IFTTT applet service website 创立一个免费的账户,以便运用 littleBits 触发你的 cloud 模块发送电子邮件。在注册帐户时,必须供给你要用于该项意图邮件地址。注册之后,你能够运用设置功用修正 applet。在本例中,我修正了 applet 中 cloudBit 无线传输事情,我把我的别号 MrD 增加在了邮件正文中。
图12 经过 cloudBit applet 供给的设置办法,很便利就把邮件正文中设备称号改为”MrD”
applet 装备正确之后,就能够测验你的 IoT 告诉设备了。
终究测验
按下面包板上的按钮将促进你的 IoT 告诉设备向你发送电子邮件,邮件内容将由主题和你在 applet 中设置的正文组成。
图13 IoT 告诉设备原型测验
以下是 cloudBit 发送到我邮箱的音讯内容:
图14 cloudBit 发送的邮件
至此,你具有了一个带有告诉功用的 IoT 设备。回想一下,这个项目经过运用一个Arduino、littleBits cloudBit 、其他的littleBits 模块以及一些现成的电子元器材,完成了一个 IoT 运用。你还能够测验设置 applet 来显现新的邮件信息,一起把新的调查成果记录下来。鄙人一个项目中,你将构建一个能够操控各种电路和外设的 WiFi 设备。一起介绍 littleBits 云渠道的运用,它能够协助你监控和操控你的 IoT 原型设备。