nb-iot

这篇文章介绍了如何创建一个IoT项目,项目使用Arduino通过Temboo和Parse.com将推送消息发送到Android智能手机。 例如,我们将构建一个基于Arduino和Android的警报系统,这是一个有趣的物联网(IoT)示例,该项目的目的是使用连接到Arduino板上的红外传感器(PIR)来构建警报将消息推送到Android智能手机。 该项目融合了不同的技术和平台,我们使它们一起工作!

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

  • 滕博
  • Parse.com

物联网项目概述

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

Temboo是一个平台,具有一组“连接器”,可用于与其他平台或服务提供商(例如eBay,Yahoo!Weather,Google等)交换数据。 Temboo有趣的部分是它与Arduino开发板,以便这些连接器可以在Arduino上导出。

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

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

显而易见,构建物联网项目由多个部分组成。 第一部分是带有PIR传感器的Arduino板,用于检测运动。 Arduino运行一个Temboo代理,该代理将数据发送到Parse平台。 当Arduino数字输入之一变高时,将触发此代理。 Temboo平台用于创建代理,而无需编写过多的代码行。 借助Temboo choreo ,Arduino可以将JSON数据直接发送到Parse.com,后者再将推送消息发送到我们的智能手机。

Arduino素描

第一步是设置使用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组件已准备就绪!

Temboo choreo

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

  • 申请编号
  • RestAPI密钥

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

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

好,我们准备好了。 如果需要,您可以尝试从Temboo发送通知到Parse.com。

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

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

Temboo生成的代码如下所示:

#include
#include <dhcp.h>
#include <dns.h>
#include <ethernet.h>
#include <ethernetclient.h>
#include <temboo.h>
#include "TembooAccount.h" // Contains Temboo account informationbyte ethernetMACAddress[] = ETHERNET_SHIELD_MAC;
EthernetClient client;// The number of times to trigger the action if the condition is met
// We limit this so you won't use all of your Temboo calls while testing
int maxCalls = 10;// The number of times this Choreo has been run so far in this sketch
int calls = 0;int inputPin = 8;IPAddress ip(192, 168, 1, 130); // Arduino IP Addvoid setup() {Serial.begin(9600);// For debugging, wait until the serial console is connecteddelay(4000);while(!Serial);Ethernet.begin(ethernetMACAddress, ip) ;Serial.println("OK");delay(5000);// Initialize pinspinMode(inputPin, INPUT);Serial.println("Setup complete.\n");
}void loop() {int sensorValue = digitalRead(inputPin);Serial.println("Sensor: " + String(sensorValue));if (sensorValue == HIGH) {if (calls < maxCalls) {Serial.println("\nTriggered! Calling SendNotification Choreo...");runSendNotification(sensorValue);calls++;} else {Serial.println("\nTriggered! Skipping to save Temboo calls. Adjust maxCalls as required.");}}delay(250);
}void runSendNotification(int sensorValue) {TembooChoreo SendNotificationChoreo(client);// Set Temboo account credentialsSendNotificationChoreo.setAccountName(TEMBOO_ACCOUNT);SendNotificationChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);SendNotificationChoreo.setAppKey(TEMBOO_APP_KEY);// Set profile to use for executionSendNotificationChoreo.setProfile("ParseAccount");// Set Choreo inputsString NotificationValue = "{\"channel\": \"temboo\", \"type\": \"android\", \"data\": {\"message\": \"This is a test alert!\"}}";SendNotificationChoreo.addInput("Notification", NotificationValue);// Identify the Choreo to runSendNotificationChoreo.setChoreo("/Library/Parse/PushNotifications/SendNotification");// Run the Choreounsigned int returnCode = SendNotificationChoreo.run();// Read and print the error messagewhile (SendNotificationChoreo.available()) {char c = SendNotificationChoreo.read();Serial.print(c);}Serial.println();SendNotificationChoreo.close();
}

配置Parse.com频道并构建Android应用

Temboo要求我们使用“解析”通道发送通知。 然后,我们必须修改我们的Android应用程序以使用渠道来监听传入的通知。 如果您不知道如何编写处理推送消息的android应用程序,则可以阅读我以前的文章,其中介绍了如何通过Parse.com发送android推送消息。

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

@Overridepublic void onCreate() {super.onCreate();System.out.println("Application");Parse.initialize(this, "sfFzOxotpsdOHWJE3nMmD0erLgFoecttKvC9CzIc", "nwbMEy7l4STpyNrABdrQxpEjdKIynSbuec56QbEz");ParseInstallation.getCurrentInstallation().saveInBackground();ParsePush.subscribeInBackground("temboo");}

其中temboo是通道。

我们准备好了!! 运行该应用程序并将您的手移到传感器附近, Arduino会向Android智能手机发送推送消息

最终结果如下所示:

