问答
直播中

jackeyt

10年用户 283经验值
擅长:EMC/EMI设计 嵌入式技术 控制/MCU MEMS/传感技术 嵌入式技术
私信 关注

【MYS-6ULX-IOT试用体验】首个IOT实现-基于中国移动Onenet!【结项帖】

本帖最后由 jackeyt 于 2017-7-20 11:15 编辑

【MYS-6ULX-IOT试用体验】试用目录:
1、【MYS-6ULX-IOT试用体验】1、开箱上电

2、【MYS-6ULX-IOT试用体验】2、加载WIFI驱动并连接网络

3、【MYS-6ULX-IOT试用体验】3、Linux C编程之查询CPU温度

0 前言
       MYS-6ULX-IOT既然是带IOT字样的开发板,那么就非常适合用于开发IOT系列的产品,可惜的是,官方非示提供相应的教程,也没有相应的IOT平台,可是面对这个自带WIFI的开发板,不搞点IOT的事情,感觉就不对劲了。以下成功的基础来源于:  

    1、开发板能够成功接上外网,比如通过wifi:【MYS-6ULX-IOT试用体验】2、加载WIFI驱动并连接网络   
    2、测试数据来源:开发板的CPU温度:【MYS-6ULX-IOT试用体验】3、Linux C编程之查询CPU温度

    本文最终实现效果如下:
222.png


     最终应用发布地址为:

    https://open.iot.10086.cn/app/preview2?pid=91615&id=20172


1 物联网平台   

       OneNET是中移物联网有限公司基于开放、共赢的理念,面向公共服务自主研发的开发云平台,为各种跨平台物联网应用、行业解决方案提供简便的云端接入、海量存储、计算和大数据可视化服务,从而降低物联网企业和个人(创客)的研发、运营和运维 成本,使物联网企业和个人(创客)更加专注于应用,共建以OneNET设备云为中心的物联网生态环境。
       在物联网快速发展的时代,我们深知目前传统硬件厂商转型智能化之路所面临的困境:高难度、复杂性,OneNET平台将致力于在高效率、低成本、大安全、大数据、标准化和定制化等六个方面为用户解决痛点、提供服务,免费力助用户转型升级。



       高效率:天下武功,唯快不破
  • 多语言SDK(object C、C、Java、JavaScript、ruby等)

  • 多协议接入方式


          私有协议:RGMP

          公开协议:HTTP、EDP、MODBUS、MQTT、JT/T808

  • 消息分发


低成本:免费使用,用户至上

  • 推荐高性能但低成本的连网模块

  • 提供高可用但低成本的云端服务

  • 云到端的固件升级服务(OTA)、配置更新、命令下发、事件监控


大安全:多层保护,无懈可击

  • 提供安全的设备端SDK

  • 提供安全的数据存储策略

  • 支持行业标准的对称数据加密(TLS,SSL)保护通信通道,并提供私有云基础架构,有效保障数据的安全。


大数据:海量数据,定制分析

  • 提供丰富的数据服务

  • 数据模板定义

  • 时间序列化数据的归档

  • 可视化数据展示

  • 统一的数据管理与分析能力


标准化:标准之路,智能起步

  • 协议标准化

  • 产品标准化

  • 数据模型标准化


定制化:不同业务,个性定制

  • 支持产品功能定制

  • 支持APP面板定制个性化定义


2 创建EDP设备   
      MYS-6ULX-IOT以EDP的方式的接入平台,从平台注册到创建设备,创建应用等过程,在官网均有教程,且在其他试用版块也有相应的教程,这里不再赘述,请看最终的效果图:
Onenet.jpg


Onenet2.jpg


Onenet3.jpg


