冯俊波 发表于 2019-5-29 23:56:22

机智云宠物屋(基于GOKIT3的SOC模式)

机智云微信宠物屋教程(SOC模式)1.注册账户进入开发中中心,点击右上角创建新产品2.按照如图所示设置好产品参数,每个选项前面问号鼠标移动上去会显示介绍。3.数据点的创建,为了快速开发宠物屋,此处选择导入方式将机智云实验室的微信宠物屋进行导入。4.数据点创建完成之后需要生成SOC代码,输入product secret之后点击生成代码包,下载生成的代码到电脑并解压备用。5.开发环境的准备,此处使用Windows版本的一体化IDE环境,将软件下载解压到非中文目录下,打开IDE程序就可以了,免安装版本。软件下载可到QQ群下载(号码:378683984)6.打开一体化的IDE软件之后,进行项目的导入,项目导入步骤很重要,导入错误是不能编译的。1首先在左侧空白右键单击,选择import导入项目2选择Makefile项目之后NEXT(不要选错)3选择项目所在的路径,记住一定要选择项目的根目录,选择错误不能编译,然后选择Cycwin GCC编译器,选错了也不能编译,然后点击finish完成项目的导入。7.首先修改项目的编译信息,打开根目录下Makefile文件,找到将其替换成BOOT?=newAPP?=1SPI_SPEED?=40SPI_MODE?=QIOSPI_SIZE_MAP?=6此处修改对应的是32Mbit的flash,比如ESP12F,ESP12E之类的,Gokit3采用的是ESP12F,修改了之后保存文件,接下来我们要移植驱动程序,首先,要确定Gokit3的GPIO使用情况,GPIO5----DHT11GPIO4----RGB_DINGPIO0----KEY1GPIO14---KEY2GPIO16---红外对管8.我们到机智云下载中心下载驱动文件,下载地址:http://gizwits.oss.aliyuncs.com/hardware_resource/GoKit_SoC_ESP8266_V03000003测试固件及开发资源2017072815.zip,接下来我们要将驱动文件添加到项目里面去。1将驱动库代码目录下的“.c”驱动文件拷贝到 SOC_ESP8266_source\app\driver 目录下2将驱动库代码目录下的“.h”驱动文件拷贝到SOC_ESP8266_source\app\include\driver目录下9.添加完毕之后在项目里面进行文件的刷新,到此就将驱动文件导入到项目里面了10.接下来我们要进行代码的修改:1在代码中添加相应的函数调用,首先在在SOC_ESP8266_source\app\user\user_main.c 文件中添加各驱动库的头文件。//新增的头文件#include "driver/hal_infrared.h"#include "driver/hal_motor.h"#include "driver/hal_rgb_led.h"#include "driver/hal_temp_hum.h"在该文件文件的LOCAL void ICACHE_FLASH_ATTRkeyInit(void)函数中添加各sensor的初始化。   //新增的各sensor的初始化   ///< 新添加代码: RGB LED初始化   rgbGpioInit();   rgbLedInit();   ///< 新添加代码: 电机初始化   motorInit();   motorControl(0);   ///< 新添加代码: 温湿度初始化   dh11Init();   ///< 新添加代码: 红外初始化   irInit();在该文件的key2ShortPress( )函数与key2LongPress( )函数中添加长/短按key2时的LED点亮代码
2在SoC_ESP8266_32M_source\app\Gizwits\gizwits_product.c 文件开头添加#define USER_TIME_MS 100 ///< 新添加代码: 更改定时器间隔为100ms#define TH_TIMEOUT (1000 / USER_TIME_MS)///< 新添加代码: 温湿度采集间隔为1S(1000ms)#define INF_TIMEOUT (500 / USER_TIME_MS)///< 新添加代码: 红外采集间隔为500ms在该文件的userHandle( )函数中添加只读型传感器数据点相关的代码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{GIZWITS_LOG ("@@@@ dh11Read error !\n");}}在该文件的gizwitsEventProcess( )函数中添加可写型传感器数据点相关的代码rgbControl(254,0, 0); ///< 新添加代码: 对应开启红灯rgbControl(0,0, 0); ///< 新添加代码: 对应关闭红灯rgbControl(currentDataPoint.valueLED_R,currentDataPoint.valueLED_G,currentDataPoint.valueLED_B);///<新添加代码: 对应设置LED组合色rgbControl(254,254, 0); ///< 新添加代码: 对应LED组合颜色‐黄色rgbControl(254,0, 70); ///< 新添加代码: 对应LED组合颜色‐紫色rgbControl(238,30, 30); ///< 新添加代码: 对应LED组合颜色‐粉色rgbControl(currentDataPoint.valueLED_R,currentDataPoint.valueLED_G,currentDataPoint.valueLED_B);///<新添加代码: 对应设置LED组合色rgbControl(currentDataPoint.valueLED_R,currentDataPoint.valueLED_G,currentDataPoint.valueLED_B);///<新添加代码: 对应设置LED组合色      rgbControl(currentDataPoint.valueLED_R,currentDataPoint.valueLED_G,currentDataPoint.valueLED_B);///<新添加代码: 对应设置LED组合色motorControl(currentDataPoint.valueMotor_Speed);///<新添加代码: 对应设定电机转速设置连接路由器关闭RGBrgbControl(0, 0, 0); ///< 新添加代码: 连接路由后关闭LED灯到此所有的驱动程序就已经移植完成了。11.右键点击项目,选择编译代码编译成功后如图所示12. 将代码下载到GOKIT,此处我只截图下载软件的页面设置,请务必按照截图所示下载程序到ESP8266,如果在下载程序之前不知道之前下了什么程序,建议清空一下内存,在下载模式下点击下载器的ERASE,清除之后在进行程序的下载,GOKIT3如何进入下载模式请参考第13点内容13.关于GOKIT3程序烧录详情请参考http://docs.gizwits.com/zh-cn/deviceDev/WiFiSOC/GoKit3S%E4%BA%8C%E6%AC%A1%E5%BC%80%E5%8F%91.html14. 关于SOC程序详情解释请参考http://docs.gizwits.com/zh-cn/deviceDev/WiFiSOC/GoKit-SoC-explanation.html15.到此整个SOC宠物屋移植教程到此结束,如有不懂,先看资料和看教程,实在不懂得联系我(15120205205微信电话QQ同号)

asdgjhg 发表于 2019-5-31 00:15:36

或许是一阵风雨的洗礼,才使得心与心之间的碰撞更为清脆响亮,更为精彩晶莹绚丽。

元亮学长 发表于 2019-10-12 12:40:48

不错不错,支持。

TaoDream 发表于 2020-3-11 21:12:57

过来学习的

半颗糖 发表于 2021-5-20 20:44:28

一模一样做的,两个错误
cannot find -lhal        SoC_ESP8266_32M_source                       C/C++ Problem

make: ** [../Makefile:363: .output/eagle/debug/image/eagle.app.v6.out] Error 1        SoC_ESP8266_32M_source                       C/C++ Problem


芯片 发表于 2021-6-25 19:12:57

不错不错,支持
页: [1]
查看完整版本: 机智云宠物屋(基于GOKIT3的SOC模式)