STM32使用ESP8266接入机智云点亮LED教程

首先我们要访问机智云的官网,注册相应的开发者账号。

机智云开发者中心

点击马上注册

填写相应信息点击立即注册后,登陆刚刚注册的账号,来到开发者中心,可以看到如下界面。
创建新产品
点击右侧的创建新产品,开始我们的demo创建。

创建新产品
产品分类,我们随便选择一下就行
产品名称,我们把它命名为“小电灯”
技术方案,我们选择最左侧的WIFI/移动网络方案
通讯方式,WIFI
数据传输方式,定长

然后点击保存跳转到如下界面
数据点
点击去添加数据点,添加我们的一个数据点。
数据点,就可以理解为我们编程中定义的变量。

添加第一个数据点

我们给数据点起一个名字,叫state,这个后来会在STM32工程里用到。
其他属性很简单,不再说明。
点击添加,添加第一个数据点
点击应用
点击应用,确认本次修改
然后点击左侧导航栏的MCU开发

MCU
选择独立MCU方案
硬件平台就选择STM32F103C8TX
在下方粘贴你的Product Secret
Product Secret,可以在导航栏左侧的基本信息那里获得,复制过来粘贴即可。
点击生成代码包,下载到本地。

等待生成

解压代码包
打开CubeMx新建工程
选择STM32F103ZETX

新建工程
选中File选项,选择Import project

在这里插入图片描述选中你刚刚下载解压的工程路径
在这里插入图片描述

在这里插入图片描述
点击Open

在这里插入图片描述点击OK,会提示我们导入时钟树失败,我们一会再配置一下,时钟树。
在这里插入图片描述
配置时钟为72MHZ
在这里插入图片描述
这时我们观察一下我们导入的引脚定义。

在这里插入图片描述
在这里插入图片描述由于我们使用的板子的按键是这样连接的,
在这里插入图片描述
我们的板载LED是
在这里插入图片描述
所以我们将PE3 PE4设为输入模式
PE5设为输出模式
在这里插入图片描述为工程命名后生成工程
在这里插入图片描述使用KEIL打开生成的工程,点击编译
没有错误,然后开始移植
在这里插入图片描述

STM32CUBEMX机智云平台移植
此时的工程中只有STM32L496ZGT相关的驱动代码,若要使用机智云的联网能力就需要移植相关的协议源码(即前文介绍的已自动生成的STM32F103工程中的三个文件:Gizwits、Hal、Utils)
移植前的STM32C8TX工程目录如下:
在这里插入图片描述
移植后(即从STM32F103中复制Gizwits、Hal、Utils到STM32ZET6下)如下:
在这里插入图片描述
接下来我们在STM32ZET6的keill5工程中添加如下的目录结构:
在这里插入图片描述
同理加入相应的编译路径:

在这里插入图片描述
接下来在main.c中添加与机智云协议处理相关的代码:

