0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

从5方面描述STM32F407+ESP8266连接机智云过程

9GxC_IoTMaker 来源:未知 作者:胡薇 2018-06-21 10:06 次阅读

一、硬件组成如下图所示:

硬件全家福:

STM32F407ZGT6+ESP8266

二、下载通用APP DEMO:

1.在应用商店,搜索“机智云”APP。

通用APP Demo 又称“机智云”APP

2.安装、注册、登陆后如下图所示:

三、调试过程详解:

创建数据点

生成MCU工程

下载MCU工程并根据开发板原理图修改工程,修改的地方如程序中红色加注释的部分

main.c 中加入红色标出的GPIO初始化代码

static void MX_GPIO_Init(void)

{

GPIO_InitTypeDef GPIO_InitStruct;

/* GPIO Ports Clock Enable */

__HAL_RCC_GPIOE_CLK_ENABLE();

__HAL_RCC_GPIOH_CLK_ENABLE();

__HAL_RCC_GPIOA_CLK_ENABLE();

__HAL_RCC_GPIOF_CLK_ENABLE(); //GPIOF CLK Enable:Used to Ctrol LED

/*Configure GPIO pins : KEY2_Pin KEY1_Pin */

GPIO_InitStruct.Pin = KEY2_Pin|KEY1_Pin;

GPIO_InitStruct.Mode = GPIO_MODE_INPUT;

GPIO_InitStruct.Pull = GPIO_PULLUP;

HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);

/*Configure GPIO pin Output Level */

HAL_GPIO_WritePin(GPIOE, LED1_Pin|LED0_Pin, GPIO_PIN_SET);

/*Configure GPIO pins : LED1_Pin LED0_Pin */

GPIO_InitStruct.Pin = LED1_Pin|LED0_Pin;

GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;

HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);

}

main.h头文件中增加以下内容

/* USER CODE BEGIN Private defines */

#define LED1_Pin GPIO_PIN_9

#define LED1_GPIO_Port GPIOF

#define LED0_Pin GPIO_PIN_10

#define LED0_GPIO_Port GPIOF

/* USER CODE END Private defines */

gizwits_product.c中需要用户添设备上电状态代码如下图所示

void userInit(void)

{

memset((uint8_t*)¤tDataPoint, 0, sizeof(dataPoint_t));

/** Warning !!! DataPoint Variables Init , Must Within The Data Range **/

currentDataPoint.valueValve = 0;

currentDataPoint.valueLED0 = 1;

currentDataPoint.valueLED1 = 1;

currentDataPoint.valueState = 1;

currentDataPoint.valueValue = 5;

}

gizwits_product.c中需要用户添加的代码如下图所示

int8_t gizwitsEventProcess(eventInfo_t *info, uint8_t *gizdata, uint32_t len)

{

uint8_t i = 0;

dataPoint_t *dataPointPtr = (dataPoint_t *)gizdata;

moduleStatusInfo_t *wifiData = (moduleStatusInfo_t *)gizdata;

protocolTime_t *ptime = (protocolTime_t *)gizdata;

#if MODULE_TYPE

gprsInfo_t *gprsInfoData = (gprsInfo_t *)gizdata;

#else

moduleInfo_t *ptModuleInfo = (moduleInfo_t *)gizdata;

#endif

if((NULL == info) || (NULL == gizdata))

{

return -1;

}

for(i=0; inum; i++)

{

switch(info->event[i])

{

case EVENT_Valve:

currentDataPoint.valueValve = dataPointPtr->valueValve;

GIZWITS_LOG("Evt: EVENT_Valve %d ", currentDataPoint.valueValve);

if(0x01 == currentDataPoint.valueValve)

{

//user handle

HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin); //led1闪烁 ,没有阀,用灯替代

HAL_Delay(500);

HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin); //led0闪烁 没有阀,用灯替代

HAL_Delay(500);

}

else

{

//user handle

HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_SET); //熄灭led1

HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,GPIO_PIN_SET); //熄灭led0

}

