1回答

0收藏

[评测分享] 【机智云GoKit3开发板试用体验】+ ④SoC接入机智云

#板卡评测 #板卡评测 3103 人阅读 | 1 人回复 | 2020-06-01

   前面也有提到该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!”,具体添加的只读型传感器数据点相关的代码如下:
  1. void ICACHE_FLASH_ATTR userHandle(void)
  2. {
  3.         uint8_t ret = 0;
  4.         uint8_t curTemperature = 0;
  5.         uint8_t curHumidity = 0;
  6.         uint8_t curIr = 0;
  7.         static uint8_t thCtime = 0;
  8.         static uint8_t irCtime = 0;
  9.         thCtime++;
  10.         irCtime++;
  11.        
  12.         //红外传感器数据获取
  13.         if(INF_TIMEOUT < irCtime)
  14.         {
  15.                 irCtime = 0;
  16.                 curIr = irUpdateStatus();
  17.                 currentDataPoint.valueInfrared = curIr;
  18.         }
  19.        
  20.         //温湿度传感器数据获取
  21.         if(TH_TIMEOUT < thCtime)
  22.         {
  23.                 thCtime = 0;
  24.                 ret = dh11Read(&curTemperature, &curHumidity);
  25.                 if(0 == ret)
  26.                 {
  27.                         currentDataPoint.valueTemperature = curTemperature;
  28.                         currentDataPoint.valueHumidity = curHumidity;
  29.                 }
  30.                 else
  31.                 {
  32.                         os_printf("@@@@ dh11Read error!\n");
  33.                 }
  34.         }
  35.     system_os_post(USER_TASK_PRIO_2, SIG_UPGRADE_DATA, 0);
  36. }
复制代码
   暂时还未找到问题点,本次分享就到这里啦,五月就跟这样拜拜啦,六月即将开始。最后附上SoC方案上功能板的原理图,如有不同见解,欢迎留言回复,谢谢!
GoKit3(S)-ESP8266转接板原理图.PDF (201.56 KB, 下载次数: 1)

gokit3功能板原理图V3.0.PDF (789.4 KB, 下载次数: 1)

分享到:
回复

使用道具 举报

回答|共 1 个

倒序浏览

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

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