国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

阿里云 MQTT協(xié)議 AT指令 ESP8266-01S 數(shù)據(jù)上下傳輸

這篇具有很好參考價(jià)值的文章主要介紹了阿里云 MQTT協(xié)議 AT指令 ESP8266-01S 數(shù)據(jù)上下傳輸。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

printf重定義資料來自江科大自動化協(xié)---<<stm32入門教程>>---<<串口發(fā)送+接收>>一節(jié)視頻講解

1、調(diào)試ESP8266

細(xì)節(jié)請看b站這個(gè)up主的視頻阿里云+ESP8266+STM32遠(yuǎn)程點(diǎn)燈(流程講解)

阿里云平臺配置細(xì)節(jié)請看10分鐘玩轉(zhuǎn)阿里云物聯(lián)網(wǎng)平臺設(shè)備接入、管理、運(yùn)維

這里只記錄一下大概內(nèi)容,方便日后調(diào)試。

1、用USB轉(zhuǎn)串口工具連接ESP8266,先調(diào)通esp8266到阿里云端的線路(此步在后續(xù)調(diào)試esp8266時(shí)也尤為重要,因?yàn)檫@樣不需要反復(fù)修改代碼反復(fù)燒寫,只需幾個(gè)AT指令)

接線方式
ESP8266 USB轉(zhuǎn)串口工具
3.3 3.3
GND GND
TX RX
RX TX

?注意:有時(shí)會出現(xiàn)接線正確發(fā)送不出指令的情況,網(wǎng)上查到的原因是,USB轉(zhuǎn)串口工具輸出的3.3V電壓驅(qū)動能力不行,帶不動ESP8266,可以更換其他穩(wěn)定的供電設(shè)備,我手邊沒有萬用表,沒法測量驗(yàn)證,但是更換電源可以解決此問題;另外官方文件說ESP8266供電電壓范圍是3.0V-3.6V,我器件嘗試接過5V電壓,ESP8266沒有燒壞,但發(fā)熱明顯,保守期間不要嘗試此接法。

AT指令
AT
AT+RST 重啟模塊
AT+RESTORE 恢復(fù)出廠設(shè)置--擦除所有保存在flash中的參數(shù)
AT+CWMODE=1 設(shè)置wifi模式-----AP模式
AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com" 設(shè)置時(shí)域和SNTP服務(wù)器?
AT+CWJAP="wifiname","password"? 連接AP
AT+MQTTUSERCFG=0,1,"NULL","username","passwd",0,0,""
AT+MQTTCLIENTID=0,"ClientId"
AT+MQTTCONN=0,"mqttHostUrl",1883,1
AT+MQTTSUB=0,"/{ProductKey}/{DeviceName}/user/get",1 訂閱自定義topic
AT+MQTTPUB=0,"/{ProductKey}/{DeviceName}/user/update","{\"temp\":50.5}",1,0 發(fā)布自定義Topic
AT+MQTTSUB=0,"/sys/{ProductKey}/{DeviceName}/thing/service/property/set",1 訂閱物模型
AT+MQTTPUB=0,"/sys/{ProductKey}/{DeviceName}/thing/event/property/post","{\"params\":{\"EnvironmentTemperature\":35}}",1,0 上報(bào)設(shè)備屬性

Clientld需要在‘,’之前加轉(zhuǎn)義字符 '\'

例:

阿里云 MQTT協(xié)議 AT指令 ESP8266-01S 數(shù)據(jù)上下傳輸

指令中topic:

阿里云 MQTT協(xié)議 AT指令 ESP8266-01S 數(shù)據(jù)上下傳輸

2、用stm32調(diào)試esp8266

接線方式
STM32 ESP8266 USB轉(zhuǎn)串口工具
3.3 3.3
GND GND GND
RX TX RX
TX RX

可以使用面包板,對線路進(jìn)行拓展,將ESP8266的TX同時(shí)接到STM32和串口工具的RX引腳,方便使用電腦的串口調(diào)試軟件觀察ESP8266的配置狀態(tài),方便調(diào)試。

