国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

stm32f373利用esp8266連接onenet平臺

sorra / 1285人閱讀

摘要:添加設備名和鑒權信息。記錄如下數據二引腳連接和接電源接地和連接至配置的串口三代碼編寫串口配置單片機需配置兩個串口,串口打印至串口助手,顯示連接狀態。串口用來發送信息至串口配置代碼如下系列配置和系列配置不同點在于口上拉和推挽配置略有不同。

學習目標:

1.注冊onenet平臺
2.esp8266引腳連接
3.stm32373代碼移植編寫

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔


一、注冊onenet平臺

示例:pandas 是基于NumPy 的一種工具,該工具是為了解決數據分析任務而創建的。

注冊進入onenet平臺
點擊右上方控制臺
再點擊進入多協議接入,進入產品創建界面。
//鏈接: link.

點擊進入添加產品

創建按心情填寫,但接入協議選MQTT(舊版)!!!

接著在產品下創建設備。
進入產品后,左上方點擊設備列表之后,開始添加設備。
添加設備名和鑒權信息。
記錄如下數據

二、esp8266引腳連接

3v3和EN接電源3.3V
GND接地
RX和TX連接至stm32373配置的串口

三、代碼編寫

1.串口配置

單片機需配置兩個串口,串口1打印至串口助手,顯示連接狀態。串口2用來發送信息至esp8266.

串口1配置代碼如下:
373系列配置和103系列配置不同點在于I/O口上拉和推挽配置略有不同。

	//USART1_TX   GPIOA.9    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;	//復用推挽輸出		GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;  //推挽		GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;  //上拉    GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9       //USART1_RX	  GPIOA.10初始化    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10   // GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;//浮空輸入    GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10  

串口1打印代碼如下:

void UsartPrintf(USART_TypeDef *USARTx, char *fmt,...)  //串口打印,相當于printf{	unsigned char UsartPrintfBuf[296];	va_list ap;	unsigned char *pStr = UsartPrintfBuf;		va_start(ap, fmt);	vsnprintf((char *)UsartPrintfBuf, sizeof(UsartPrintfBuf), fmt, ap);							//格式化	va_end(ap);		while(*pStr != 0)	{		USART_SendData(USARTx, *pStr++);		while(USART_GetFlagStatus(USARTx, USART_FLAG_TC) == RESET);	}}

串口2配置代碼如下:

		 //USART3_TX   PD8  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //PD8  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;	//復用推挽輸出	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;	  GPIO_Init(GPIOD, &GPIO_InitStructure); //初始化PD8       //USART3_RX	  PB9  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;  //GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;//浮空輸入  GPIO_Init(GPIOB, &GPIO_InitStructure);  //初始化PB9

串口2發送代碼如下:

