[评测分享]
【机智云GoKit3开发板试用体验】+ ④SoC接入机智云
#板卡评测
3104 人阅读
|
1 人回复
|
2020-06-01
TA的每日心情 | 奋斗 3 小时前 |
|---|
签到天数: 2649 天 连续签到: 41 天 [LV.Master]伴坛终老
司徒
- 积分
- 40539
|
前面也有提到该GoKit3开发板兼容MCU与SoC版,此次使用GoKit3(S)开发板,基于esp8266模块上的SoC方案,开发的微信宠物屋项目为例,分享一下如何将设备快速接入机智云,实现硬件智能化。无线控制化。 首先我们需要一个机智云开发者账号,登录进开发者中心,然后选择个人项目,点击创建新产品,流程与创建独立MCU方案大体相似,不同的是编译工程的环境不一样,独立MCU方案是以STM32F103为核心,使用Keil或者STM32CubeMX工具来编译或配置工程,而SoC方案则是在Linux环境下,执行app文件夹下的脚本文件进行编译,在Windows下通过串口使用“ESP_DOWNLOAD_TOOL_V2.4.exe”软件下载。
然后输入产品名称:微信宠物屋
接着点击创建数据点
这里我们需要创建9个数据点,数据点对应的功能信息如下
创建一个数据点,设置完该数据点的变量属性,并要点击应用才能生效
按照上述同样的方法,手动创建9个数据点,设置好对应数据变量的属性
确认好设置的数据点属性后,点击“MCU开发”然后选择SOC方案,点击生成代码包
将生成的代码包下载至电脑的本地
工程压缩包解压下得到如下文件列表目录
针对这个文件列表目录,机智云有详细说明
然后使用SourceInsight创建一个工程,将代码包中的源文件导入进工程中
根据应用功能,在关键的几个源文件中添加部分代码,以实现创建的9个数据点功能对接。
主要文件及协议API说明如下:
然后前往机智云下载中心,下载“微信宠物屋for GoKit3(S) ESP8266 V03000003”SoC源码库,案例里面包含了红外传感器,温湿度传感器,小电机,RGB灯,用户按键等几个外设的驱动,此次借助官方源码移植到云端自动生成SOC源码工程中,使ESP8266功能板实现RGB灯的控制,温湿度数据的采集上报,电机的无线控制。
将官方的驱动源文件添加进“Gokit\app\driver”下,驱动头文件添加“Gokit\app\include\driver”下,在SourceInsight工程中添加并同步一下。移植各功能模块的驱动文件,具体步骤可分为如下:
①、首先在gizwits_product.c文件和user_main.c文件里面添加头文件
②、在gizwits_product.c文件添加只读型传感器数据点相关的代码
③、在gizwits_product.c文件的userHandle()函数中添加只读型传感器数据点相关的代码
④、在gizwits_product.c文件的userInit()函数中添加各sensor的初始化
⑤、接着在“gizwitsEventProcess()”函数里面的“//user handle”部分添加完成写类型外设的事件处理的代码,例如控制微信宠物屋的灯光,驱动电机马达
⑥、接着在user_main.c文件的key2ShortPress()和key2LongPress()函数中添加配网按键指示灯
完成以上步骤后,打开虚拟机。这里介绍使用VMware Workstation工具搭建编译环境。打开VMware,将官方提供的“ESP8266_lubuntu_20141021.ova”导入进去。
导入完成后需要设置其共享目录,因此需要安装VMwareTools,具体的安装办法这里不再赘述,如有疑问,欢迎留言咨询。
接着设置共享目录,如下图所示:
然后到app目录下执行“gen_misc.sh”脚本文件,编程ok。如下图所示
将功能板的Micro USB与电脑相连接,ESP8266的小核心板下TX、RX、GND通过杜邦线与USB转串口模块正确连接后,将USB转串口模块与电脑相连接,在设备管理列表中可以正常显示其串口号,说明已经正确安装了驱动,否则需要安装对应的驱动文件哦
然后打开SecureCRT串口调试工具,并设置对应的串口号为COM16,打开ESP_DOWNLOAD_TOOL_V2.4下载工具,并将编译工程中的对应bin文件加载进相对应的地址中,并设置对应FLASH SIZE等参数,然后点击START,再确保ESP8266小核心上的拨码开关拨到GND上,同时按一下小核心板上的RESET按钮,显示下载界面如下:
直至下载完成后,我们再将小核心板上的拨码开关拨到KEY1上,再按一下小核心板上的RESET按钮,在SecureCRT工具中则会打印启动的log信息。这次显示正常了,上次搭建环境篇中显示乱码可能是因为没有重启的原因。
综上结果分析,功能板已经启动了SoC方案,使用手机端的机智云app也能正常连接,但是启动完成后,在SecureCRT中每隔1秒后打印“@@@@ dh11Read error!”,具体添加的只读型传感器数据点相关的代码如下:
- void ICACHE_FLASH_ATTR userHandle(void)
- {
- uint8_t ret = 0;
- uint8_t curTemperature = 0;
- uint8_t curHumidity = 0;
- uint8_t curIr = 0;
- static uint8_t thCtime = 0;
- static uint8_t irCtime = 0;
- thCtime++;
- irCtime++;
-
- //红外传感器数据获取
- if(INF_TIMEOUT < irCtime)
- {
- irCtime = 0;
- curIr = irUpdateStatus();
- currentDataPoint.valueInfrared = curIr;
- }
-
- //温湿度传感器数据获取
- if(TH_TIMEOUT < thCtime)
- {
- thCtime = 0;
- ret = dh11Read(&curTemperature, &curHumidity);
- if(0 == ret)
- {
- currentDataPoint.valueTemperature = curTemperature;
- currentDataPoint.valueHumidity = curHumidity;
- }
- else
- {
- os_printf("@@@@ dh11Read error!\n");
- }
- }
- system_os_post(USER_TASK_PRIO_2, SIG_UPGRADE_DATA, 0);
- }
复制代码 暂时还未找到问题点,本次分享就到这里啦,五月就跟这样拜拜啦,六月即将开始。最后附上SoC方案上功能板的原理图,如有不同见解,欢迎留言回复,谢谢!
|
|
|
|
|
|
|
|
|
|
|
沙发
xiaokang2020
发表于 2021-5-7 10:56:47
|
只看该作者
|
|
|
|
|
|
|
|