STM32F103RC使用esp-01s連接機智雲


  這幾天搞了搞,機智雲的物聯網,試着使用STM32F103RC配合esp-01s接入了機智雲的物聯網,記錄以下過程,僅僅是一個簡單的LED燈開關,但是連接機智雲的基本過程和方法是一樣的。
我自己的工程文件:https://download.csdn.net/download/weixin_45488643/12558122文末有福利哦。

1、機智雲賬號註冊和創建新產品

1.1、賬號註冊及其機智雲使用文檔

賬號註冊我就不詳細說了,http://docs.gizwits.com/zh-cn/overview/overview.html機智雲的文檔中心。可以查找自己需要的一部分信息。

1.2、產品創建

在這裏插入圖片描述
選擇入網方式:
在這裏插入圖片描述
查看產品基本信息:
在這裏插入圖片描述
數據點:
數據點要一定要選擇可寫。
在這裏插入圖片描述

1.3、數據讀寫類型區別

  讀寫類型:定義數據點的作用範圍,包含有 4 種類型,分別是:只讀、可寫、報警、故障,
以下是官方對讀寫類型的介紹:
  ① 只讀:表示該數據點爲非控制,數據只支持從設備上報。
  ② 可寫:表示該數據點可控制。設備端可上報數據點數據,雲端/客戶端(移動端)可對該數
據點數據做出下發控制。
  ③ 報警:表示該數據點非控制,數據只支持從設備(設備端)上報,數據類型需爲布爾值。
  ④ 故障:表示該數據點非控制,數據只支持從設備(設備端)上報,數據類型需爲布爾值。
雲端對設備上報的該數據點做統計,可在“運行狀態”查看。
  數據類型:定義數據點數據類型,包含有布爾值、枚舉類型、數值、以及擴展,以下是官方對數據類型介紹:
  ① 布爾值:表示兩個狀態: 0 或 1。如開關狀態等,建議使用布爾數據類型。
  ② 枚舉類型:可定義一個有限的取值集合。當定義的某個功能(元器件)有固定的若干個值,
  例如:“設定 LED 組合顏色”該數據點的枚舉定義值:“自定義,黃色,紫色,粉色”。
  ③ 數值:填寫數值範圍,數值可爲負數/小數,機智雲自動將數值轉換爲正數。
  ④ 擴展:填寫數據長度,數據內容由用戶自定義。對於上述功能點無法滿足的複雜功能可採用,機智雲不建議使用此類型數據,數據上報該數據點的數據,機智雲無法識別。

1.4、MCU開發

Product Secret 在前面基本信息裏面可以看到。
在這裏插入圖片描述
下載代碼:
在這裏插入圖片描述

2、可以使用虛擬設備調試

在這裏插入圖片描述
在這裏插入圖片描述
手機app下載地址:
https://download.gizwits.com/zh-cn/p/98/99機智雲官方下載地址。
在這裏插入圖片描述
  現在就可以使用手機和虛擬設備進行簡單調試了。

3、esp-01s燒錄機智雲固件

3.1、固件下載

  固件下載https://download.gizwits.com/zh-cn/p/92/94直接下載機智雲固件。由於 GAgent 固件會時刻的更新,有可能你們所看到的時間會不一樣,以官網最新發布的爲準,你也可以下載舊版本的固件。

在這裏插入圖片描述
解壓後的固件文件:
可以看到固件類型有好幾種類型,標紅那個是我們需要燒錄的固件,我是直接燒錄的已經打包好的固件,我看到網上有人發佈的不是打包的固件,燒錄起來麻煩一點。
在這裏插入圖片描述
  燒錄軟件下載地址:http://wiki.ai-thinker.com/esp_download
在這裏插入圖片描述
下載解壓就可以看到燒錄軟件:
在這裏插入圖片描述
  燒錄了機智雲固件還想要還原樂鑫的固件,附下載地址。
樂鑫固件下載地址:http://wiki.ai-thinker.com/esp8266/sdk

3.2、esp-01s簡介

實物圖:
在這裏插入圖片描述
管腳分佈:
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述

3.3、燒錄

在這裏插入圖片描述

3.4、esp與STM32引腳連接

引腳連接:
在這裏插入圖片描述
其它的引腳可以懸空。

4、程序移植MCU

我自己的工程文件:https://download.csdn.net/download/weixin_45488643/12558122

4.1、工程配置

  前面已經下載了機智雲程序文件夾,解壓縮可以看到如下文件:
在這裏插入圖片描述
把這2個文件夾拷貝到自己的工程文件下。
我自己使用的是正點的代碼。
在這裏插入圖片描述

