Ameba Arduino: [RTL8195] [RTL8710] Cloud – 向 Xively Cloud 上传PM2.5数据

我们提供了Xively相关的API 来支持向Xively云端获取或上传数据的解决方案。

材料准备

  • Ameba x 1
  • PlanTower PMS3003 (or PMS5003) x 1
连接 Sensor
将Ameba与PMS3003 (or PMS5003)连接起来。详情请参考 Example: 读取目前的PM2.5空气悬浮粒子读数
1

RTL8710 的接线图如下:
1

Xively 准备
若还没有Xively的帐户,可以到 https://personal.xively.com/signup/ 注册。

  • Add device

点击“DEVELOP“的标签,选择'Add Device'的按键。
2

  • Get Feed ID and API Key

“Add Device”完成后,可以在该页面上看到我们所需要的所有讯息(Feed ID 以及API key),在之后的范例中会用到。
3

 

数据结构说明

为了结合提供的Andr​​oid APP使用Xively,我们规范了Xively的数据结构。以PM2.5的实例为例,PMS3003 (or PMS5003) sensor一共提供了3组数据:PM1.0, PM2.5 和PM10。因此对于此设备,供需要Xively的4个Channel来存放数据。

  • 设定此设备的Friendly name

每个设备都会占用一个Channel 用来设定一个Friendly name。这个Friendly name会提供给Android APP用作显示以及识别这个设备的标示。
格式:{Channel Name: 此设备的物理地址(MAC ADDRESS), Value: 定义给这个设备的名字}。

  • 设定此设备的数据

存放数据的Channel name共有四部分组成,格式为:
{MAC(12)}_{R/W(1)}{datatype(1)}_{displayed channel name}
MAC: 设备的的物理地址(MAC ADDRESS)
R/W: 数据对于APP的权限 R: 只读(read only); W: 可写(write and read)
Datatype: 存放的数据类型,目前有四种:i/f/s/t ( i: integer; f: float; s: string; t: on/off)
Displayed channel name: 该数据在手机APP上显示的名称

  • An example

4

范例说明

此范例会将PMS3003 (or PMS5003) sensor提供的PM1.0, PM2.5 以及PM10三组数据上传到Xively,并利用Android APP来从手机端读取相应的数值。首先确定板子是Ameba, “Tools” -> “Board” -> “Arduino Ameba”,以及确认是正确的port。
然后打开 Upload PM2.5 Data的范例, “File” -> “Examples” -> “AmebaXively” -> “WiFiUploadPM2.5Data”
5

这个范例需要使用到网路, 所以要将ssid, pass填入要连上的AP资讯, 并修改连线的方式。
红色标记的部分为网路的相关设定。
粉色标记的部分为Xively的相关设定,将xivelyFeed 后的“YourFeedID”改为自己的Feed ID, “YourAPIKEY”改为自己的API KEY。
黄色标记的部分为此设备的Friendly name,可自行更改为所需的名字。
接着编译程式码并上传到Ameba, 按下Reset按钮。打开Serial Monitor,可以看到上传的资讯。
6

在Xively的网页页面上,可以看到目前的数值:
7

Android APP的使用
“My Cloud” APP 可以通过Xively的Username和password来登入Xively帐户,并从中获取符合Ameba规定的数据结构的数据。
我们将以本次范例为例演示如何使用“My Cloud” APP。
目前My Cloud还在进行APP上架程序中,如果需要请先下载安装: My Cloud

  • 添加云端帐户

目前此APP仅支援Xively,之后会添加Firebase等云端服务。点击右下角粉色的“+”来添加帐户。输入Username和password。
8

添加成功后会有Xively的图标显示:
9

  • 删除帐户或更改帐户名称

长按图标可选择“更改帐户名称”或者“删除帐户”
10

  • 读取Xively帐户内的数据

点击想要读取的帐户图标
11

  • 更新数据

按着显示数据的部分将屏幕向下拉,APP将要去获取最新的数据。
12