IoT 项目:Arduino 向 Android 发送推送通知

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

例如,我们将构建一个基于 Arduino 和 Android 的报警系统。这是 物联网 (IoT) 的一个有趣示例,该项目的目的是使用连接到 Arduino 板的 红外传感器 (PIR) 构建警报 ,该警报将推送消息发送到 Android 智能手机。这个项目混合了不同的技术和平台,我们让它们一起工作!

警报系统 使用两个平台来帮助简化项目:

  • 天布
  • 解析网

物联网项目概览

在深入研究该项目之前,描述这两个平台是很有用的。

Temboo 是一个具有一组“连接器”的平台,可用于与其他平台或服务提供商(即 eBay、Yahoo! Weather、Google 等)交换数据。 Temboo 的有趣之处在于它与 Arduino 板 兼容,因此这些连接器可以在 Arduino 上导出。

Parse.com 是我们在上一篇文章中用于 发送 android 推送消息的 平台。


物联网项目 的主要概况如下图所示:



很明显,构建物联网项目有几个部分。第一部分是 带有 PIR 传感器的 Arduino 板,用于检测运动 。 Arduino 运行一个将数据发送到 Parse 平台的 Temboo 代理 。当其中一个 Arduino 数字输入变为高电平时,将触发此代理。 Temboo 平台用于在不编写太多代码行的情况下创建代理。使用 Temboo choreo ,Arduino 可以将 JSON 数据直接发送到 Parse.com,后者又将推送消息发送到我们的智能手机。

阿杜诺素描

第一步是设置使用 PIR 传感器的 Arduino 草图并对其进行测试。这一步非常简单,我们必须使用三根线将传感器连接到 Arduino 板:电源、地线和信号线。

传感器非常简单 ,当它检测到运动时输出变高。对于这个例子,我们可以假设它连接在 数字引脚 8 上。

要检查我们的传感器是否正常工作并且它以正确的方式连接到 Arduino 板以便它检测运动,请尝试将此代码加载到 arduino 中:


 int stato = 0;

void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(8, INPUT); }

void loop() { // put your main code here, to run repeatedly: stato = digitalRead(8);

Serial.println(stato); delay(500);

}


现在运行代码并将您的手移到传感器前面并查看串行监视器以检查它是否有效!

现在 Arduino 组件已准备就绪!

天布舞蹈

下一步是设置将 Arduino 板连接到 Parse.com 的 代理。在这种情况下,我们需要一个以太网扩展板来将 Arduino 连接到互联网 。我用过 Wiznet W5500 。创建帐户后,就可以配置您的 Temboo 杂务 了。我们想将 Arduino 连接到 Parse,所以我们检查 Parse -> Push Notification 。 Parse choreoos 在使用之前需要一些信息:

  • 申请编号
  • RestAPI 密钥

这两个参数用于将代理连接到 Parse.com。您可以在 Parse.com 中找到这些信息:






您必须将所需的密钥复制到 Temboo 中:



好的,我们准备好了。如果您愿意,可以尝试从 Temboo 向 Parse.com 发送通知。

现在设置控制代理的触发器:



最后 ,Temboo 将创建可供使用的 Arduino 代码 !!最后将代码复制并粘贴到您的 Arduino IDE 中。

Temboo生成的代码如下所示:


 int stato = 0;

void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(8, INPUT); }

void loop() { // put your main code here, to run repeatedly: stato = digitalRead(8);

Serial.println(stato); delay(500);

}

配置 Parse.Com 频道并构建 Android 应用程序

Temboo 要求我们使用 Parse 通道来发送我们的通知 。然后我们必须修改我们的 Android 应用程序以使用通道来收听传入的通知。如果您不知道如何编写处理推送消息的 Android 应用程序,您可以阅读我之前的帖子,其中描述了 如何使用 Parse.com 发送 Android 推送消息

以这种方式稍微修改 ParseTutorialApplication.java:


 int stato = 0;

void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(8, INPUT); }

void loop() { // put your main code here, to run repeatedly: stato = digitalRead(8);

Serial.println(stato); delay(500);

}


其中 temboo 是通道。
我们准备好了!!运行应用程序并将您的手靠近传感器, Arduino 将向 Android 智能手机发送一条推送消息
最终结果显示在这里:



在这篇文章的最后,您将了解如何 使用 Arduino 和 Android 构建物联网项目,以及如何通过 Temboo 和 Parse.com 整合这两个生态系统