作为该系列的启动项目,首先你将构建一个 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
littleBits cloudBit 模块介绍
在正式构建项目之前,你需要先了解一下 littleBits 这个很有意思的 WiFi 模块。cloudBit模块使得各种电子设备和器件能够轻松连接到家庭WiFi网络。这个模块非常小巧,依靠它 PCB 板上的 IC 技术可轻松实现联网,从而监控和控制其他的 littleBits 模块。
此外,硬件开发套件(HDK)也为 littleBits 以外的模块提供电路接口。cloudBit模块的系统架构由9个子电路组成。
- 电源
- Setup 按键
- WiFi无线网卡(USB HOST)
- 模拟输入
- 模拟输出
- micro SD 卡(用于安装Linux软件)
- RGB LED
- 512M DDR
- i.MX23 处理器
除了处理外部 IO 信号以外,i.MX23 处理器的内部电路提供无线(WiFi)控制功能。cloudBit 模块通过外扩一个 512M DDR SDRAM 芯片,来帮助 i.MX23处理器更好地处理大量的 WiFi 数据。DDR SDRAM 的 WiFi 数据传输速率需要 16条地址线、15条数据线和13条控制线的支持。 cloudBit模块通过模拟 IO 口和其他 littleBit 模块以及开发者自研的电路建立连接,从而实现信号传输和调制。
构建 IoT 通知设备
我们将使用 Arduino 搭配简单的外围电路来实现一个激活 cloudBit 的触发器。对触觉开关进行编程,可以使其触发 cloudBit 发送邮件、短信或者执行其他更加丰富的动作。当 cloudBit 接收到触发信号时,它将通过你的家庭网络执行发送邮件的动作。
因此,该项目的第一步就是搭建触发电路(很简单,你可以使用面包板,如下图所示)。
添加 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 得到触发的条件语句将执行发送邮件的操作。
最终测试
按下面包板上的按钮将促使你的 IoT 通知设备向你发送电子邮件,邮件内容将由主题和你在 applet 中设置的正文组成。
评论