|
|
想要通過單片機(jī)檢測(cè)溫度,然后通過esp8266將溫度數(shù)據(jù)上傳到樂為物聯(lián)網(wǎng)平臺(tái)。
51hei截圖_20191023145416.png (92.27 KB, 下載次數(shù): 38)
下載附件
2019-10-23 14:55 上傳
51hei截圖_20191023145441.png (60.95 KB, 下載次數(shù): 36)
下載附件
2019-10-23 14:55 上傳
通過串口調(diào)試助手輸入和程序一樣的AT指令,能夠成功傳輸?shù)綌?shù)據(jù),但是將代碼寫進(jìn)單片機(jī)后,就無法實(shí)現(xiàn),不知問題出在哪,求大神解答。
已經(jīng)排除波特率的因素,esp8266的波特率已經(jīng)改為9600了。
附上單片機(jī)代碼:
- #include <reg52.h>
- #include <stdio.h>
-
- #define uchar unsigned char
- #define uint unsigned int
-
- void delayms(uint x) //51單片機(jī)的常用延時(shí)方式
- {
- uint i,j;
- for(i=x;i>0;i--)
- for(j=110;j>0;j--);
- }
-
- void uart_init() //串口的初始化
- {
- TMOD = 0x20;
- TH1 = 0XFd;
- TL1 = 0XFd;
- SCON = 0x50;
- PCON = 0X00;
- TR1 = 1;
- EA = 1;
- ES = 1;
- }
-
- void wifi_init() //初始化wifi模塊
- {
- ES = 0; //關(guān)閉串口中斷,以免發(fā)送指令過程中被其他事情打斷
- TI = 1;
-
-
- printf("AT+CWMODE=1\r\n"); //選擇STA模式
- delayms(1200);
-
- printf("AT+RST\r\n"); //往串口發(fā)重啟指令,在單片機(jī)中使用printf默認(rèn)是往串口發(fā)送數(shù)據(jù)
- delayms(1200); //適當(dāng)延時(shí),給wifi模塊一點(diǎn)反應(yīng)時(shí)間
- printf("AT+CWJAP=\"iPhone7 plus\",\"123456789a\"\r\n");
- delayms(2000);
- printf("AT+CIPMUX=0\r\n"); //單通道模式
- delayms(1200);
- printf("AT+CIPMODE=1\r\n"); //選擇透?jìng)?br />
- delayms(1200);
-
- printf("AT+CIPSTART=\"TCP\",\"tcp.lewei50.com\",9960\r\n"); //設(shè)置遠(yuǎn)程主機(jī)IP和端口號(hào)
- delayms(2000);
-
- printf("AT+CIPSEND\r\n"); //發(fā)送數(shù)據(jù)命令
- delayms(1200);
-
- while(!TI);
- TI = 0;
- ES = 1; //重新開啟串口中斷
- }
-
- void send(char *p) //發(fā)送數(shù)據(jù)函數(shù)
- {
- TI=0;
- do
- {
- SBUF = *p;
- p++;
- while(!TI);
- TI = 0;
- }while(*p);
- SBUF = ' ';
- while(!TI);
- TI = 0;
- }
-
-
- void main()
- {
- uart_init();
- wifi_init();
- // while(1)
- // {
- send("{\"method\": \"update\",\"gatewayNo\": \"02\",\"userkey\":\"82b16d0e39ee4a84989eb8ce812510de\"}&^!\r\n");
- delayms(1000); //適當(dāng)延時(shí)
- send("{\"method\": \"upload\",\"data\":[{\"Name\":\"T1\",\"Value\":\"30\"}]}&^!\r\n");
- delayms(1000); //適當(dāng)延時(shí)
- // }
- }
復(fù)制代碼
|
|