ESP8266的初始化函數(shù)(用STM32的串口發(fā)送AT指令給ESP8266)

//初始化ESP8266連接到阿里云函數(shù)
void ESP8266_Init(void)
{
	OLED_ShowString(1,1,"loading...");
	//1
	Serial_String("AT+RST\r\n");
	ESP_FeedBack(1);
	Delay_ms(2000);
	//2
	Serial_String("AT+RESTORE\r\n");
	ESP_FeedBack(2);
	Delay_ms(2000);
	//3
	Serial_String("AT+CWMODE=1\r\n");
	ESP_FeedBack(3);
	Delay_ms(2000);
	//4
	Serial_String("AT+CIPSNTPCFG=1,8,\"ntp1.aliyun.com\"\r\n");//加轉(zhuǎn)義字符
	ESP_FeedBack(4);
	Delay_ms(3000);
	//5
	Serial_String("AT+CWJAP=\"LAPTOP\",\"asdfghjkl\"\r\n");//加轉(zhuǎn)義字符
	ESP_FeedBack(5);
	Delay_ms(3000);
	//6
	Serial_String("AT+MQTTUSERCFG=0,1,\"NULL\",\"ESP8266-01&ibln7d8PcHp\",\"e0ae924e8007d0259c7a7d31bd3f01fd1bfdc270b8e689fa757e4f23de4cccb4\",0,0,\"\"\r\n");
	ESP_FeedBack(6);
	Delay_ms(5000);
	//7
	Serial_String("AT+MQTTCLIENTID=0,\"ibln7d8PcHp.ESP8266-01|securemode=2\\,signmethod=hmacsha256\\,timestamp=1679206129784|\"\r\n");
	ESP_FeedBack(7);
	Delay_ms(5000);
	//8
	Serial_String("AT+MQTTCONN=0,\"iot-06z00ehfqvp2bgm.mqtt.iothub.aliyuncs.com\",1883,1\r\n");
	ESP_FeedBack(8);
	Delay_ms(5000);
	//9
//	Serial_String("/ibln7d8PcHp/ESP8266-01/user/get\",1\r\n");
//	ESP_FeedBack(9);
//	Delay_ms(5000);
	//10訂閱物模型
	Serial_String("AT+MQTTSUB=0,\"/sys/ibln7d8PcHp/ESP8266-01/thing/service/property/set\",1\r\n");
	ESP_FeedBack(9);
	Delay_ms(5000);
	
}

ESP8266日志接收函數(shù)(STM32接收ESP8266發(fā)送回來的日志數(shù)據(jù),分析數(shù)據(jù)做出初始化反饋)

//查看錯(cuò)誤反饋函數(shù)
void ESP_FeedBack(uint8_t t)
{
	Delay_ms(1000);
	if( strstr((const char *)ESP8266_To_Serial,"ERROR") )
	{
		Refresh_DMA();//刷新DMA緩沖區(qū)以及計(jì)數(shù)器
		memset(ESP8266_To_Serial,0,100);//將數(shù)組清零
		OLED_ShowString(2,1,"ERR:");
		OLED_ShowNum(2,4+t,t,1);
	}
}

main.c

int main(void)
{	
	OLED_Init();
	Serial_Init();//初始化串口2配置
	USART_DMA_Init();//初始化DMA轉(zhuǎn)運(yùn)USART2_RX配置
	ESP8266_Init();//ESP8266連接服務(wù)器

	while(1)
	{
		i++;
        //一次發(fā)送多個(gè)物模型數(shù)據(jù)
		printf("AT+MQTTPUB=0,\"/sys/ibln7d8PcHp/ESP8266-01/thing/event/property/post\",\"{\\\"params\\\":{\\\"EnvironmentTemperature\\\":%d},\\\"LightLux\\\":%d,\\\"AirSpeed\\\":%d}}\",1,0\r\n",i,i+1,i+2);

        //一次發(fā)送一個(gè)物模型數(shù)據(jù)
		printf("AT+MQTTPUB=0,\"/sys/ibln7d8PcHp/ESP8266-01/thing/event/property/post\",\"{\\\"params\\\":{\\\"LightLux\\\":%d}}\",1,0\r\n",i);
//		printf("AT+MQTTPUB=0,\"/sys/ibln7d8PcHp/ESP8266-01/thing/event/property/post\",\"{\\\"params\\\":{\\\"LightLux\\\":%d}}\",1,0\r\n",i);
		Delay_ms(10000);//延時(shí)10秒
	}
}

請求數(shù)據(jù)格式要求:

阿里云 MQTT協(xié)議 AT指令 ESP8266-01S 數(shù)據(jù)上下傳輸

?

發(fā)送數(shù)據(jù)時(shí)需要使用變量,若直接使用串口發(fā)送函數(shù),則不能存在變量,因此解決此問題需要重定義printf函數(shù)實(shí)現(xiàn)。步驟如下:

1、在keil中使用printf之前需要線設(shè)置一下

阿里云 MQTT協(xié)議 AT指令 ESP8266-01S 數(shù)據(jù)上下傳輸

2、 打印函數(shù)

方法一:重定向printf

將printf打印的東西輸出到串口

重寫fputc()函數(shù),因?yàn)閜rintf函數(shù)使用時(shí)也是調(diào)用fputc函數(shù)一個(gè)個(gè)的打印。fputc函數(shù)發(fā)送到串口,printf函數(shù)自然也就打印輸出到了串口

重寫fputc函數(shù):

#include <stdio.h>

int fputc(int ch,FILE *f)
{
    Serial_SendByte(ch);//這里調(diào)用自己寫的串口發(fā)送字節(jié)函數(shù)
    return ch;
}


//主函數(shù)
void main(void)
{
    printf("NUm=%d\n",666);

    while(1)
    {

    }
    
}

方法二:用sprintf函數(shù)(此處是實(shí)現(xiàn)打印到串口的第二種方法)

sprintf函數(shù)不需要重定義,因?yàn)榇撕瘮?shù)第一個(gè)參數(shù)是指定打印位置

sprintf函數(shù)作用是把格式化字符輸出到一個(gè)字符串里

#include <stdio.h>

char string[100];//定義一個(gè)足夠大的緩存空間

sprintf(string,"NUM=5d\n",666);//輸出到string中

方法三:封裝sprintf函數(shù)(此方法用到了可變參數(shù)列表,記錄下來只是學(xué)習(xí)一下)

void Serial_printf(char *format,...)
{
    char string[100];
    va_list arg;//存放可變參數(shù)列表的變量
    va_start(arg,format)//從format開始存放參數(shù)列表到arg中
    vsprintf(string,format,arg);//打印格式   這里up解釋是sprintf只能接收直接寫的參數(shù)
    va_end(arg);//釋放arg空間
    Serial_SendByte(string);//調(diào)用自己寫的串口發(fā)送字節(jié)函數(shù)
}

keil修改一下配置

阿里云 MQTT協(xié)議 AT指令 ESP8266-01S 數(shù)據(jù)上下傳輸文章來源地址http://www.zghlxwxcb.cn/news/detail-425404.html

