如何使用Arduino UNO构建物联网通知设备

描述

  物联网世界允许各种电子设备通过无线电波相互交谈。802.11 b/g/n 或 BLE(低功耗蓝牙)等 WiFi 协议允许这些电子设备使用任一通信方案共享数据。ESP8266 和 ESP32 等无线芯片组为制造商和工程师提供了轻松的物联网开发和实验。在本项目系列中,您将使用替代无线平台进行监控并通过控制各种电子电路和小工具来探索物联网概念。

  为了启动这个项目系列,您将构建一个 IoT 通知设备,当外部设备触发时,它会向您的台式 PC、笔记本电脑或移动设备(智能手机或平板电脑)发送电子邮件消息。您将需要一个 Arduino Uno、一个 littleBits cloudBit、一个物联网移动设备应用程序以及一些常见的电子元件和用品。

  零件清单

  触觉按钮开关

  Arduino UNO

  引领

  330Ω电阻,1/4瓦

  1kΩ电阻,1/4瓦

  littleBits cloudBit

  littleBits 原型模块 (2)

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

  littleBits 安装板(参见 littleBits 原型模块链接)

  无焊面包板

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

  跳线

  IFTTT(如果这样然后那样)小程序

ESP8266

  图 1. IoT 通知设备框图。

  什么是 littleBits cloudBit?

  在继续进行项目构建之前,这里有一些关于 littleBits WiFi 模块的有趣技术事实。cloudBit 模块允许各种电子设备和小工具轻松连接到家庭 WiFi 网络。微型模块 PCB 上使用的 IC 技术可实现无线连接,以控制和监控其他 littleBits 模块。

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

ESP8266

  图 2. littleBits cloudBit:用于物联网概念开发的替代 WiFi 模块。图片由 littleBits提供

  littleBits 系统架构包括以下内容:

  电源供应

  设置(按钮开关)

  WiFi 加密狗(USB 主机适配器)

  模拟输入

  模拟输出

  μSD(微型 SD)

  RGB LED(状态)

  512 MB DDR SDRAM(双倍数据速率同步动态随机存取存储器)

  i.MX23 处理器

ESP8266

  图 3. 九个子电路组成cloudBit 系统架构。

  cloudBit 的 WiFi 无线电封装在 USB 适配器内。Dynamode 制造无线电(部件号 WL-700N-XS),它是一种符合 802.11n/g 标准的 WiFi 设备。它的工作频率范围是 2.4 到 2.4835 GHz。该系列将 USB 适配器归入 ISM(工业、科学和医疗)无线设备类别。Dynamode USB WiFi 适配器方便地使用单个 5VDC 电源进行操作,并且仅消耗 0.6W 的功率。

ESP8266

  图 4. cloudBit WiFi 芯片组方便地封装到 USB 适配器中。图片由 Dynamode提供

  基于 WiFi Linux 的软件存储在位于 cloudBit 印刷电路板底部的 μSD 卡上。RGB LED 指示 cloudBit 的操作和设置状态。cloudBit 的设置按钮是一个微小的瞬时开关,可让您启动对家庭网络的检测和连接。该架构的核心组件是 NXP 的i.MX23处理器。

  除了处理外部 I/O 信号外,i.MX23 处理器还具有能够执行无线 (WiFi) 控制活动的内部电子子电路。以帮助 i.MX23 处理器执行这些无线控制功能以处理大量 WiFi数据在 mini pcb 上提供了一个外部 512 MB DDR SDRAM 芯片。DDR SDRAM 的 WiFi 数据传输速率由 16 条地址线、15 条数据线和 13 条控制线支持。模拟 I/O 电路允许 cloudBit 与其他 littleBits 电子模块或开发人员设计的电路的信号调节和电气接线接口。

ESP8266

  图 5. cloudBit WiFi 模块中包含的组件。

  如您所见,cloudBit 模块在一个小封装内提供了大量的无线技术。现在您了解了 cloudBit 的架构,项目的下一步是构建物联网硬件。

  构建物联网通知设备

  我们将使用 Arduino 和一个简单的附加电路来生成用于激活 cloudBit 的触发器。可以对触觉开关进行编程以操作 cloudBit 以发送一封电子邮件或文本消息或连续发送多个。一旦 cloudBit 收到触发器,它将通过您的家庭无线网络向您发送一封电子邮件。

  所以这个项目的第一步是构建触发电路(很简单;你可以使用面包板,如下所示)。

