实验目的:通过机智云APP远程控制RGB灯的亮灭
1、原理图
2、利用机智云的自动代码生成功能
1、进入机智云官网注册账号,创建产品
2、创建产品,选择产品分类,产品名称
3、在基本信息栏里会有产品的一些基本信息
4、在开发向导中可以查看如何定义数据点
5、进入“数据点”定义新数据
6、选择MCU开发生产代码包
Product Secret: 可以在基本信息中复制
7、下载代码
3、生成代码简要分析
1、解压上一步下载的代码
2、主要文件说明
4、基础代码编译
开发环境搭建:https://blog.csdn.net/u012166958/article/details/89471368
1、新建hal_led.c和hal_led.h文件,
把hal_led.c拷贝至 、bin/user/ hal_led.c
把hal_led.h拷贝至 bin/include/hal_led.h
2、机智云生成的代码无法直接在IDE中进行编译
修改Makefile文件,因为自动生成的代码是没有0TA的地址烧录的,修改如下:
编译成功
5、代码编写
1、底层LED驱动代码编写,
hal_led.h代码
/*
* hal_led.c
*
* Created on: 2019年8月19日
* Author: Administrator
*/
#include "hal_led.h"
#include "osapi.h"
#include "eagle_soc.h"
void ICACHE_FLASH_ATTR
ledgpio_init(void)
{
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U,FUNC_GPIO13);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U,FUNC_GPIO15);
gpio_output_set(0,0,GPIO_ID_PIN(RGB_R)|GPIO_ID_PIN(RGB_G)|GPIO_ID_PIN(RGB_B),0);
RedOff();
GreenOff();
BlueOff();
os_printf("GPIO_init_OK\r\n");
}
hal_led.c代码:
/*
* hal_led.c
*
* Created on: 2019年8月19日
* Author: Administrator
*/
#include "hal_led.h"
#include "osapi.h"
#include "eagle_soc.h"
void ICACHE_FLASH_ATTR
ledgpio_init(void)
{
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U,FUNC_GPIO13);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U,FUNC_GPIO15);
gpio_output_set(0,0,GPIO_ID_PIN(RGB_R)|GPIO_ID_PIN(RGB_G)|GPIO_ID_PIN(RGB_B),0);
RedOff();
GreenOff();
BlueOff();
os_printf("GPIO_init_OK\r\n");
}
附:官方SDK参考文档链接:
链接:https://pan.baidu.com/s/1ETOUJ2xlVtoUQLDrZz5STg
提取码:ae2o
有关PIN_NAME的定义在ealge_soc.h这个文件
设置引脚功能
5.1按键代码编写
1.设置按键使ESP8266进入AirKiss模式配网,
由原理图可知按键使用的是GPIO0和GPIO4,与官方默认的按键不同,需做如下修改
修改后
修改按键初始化函数
按键回调函数修改如下:
在程序入口user_init()初始化我们需要用到led初始化
在user_init()函数中添加ledgpio_init()函数
最后一步是在\..\bin\Gizwits里的gizwits_product.c文件中添加逻辑控制程序,来实现ESP8266收到机智云APP的对应指令后执行开/关动作
至此,程序部分已经全部完成,接下来就是编译 、下载、调试
6、编译、下载、调试
查看源文件生成的目录
烧录
下载完成后,复位:连接WIFI,点击KEY2进入AriKiss配网模式
网络配置成功串口显示: