社区导航

 

搜索
查看: 307|回复: 10

[原创] 【NXP Rapid IoT评测】+ 使用离线IDE构建显示传感器信息的应用

[复制链接]

92

TA的帖子

1

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-1-2 17:53:02 | 显示全部楼层 |阅读模式
使用离线的IDE开发能够更灵活。本次实现了温湿度、光强、空气质量、电量和充电状态的采集,并通过屏幕显示出来。
123.png

在提供的模板例程中使用了操作系统。操作系统使用的是Freertos,但是其在rtos上又构建了一个抽象层。其入口是在
  1. void main_task(uint32_t param)
复制代码
这个函数中。因此我也在这函数中新建了两个任务,获取数据的任务与显示任务。
  1. OSA_TASK_DEFINE(get_data_task, OSA_PRIORITY_NORMAL, 1, 1600, 0)  ;
  2. OSA_TASK_DEFINE(display_task, OSA_PRIORITY_LOW, 1, 1600, 0)  ;
复制代码


获取数据的任务是没100ms获取一次各数据。代码没有进行优化,写的有点乱,大家先参考一下。
获取温湿度的代码:
  1. void get_temp_and_humity(int32_t *temp, int32_t *humity)
  2. {
  3.         ens210_meas_data_t data;
  4.         ENS210_Measure(mode_TH,&data);
  5.         *temp = data.T_Celsius;
  6.         *humity = data.H_Percent;
  7. }
复制代码



获取空气质量,也就是获取CO2浓度的代码:
  1. void get_co2(int32_t *air)
  2. {
  3.         uint8_t ready;
  4.         uint16_t uCO2;

  5.         CCS811_dataAvailable(&ready);
  6.         if (ready == 1) {
  7.             CCS811_readAlgorithmResults();
  8.             uCO2 = CCS811_getCO2();
  9.             *air = uCO2;
  10.         }
  11. }
复制代码

获取光强:
  1. void get_light(int32_t *light)
  2. {
  3.         float temp_light = 0;
  4.         TSL2572_ReadAmbientLight(&temp_light);
  5.         TSL2572_ClearALSInterrupt();
  6.         *light = (int32_t) temp_light;
  7. }
复制代码

获取电量百分比与充电状态:
  1. void get_battery(int32_t *power_state,char *charge_state_string)
  2. {
  3.         uint8_t bat_level,bat_state;
  4.         BatterySensor_GetState(&bat_level, &bat_state);
  5.         if(bat_state == 0){
  6.                 sprintf(charge_state_string,"    ");
  7.         }else{
  8.                 sprintf(charge_state_string,"!   ");
  9.         }
  10.         *power_state = bat_level;
  11. }
复制代码



获取数据任务的代码:
  1. void get_data_task(uint32_t param)
  2. {
  3.         while(1){
  4.                 get_temp_and_humity(&temp,&humity);
  5.                 get_light(&light);
  6.                 get_co2(&air);
  7.                 get_battery(&power,charge_state);
  8.                 OSA_TimeDelay(100);
  9.         }
  10. }
复制代码

显示任务的代码:
  1. int32_t temp,humity,light,air,power;
  2. char charge_state[10];

  3. void display_task(uint32_t param)
  4. {
  5.         char dis_string[20];
  6.         while(1){
  7.                 //GUI_Clear();
  8.                 GUI_GotoXY(0,0);
  9.                 GUI_DispString("temperature is: \n");
  10.                 sprintf(dis_string,"    %d    \n",temp);
  11.                 GUI_DispString(dis_string);

  12.                 GUI_DispString("humity is: \n");
  13.                 sprintf(dis_string,"    %d    \n",humity);
  14.                 GUI_DispString(dis_string);

  15.                 GUI_DispString("light is: \n");
  16.                 sprintf(dis_string,"    %d    \n",light);
  17.                 GUI_DispString(dis_string);

  18.                 GUI_DispString("air is: \n");
  19.                 sprintf(dis_string,"    %d    \n",air);
  20.                 GUI_DispString(dis_string);

  21.                 GUI_DispString("power is: \n");
  22.                 sprintf(dis_string,"    % 3d, %s\n",power,charge_state);
  23.                 GUI_DispString(dis_string);
  24.                 OSA_TimeDelay(100);
  25.         }
  26. }
复制代码






