1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

標題: 51單片機用esp8266上傳數據到樂為物聯網平臺失敗 [打印本頁]

作者: 401086798    時間: 2019-10-23 15:01
標題: 51單片機用esp8266上傳數據到樂為物聯網平臺失敗
想要通過單片機檢測溫度,然后通過esp8266將溫度數據上傳到樂為物聯網平臺。



通過串口調試助手輸入和程序一樣的AT指令,能夠成功傳輸到數據,但是將代碼寫進單片機后,就無法實現,不知問題出在哪,求大神解答。
已經排除波特率的因素,esp8266的波特率已經改為9600了。

附上單片機代碼:
  1. #include <reg52.h>
  2. #include <stdio.h>

  3. #define uchar unsigned char
  4. #define uint unsigned int

  5. void delayms(uint x)   //51單片機的常用延時方式
  6. {
  7.         uint i,j;
  8.         for(i=x;i>0;i--)
  9.                 for(j=110;j>0;j--);
  10. }

  11. void uart_init()      //串口的初始化
  12. {
  13.         TMOD = 0x20;
  14.         TH1 = 0XFd;
  15.         TL1 = 0XFd;
  16.         SCON = 0x50;
  17.         PCON = 0X00;
  18.         TR1 = 1;
  19.         EA = 1;
  20.         ES = 1;
  21. }

  22. void wifi_init()      //初始化wifi模塊
  23. {
  24.         ES = 0;       //關閉串口中斷,以免發送指令過程中被其他事情打斷
  25.         TI = 1;


  26.         printf("AT+CWMODE=1\r\n");  //選擇STA模式
  27.         delayms(1200);

  28.         printf("AT+RST\r\n");  //往串口發重啟指令,在單片機中使用printf默認是往串口發送數據
  29.         delayms(1200);         //適當延時,給wifi模塊一點反應時間

  30.         printf("AT+CWJAP=\"iPhone7 plus\",\"123456789a\"\r\n");  
  31.         delayms(2000);      

  32.         printf("AT+CIPMUX=0\r\n");  //單通道模式
  33.         delayms(1200);

  34.         printf("AT+CIPMODE=1\r\n");  //選擇透傳
  35.         delayms(1200);

  36.         printf("AT+CIPSTART=\"TCP\",\"tcp.lewei50.com\",9960\r\n");  //設置遠程主機IP和端口號
  37.         delayms(2000);

  38.         printf("AT+CIPSEND\r\n");  //發送數據命令
  39.         delayms(1200);

  40.         while(!TI);
  41.         TI = 0;  
  42.         ES = 1;  //重新開啟串口中斷
  43. }

  44. void send(char *p)  //發送數據函數
  45. {
  46.         TI=0;
  47.         do
  48.         {       
  49.                 SBUF = *p;
  50.                 p++;
  51.                 while(!TI);
  52.                 TI = 0;
  53.         }while(*p);
  54.         SBUF = ' ';
  55.         while(!TI);
  56.         TI = 0;
  57. }


  58. void main()
  59. {
  60.         uart_init();
  61.         wifi_init();
  62. //        while(1)
  63. //        {
  64.                 send("{\"method\": \"update\",\"gatewayNo\": \"02\",\"userkey\":\"82b16d0e39ee4a84989eb8ce812510de\"}&^!\r\n");
  65.                 delayms(1000);  //適當延時

  66.                 send("{\"method\": \"upload\",\"data\":[{\"Name\":\"T1\",\"Value\":\"30\"}]}&^!\r\n");
  67.                 delayms(1000);  //適當延時
  68. //        }
  69. }
復制代碼




作者: cml1264611    時間: 2019-12-27 10:51
調整下延遲時間,有時候這個搜到回復內容的時間不一定
作者: 17727219780    時間: 2020-4-12 11:43
樓主 想問一下這個json的字節數怎么看呀 是大括號里面的字節數叫上后綴0D和0A兩個嗎




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1