break;

case EVENT_LED0:

currentDataPoint.valueLED0 = dataPointPtr->valueLED0;

GIZWITS_LOG("Evt: EVENT_LED0 %d ", currentDataPoint.valueLED0);

if(0x01 == currentDataPoint.valueLED0)

{

//user handle

HAL_GPIO_WritePin(GPIOF,GPIO_PIN_10,GPIO_PIN_RESET); //点亮led0

}

else

{

//user handle

HAL_GPIO_WritePin(GPIOF,GPIO_PIN_10,GPIO_PIN_SET); //熄灭led0

}

break;

case EVENT_LED1:

currentDataPoint.valueLED1 = dataPointPtr->valueLED1;

GIZWITS_LOG("Evt: EVENT_LED1 %d ", currentDataPoint.valueLED1);

if(0x01 == currentDataPoint.valueLED1)

{

//user handle

HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_RESET); //点亮led1

}

else

{

//user handle

HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_SET); //灭掉led1

}

break;

case WIFI_SOFTAP:

break;

case WIFI_AIRLINK:

break;

case WIFI_STATION:

break;

case WIFI_CON_ROUTER:

break;

case WIFI_DISCON_ROUTER:

break;

case WIFI_CON_M2M:

break;

case WIFI_DISCON_M2M:

break;

case WIFI_RSSI:

GIZWITS_LOG("RSSI %d ", wifiData->rssi);

break;

case TRANSPARENT_DATA:

GIZWITS_LOG("TRANSPARENT_DATA ");

//user handle , Fetch data from [data] , size is [len]

break;

case WIFI_NTP:

GIZWITS_LOG("WIFI_NTP : [%d-%d-%d %02d:%02d:%02d][%d] ",ptime->year,ptime->month,ptime->day,ptime->hour,ptime->minute,ptime->second,ptime->ntp);

break;

case MODULE_INFO:

GIZWITS_LOG("MODULE INFO ... ");

#if MODULE_TYPE

GIZWITS_LOG("GPRS MODULE ... ");

//Format By gprsInfo_t

#else

GIZWITS_LOG("WIF MODULE ... ");

//Format By moduleInfo_t

GIZWITS_LOG("moduleType : [%d] ",ptModuleInfo->moduleType);

#endif

break;

default:

break;

}

}

return 0;

}

4.程序烧录:使用FlyMCU进行程序烧写, 5.打开APP操控体验6.打开Xcom查看调试信息

四、注意事项:

1.正确找出开发板的UART2接口:本开发板中对应关系如下:

UART2_TX:PA2,

UART2_RX:PA3,

2.保证与ESP8266模块的管脚接线正确:

V3.3(接开发板3.3V);

GND(接开发板GND);

TX (接开发板的PA3管脚);

RX (接开发板的PA2管脚);

3.由于本次使用的ESP8266是原来机智云二代产品上的,可能正常联上机智云,故没有给ESP8266烧写固件,关于固件烧写的内容,请参阅william hill官网 的相关文档。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32F407
    +关注

    关注

    15

    文章

    187

    浏览量

    29451
  • 机智云
    +关注

    关注

    2

    文章

    589

    浏览量

    26406
  • ESP8266
    +关注

    关注

    50

    文章

    962

    浏览量

    44980

原文标题:【详解】STM32F407+ESP8266连接机智云过程