此内容由EEWORLD论坛网友manhuami2007原创,如需转载或用于商业用途需征得作者同意并注明出处

此帖出自RF/无线论坛


回复

使用道具 举报

92

TA的帖子

1

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2019-1-2 18:00:14 | 显示全部楼层
下一步准备研究下离线IDE的蓝牙怎么用。这个模块是不支持wifi的,我也是晕,没有看清楚。模块支持的是Thread 802.15.4,而wifi是802.11。看来只能连接手机的蓝牙,然后再通过手机的wifi联网了。


回复

使用道具 举报

5524

TA的帖子

9

TA的资源

版主

Rank: 6Rank: 6

发表于 2019-1-2 18:01:01 来自手机 | 显示全部楼层
电池供电能用多长时间

点评

这个没有试过,时间挺短的  详情 回复 发表于 2019-1-2 22:30


回复

使用道具 举报

1313

TA的帖子

18

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

发表于 2019-1-2 18:11:47 来自手机 | 显示全部楼层
mark一下!


回复

使用道具 举报

92

TA的帖子

1

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2019-1-2 22:30:10 | 显示全部楼层
littleshrimp 发表于 2019-1-2 18:01
电池供电能用多长时间

这个没有试过,时间挺短的


回复

使用道具 举报

1

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2019-1-5 15:36:23 | 显示全部楼层
感兴趣、可以商用吗?

点评

可以商用,就是成本有点高  详情 回复 发表于 2019-1-9 11:43


回复

使用道具 举报

92

TA的帖子

1

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2019-1-9 11:43:48 | 显示全部楼层
0731tao 发表于 2019-1-5 15:36
感兴趣、可以商用吗?

可以商用,就是成本有点高


回复

使用道具 举报

96

TA的帖子

1

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-1-10 14:39:23 | 显示全部楼层
请问一下:您用的IDE是MCUXpresso IDE吗?NXP给的SDK可以使用web IDE中的那些组件吗?使用MCUXpresso IDE可以自已封装成web IDE的组件吗?

点评

纠正一下,我刚才好像理解错你最后一个问题的意思了。我也不知道能不能封装成web ide的组件。我一开始理解的意思是,封装成能够在离线IDE中使用的组件。  详情 回复 发表于 2019-1-10 17:58
1、用的是MCUXpresso IDE 2、web ide是提供下载工程代码的,你可以把web ide写好的程序的源代码下载下来使用,这样你就可以使用其中的组件了 3、当然可以  详情 回复 发表于 2019-1-10 15:04


回复

使用道具 举报

92

TA的帖子

1

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2019-1-10 15:04:02 | 显示全部楼层
bjemt 发表于 2019-1-10 14:39
请问一下:您用的IDE是MCUXpresso IDE吗?NXP给的SDK可以使用web IDE中的那些组件吗?使用MCUXpresso IDE可 ...

1、用的是MCUXpresso IDE
2、web ide是提供下载工程代码的,你可以把web ide写好的程序的源代码下载下来使用,这样你就可以使用其中的组件了
3、当然可以

点评

我从web IDE上下载的项目进行调式时报错了。我发了个求助贴子:http://bbs.eeworld.com.cn/thread-1067258-1-1.html 您是怎么解决这个问题的?  详情 回复 发表于 2019-1-11 14:40


回复

使用道具 举报

92

TA的帖子

1

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2019-1-10 17:58:51 | 显示全部楼层
bjemt 发表于 2019-1-10 14:39
请问一下:您用的IDE是MCUXpresso IDE吗?NXP给的SDK可以使用web IDE中的那些组件吗?使用MCUXpresso IDE可 ...

纠正一下,我刚才好像理解错你最后一个问题的意思了。我也不知道能不能封装成web ide的组件。我一开始理解的意思是,封装成能够在离线IDE中使用的组件。


回复

使用道具 举报

96

TA的帖子

1

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-1-11 14:40:17 | 显示全部楼层
manhuami2007 发表于 2019-1-10 15:04
1、用的是MCUXpresso IDE
2、web ide是提供下载工程代码的,你可以把web ide写好的程序的源代码下载下来 ...

我从web IDE上下载的项目进行调式时报错了。我发了个求助贴子:http://bbs.eeworld.com.cn/thread-1067258-1-1.html
您是怎么解决这个问题的?


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-1-19 01:57 , Processed in 0.308373 second(s), 17 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表