本帖最后由 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温度
本文最终实现效果如下:
最终应用发布地址为:
https://open.iot.10086.cn/app/preview2?pid=91615&id=20172
1 物联网平台
OneNET是中移物联网有限公司基于开放、共赢的理念,面向公共服务自主研发的开发云平台,为各种跨平台物联网应用、行业解决方案提供简便的云端接入、海量存储、计算和大数据可视化服务,从而降低物联网企业和个人(创客)的研发、运营和运维 成本,使物联网企业和个人(创客)更加专注于应用,共建以OneNET设备云为中心的物联网生态环境。
在物联网快速发展的时代,我们深知目前传统硬件厂商转型智能化之路所面临的困境:高难度、复杂性,OneNET平台将致力于在高效率、低成本、大安全、大数据、标准化和定制化等六个方面为用户解决痛点、提供服务,免费力助用户转型升级。
高效率:天下武功,唯快不破 私有协议:RGMP
公开协议:HTTP、EDP、MODBUS、MQTT、JT/T808
低成本:免费使用,用户至上
大安全:多层保护,无懈可击
大数据:海量数据,定制分析
提供丰富的数据服务
数据模板定义
时间序列化数据的归档
可视化数据展示
统一的数据管理与分析能力
标准化:标准之路,智能起步
定制化:不同业务,个性定制
2 创建EDP设备
MYS-6ULX-IOT以EDP的方式的接入平台,从平台注册到创建设备,创建应用等过程,在官网均有教程,且在其他试用版块也有相应的教程,这里不再赘述,请看最终的效果图:
3 修改源码
中国移动ONENET有提供对应的SDK源码,在github上面就可以直接下载了:
- mkdir -p onenet_edp
- cd onenet_edp
- git clone git@github.com:cm-heclouds/edp_c.git
1、下载源码成功后,就修改makefile:
- all: edp
- CC=arm-linux-gnueabihf-gcc
- CFLAGS=-I. -g -D_LINUX -lm -lpthread -pedantic
- CLIENT_OBJ = cJSON.o EdpKit.o Main.o temp.o
- # 如果需要加密功能且系统内已经安装openssl,
- # 取消以下两行注释
- #CFLAGS+=-D_ENCRYPT -lcrypto
- #CLIENT_OBJ += Openssl.o
- %.o: %.c
- $(CC) -c -o $@ [ DISCUZ_CODE_29 ]lt; $(CFLAGS)
- edp: $(CLIENT_OBJ)
- $(CC) -o $@ $^ $(CFLAGS)
- clean:
- rm -f edp $(CLIENT_OBJ)
2、修改main.c:
2.1、加入温度函数:
- extern float get_cpu_temp(void);
2.2、修改用户相应的APIKEY,设备ID,IP,端口等:
2.3、注释掉交互代码:
因为前面已经人为定好了相关的信息,这里不再需要交互输入了!
- // while ((opt = getopt(argc, argv, "h:i:p:s:d:a:l:v:t:E")) != -1) {
- // switch (opt){
- // case 'i':
- // ip = optarg;
- // break;
- // case 'p':
- // port = optarg;
- // break;
- // case 's':
- // src_dev = optarg;
- // break;
- // case 'd':
- // dst_dev = optarg;
- // break;
-
- // case 'a':
- // src_api_key = optarg;
- // break;
- // case 'l':
- // ds_for_send = optarg;
- // break;
- // case 'v':
- // value_for_send = atof(optarg);
- // break;
- // case 't':
- // /*20160405144601*/
- // if(strlen(optarg) != 14){
- // break;
- // }
- // sscanf(optarg, "%4d%2d%2d%2d%2d%2d",
- // &save_time.year, &save_time.month, &save_time.day,
- // &save_time.hour, &save_time.minute, &save_time.second);
- // break;
- // case 'E':
- // #ifndef _ENCRYPT
- // printf("Sorry the option 'E' is not supported right nown");
- // printf("Please check your compile flags, n");
- // printf("uncomment this line 'CFLAGS+=-D_ENCRYPT -lcrypto'n");
- // printf("and this line 'CLIENT_OBJ += Openssl.o'n");
- // printf("and try it againn");
- // exit(0);
- // #endif
- // g_is_encrypt = 1;
- // break;
- // //case 'h':
- // //default:
- // //usage(argv[0]);
- // return 0;
- // }
- // }
-
- //if (/*!ip || !port || */!src_dev || !dst_dev
- // /*|| !src_api_key || !ds_for_send*/){
- // usage(argv[0]);
- // return 0;
- // }
2.4、编译运行:
成功后将可执行程序上传的开发板,运行:
4 运行效果
根据前面的修改效果,直接运行后,开发板将每5秒上传一次CPU温度至ONENET!
5 手机应用程序效果图