文章出处:【微信号:IoTMaker,微信公众号:机智云开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32F407机智开发esp8266固件烧写一直不成功

    按照STM32F407 机智开发手册上的实验步骤,板子和esp8266连接烧写固件,一直失败,求指导
    发表于 05-06 23:10

    为什么我用战舰使用esp8266连接机智后串口打出的数据与教程不一样?

    原子哥,我今天用战舰连接机智遇到了一些问题..按照教程使用,创建了数据点,也有app了,但是在用手机连接的时候,连接不成功,显示配网超时.(手机
    发表于 06-26 02:49

    STM32F407ZGT6+esp8266软件APP硬件组成

    串口调试助手;Keil V5;调试过程详解:注意事项:使用机智后的几点建议:一、硬件组成如下图所示:(硬件全家福:开发板(STM32F407ZGT
    发表于 08-05 07:06

    stm32连接机智创建

    stm32连接机智创建机智产品修改MCU代码文件给ESP8266烧写
    发表于 08-09 09:30

    怎样去编写STM32F407+ESP8266的开发代码

    怎样去编写STM32F407+ESP8266的开发代码?STM32F407+ESP8266的硬件是怎样进行连接的?
    发表于 10-18 09:17

    STM32F103+ESP8266使用工程模板接入机智过程

    正点原子STM32mini开发板+ESP8266接入机智博主是一位刚刚接触STM32的小白,在朋友的建议下开始捯饬
    发表于 02-14 07:47

    基于STM32esp8266机智app联网总结

    背景是有一个成熟的STM32机智项目代码,记录一下成功应用的过程。第一步:用ttl转u***串口给esp8266烧录
    发表于 04-25 13:40

    ESP8266-01如何单模块连接机智或ONENET等平台?

    ESP8266-01单模块可以直接连接机智吧,不通过MCU。 另外,如何利用APP控制ESP8266做一个智能插座。这个APP有可供直接使用的吗。
    发表于 10-19 07:07

    使用esp8266实现STM32联网(最简单USART方法)

    到电脑上的java程序 这一篇 esp8266STM32连接,电脑通过STM32配置esp8266实现联网发送数据具体流程如下图 2=
    发表于 11-22 11:51 1.3w次阅读

    机智ESP8266模组固件资料下载

    机智ESP8266模组固件
    发表于 04-23 15:55 67次下载
    <b class='flag-5'>机智</b><b class='flag-5'>云</b><b class='flag-5'>ESP8266</b>模组固件资料下载

    如何实现用Arduino通过ESP8266连接机智物联网平台?

      本文实现Arduino UNO R3通过ESP8266-01模块连接机智平台,从而实现用手机APP远程点亮LED灯。   ESP8266模块本地调试 1 当我们参考
    的头像 发表于 01-06 11:55 7424次阅读

    Arduino UNO R3通过ESP8266-01模块连接机智平台的实现

    本文实现Arduino UNO R3通过ESP8266-01模块连接机智平台,从而实现用手机APP远程点亮LED灯。 ESP8266模块本地调试 1 当我们参考
    的头像 发表于 05-25 16:38 5038次阅读

    机智Arduino与ESP8266 ESP12-F之间的连接

    这些天在琢磨ESP8266 ESP12-F接入机智的方法,试了很多坑。比如ESP12-F与arduino 之间的接线问题,找了好多资料。其
    的头像 发表于 05-25 16:41 5790次阅读
    <b class='flag-5'>机智</b><b class='flag-5'>云</b>Arduino与<b class='flag-5'>ESP8266</b> <b class='flag-5'>ESP12-F</b>之间的<b class='flag-5'>连接</b>

    STM32F4】STM32F407+ESP8266连接机智过程详解

    串口调试助手;Keil V5;调试过程详解:注意事项:使用机智后的几点建议:一、硬件组成如下图所示:(硬件全家福:开发板(STM32F407ZGT
    发表于 12-06 09:06 27次下载
    【<b class='flag-5'>STM32F</b>4】<b class='flag-5'>STM32F407+ESP8266</b><b class='flag-5'>连接机智</b><b class='flag-5'>云</b><b class='flag-5'>过程</b>详解

    基于stm32连接机智教程

    stm32连接机智创建机智产品修改MCU代码文件给ESP8266烧写
    发表于 12-06 19:06 10次下载
    基于<b class='flag-5'>stm32</b>的<b class='flag-5'>连接机智</b><b class='flag-5'>云</b>教程