[原创]
【NXP Rapid IoT评测】- NXP Rapid IOT Studio体验
此内容由EEWORLD论坛网友robinqjx原创,如需转载或用于商业用途需征得作者同意并注明出处
【NXP Rapid IoT评测】- NXP Rapid IOT Studio体验
体验了手机蓝牙连接以及云端数据采集之后,该到NXP Rapid IOT Studio去逛逛了。由于NXP Rapid IOT Studio 不支持IE,只能用Chrome 或者其他的支持的浏览器,笔者电脑没装Chrome却刚好有个QQ浏览器,基本不用,打开来试试,也可以用。管他三七二十一,先用了再说。
浏览器输入网址https://rapid-iot-studio.nxp.com 进入Rapid IOT Studio。
输入账号,密码。登录后,其界面和Rapid IOT Android App的界面如出一辙,唯一多了的是Studio的按钮,用户可以在Studio界面对IOT、手机、以及云端数据处理进行自定义编程。
- NXP RAPID IOT—— RAPID IOT设备程序编程
- Application—— 手机应用编程
- Cloud—— 云端数据编程
这也体现了NXP Rapid IOT 的优势,客户可以通过软件更多地定义模块的功能和性能,从而达到开发功能实现的多样性,和个性。
Toggle LED 翻转LED
先对Rapid IOT设备进行编程。来个最简单的,点亮一个LED或者是让一个LED闪烁,刚开始学单片机的人基本上都从这个LED开始的吧。这个就是所谓的Hello LED, 就像文本语言编程的第一个程序Hello World一样。
NXP Rapid IOT Studio 里面就有例子,比较简单,容易上手,依葫芦画瓢就好了。
首先加入几个控件
- Interval
- EmbededNxpRbkRgbled
- EmbededIconLabelDisplay
- EmbededNxpRpkBacklight
然后将Interval和EmbededNxpRbkRgbled 拖拉用连线连接起来,它们之间就有了联系了。 Interval就会产生一个事件触发EmbededNxpRbkRgbled的事件,把Ability的属性改成“Toggle Blue LED”,就可以翻转蓝色的LED了。
Interval 的其他属性不用修改,默认1秒(1000毫秒)。
EmbededIconLabelDisplay是一个静态显示的页面,默认在主页面显示(即0,0)。可以将其他的属性
Page Title -- “Blank Blue LED”
ICON -- “Applications – LED”
EmbededNxpRpkBacklight的Initial Brightness 修改为“Low”,这样可以使套件的背光变暗,当然也可以选择关掉或者其他设置如 Medium 或者High。
点击右上方存盘控件,保存工程文件。
点击右上方锤子控件,编译工程文件。
按照手册说明,连接Rapid IOT到电脑USB口,复位成大容量存储设备。然后将生成的二进制文件下载到Rapid IOT的盘中就好了。
下载完毕,等待几秒钟的时间,套件会自动重启,然后就会以一秒钟的时间翻转蓝色的LED.
整个过程,在网上的 Studio进行,存盘,编译和下载都需要点耐心等待完成,每个步骤完成了会在浏览器正上方有提示。
在Studio中进行图形化的编程的确简单,对于小型的应用来说还是省时省力的。但是其中也有不少缺点,不能撤销,不能复制,每个步骤都要一步步地来,每个控件和属性都要一个个地修改,对于稍微大一点的工程来说,的确是体力活。
图形化的编程NI的Labview是做得最成功的,在测试领域处于全球的领先的地位。
PageControl (翻页)
其实做这个是为了验证一下翻页的功能,在做 Rapid IOT Weather Station 的时候,自己的失误导致某个属性设置有问题,然后翻页就成了问题,一时半会找不到原因,于是试了一下这个工程试验。
关于NXP Rapid IOT显示控件的更多信息,可以查看Atmosphere的网站上有详细介绍。
NXP Display Element Guide 链接:https://developer.atmosphereiot.com/documents/guides/nxpdisplayelementsguide.html
NXP的显示控件:
对于NXP的显示控件来说,看可以有4行6列的内容可以显示,并可以通过不同的页面进行切换。主页位于(0,0)位置。其他的具体属性设置可以自行仔细阅读说明进行修改和设置。
添加如下控件:
- Interval:
- IconPage:x4,
- SX9500Touch,
- EmbededPageController
-
按照连线把控件连接起来。修改相应的属性
Interval:属性不用修改
IconPage: x4,
分别修改Page Title为
- “Page_0-0”,
- “page_1-0” ,
- “page_2-0” ,
- “page_3-0”
SX9500Touch:
Triggers 事件触发 EmbededPageGontroller
Right Press—— Navigate Right
Left Press—— Navigate Left
保存工程文件,编译,并下载到Rapid IOT 中。待套件复位之后就可以通过左右按键来切换不同的页面了。
Weather Station (气象站)
NXP Rapid IOT (Weather Station)
这个事例来自与Rapid IOT Studio 的例程。用户可以直接编译下载到Rapid IOT 套件里面。
笔者通过从无到有的过程模仿了此例程。首先是各种空间的添加,属性设置以及其触发关系的连接。具体过程不在一一说明,大家有时间可以自行按部就班地学习。
其中需要注意的几点问题:
BLEGattCharacteristic 的设置:
ReadEnable
WriteEnable
NotifyEnable
Triggers 设置
TemperatureCloudData
AbilitySend Event
ValuereadData
读数据类型的设置:
TemperatureCharacteristic
Read Data TypeFloating Point(32-bit)
Write Data TypeFloating Point(32-bit)
Notify Data TypeFloating Point(32-bit)
Triggers 设置
TemperatureCloudData
AbilitySend Event
ValuereadData
TemperatureLabel
AbilitySet Text
ValuereadData.toFixed(1) + " °C"
HumidityCharacteristic
Read Data TypeFloating Point(32-bit)
Write Data TypeFloating Point(32-bit)
Notify Data TypeFloating Point(32-bit)
Triggers 设置
HumidityCloudData
AbilitySend Event
ValuereadData
HumidityLabel
AbilitySet Text
ValuereadData.toFixed(1) + " %"
PressureCharacteristic
Read Data TypeUnsigned Integer
Write Data TypeUnsigned Integer
Notify Data TypeUnsigned Integer
Triggers 设置
PressureCloudData
AbilitySend Event
ValuereadData
PressureLabel
AbilitySet Text
ValuereadData + " hPa"
AmbientLightCharacteristic
Read Data TypeUnsigned Integer
Write Data TypeUnsigned Integer
Notify Data TypeUnsigned Integer
Triggers 设置
AmbientLightCloudData
AbilitySend Event
ValuereadData
AmbientLightLabel
AbilitySet Text
ValuereadData + " lx"
AirQualityCharacteristic
Read Data TypeUnsigned Integer
Write Data TypeUnsigned Integer
Notify Data TypeUnsigned Integer
Triggers 设置
AirQualityCloudData
AbilitySend Event
ValuereadData
AirQualityLabel
AbilitySet Text
ValuereadData + " ppb"
此外,几个获得传感器的字符串的函数代码需要添加:
ATMO_Status_t GetTempStr_trigger(ATMO_Value_t *in, ATMO_Value_t *out) {
float temp = 0;
ATMO_GetFloat(in, &temp);
char str[32];
sprintf(str, "%.1f C", temp);
ATMO_CreateValueString(out, str);
return ATMO_Status_Success;
}
ATMO_Status_t GetHumidityStr_trigger(ATMO_Value_t *in, ATMO_Value_t *out) {
float temp = 0;
ATMO_GetFloat(in, &temp);
char str[32];
sprintf(str, "%.1f %%rh", temp);
ATMO_CreateValueString(out, str);
return ATMO_Status_Success;
}
ATMO_Status_t GetPressureStr_trigger(ATMO_Value_t *in, ATMO_Value_t *out) {
int temp = 0;
ATMO_GetInt(in, &temp);
char str[32];
sprintf(str, "%d hPa", temp);
ATMO_CreateValueString(out, str);
return ATMO_Status_Success;
}
ATMO_Status_t GetLightStr_trigger(ATMO_Value_t *in, ATMO_Value_t *out) {
int temp = 0;
ATMO_GetInt(in, &temp);
char str[32];
sprintf(str, "%d lx", temp);
ATMO_CreateValueString(out, str);
return ATMO_Status_Success;
}
ATMO_Status_t GetAirQualityStr_trigger(ATMO_Value_t *in, ATMO_Value_t *out) {
int temp = 0;
ATMO_GetInt(in, &temp);
char str[32];
sprintf(str, "%d ppb", temp);
ATMO_CreateValueString(out, str);
return ATMO_Status_Success;
}
ATMO_Status_t ConvertPressur_trigger(ATMO_Value_t *in, ATMO_Value_t *out) {
unsigned int pressurePa = 0;
ATMO_GetUnsignedInt(in, &pressurePa);
ATMO_CreateValueUnsignedInt(out, pressurePa / 100);
return ATMO_Status_Success;
}
SX9500Touch 的触发需要设置。
之后就是存盘,编译下载到Rapid IOT 套件了。复位之后一切运行正常,和例子的一样。
Rapid IOT Studio Appplication(Weather Station)
Rapid IOT套件可以正常使用了,下一步是将蓝牙数据显示到手机上。在Application里加入控件,图片控件(可以使用给自己喜欢的个性控件),并设置相应的属性。
没有太多需要特别注意的地方或者设置,用户可以按照设置一步步地完成即可。
不得不说的是,它的对齐方式只能通过一个个的属性设置来保证控件是对齐的,就没有一个菜单可以左右,上下,居中对齐的,这样可以省太多的事情了。
不同的客户手机(平板)需要添加并在相应的界面里面呢再次调整好。也就是说有不同的尺寸的手机,会显示不一样的界面,你可以按照自己的喜好来调整。
没关系,体力活而已,按照各种控件摆放好并且设置好相应的属性之后存盘,编译,下载到Rapid IOT 套件里。等待重启。
在手机端,开启蓝牙,启动Rapid IOT App,添加设备。显示如图:
至此,完成了手机端接收蓝牙功能的编程体验。
Rapid IOT Studio Cloud (Weather Station)
完成了蓝牙传输功能之后,再添加数据到云端服务器吧。
这个功能在Rapid IOT Studio中实现起来很简单,只要在Application中在原来的项目里面添加CloudEvent上传数据到云端的控件,简单设置即可。
如下图,添加5个CloudEvent控件并重命名为:
- TemperatureCloudData
- HumidityCloudData
- PressureCloudData
- LightCloudData
- AirQualityCloudData
通过连线设置为由每个传感器的蓝牙传输触发。
设置属性为:
- Ability —— “Send Event”
- Value —— “Read Data”
完成了Application 的编程之后,就要对Cloud进行编程,数据处理了,也很简单,将每个CouldEvent 事件触发存储数据即可。如下图:
完成之后,存盘,编译然后下载,等待Rapid IOT 自动复位重启。
然后通过手机连接Rapid IOT套件,之后就可以在另外的手机,IPAD或者浏览器上访问云端的数据。
【NXP Rapid IoT评测】- NXP Rapid IOT Studio体验【完】
本帖最后由 robinqjx 于 2019-2-13 10:55 编辑
暂无评论,赶紧抢沙发吧