RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

從5方面描述STM32F407+ESP8266連接機(jī)智云過(guò)程

9GxC_IoTMaker ? 來(lái)源:未知 ? 作者:胡薇 ? 2018-06-21 10:06 ? 次閱讀

一、硬件組成如下圖所示:

硬件全家福:

STM32F407ZGT6+ESP8266

二、下載通用APP DEMO:

1.在應(yīng)用商店,搜索“機(jī)智云”APP。

通用APP Demo 又稱“機(jī)智云”APP

2.安裝、注冊(cè)、登陸后如下圖所示:

三、調(diào)試過(guò)程詳解:

創(chuàng)建數(shù)據(jù)點(diǎn)

生成MCU工程

下載MCU工程并根據(jù)開(kāi)發(fā)板原理圖修改工程,修改的地方如程序中紅色加注釋的部分

main.c 中加入紅色標(biāo)出的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頭文件中增加以下內(nèi)容

/* 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中需要用戶添設(shè)備上電狀態(tài)代碼如下圖所示

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閃爍 ,沒(méi)有閥,用燈替代

HAL_Delay(500);

HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin); //led0閃爍 沒(méi)有閥,用燈替代

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); //點(diǎn)亮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); //點(diǎn)亮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進(jìn)行程序燒寫, 5.打開(kāi)APP操控體驗(yàn)6.打開(kāi)Xcom查看調(diào)試信息

四、注意事項(xiàng):

1.正確找出開(kāi)發(fā)板的UART2接口:本開(kāi)發(fā)板中對(duì)應(yīng)關(guān)系如下:

UART2_TX:PA2,

UART2_RX:PA3,

2.保證與ESP8266模塊的管腳接線正確:

V3.3(接開(kāi)發(fā)板3.3V);

GND(接開(kāi)發(fā)板GND);

TX (接開(kāi)發(fā)板的PA3管腳);

RX (接開(kāi)發(fā)板的PA2管腳);

3.由于本次使用的ESP8266是原來(lái)機(jī)智云二代產(chǎn)品上的,可能正常聯(lián)上機(jī)智云,故沒(méi)有給ESP8266燒寫固件,關(guān)于固件燒寫的內(nèi)容,請(qǐng)參閱論壇的相關(guān)文檔。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32F407
    +關(guān)注

    關(guān)注

    15

    文章

    187

    瀏覽量

    29436
  • 機(jī)智云
    +關(guān)注

    關(guān)注

    2

    文章

    587

    瀏覽量

    26392
  • ESP8266
    +關(guān)注

    關(guān)注

    50

    文章

    962

    瀏覽量

    44956

原文標(biāo)題:【詳解】STM32F407+ESP8266連接機(jī)智云過(guò)程

文章出處:【微信號(hào):IoTMaker,微信公眾號(hào):機(jī)智云開(kāi)發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32F407機(jī)智開(kāi)發(fā)esp8266固件燒寫一直不成功

    按照STM32F407 機(jī)智開(kāi)發(fā)手冊(cè)上的實(shí)驗(yàn)步驟,板子和esp8266連接燒寫固件,一直失敗,求指導(dǎo)
    發(fā)表于 05-06 23:10

    為什么我用戰(zhàn)艦使用esp8266連接機(jī)智后串口打出的數(shù)據(jù)與教程不一樣?

    原子哥,我今天用戰(zhàn)艦連接機(jī)智遇到了一些問(wèn)題..按照教程使用,創(chuàng)建了數(shù)據(jù)點(diǎn),也有app了,但是在用手機(jī)連接的時(shí)候,連接不成功,顯示配網(wǎng)超時(shí).(手機(jī)
    發(fā)表于 06-26 02:49

    STM32F407ZGT6+esp8266軟件APP硬件組成

    串口調(diào)試助手;Keil V5;調(diào)試過(guò)程詳解:注意事項(xiàng):使用機(jī)智后的幾點(diǎn)建議:一、硬件組成如下圖所示:(硬件全家福:開(kāi)發(fā)板(STM32F407ZGT
    發(fā)表于 08-05 07:06

    stm32連接機(jī)智創(chuàng)建

    stm32連接機(jī)智創(chuàng)建機(jī)智產(chǎn)品修改MCU代碼文件給ESP8266燒寫
    發(fā)表于 08-09 09:30

    怎樣去編寫STM32F407+ESP8266的開(kāi)發(fā)代碼

    怎樣去編寫STM32F407+ESP8266的開(kāi)發(fā)代碼?STM32F407+ESP8266的硬件是怎樣進(jìn)行連接的?
    發(fā)表于 10-18 09:17

    STM32F103+ESP8266使用工程模板接入機(jī)智過(guò)程

    正點(diǎn)原子STM32mini開(kāi)發(fā)板+ESP8266接入機(jī)智博主是一位剛剛接觸STM32的小白,在朋友的建議下開(kāi)始捯飭
    發(fā)表于 02-14 07:47

    基于STM32esp8266機(jī)智app聯(lián)網(wǎng)總結(jié)

    背景是有一個(gè)成熟的STM32機(jī)智項(xiàng)目代碼,記錄一下成功應(yīng)用的過(guò)程。第一步:用ttl轉(zhuǎn)u***串口給esp8266燒錄
    發(fā)表于 04-25 13:40

    ESP8266-01如何單模塊連接機(jī)智或ONENET等平臺(tái)?

    ESP8266-01單模塊可以直接連接機(jī)智吧,不通過(guò)MCU。 另外,如何利用APP控制ESP8266做一個(gè)智能插座。這個(gè)APP有可供直接使用的嗎。
    發(fā)表于 10-19 07:07

    使用esp8266實(shí)現(xiàn)STM32聯(lián)網(wǎng)(最簡(jiǎn)單USART方法)

    到電腦上的java程序 這一篇 esp8266STM32連接,電腦通過(guò)STM32配置esp8266實(shí)現(xiàn)聯(lián)網(wǎng)發(fā)送數(shù)據(jù)具體流程如下圖 2=
    發(fā)表于 11-22 11:51 ?1.2w次閱讀

    機(jī)智ESP8266模組固件資料下載

    機(jī)智ESP8266模組固件
    發(fā)表于 04-23 15:55 ?67次下載
    <b class='flag-5'>機(jī)智</b><b class='flag-5'>云</b><b class='flag-5'>ESP8266</b>模組固件資料下載

    如何實(shí)現(xiàn)用Arduino通過(guò)ESP8266連接機(jī)智物聯(lián)網(wǎng)平臺(tái)?

    ? 本文實(shí)現(xiàn)Arduino UNO R3通過(guò)ESP8266-01模塊連接機(jī)智平臺(tái),從而實(shí)現(xiàn)用手機(jī)APP遠(yuǎn)程點(diǎn)亮LED燈。 ? ESP8266模塊本地調(diào)試 1 當(dāng)我們參考
    的頭像 發(fā)表于 01-06 11:55 ?7410次閱讀

    Arduino UNO R3通過(guò)ESP8266-01模塊連接機(jī)智平臺(tái)的實(shí)現(xiàn)

    本文實(shí)現(xiàn)Arduino UNO R3通過(guò)ESP8266-01模塊連接機(jī)智平臺(tái),從而實(shí)現(xiàn)用手機(jī)APP遠(yuǎn)程點(diǎn)亮LED燈。 ESP8266模塊本地調(diào)試 1 當(dāng)我們參考
    的頭像 發(fā)表于 05-25 16:38 ?5024次閱讀

    機(jī)智Arduino與ESP8266 ESP12-F之間的連接

    這些天在琢磨ESP8266 ESP12-F接入機(jī)智的方法,試了很多坑。比如ESP12-F與arduino 之間的接線問(wèn)題,找了好多資料。其
    的頭像 發(fā)表于 05-25 16:41 ?5775次閱讀
    <b class='flag-5'>機(jī)智</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連接機(jī)智過(guò)程詳解

    串口調(diào)試助手;Keil V5;調(diào)試過(guò)程詳解:注意事項(xiàng):使用機(jī)智后的幾點(diǎn)建議:一、硬件組成如下圖所示:(硬件全家福:開(kāi)發(fā)板(STM32F407ZGT
    發(fā)表于 12-06 09:06 ?27次下載
    【<b class='flag-5'>STM32F</b>4】<b class='flag-5'>STM32F407+ESP8266</b><b class='flag-5'>連接機(jī)智</b><b class='flag-5'>云</b><b class='flag-5'>過(guò)程</b>詳解

    基于stm32連接機(jī)智教程

    stm32連接機(jī)智創(chuàng)建機(jī)智產(chǎn)品修改MCU代碼文件給ESP8266燒寫
    發(fā)表于 12-06 19:06 ?10次下載
    基于<b class='flag-5'>stm32</b>的<b class='flag-5'>連接機(jī)智</b><b class='flag-5'>云</b>教程
    RM新时代网站-首页