到了這里,關(guān)于阿里云 MQTT協(xié)議 AT指令 ESP8266-01S 數(shù)據(jù)上下傳輸?shù)奈恼戮徒榻B完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ESP8266-01s入門:上報(bào)和下發(fā)數(shù)據(jù)控制單片機(jī) AT指令講解和上云 燒錄AT固件與OneNET MQTT通信教程包含MQTT.fx1.7.1教程(微信小程序通信單片機(jī)前置任務(wù))

    ESP8266-01s入門:上報(bào)和下發(fā)數(shù)據(jù)控制單片機(jī) AT指令講解和上云 燒錄AT固件與OneNET MQTT通信教程包含MQTT.fx1.7.1教程(微信小程序通信單片機(jī)前置任務(wù))

    本項(xiàng)目教程總共分為四節(jié) 1.創(chuàng)建OneNET新版MQTT設(shè)備:為微信小程序與單片機(jī)通信打基礎(chǔ)(微信小程序通信單片機(jī)前置任務(wù)) 2.(當(dāng)前文章)ESP8266-01s入門:燒錄AT固件與OneNET MQTT通信教程包含MQTT.fx1.7.1教程(微信小程序通信單片機(jī)前置任務(wù)) 3.物聯(lián)網(wǎng)實(shí)踐教程:微信小程序結(jié)合

    2024年02月04日
    瀏覽(26)
  • ESP8266-01S+MQTT+阿里云數(shù)據(jù)傳輸

    ESP8266-01S+MQTT+阿里云數(shù)據(jù)傳輸

    ESP8266-01S模塊一個(gè) USB轉(zhuǎn)TTL一個(gè) 軟件資料在文章最后 打開百度云盤資料里的文件夾中的\\\"ESP8266_固件燒錄\\\"文件夾 打開這個(gè)文件夾 打開該文件夾中的exe文件即可,然后打開ESP8266 DownloadTool 3.點(diǎn)擊圖中箭頭所指按鈕,選擇文件夾中的MQTT固件 4.硬件接線 ESP8266的TX-----TTL板的RX ESP8266的

    2023年04月15日
    瀏覽(22)
  • STM32發(fā)送數(shù)據(jù)ESP8266固件燒錄MQTT和AT指令調(diào)試與鏈接OneNET

    STM32發(fā)送數(shù)據(jù)ESP8266固件燒錄MQTT和AT指令調(diào)試與鏈接OneNET

    STM32連接ESP8266發(fā)送數(shù)據(jù)到OneNET平臺 1.硬件型號:ESP8266-01s 和 USBTTL轉(zhuǎn)接口模塊 2.固件:1471_esp8266-at_mqtt-1m(MQTT透傳AT固件(固件號:1471)) 3.固件燒錄工具:flash_download_tool_3.9.4 固件下載和燒錄工具均可在安信可官網(wǎng)下載安信可AT固件下載 本文章使用的是XCOM V2.6 串口助手 4.On

    2024年02月04日
    瀏覽(41)
  • ESP8266-01S燒錄MQTT透傳AT固件

    ESP8266-01S燒錄MQTT透傳AT固件

    須在正常模式下(VCC、GND、RX、TX),將 IO0引腳 接地, EN引腳 接3.3V(總共 6 根線)連入U(xiǎn)SB TO TTL模塊,將USB TO TTL模塊插入電腦 找到固件和工具的位置,下載 ? ?注意:燒錄的bin文件要放在燒錄工具的同一個(gè)文件夾下,避免燒錄工具找不到bin文件造成下載出錯(cuò) 打開燒錄工具 ? 需

    2024年02月10日
    瀏覽(28)
  • 認(rèn)識 ESP8266—ESP-01S (含AT指令)

    認(rèn)識 ESP8266—ESP-01S (含AT指令)

    了解完本文內(nèi)容,可以去觀看我的另一篇文章-----》 STM32—通過HC05配置ESP8266(ESP01s)獲取時(shí)間和天氣 ESP8266 是串口型 WIFI,速度比較低,不能用來傳輸圖像或者視頻這些大容量的數(shù)據(jù),主要應(yīng)用于數(shù)據(jù)量傳輸比較少的場合,比如溫濕度信息,一些傳感器的開關(guān)量等。 ESP8266 的

    2024年02月06日
    瀏覽(60)
  • STM32驅(qū)動ESP8266連接阿里云(1)----使用AT指令連接阿里云

    STM32驅(qū)動ESP8266連接阿里云(1)----使用AT指令連接阿里云

    購買的ESP8266一般沒帶MQTT固件,所以無法通過MQTT指令與云平臺通信,需要燒錄固件。 MQTT固件可以在安信可科技進(jìn)行下載。 交流qun:6_15061293。 https://docs.espressif.com/projects/esp-at/zh_CN/release-v2.2.0.0_esp8266/index.html 下載器可以使用樂鑫官方的下載器。 https://www.espressif.com.cn/zh-hans/s

    2024年02月03日
    瀏覽(25)
  • ESP8266-01 MQTT固件燒錄并連接阿里云服務(wù)器

    ESP8266-01 MQTT固件燒錄并連接阿里云服務(wù)器

    1、燒錄工具:flash_download_tool : ? 鏈接:https://pan.baidu.com/s/1jJJ07G56jNJ3SrOwstPzVA?pwd=8i93? 提取碼:8i93 2、串口調(diào)試助手:串口調(diào)試助手 3、阿里云配置生成工具: 鏈接:https://pan.baidu.com/s/13tjpFwGMeR0juS5OSEBiJQ?pwd=61me? 提取碼:61me 4、USB TO TTL 5、esp8266 01s 6、AT固件:下載 ? 向esp8266燒

    2024年02月06日
    瀏覽(32)
  • STM32進(jìn)階學(xué)習(xí)(1)-ESP01-S的AT指令測試、MQTT原理

    STM32進(jìn)階學(xué)習(xí)(1)-ESP01-S的AT指令測試、MQTT原理

    如圖,不多解釋了。 參數(shù): 這里注意的是,頻譜范圍是2.4GHZ,所以連接WIFI時(shí)只支持2.4HGZ的頻段,不支持5Ghz頻段。另外,供電是3.3V,這里讓單片機(jī)給其供電即可。 電路圖: 拿到手的ESP01S,首先要驗(yàn)證其功能是否正常,這里我用ESP01S連接USB轉(zhuǎn)串口模塊,并與電腦上的串口調(diào)試

    2024年02月09日
    瀏覽(23)
  • ESP-01S使用AT指令連接阿里云

    ESP-01S使用AT指令連接阿里云

    這次分享下ESP8266-01S使用AT指令連接阿里云,為了后面stm32--esp-01s-阿里云(MQTT)做鋪墊 目錄 步驟: 1.燒錄阿里云固件 首先我們打開-安信可官網(wǎng)下載阿里云的固件,如圖 1.1串口助手與esp-01s接線說明 注:文章后面會附上本文提及到的的所有資料。 2.在阿里云注冊設(shè)備,產(chǎn)品等

    2024年02月02日
    瀏覽(48)
  • 【物聯(lián)網(wǎng)】手把手完整實(shí)現(xiàn)STM32+ESP8266+MQTT+阿里云+APP應(yīng)用——第1節(jié)-阿里云配置+MQTT.fx模擬與使用AT命令發(fā)布訂閱消息

    【物聯(lián)網(wǎng)】手把手完整實(shí)現(xiàn)STM32+ESP8266+MQTT+阿里云+APP應(yīng)用——第1節(jié)-阿里云配置+MQTT.fx模擬與使用AT命令發(fā)布訂閱消息

    ??博主領(lǐng)域:嵌入式領(lǐng)域人工智能軟件開發(fā) 本節(jié)目標(biāo): 通過MQTT.fx模擬連接或通過串口連接ESP8266發(fā)送AT命令,實(shí)現(xiàn)阿里云物聯(lián)網(wǎng)平臺發(fā)送數(shù)據(jù)同時(shí)接收數(shù)據(jù),IOT studio界面顯示數(shù)據(jù)。具體來說:使用ESP8266 ESP-01來連接網(wǎng)絡(luò),獲取設(shè)備數(shù)據(jù)發(fā)送到阿里云物聯(lián)網(wǎng)平臺并顯示且oled顯

    2024年02月03日
    瀏覽(103)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包