3 修改源码      

       中国移动ONENET有提供对应的SDK源码,在github上面就可以直接下载了:
  1. mkdir -p onenet_edp
  2. cd onenet_edp
  3. git clone git@github.com:cm-heclouds/edp_c.git

      
       1、下载源码成功后,就修改makefile:
  1. all: edp

  2. CC=arm-linux-gnueabihf-gcc
  3. CFLAGS=-I. -g -D_LINUX -lm -lpthread  -pedantic
  4. CLIENT_OBJ = cJSON.o EdpKit.o Main.o temp.o

  5. # 如果需要加密功能且系统内已经安装openssl,
  6. # 取消以下两行注释
  7. #CFLAGS+=-D_ENCRYPT -lcrypto
  8. #CLIENT_OBJ += Openssl.o

  9. %.o: %.c
  10.         $(CC) -c -o $@ [        DISCUZ_CODE_29        ]lt; $(CFLAGS)

  11. edp: $(CLIENT_OBJ)
  12.         $(CC) -o $@ $^ $(CFLAGS)

  13. clean:
  14.         rm -f edp $(CLIENT_OBJ)


        2、修改main.c:
              
        2.1、加入温度函数:
  1. extern float get_cpu_temp(void);
        2.2、修改用户相应的APIKEY,设备ID,IP,端口等:


fun.jpg

fun2.jpg

        2.3、注释掉交互代码:
                因为前面已经人为定好了相关的信息,这里不再需要交互输入了!
  1. //     while ((opt = getopt(argc, argv, "h:i:p:s:d:a:l:v:t:E")) != -1) {
  2. //         switch (opt){
  3. //         case 'i':
  4. //             ip = optarg;
  5. //             break;

  6. //         case 'p':
  7. //             port = optarg;
  8. //             break;

  9. //         case 's':
  10. //             src_dev = optarg;
  11. //             break;

  12. //         case 'd':
  13. //             dst_dev = optarg;
  14. //             break;
  15.             
  16. //         case 'a':
  17. //             src_api_key = optarg;
  18. //             break;

  19. //         case 'l':
  20. //             ds_for_send = optarg;
  21. //             break;

  22. //         case 'v':
  23. //             value_for_send = atof(optarg);
  24. //             break;

  25. //                 case 't':
  26. //                         /*20160405144601*/
  27. //                         if(strlen(optarg) != 14){
  28. //                                 break;
  29. //                         }
  30. //                         sscanf(optarg, "%4d%2d%2d%2d%2d%2d",
  31. //                                 &save_time.year, &save_time.month, &save_time.day,
  32. //                                 &save_time.hour, &save_time.minute, &save_time.second);
  33. //                         break;

  34. //         case 'E':
  35. // #ifndef _ENCRYPT
  36. //             printf("Sorry the option 'E' is not supported right nown");
  37. //             printf("Please check your compile flags, n");
  38. //             printf("uncomment this line 'CFLAGS+=-D_ENCRYPT -lcrypto'n");
  39. //             printf("and this line 'CLIENT_OBJ += Openssl.o'n");
  40. //             printf("and try it againn");
  41. //             exit(0);
  42. // #endif
  43. //             g_is_encrypt = 1;
  44. //             break;

  45. //         //case 'h':
  46. //         //default:
  47. //             //usage(argv[0]);
  48. //             return 0;
  49. //         }
  50. //     }
  51.    
  52.     //if (/*!ip || !port || */!src_dev || !dst_dev
  53.     //    /*|| !src_api_key || !ds_for_send*/){
  54.      //   usage(argv[0]);
  55.      //   return 0;
  56.    // }


        
2.4、编译运行:
  1. make
            成功后将可执行程序上传的开发板,运行:
  1. ./edp



4 运行效果

       根据前面的修改效果,直接运行后,开发板将每5秒上传一次CPU温度至ONENET!

QQ截图20170717155318.png


QQ截图20170717170626.png

QQ截图20170717170635.png

QQ截图20170717155018.png



5 手机应用程序效果图
IMG_1296.PNG

IMG_1297.PNG

IMG_1298.PNG











回帖(3)

番茄番茄

2017-7-20 12:41:03
支持支持
举报

小麦地

2017-7-20 12:41:21
学习一下
举报

jyaxz

2018-5-10 09:59:21
支持一下,学习了
举报

更多回帖

发帖
×
20
完善资料,
赚取积分