在工程文件裏面添加文件夾和文件路徑。
在這裏插入圖片描述
在這裏插入圖片描述
選擇C99 Mode 防止編譯報錯。
在這裏插入圖片描述

4.2 代碼移植

工程文件夾目錄:
使用了定時器3和串口3。
在這裏插入圖片描述

4.2.1、修改 USART3 文件

  在 usart3.c 文件中添加串口 3 的初始化和中斷服務函數,將中斷接收的數據寫入到gizPutData()函數,代碼如下:
  添加頭文件#include “gizwits_product.h” 到USART3文件裏面,不添加就會報錯。

在這裏插入圖片描述

4.2.2、修改 timer.c 文件

  在定時器 3 中斷服務函數中添加 gizTimerMs()函數,並且添加 gizwits_product.h 頭文件,代碼如下
在這裏插入圖片描述
在這裏插入圖片描述
注意: gizwits_product.h 文件中沒有對 gizTimerMs()函數做聲明,需自己添加,否則編譯會出現警報。

4.2.3、修改 gizwits_product.c 文件

在這裏插入圖片描述
  添加完串口發送函數後,回到 gizwitsEventProcess()用戶處理事件函數中添加我們的用戶事件邏輯,這裏我們是控制 LED1 的亮滅,在 EVENT_LEDonoff 事件中根據返回的開關量添加其 LED1 的開關控制,代碼如下:需要提前添加自己定義的LED頭文件和usart3.h頭文件,不然就報錯了。
在這裏插入圖片描述
在mcuRestart()函數中添加軟復位函數,代碼如下:
在這裏插入圖片描述
修改**userHandle()**函數:
添加數據上報。
在這裏插入圖片描述

4.2.4、主函數 main:

#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "timer.h"
#include "usart3.h"
#include "gizwits_product.h" 

//協議初始化
void Gizwits_Init(void)
{
	TIM3_Int_Init(9,7199);//1MS系統定時
  usart3_init(9600);//WIFI初始化
	userInit();//設備狀態結構體初始化
	gizwitsInit();//緩衝區初始化
}

//主函數
int main(void)
{
	int key;
	delay_init();	    	 //延時函數初始化
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設置NVIC中斷分組2:2位搶佔優先級,2位響應優先級
	uart_init(115200);	    //串口初始化爲115200
	LED_Init();			    //LED端口初始化
	KEY_Init();             //按鍵初始化
	Gizwits_Init();         //協議初始化
	printf("--------機智雲-協議移植LED測試實驗----------\r\n");
	printf("KEY1:AirLink連接模式\t KEY_UP:復位\r\n\r\n");
	while(1)
	{
		userHandle();//用戶採集
		gizwitsHandle((dataPoint_t *)&currentDataPoint);//協議處理
		key = KEY_Scan(0);
		if(key==KEY1_PRES)//KEY1按鍵
		{
			printf("WIFI進入AirLink連接模式\r\n");
			gizwitsSetMode(WIFI_AIRLINK_MODE);//Air-link模式接入
		}
		if(key==WKUP_PRES)//KEY_UP按鍵
		{
			printf("WIFI復位,請重新配置連接\r\n");
			gizwitsSetMode(WIFI_RESET_MODE);//WIFI復位
		}
		delay_ms(200);
		LED0 = ~LED0;
	}
}

  在主函數中,先對按鍵、 LED、串口以及 Gizwits 串口協議所需的定時器、 WIF 串口、數據緩衝區等一系列進行初始化,主循環通過按鍵掃描函數 KEY_Scan 一直掃描當前按鍵狀態,KEY1 按下使 WIFI 設備進入 AirLink 配網模式, KEY_UP 按下讓 WIFI 設備進入復位模式(清除配對信息、斷開連接),而 UserHandl 函數則讀取當前的 LED1 狀態,將讀出狀態值賦予回設備數據結構體變量中,然後再通過 gizwitsHandle 函數上報到服務器。

5、燒錄工程配網

下載工程文件到開發板。

5.1、實物圖

在這裏插入圖片描述

5.2、配網

配網:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
  先按下開發板上的KEY1鍵在,在點擊我已經完成上述操作。
在這裏插入圖片描述

5.3 、實物效果展示

打開燈:
在這裏插入圖片描述
在這裏插入圖片描述
  能看到這個地方的小夥伴也是比較有耐心了,工程文件免費送了。
工程文件免費下載地址:https://wwa.lanzous.com/iVf8re42hvi

  整個工程到此就結束了,希望小夥伴能夠手下留情,給個

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章