[原创]
【NXP Rapid IoT评测】+9.NXP Rapid IOT的使用心得
基于Rapid IoT Weather Station进行了一个设计,将套件和APP上的应用改成自己想要的那种,一路走来踩了不少坑,分享一些在Studio画布上连线时的操作步骤:
(1):在设置SX9500时,在TRIGGERS中,Up/Down/Left/Right Pressed依次设置为Navigate Up/Down/Left/Right,此时连接页面控制器才能控制页面的上下左右切换;
(2):同理,若在程序中需使用四个按键的控制,在Buttons的TRIGGERS中,将Top Right Pushed,Bottom Right Pushed等四个依次设置为Process Top Right Button,Process Bottom Right Button等可编程的按键,接下来在需按键时,便可进行控制;
(3):这个是系统状态页,内包含套件名称、蓝牙、电量、时间等,用来做套件的主页挺方便的;
(4):显示页面可在右侧栏PROPERTIES的ICON中选择页面上的图标,可ENABLE使能相应的Button,选择所触发的事件;
(5):若只分析作为控制传感器的开关,在右侧栏PROPERTIES设置TRIGGERS时,应对开被选择和关被选择On Selected/Off Selected,依次设置相应的使能enable或不使能disable等功能;
(6):在其中添加相应的实现函数,以实现相应的功能,比如在套件全部功能的Example例程中,切换LED颜色的控制代码如下,
- ATMO_Status_t Function2_trigger(ATMO_Value_t *in, ATMO_Value_t *out)
- {
- uint8_t color, brightness;
- RGB_Led_Get_State(&brightness, &color);
- ATMO_CreateValueUnsignedInt(out, color);
- return ATMO_Status_Success;
- }
- ATMO_Status_t Function1_trigger(ATMO_Value_t *in, ATMO_Value_t *out)
- {
- unsigned int color = 0;
- ATMO_GetUnsignedInt(in, &color);
- switch(color)
- {
- case RGB_LED_COLOR_RED:
- {
- ATMO_CreateValueString(out, "Color: Red");
- break;
- }
- case RGB_LED_COLOR_GREEN:
- {
- ATMO_CreateValueString(out, "Color: Green");
- break;
- }
- case RGB_LED_COLOR_BLUE:
- {
- ATMO_CreateValueString(out, "Color: Blue");
- break;
- }
- case RGB_LED_COLOR_WHITE:
- {
- ATMO_CreateValueString(out, "Color: White");
- break;
- }
- case RGB_LED_COLOR_CYAN:
- {
- ATMO_CreateValueString(out, "Color: Cyan");
- break;
- }
- case RGB_LED_COLOR_YELLOW:
- {
- ATMO_CreateValueString(out, "Color: Yellow");
- break;
- }
- case RGB_LED_COLOR_PURPLE:
- {
- ATMO_CreateValueString(out, "Color: Purple");
- break;
- }
- case RGB_LED_COLOR_BLACK:
- {
- ATMO_CreateValueString(out, "Color: Off");
- break;
- }
- default:
- {
- ATMO_CreateValueString(out, "Color: Unknown/Custom");
- break;
- }
- }
- 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;
- }
(7):蓝牙设置为读,可读取相应的传感器数据传送至手机APP端,设置为写时,可从APP获得相应的控制,如控制点亮LED灯;
(8):页面坐标规划可以在一张纸上粗略的画下,那样在分布页面坐标系的时候,就较为方便了;
在APPLICATION页面和手机端的页面如下图:
我无聊般的把所有的图片都接到蓝牙去控制RGB了,Value设置0~7对应红绿蓝等七个预置颜色,7是OFF,关闭LED;
本来想通过APP蓝牙控制触摸按键的上下左右,或者按键和开关,结果没有做成功,出现了许多错误,近来事比较多,估计得暂时放下一段时间了,手机app端和云端会继续关注,继续学习,努力ing...很不错的Atmosphere平台,这次学到了很多东西,谢谢EEWORLD和NXP的支持。
我爱学习!
此内容由EEWORLD论坛网友chrisrh原创,如需转载或用于商业用途需征得作者同意并注明出处
本帖最后由 chrisrh 于 2019-1-24 13:04 编辑
暂无评论,赶紧抢沙发吧