/* USER CODE BEGIN Includes */
#include "hal_key.h"
#include "gizwits_product.h"
#include "common.h"
/* USER CODE END Includes */
/* USER CODE BEGIN PV */
#define GPIO_KEY_NUM 2 ///< Defines the total number of key member
keyTypedef_t singleKey[GPIO_KEY_NUM]; ///< Defines a single key member array pointer
keysTypedef_t keys;   
/* USER CODE END PV */
/* USER CODE BEGIN 0 */
/**
* key1 short press handle
* @param none
* @return none
*/
void key1ShortPress(void)
{
    GIZWITS_LOG("KEY1 PRESS ,Production Mode\n");
    gizwitsSetMode(WIFI_PRODUCTION_TEST);
}
/**
* key1 long press handle
* @param none
* @return none
*/
void key1LongPress(void)
{
    GIZWITS_LOG("KEY1 PRESS LONG ,Wifi Reset\n");
    gizwitsSetMode(WIFI_RESET_MODE);
}
/**
* key2 short press handle
* @param none
* @return none
*/
void key2ShortPress(void)
{
    GIZWITS_LOG("KEY2 PRESS ,Soft AP mode\n");
    #if !MODULE_TYPE
    gizwitsSetMode(WIFI_SOFTAP_MODE);
    #endif
}
/**
* key2 long press handle
* @param none
* @return none
*/
void key2LongPress(void)
{
    //AirLink mode
    GIZWITS_LOG("KEY2 PRESS LONG ,AirLink mode\n");
    #if !MODULE_TYPE
    gizwitsSetMode(WIFI_AIRLINK_MODE);
    #endif
}
/**
* Key init function
* @param none
* @return none
*/
void keyInit(void)
{
    singleKey[0] = keyInitOne(NULL, KEY1_GPIO_Port, KEY1_Pin, key1ShortPress, key1LongPress);
    singleKey[1] = keyInitOne(NULL, KEY2_GPIO_Port, KEY2_Pin, key2ShortPress, key2LongPress);
    keys.singleKey = (keyTypedef_t *)&singleKey;
    keyParaInit(&keys); 
}
/* USER CODE END 0 */
  /* USER CODE BEGIN 2 */
  timerInit();
  uartInit();
  userInit();
  gizwitsInit();
  keyInit();
  GIZWITS_LOG("MCU Init Success \n");
 /* USER CODE END 2 */
  while (1)
  {
    /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
      userHandle();
      gizwitsHandle((dataPoint_t *)&currentDataPoint);
}
/* USER CODE END 3 */
}

点击编译应该是没有错误的

然后在gizwits_product.c
中添加gpio.h头文件

在这里插入图片描述
添加灯的逻辑处理
在这里插入图片描述
点击编译

在这里插入图片描述

接下来要对WIFI模块进行烧录

WIFI模块烧录机智云固件

机智云提供的烧录教程

我们下载好,机智云的固件,和烧录工具

文末提供有用到的工具的链接

首先先介绍下ESP8266的引脚定义

在这里插入图片描述

在这里插入图片描述
在下载的时候我们这样接线

ESP8266接线
GNDGND
VCC3.3V
CH_PD3.3V
GPIO0GND
RST动态
RX串口TX
TX串口RX

按照表格接线完毕后,RST先不接

在这里插入图片描述
打开烧录工具,选择好烧录的固件
我们选择8MB的(这个flash大小,要根据你实际的wifi模块的型号来选择)
在这里插入图片描述

在这里插入图片描述
选择第一个

在这里插入图片描述

在这里插入图片描述如果你的WIFI模块是这样的:
在这里插入图片描述
要选择32Mb的固件

在这里插入图片描述
下载工具界面(32MB):
在这里插入图片描述
点击START
如果一直等待上电同步,就把RST接GND,然后再拔开
如果你是用开发板上自带的CH340转串口,记得开发板里烧录的程序不要对和 CH340相连接的串口发送数据,可以先擦除程序再烧录。
否则会导致烧录失败,或者一直等待上电同步。

在这里插入图片描述
下载完成,

在这里插入图片描述
这时我们就烧录完成了

连接调试

  1. 我们把上一步写好的KEIL5工程下载到开发板上
  2. ESP8266按下图连线
ESP8266连线
GNDGND
VCC3.3V
RXPA2
TXPA3
CH_PD3.3V
GPIO0&RST&GPIO2悬空
  1. 打开串口调试助手

长按开发板的KEY2键(你自己定义的)

在这里插入图片描述
进入配网模式

  1. 打开微信,搜索公众号,安信可科技
    在这里插入图片描述
  2. 输入你当前连接的wifi密码

在这里插入图片描述
点击连接,观察串口信息
在这里插入图片描述
提示配网成功

下载手机APP

机智云调试APP
注册新的账号,不是你的开发者账号。
在这里插入图片描述登录后
在这里插入图片描述
就可以在发现新设备里看到我们的设备了。
点击设备,可以看到我们定义的数据点,
在这里插入图片描述
在这里插入图片描述
可以控制灯的亮灭。
在开发者中心,也可以看到具体的日志
在这里插入图片描述
最后放上用到的软件

百度云链接

百度云链接
提取码:dv74

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值