在本文的最后,您知道如何使用Arduino和Android构建IoT项目,以及如何通过Temboo和Parse.com集成这两个生态系统

翻译自: https://www.javacodegeeks.com/2015/09/iot-project-arduino-sends-push-notification-to-android-using-temboo-parse-com.html

nb-iot

nb-iot_IoT项目:Arduino使用Parse.com的Temboo向Android发送推送通知相关推荐

  1. (转)iOS开发资源:推送通知相关开源项目--PushSharp、APNS-PHP以及Pyapns等

    PushSharp  (github) PushSharp是一个实现了由服务器端向移动客户端推送消息的开源C#库,支持 iOS (iPhone/iPad APNS). Android (C2DM/GC ...

  2. idea 代码第一次上传git_如何使用IDEA将项目代码首次上传至GitHub,并持续推送?...

    注册GItHub用户,并成功登陆 image.png image.png 相信大家对这两步操作都没有什么疑问,关于github账号的注册和登陆就不再赘述了~ 本地安装GIT 1. GIT官网地址:ht ...

  3. Android 项目必备(三十八)-->APP 消息推送

    文章目录 前言 推送的实现方式 1. C2DM 2. 轮询 3. SMS信令推送 4. MQTT协议 5. XMPP协议 6. 使用第三方平台 Android 中 MQTT 的使用 1. 集成 2. ...

  4. java内网推送app,java – 使用来自app-engine的Parse发送推送通...

    Parse公开了一个RESTful API,您可以使用与您的示例类似的方式(稍微调整). 使用解析进行推送通知时,您希望发送内容的每个用户都由向Parse注册的"安装"对象表示.你 ...

  5. Arduino使用HM-10蓝牙模块向uniapp小程序推送数据采坑总结

    序言 序言不会写,怎么简单怎么来,主要讲蓝牙向手机app传递数据怎么爬坑 概括 Ble蓝牙和uniapp数据互传的玩法,一般都是以下几步 1.初始化蓝牙 uni.openBluetoothAdapte ...

  6. android华为推送不显示角标,V6项目集成华为推送流程和角标显示处理

    (一) 集成资料 3.华为官方QQ群:662059980 (二) V6项目集成步骤和代码说明 1.华为官网申请PUSH服务: 1.1申请 点击申请按钮进行申请 1.2提交应用信息 填写应用信息后提交 ...

  7. vue前端项目中使用@microsoft/signalr实现与后端实时消息推送

    package.json中引入依赖signalr "devDependencies": { "@microsoft/signalr": "^6.0.0 ...

  8. 【已解决】Java 项目中利用 Redis 配合 Lua 脚本对短信推送消息做推送限制

  9. 本地新项目如何推送到gitlab仓库

    一.背景介绍 很多时候我们都是在gitlab上拉取现有的项目下来做开发.但是假设一个新项目由你来搭建项目框架,你本地新建项目,也搭好了初始化的项目框架.现在需要把这个项目放到公司gitlab仓库中,方 ...

最新文章

  1. 系统集成项目管理工程师软考辅导——3年真题透解与全真模拟
  2. 文本基线怎样去掉_ICML 2020 | 基于类别描述的文本分类模型
  3. 盒子模型+浮动布局+定位布局
  4. wmi接口如何通过Win32_Volume类修改盘符
  5. springboot打war包汇总
  6. 前端学习(654):优化插件
  7. nutch mysql solr_Nutch2.1+mysql+solr3.6.1+中文网站抓取
  8. mysql是否需要设置外键_数据库到底需不需要设置外键?
  9. matlab-plot绘制点线图
  10. java中定义存放汉字的数组_Java中如何存储汉字
  11. 程序代码中,怎么区分status和state?
  12. 使用 Python 第三方库发送电子邮件
  13. 【Unity3D开发小游戏】《青蛙过河》Unity开发教程
  14. HR面试问题-你的缺点是什么?
  15. 常见编程代码命名风格
  16. iOS逆向-支付宝基金之统计实时收益
  17. axios每次发送请求会有两次,多一次Request Method: OPTIONS是怎么回事?
  18. 720_vr全景3D环物制作教程
  19. Project build error: Non-parseable POM D:\code\pom.xml: expected start tag name and not
  20. 英文输入时的自动补全功能

热门文章

  1. php有几个单词,PHP-如何选择一个句子的前10个单词?
  2. 2017“CCF科学技术奖”全公布,6位获奖人带来独家经验分享
  3. 千亿元宇宙市场,Soul、映客的新动力
  4. 程序人生:企业网站解决方案
  5. 数学建模02 —— 多属性决策模型
  6. android 仿微信通知栏
  7. 一行代码完成Java的Excel读写
  8. intellij idea中插件的安装方法及推荐
  9. upc 个人训练赛第三场:排课表(容斥原理+组合数学)
  10. 【APIO2016】烟火表演(可并堆)(折线DP)