_Bool ESP8266_SendCmd(char *cmd, char *res){		unsigned char timeOut = 200;	Usart_SendString(USART3, (unsigned char *)cmd, strlen((const char *)cmd));		while(timeOut--)	{		if(ESP8266_WaitRecive() == REV_OK)							//如果收到數據		{			if(strstr((const char *)esp8266_buf, res) != NULL)		//如果檢索到關鍵詞			{				ESP8266_Clear();									//清空緩存								return 0;			}		}				delay_ms(10);	}		return 1;}

2.代碼移植

從onenet官方網站上下載物聯網程序,
移植出
esp8266.c
onenet.c
MqttKit.c文件

更改esp8266.c中的串口發送函數
代碼如下:

void ESP8266_Init(void){		ESP8266_Clear();		UsartPrintf(USART1, "0. AT/r/n");	while(ESP8266_SendCmd("AT/r/n", "OK"))		delay_ms(500);		UsartPrintf(USART1, "1. RST/r/n");		ESP8266_SendCmd("AT+RST/r/n", "");		delay_ms(500);		ESP8266_SendCmd("AT+CIPCLOSE/r/n", "");		delay_ms(500);		UsartPrintf(USART1, "2. CWMODE/r/n");	while(ESP8266_SendCmd("AT+CWMODE=1/r/n", "OK"))		delay_ms(500);		UsartPrintf(USART1, "3. AT+CWDHCP/r/n");	while(ESP8266_SendCmd("AT+CWDHCP=1,1/r/n", "OK"))		delay_ms(500);		UsartPrintf(USART1, "4. CWJAP/r/n");	while(ESP8266_SendCmd(ESP8266_WIFI_INFO, "GOT IP"))		delay_ms(500);		UsartPrintf(USART1, "5. CIPSTART/r/n");	while(ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT"))		delay_ms(500);		UsartPrintf(USART1, "6. ESP8266 Init OK/r/n");}

更改esp8266.c中的wifi賬號密碼、ip、端口號
代碼如下:

#define ESP8266_WIFI_INFO		"AT+CWJAP=/"wifi名/",/"密碼/"/r/n"#define ESP8266_ONENET_INFO		"AT+CIPSTART=/"TCP/",/"183.230.40.39/",6002/r/n"

更改onenet.c中的產品ID 、鑒權信息、設備ID

代碼如下:

#define PROID		"77247"#define AUTH_INFO	"test"#define DEVID		"5616839"

3.主函數編寫

代碼如下:

int main(void){	const char *devSubTopic[] = {"/mysmarthome/sub"};	const char devPubTopic[]="/mysmarthome/pub";	unsigned short timeCount = 0;	//發送間隔變量		unsigned char *dataPtr = NULL;		delay_init();	    	 			//延時函數初始化	 	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); 			//設置NVIC中斷分組2:2位搶占優先級,2位響應優先級	uart_init(115200);	 				//串口初始化為115200	UsartPrintf(USART1,"/n/rbegin /n/r");	usart3_init(115200);	 				//串口初始化為115200	ESP8266_Init();		while(OneNet_DevLink())			//接入OneNET		delay_ms(500);	  while (1)  {				if(++timeCount >= 500)									//發送間隔5s		{			UsartPrintf(USART1, "OneNet_Publish/r/n");						OneNet_Publish(devPubTopic, "MQTT Publish Test");						timeCount = 0;			ESP8266_Clear();		}				dataPtr = ESP8266_GetIPD(3);		if(dataPtr != NULL)			OneNet_RevPro(dataPtr);				delay_ms(10);  }}

附上源碼

stm32f373通過esp8266連接onenet平臺

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/123009.html

相關文章

  • 基于STM32的ESP8266 WIFI與ONENET通信連接(2),云平臺以及手機APP數據顯示

    摘要:基于的與通信連接,實現溫濕度數據互傳,控制第一步,在實現將傳感器數據采集之后,并且完成配網步驟,可以正常通過模塊正常將數據發送到云平臺之后進行以下閱讀,上述內容可以跳轉到以下鏈接進行查看具體操作。 ...

    antz 評論0 收藏0
  • 基于STM32平臺的數字溫度顯示器系統設計

    摘要:帶中文字庫的是一種具有位位并行線或線串行多種接口方式,內部含有國標一級二級簡體中文字庫的點陣圖形液晶顯示模塊其顯示分辨率為。貼片按鍵模塊支持標準的協議,完整的協議棧。以最低成本提供最大實用性,為功能嵌入其他系統提供無限可能。 項目簡介 開發環境: Keil5.14,CubeMX6.0.1,主...

    villainhr 評論0 收藏0
  • TPYBoard開發板帶你輕松玩轉MicroPython

    摘要:實踐證明,加上穩定可靠的外圍電路和抗干擾電源,以為核心的產品能成功應用于苛刻的工業環境,使開源硬件和開發平臺得到更廣泛的應用,產品多樣性遠遠高于官方開發板,是學習的首選。 說到MicroPython,也許有人會感到陌生。而說到和它密切相關的Python,是否會恍然大悟呢?Python屬于解釋型語言,1989年才開發完成的Python顯然非常年輕。然而經過數十年的磨礪,如今Python已...

    z2xy 評論0 收藏0
  • 2021-09-04

    摘要:使用實現連網實現巴法云物聯網使用硬件程序思路基于正點原子的測試程序在巴法云物聯網創建的主題初始化代碼比較簡陋主函數代碼如果想用串口助手調試,接線方法如下使用硬件我這里使用的是正點原子家的開發板精英版和模塊。 ...

    Zack 評論0 收藏0
  • 宿舍智能門鎖設計

    摘要:宿舍智能門鎖設計采用作為主控芯片,作為與攝像監控,液晶顯示屏作為顯示,指紋識別模塊繼電器模塊具有三種解鎖方式指紋解鎖密碼解鎖解鎖解鎖時密碼或者指紋錯誤液晶顯示屏會提示出錯,次錯誤就會鎖定,需要等待分鐘才會解鎖。 ...

    付永剛 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<