正点原子STM32mini开发板+ESP8266接入机智云
博主是一位刚刚接触STM32的小白,在朋友的建议下开始捯饬机智云,虽然机智云的接入方式已经十分简单,但奈何博主过于小白,在学习的过程中因为经验不足走了很多弯路,具体可以见我的另一篇博客 链接 。所以在此就写一篇小白教程希望能帮助到大家。
本教程适用于正点原子STM32mini开发板
机智云平台设置
- 首先登陆机智云开发者中心,新建一个产品
- 填写产品分类,产品名称和技术方案
- 按照开发向导根据需要设定数据点
固件烧写
要将机智云配套的GAgent固件烧写进ESP8266中,才能实现与机智云平台的通信。
- 下载所需要的GAgent固件和ESP8266烧录软件,这两项可以从机智云官网和乐鑫官网下载。GAgent固件和ESP8266烧录软件
- 将ESP8266正确连接到电脑,根据机智云官方的教程烧录固件。烧写教程
注意:- 需要使用串口转USB芯片,没有串口转USB的可以使用正点原子STM32开发板上的芯片,只需要将连接RXD/TXD与单片机串口的跳线帽拔下来,就可以使用了。
- IO_0口需要稳定接地
- 如果烧写失败,请多次尝试或更换较短的杜邦线
- 烧写速度可能较慢,请耐心等待。
代码包下载
在机智云选择MCU开发,下载“其他平台”的代码包。
其中Product Secret可以在产品基本信息中找到
下载解压后可以得到三个文件夹和一个指导手册以及一个日志文件
模板下载
可以使用博主已经修改过的正点原子机智云例程 链接
代码移植
为了简化代码移植的步骤,我们直接在已经移植完成的工程中覆盖刚刚下载的代码包中Gizwits和Utils文件夹的方法
- 将Gizwits和Utils文件夹直接覆盖复制到下载好模板中
- 在MDK中打开模板工程
- 修改gizwits_product.c
- 在gizwitsEventProcess()函数中添加不同事件所需要进行的操作,如控制LED灯
- 在userHandle()函数中添加传感器信息获取并将数据传入currentDataPoint中,如
void userHandle(void) { currentDataPoint.valueLED0=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8); }
- 在mcuRestart()函数中加入以下两行代码,作用是STM32软件复位
void mcuRestart(void) { __set_FAULTMASK(1); NVIC_SystemReset(); }
- 将uartWrite()函数中的部分代码换为如下
for(i=0; i<len; i++) { USART_SendData(USART3, buf[i]);//STM32 test demo while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET); if(i >=2 && buf[i] == 0xFF) { USART_SendData(USART3, 0x55);//STM32 test demo while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET); } }
- 在gizwits.h中声明gizTimerMs();函数,即添加
void gizTimerMs(void);
硬件连接
开发板 | ESP8266 |
---|---|
PB10 | RXD |
PB11 | TXD |
GND | GND |
5V | VCC |
IO_0和RST均悬空
网络配置
- 首先要下载机智云产品调试APP 链接
- 开发板连接电脑,打开串口调试助手,波特率115200
- 打开手机APP,可以直接跳过登陆,不影响使用
- 点击右上角的加号
- 选择一键配置
- 输入WiFi名和密码,***注意此时手机必须连接在该WiFi下***
- 选择厂家乐鑫
- 在此界面等待
- 按下开发板上的KEY1,进入AirLink模式,此时串口助手显示如图
- 点击shoujiAPP上的我已完成以上步骤
- 等待连接完成即可.