导语:
本次线下活动是以STM32H7为核心的一个功能强大的开发板,不仅支持Audio,HDMI,还支持4G或者WiFi模块,也可以外接屏幕,本次线下训练营是以4G模块进行开发。
线下的实物开发板如下所示:
注意:上面的PC、MCU的切换,一定要在MCU,才会有串口数据输出。
其硬件资源的介绍如下所示:
官网开发板特性:
- 内置 TobudOS 开源物联网操作系统
- 意法半导体高性能处理器,最高主频 480M
- 1M RAM;
- 256Mbits SDRAM;
- 128K 片上Flash;64MB qspi flash 128MB spi flash
- 板载 Type-C 接口 Stlink V2
- 仿真器 板载 PCIE 接口,可扩展 4G 类物联网模组
- 板载物联网俱乐部 WAN Interface 接口,可支持
NB-IoT、WiFi、4G cat1、LoRa 等模组 - 板载物联网俱乐部 E53 Interface 接口,可扩展全系 E53 传感器;
- 板载标准 24P DVP 摄像头接口,可支持最高 500 万像素摄像头; 板载 RGB 显示接口,可转换 HDMI 输出;
- 板载高性能音频解码芯片,可做语音识别测试;
- 预留 SD 卡、用户按键、SPI Flash
- 调试 ARM Cortex M 核还需要仿真器,EVB_AIoT_STM32自带 Stlink V2 仿真器,如果您的开发板或者芯片模组没有板载仿真器,就需要连接外置的仿真器,如 J-Link、U-Link 之类的。
其官网的指导文档地址为:
代码仓地址:
https://atomgit.com/OpenAtomFoundation/TobudOS(内含丰富学习视频,请自行下载观看)
训练营参考代码:
https://atomgit.com/tobudos/DeveloperTrainingCamp2023
训练营实验手册
https://atomgit.com/OpenAtomFoundation/TobudOS/blob/master/doc/TobudOS_EVB_AIoT_STM32_Guide.md
一、移植代码
本次线下活动,在之前就已经搭建了环境,能跑起来示例程序。
具体的环境搭建在训练营实验手册链接中有着详细的介绍。其中特别注意的是,MDK的版本需要和指导文档中相同,当时在现场看到很多同学使用了最新版本的MDK,缺少一些插件,导致代码无法运行,建议使用 5.28a版本,其他版本也需要自己进行一些设置。
现场主要是为了熟悉一下TobudOS的整体使用流程,对代码的编写比较少,现场的大佬都已经把相关代码给到我们进行操作。
代码一定要用完整仓库中的代码,使用git clone的方式下载,直接点击下载有可能会有一些奇奇怪怪的错误,代码参考下面的链接:
https://atomgit.com/OpenAtomFoundation/TobudOS
打开代码之后,将整体代码先build一次,保证整个流程没有问题。
然后就是加入E53_SC1的驱动程序,右键add即可:
上面驱动放置的文件夹,注意将路径导入到C/C++
在TobudOS的WiFi与4G的配置中,采用了宏定义的切换方法,很方便进行切换:
#define USE_EC600S
//#define USE_ESP8266
#if defined(USE_ESP8266)
#include "esp8266.h"
#elif defined(USE_EC600S)
#include "ec600s.h"
#endif
接下来就需要配置腾讯云。
二、腾讯云的相关配置
直接访问下面的链接到腾讯云网站:
https://cloud.tencent.com/product/iotexplorer
使用自己的账号进行登录,请注意需要实名认证。
找到物联网开发平台
点击新增实例
然后,新建一个产品
新建完成后就可以看到下面的项目
点击导入物模型,导入JSON模型
具体代码如下:
{
"version": "1.0",
"properties": [
{
"id": "power_switch",
"name": "电灯开关",
"desc": "控制电灯开灭",
"required": true,
"mode": "rw",
"define": {
"type": "bool",
"mapping": {
"0": "关",
"1": "开"
}
}
},
{
"id": "lum",
"name": "光传感器",
"desc": "上报现场光传感器数据",
"mode": "r",
"define": {
"type": "int",
"min": "0",
"max": "9999",
"start": "0",
"step": "5",
"unit": "lm"
},
"required": false
},
{
"id": "lac",
"name": "地区区域码",
"desc": "地区区域码",
"required": true,
"mode": "r",
"define": {
"type": "int",
"unit": "",
"step": "1",
"min": "0",
"max": "32",
"start": "0"
}
},
{
"id": "cid",
"name": "基站码",
"desc": "基站码",
"required": true,
"mode": "r",
"define": {
"type": "int",
"unit": "",
"step": "1",
"min": "0",
"max": "32",
"start": "0"
}
}
],
"events": [],
"actions": [],
"profile": {
"ProductId": "KM4CEY91YP",
"CategoryId": "3"
}
}
下面就是将对应的密钥,用户名填写到MQTT对应的h文件中。
这里文档中有详细的对应。
三、下载调试
全部对应完成之后,就可以编译代码,将其下载到开发板中,下载事接入USB之后,需要安装对应的驱动,驱动官网下载即可,右键驱动安装本地就可以。安装完成后,如下所示。
下载代码时,可能还让升级驱动,直接点击Yes即可。
连接成功之后,在腾讯云就可以看到在线的状态。
点击调试 可直接在网页进行调试
点击二维码
手机微信小程序,找到腾讯连连,扫描二维码,注意首次可能需要创建家庭。
就会出现上图的一个远程开灯。
就可以直接在手机上点击开关控制灯的亮灭。
四、感悟
开放原子和腾讯真的非常nice,创造了这么好的氛围,还免费赠送价值这么高的开发板,能够面对面的和各位大佬进行交流,有一个很好的开发氛围。
目前嵌入式的各种搭建与配置越来越简单,之前自己通过云服务器搭建MQTT,需要耗费很多时间和金钱,现在有了越来越简单的办法,应该感谢各位开发者的不断努力!
现场调试的题目比较简单,但是还是很多开发者事先没有准备好环境,或者是配置了一个错误的环境。在所有的开发中也要事先准备好,嵌入式的环境搭建确实是一个比较麻烦的事情,有时候换一个版本就需要多做很多的工作,所以还是需要认真阅读参考手册和文档。感谢腾讯与开放原子的大力支持!!!