ESP8266

  图 6. Arduino 触发电路接线图。 在硬件或固件中加入开关去抖动是一个好主意。

  这是Arduino触发电路的示意图:

ESP8266

  图 7. Arduino 触发电路原理图。

  构建 Arduino 触发电路后,您现在可以添加 cloudBit 模块了。您将使用 littleBits 组件在 Arduino 触发电路和 cloudBit 之间提供电气接线接口。您将使用的主要电气接线接口组件是原型模块。原型模块提供三个电气连接:接地 (gnd)、信号 (sig) 和 Vcc。

ESP8266

  图 8.原型模块的 电信号。图片由 littleBits 提供

  下图显示了构建 IoT 通知设备所需的所有连接。

ESP8266

  图 9.完整的物联网通知设备电气接线图。

  您还可以在我构建的这个原型中看到各种连接。附加到原型的是一个智能逻辑探针,我设计用于帮助测试 IoT 通知设备。cloudBit 由 littleBits 电源适配器供电。

ESP8266

  图 10.作者的原型物联网通知设备。安装板为 littleBits 模块提供支撑。智能逻辑探针有助于测试原型。

  您现在已经完成了 IoT 通知设备的电气构建。下一个项目步骤是为触发功能添加 Arduino 代码。

  添加 Arduino 代码

  在此项目步骤中,您将代码上传到 Arduino 以使 IoT 通知设备运行。该代码是对 Arduino IDE 中包含的“按钮”草图的修改。修改添加了用于触发 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_cloudBit_trigger.zip

  将代码上传到 Arduino 后,您现在可以将 IFTTT 小程序添加到您的原型 IoT 通知设备。

  添加 IFTTT 小程序

  您可以使用 Facebook、Gmail、Instagram 和 Twitter Web 服务以及微控制器等物理设备,使用为 cloudBit 预构建的 IFTTT 小程序提供触发器。IFTTT小程序是免费的。小程序使用条件语句作为目标服务的操作基础。这里的想法是,当 Arduino 触发 cloudBit 时,您将使用 littleBit 小程序发送电子邮件消息。

ESP8266

  图 11. Arduino 触发 cloudBit 时将发送一封电子邮件。

  为了让您的无线家庭网络检测到 cloudBit,您必须正确设置它。您可以在 littleBits littleBits 网站上找到 有关如何正确设置 cloudBit 的说明。此外,您必须在免费的IFTTT 小程序服务网站上创建一个帐户,才能使用 littleBits 触发您的云模块发送电子邮件。在注册帐户时提供您想用于此项目的电子邮件地址。注册后,您可以使用设置功能修改小程序。我修改了小程序以在电子邮件正文中使用我的别名MrD来处理 cloudBit 无线传输事件。

ESP8266

  图 12. 通过 cloudBit 小程序的成分设置可以方便地更改身体设备名称(“ MrD” )。

  正确配置小程序后,您就可以测试 IoT 通知设备了。

  最后一个考试

  按下面包板上的按钮将使您的 IoT 通知设备向您发送电子邮件消息。该消息将包括您在设置小程序时提供的主题和正文信息。

ESP8266

  图 13.测试原型 IoT 通知设备。

  这是 cloudBit 发送到我的电子邮件地址的消息:

ESP8266

  图 14. cloudBit 发送的电子邮件消息。

  要查看 IoT 通知设备的运行情况,请查看下面的视频剪辑。

  您现在拥有一个功能强大的 IoT 通知设备。正如您可以想象的那样,该项目使用 Arduino、littleBits cloudBit、其他 littleBits 模块和现成的电子元件打开了一个 IoT 应用程序的世界。尝试使用小程序设置来显示新的电子邮件信息。保留一个小型实验室笔记本来记录您的观察结果。在下一个项目中,您将构建一个能够控制各种电子电路和小工具的 WiFi 设备。您还将被介绍到 littleBits 云控制网站,该网站允许您监视和控制您的 IoT 原型。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分