|
ESP8266用TTL轉(zhuǎn)USB插入電腦,用串口發(fā)送AT等指令一切正常
POST /devices/59****198/datapoints?type=5 HTTP/1.1
api-key:m1************************30=
Host:api.heclouds.com
Content-Length:10
,;temp,30
用串口發(fā)送以上指令時(shí)能上傳數(shù)據(jù)至云平臺(tái),返回succ
連接單片機(jī)后ESP8266沒有任何反應(yīng),連不上WiFi也沒有上傳數(shù)據(jù),用串口監(jiān)視單片機(jī)發(fā)出的指令也是正常的(用串口監(jiān)視到的指令復(fù)制重新用串口發(fā)送ESP8266是正常工作的)
晶振是11.0592MHz,波特率設(shè)置為9600(試著設(shè)了一下115200,用串口監(jiān)視輸出的是亂的)
直接把指令轉(zhuǎn)換成十六進(jìn)制發(fā)送也試了還是不行。
代碼也貼這兒了,求大佬們指點(diǎn)一下。
- #include<reg52.h>
- #include<intrins.h>
- #include<string.h>
- #define uint unsigned int
- #define uchar unsigned char
- uchar aa[]="55";
- void delay1(uint z) //延時(shí)1ms
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- void sendChar(uchar a) //單片機(jī)發(fā)送一個(gè)字節(jié)
- {
-
- SBUF = a;
- while(TI==0);
- TI=0;
- }
- void sendString(uchar *s) //發(fā)送一個(gè)字符串
- {
- uchar i;
- for(i=0;i<strlen(s);i++)
- {
- if(s[i]!='\0')
- sendChar(s[i]);
- else
- sendChar('\0');
- }
- }
- void init()
- {
- TMOD=0x20; //定時(shí)器1工作在方式2
- TH1=0xfd; //波特率為9600,精振為11.0592MHz
- TL1=0xfd;
- REN=1; //啟動(dòng)串行口接收數(shù)據(jù)
- SM0=0; //串口工作在方式1
- SM1=1; //串行口工作方式選擇
- EA=1; //打開總中斷
- TR1=1; //打開定時(shí)器中斷
- /*esp8266初始化*/
- delay1(1000);
- sendString("AT+RST\r\n");
- delay1(1000);
- sendString("AT+CWMODE=3\r\n"); //設(shè)置WIFI應(yīng)用模式
- delay1(1000); //設(shè)置WIFI應(yīng)用模式
- sendString("AT+RST\r\n"); //重置WIFI模塊
- delay1(1000);
- sendString("AT+CIFSR\r\n"); //查詢本地IP
- delay1(1000);
- sendString("AT+CWJAP=\"DESKTOP-RNE8OFL9047\",\"<93v8V22\"\r\n");//連接無線路由器
- delay1(5000);
-
- }
- void chuansu() //單片機(jī)通過8266給OneNET傳送數(shù)據(jù)
- {
- sendString("AT+CIPSTART=\"TCP\",\"183.230.40.33\",80\r\n");//和服務(wù)器建立TCP連接
- delay1(1000);
- sendString("AT+CIPMODE=1\r\n"); //進(jìn)入透明傳輸模式
- delay1(1000);
- sendString("AT+CIPSEND\r\n"); //開始傳輸
- delay1(1000);
- sendString("POST /devices/59****198/datapoints?type=5 HTTP/1.1\r\napi-key:m17*******************30=\r\nHost:api.heclouds.com\r\nContent-Length:10\r\n\r\n,;temp,");
- sendString(aa);
- sendString("\r\n");
- delay1(1000);
- }
- void main()
- {
- init(); //初始化定時(shí)器和esp8266
-
- while(1)
- {
- chuansu();
- delay1(1000);
- }
- }
復(fù)制代碼
下面是監(jiān)視單片機(jī)io口發(fā)出的指令
|
|