微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > + 开发板官方例程和EDP协议初探

+ 开发板官方例程和EDP协议初探

时间:10-02 整理:3721RD 点击:

麒麟座开发板最新版本资料和例程可在以下链接下载:
http://open.iot.10086.cn/bbs/thread-863-1-1.html
一、目录介绍
下载完的资料中有三个文件夹,程序代码文件夹存放的是麒麟座目前为止所有不同版本开发板的例程代码。应用软件文件夹存放的是开发时可能用到的软件。资料文件夹存放的是开发板用到的软硬件文档、原理图等。
二、例程代码介绍
在程序代码文件夹中扎到麒麟座V2.2版本的文件夹,对应本次评测的开发板版本。文件夹中有基础学习例程、裸机例程和RTOS例程三个例程源码的压缩包。其中基础学习例程开发板上每个硬件的源码,对于新手而言建议先打开基础学习例程并逐一烧录学习。而对STM32有一定基础的可以直接打开裸机源码进行学习,对oneNET的协议和接入方式熟悉了之后再使用RTOS。
三、EDP裸机例程介绍
    使用keil打开EDP裸机例程,找到main函数,从main函数开始阅读代码。main函数开始初对板上的外设进行了初始化,包括LED、按键、蜂鸣器等引脚的初始化,和基础学习例程中的一样。初始化同时会检查板上的硬件是否正常,并通过串口打印检测信息。
    Hardware_Init();                                    //硬件初始化函数
串口打印信息


    接下来是ESP8266串口和IO初始化,如果要将EDP协议移植到其他芯片上,只需要修改此处的串口和IO初始化和net_io.c文件中的发送和接收中断函数即可。
    后面依次是按键扫描程序段、数据与心跳程序段、平台下发命令解析程序段、传感器采集程序段、错误处理程序段、数据反馈程序段、初始化网络设备和接入平台程序段、网络设备检测程序段。大部分代码都有注释,阅读起来没什么难度。
    使用开发板配套的STLINK,将3.3V、SWCLK、GND和SWDIO四个引脚连接到开发板上,再插上microUSB线,将程序编译烧录进开发板,通过串口助手查看打印信息发现,程序重复打印
STA Tips:    AT+CWJAP="ONENET","IOT@Chinamobile123"
    如果使用过ESP8266模块的AT指令就会发现此处是里连接WIFI的指令,后面填写的是默认的WIFI账号和密码,并没有经过修改,所以连接不上WIFI。只需要把账号和密码修改即可。在net_device.c文件开头出进行修改,填入自己的WIFI账号和密码。
NET_DEVICE_INFO netDeviceInfo = {"ONENET", "IOT@Chinamobile123", 0, 0, 0, 0}; //
    重新编译烧录,发现蜂鸣器响了,串口打印出以下内容
Tips:    NetWork OK
    此时已经连接上服务器了,接下来就需要使用到EDP协议的功能了。
四、EDP协议
    百度一下oneNET进入oneNET官网注册一个账号。注册后进入官网右上角的开发者中心。点击创建产品按钮,出现一堆选项,前面的可以随便填,最后三项依次选择WIFI、公开协议和EDP即可。
    创建完成会进入产品页面,对于新手而言又是一大堆乱七八糟的东西,这里只需要复制                APIKey替换例程下的onenet.c文件开头处的               APIKey即可。
ONETNET_INFO oneNetInfo = {"4091363", "n16SUPyu9z0Ivb5IZo2oHwayE8w=", 0, 0, 0, 0};


    然后进入左边的设备管理页面,添加一个设备,数据保密性选择公开,其他的随便填,最后点击接入设备,此时可以看到下方出现一个新设备。


    复制此处的设备ID替换例程下的onenet.c文件开头处的设备ID。
ONETNET_INFO oneNetInfo = {"4091363", "n16SUPyu9z0Ivb5IZo2oHwayE8w=", 0, 0, 0, 0};
    再次编译程序再次烧录了,这时发现网页上的设备显示在线,说明设备接入成功了。


五、应用创建
    点击应用右边的查看详情,在里面创建一个应用,创建时可选开关、折线图、柱状图和仪表盘等控件。每一个控件的数据流可从硬件端上传过来的数据流中选择,如开关可选择Red_Led
    代码中所适配的平台命令格式为:{xxx}{V}
    控制LED4~7:{redled}{V}、{greenled}{V}、{yellowled}{V}、{blueled}{V}。开值1,关值0。
    控制蜂鸣器:{beep}{V}。开值1,关值0。
    具体处理参照onenet.c的OneNet_App函数。


    硬件端上传过来的数据流包括LED的状态、各传感器数据等,可在main.c文件的dataStream[]数组中修改。
    应用创建完成后,就可以实时查看硬件端上传过来的数据了,同时也可以通过开关控件对四个LED和蜂鸣器进行控制。





Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top