发 帖  
原厂入驻New

[经验] 【大联大友尚REALTEK RTL8195AM WIFI开发板试用体验】基于RTL8195的onenet物联网灯具控制

2020-8-29 16:52:46  63
分享
0
首先感谢elefancs在最后的时刻,给送来了一块台湾朋友的板子。时间仓促,所有关于这个板子的学习心得与案例都汇总到这一个篇章来了。
关于板子的主要介绍如下:
    RealtekAmeba1 DEV01是一个用于IOT的Arduino兼容的开发板,除了wIFi链接以外还包含NFC标签,并可以通过arduino兼容标准支持以太网。板上的核心MCU是RealtekRTL8195AM ,内部自带ARM-Cortex-M3的内核。最高主频去到166Mhz,Flash和内存都比较大 1MB的ROM,2MB SDRAM,512KBSRAM。常用的通信接口都用,去掉wifi功能他就是一个M3内核的单片机,这有利于对M内核熟悉的人快速上手。为了更好的有利于开发者使用,板载了DAP调试器。实现了只用一根USB线 就可以玩转起来。上一张板子的谍照大家感受一下
无标题.png
一个IOT的板子用来干啥呀,那肯定是用来进行物联网的相关开发了。(有点废话)
物联网发展与展望  
    1969年  由美国国防高级研究所项目机构darpa开发并投入使用,这就奠定了物联网关于“网络”的基础。1982年卡内基梅隆大学的程序员将一台可口可乐自动售卖机连接到互联网上,使他们可以在去购买之前检查机器是否有冷饮。这通常被认为是最早的物联网设备之一。1999年 物联网一词由 Kevin Ashton所创。2000年六月LG退出世界上第一台网络冰箱,虽然不是很成功的产品,这取决于那个时候的网络限制。2010年 中国政府将物联网列为关键技术,并宣布物联网是长期发展计划的一部分。2011年,IPV6公开推出。在接下来的年份里,IOT就开始了爆炸式的增长,各行各业遍地开花。如下图
    无标题.png
物联网的未来随着积极的趋势朝向物联网的应用,我们可以看到,预计未来几年增长的速度会成倍的增长。
开发平台的搭建与硬件连接。

硬件连接如下图
无标题.png
串口接口可以不接(如果你安装了DAP的串口驱动就会有个虚拟的串口与这个串口是并行的)。如果不接串口,也需要打印日志输出的话,就需要安装DAP的串口驱动。驱动的路径在开发包的 tools文件夹里面如下:
无标题.png

安装完驱动之后,在计算机的设备管理器里就会发现多了一个如下的串口,端口号可能不同
无标题.png
软件平台环境不用动,官方已经为我们搭建好了。我这里使用的是IAR的编译环境,打开IAR后,导航到开发包的 下面的路径打开工程就好。
amb1_sdk-master\project\realtek_ameba1_va0_example\EWARM-RELEASE

打开后的工程环境如下,工程option里面的东西都不用动,直接编译就好。
无标题.png
开发环境搭建好了,下面开始一个简单的测试实验,最简单的就是IO口实验测试了。
把原来的main文件里面的内容 全部替换成以下的代码
#include "device.h"
#include "gpio_api.h"  // mbed
#include "main.h"
#define GPIO_LED_PIN      PC_5
#define GPIO_PUSHBT_PIN   PC_4
void main(void)
{
    gpio_t gpio_led;
    gpio_t gpio_btn;
    // 初始化ILED管脚
   gpio_init(&gpio_led, GPIO_LED_PIN);
   gpio_dir(&gpio_led, PIN_OUTPUT);   // Direction: Output
   gpio_mode(&gpio_led, PullNone);    // No pull
    // 初始化按键管脚
   gpio_init(&gpio_btn, GPIO_PUSHBT_PIN);
    gpio_dir(&gpio_btn,PIN_INPUT);     // Direction: Input
   gpio_mode(&gpio_btn, PullUp);      // Pull-High
    while(1){
        if(gpio_read(&gpio_btn)) {
            // LED灭
           gpio_write(&gpio_led, 0);
        }
        else {
            // LED亮
           gpio_write(&gpio_led, 1);
        }
    }
}

      然后进行编译,编译完成后,使用工具栏的如下图的图标进行下载和调试,板子上没有按键和可以直接控制的LED,时间太紧了,现实中我使用两条线短接当开关用,随着线的短路与断开,  PC_5会呈现出相对应的电平变化。
无标题.png
     来到正题,与中移动的物联网平台onenet进行连接,并实现数据的上传与控制。
onenet是中国移动的物联网云平台,与阿里云,机智云, 亚马孙云等是同一个意思。
    OneNET很多产品的协议都是公开的,依托于中国移动这个大平台,提供丰富的产品试用功能。

第一步我们首先创建一个设备(设备的创建过程就不细说了,有兴趣的同学可以登录官网注册个账号,官方有详细的说明),拿到物联网云平台连接的三个参数------设备ID,鉴权信息,用户ID(此参数跟另外两个不在同一个页面),如下:
无标题.png

指令说明  TableLamp:0  (台灯关闭) TableLamp:1  (台灯打开)  命令的下发如下图
无标题.png
无标题.png
应用命令填写方式:

      TableLamp:{V},    开关灯:开关开值1,开关关值0
到此,云端平台就搭建好了,下面开始在RTL8195AM上构建与它的网络通信,以达到通过网络控制灯的目的。
    首先,启动官方SDK的MQTT例程, 在platform_opts.h头文件里面打开MQTT的例子,如下,把CONFIG_EXAMPLE_MQTT设置为1
/* For WIFI GET beacon FRAME example */
#defineCONFIG_EXAMPLE_GET_BEACON_FRAME  0
/* For WIFI MAC MONITOR example */
#defineCONFIG_EXAMPLE_WIFI_MAC_MONITOR  0
   
/* For HTTP CLIENT example */
#define CONFIG_EXAMPLE_HTTP_CLIENT  0
/* For MQTT example */
#define CONFIG_EXAMPLE_MQTT                             1
/* For mDNS example */
#define CONFIG_EXAMPLE_MDNS                             0
/* For multicast example */
#define CONFIG_EXAMPLE_MCAST                           0
   然后再把lwip的可选配置头文件lwipopts.h头文件的
    #defineLWIP_TCP_KEEPALIVE 1  激活,因为mqqt要一直有保持心跳的连接,所以要打开这个开关。

接着再添加 onenet的两个驱动文件如下
无标题.png
在 onenet.c  文件里把  下面宏定义的xxx 替换为上面在onenet平台创建设备的时候所生成的  产品ID,设备ID,鉴权信息。
#define PROID          "xxx"
#define AUTH_INFO         "xxx"
#define DEVID          "xxx"

         编译完成后,把程序下到RTL8195AM板子上。  然后使用AT命令先把板子连上路由器,如下所显示
无标题.png

再输入命令 ATWC后  连接成功后最后如下所示,获得了IP地址。
无标题.png

连接上网后,自动连接,或者使用按键控制连接到onenet云平台,平台连接上后的状态如下所示,设备状态  在线(绿色文字所示)
无标题.png

然后通过平台就可以下发命令来对板子进行控制  开灯命令下发如下
无标题.png

     至此,项目任务就完成了,本次经验是本着授人以鱼不如授人以渔的目的,主要讲述的都是云平台与控制板连接的方法。

只有小组成员才能发言,加入小组>>

84个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /8 下一条

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