久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6737|回復: 7
打印 上一主題 下一主題
收起左側

用stc12單片機做溫度數據上傳到onenet平臺經驗總結與源碼

  [復制鏈接]
跳轉到指定樓層
樓主
第一次接觸onenet平臺,所總結的不太全面,歡迎討論。首先,初始化esp8266模塊,特別提醒一下單片機使用的晶振最好是11.0952M,以減少數據誤差。本實驗波特率是設為9600。
程序在上傳的資料里,現在主要說onenet的報文封裝問題:


紅色字體的詳細內容請看上傳資料的總結,里面有講。
我使用的是第一種,以下是我寫的程序封裝:


最好將報文分段上傳,之前我是一堆上傳的,然后不成功,后來換了這種方式。
所有資料在上傳的文件里面,程序以及總結onenet的http協議的使用。


單片機源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>  
  3. #include "ds18b20.h"
  4. #define uint unsigned int
  5. #define uchar unsigned char


  6. /*******************************************************************
  7. 名稱:延時函數
  8. 作用:毫秒級延時,微妙級延時函數,為數據收發完成作等待.......
  9. ********************************************************************/
  10. void Delay20ms()                //@11.0592MHz
  11. {
  12.         unsigned char i, j, k;

  13.         i = 1;
  14.         j = 216;
  15.         k = 35;
  16.         do
  17.         {
  18.                 do
  19.                 {
  20.                         while (--k);
  21.                 } while (--j);
  22.         } while (--i);
  23. }
  24. void us_delay(uchar t)
  25. {
  26.       while(t--);
  27. }
  28. void Delay_1s()                //@12.000MHz
  29. {
  30.         unsigned char i, j, k;
  31.         i = 46;
  32.         j = 153;
  33.         k = 245;
  34.         do
  35.         {
  36.                 do
  37.                 {
  38.                         while (--k);
  39.                 } while (--j);
  40.         } while (--i);
  41. }
  42. void Delay500ms()                //@11.0592MHz
  43. {
  44.         unsigned char i, j, k;

  45.         i = 22;
  46.         j = 3;
  47.         k = 227;
  48.         do
  49.         {
  50.                 do
  51.                 {
  52.                         while (--k);
  53.                 } while (--j);
  54.         } while (--i);
  55. }



  56. /********************************************************************
  57. 名稱:波特率發生器函數
  58. 作用:波特率發生器是T1定時器實現,
  59. ********************************************************************/
  60. void Uart_Init()//使用定時器1作為波特率發生器
  61. {   
  62.   SCON  = 0x50;          // SCON: 模式 1, 8-bit UART, 使能接收  
  63.         TMOD  = 0x22;               // TMOD: timer 1, mode 2, 8-bit 重裝
  64.         IP    = 0X10;                   //將中斷優先級設置為高優先級
  65.         TH1   = 0xfd;
  66.         TL1   = 0Xfd;               // TH1:  重裝值 9600 波特率 晶振 11.0592MHz
  67.         TR1   = 1;                  // TR1:  timer 1 打開                     
  68.         ES    = 1;                                   //打開串口中斷
  69.         EA    = 1;                 //打開總中斷   
  70. }









  71. /********************************************************************
  72. 名稱:串口發送函數
  73. 功能:MCU向其他與其連接的設備發送數據(此處是無線WIFI模塊ESP8266)
  74. ********************************************************************/
  75. void Send_Uart(uchar value)
  76. {
  77.       ES=0;         //關閉串口中斷
  78.       TI=0;         //清發送完畢中斷請求標志位
  79.       SBUF=value;     //發送
  80.       while(TI==0);   //等待發送完畢
  81.       TI=0;         //清發送完畢中斷請求標志位
  82.       ES=1;         //允許串口中斷
  83. }
  84. /********************************************************************
  85. 名稱:WIFI模塊設置函數
  86. 作用: 啟動模塊,以便可以實現無線接入和控制
  87. ********************************************************************/
  88. void Send_Str(uchar *puf) // 數組指針*puf指向字符串數組               
  89. {

  90.       while(*puf!='\0')    //遇到空格跳出循環
  91.       {
  92.            Send_Uart(*puf);  //向WIFI模塊發送控制指令。
  93.            us_delay(5);
  94.            puf++;      
  95.       }
  96. }   

  97. void ESP8266_Config(void)                                 
  98. {
  99.                 Send_Str("AT+CIPSTART=\"TCP\",\"183.230.40.34\",80\r\n");
  100.                 Delay500ms();
  101.                 Send_Str("AT+CIPMODE=1\r\n");        //????????,??OK/Link isbuilded,????
  102.                 Delay500ms();
  103.                 Send_Str("AT+CIPSEND\r\n");                //????,?????????????>,????????,?????20ms????,????2048??,????????++??????,??????????????????????
  104.                 Delay500ms();
  105.                 Send_Str("POST /devices/29464168/datapoints?type=3 HTTP/1.1\r\n");
  106.                 Delay20ms();
  107.                   Send_Str("api-key:wvQQgBnVNLk3zGI=Ft=4LV5hw6I=\r\n");
  108.                 Delay20ms();
  109.                 Send_Str("Host:api.heclouds.com\r\n");
  110.                 Delay20ms();       
  111.                 Send_Str("Content-Length:16\r\n");
  112.                 Delay20ms();       
  113.                 Send_Str("\r\n");                                                               
  114.                 Delay20ms();  
  115.                 Send_Str("{\"ADC_1\":");
  116.                 Delay20ms();
  117.                 Send_Str(tempnum);//12.6                Delay20ms();
  118.                 Send_Str("}");
  119.                 Delay20ms();
  120.                 Send_Str("\r\n");                       
  121.                 Delay500ms();       

  122.                
  123. }
  124. /********************************************************************
  125. 名稱:主函數
  126. 作用:程序的執行入口
  127. ********************************************************************/
  128. void main()
  129. {
  130.         Uart_Init();//使用獨立的波特率發生器
  131.         Send_Str("AT+CWQAP\r\n");
  132.         Delay_1s();
  133.         Send_Str("AT+CWJAP=\"LUO\",\"*******luo\"\r\n");
  134.         Delay_1s();
  135.         Delay_1s();
  136.         Delay_1s();
  137.         while(1)
  138.         {
  139.                 tempshow();
  140.                 ESP8266_Config();
  141.         }   
  142. }         



  143. /*********************************************************************
  144. 名稱:串行通訊中斷
  145. ********************************************************************/
  146. void Uart_Interrupt() interrupt 4        
  147. {

  148.   if(RI)RI=0;
  149.         if(TI)TI=0;
  150. ……………………

  151. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
新建 360壓縮 ZIP 文件.zip (554 KB, 下載次數: 153)


評分

參與人數 2黑幣 +80 收起 理由
SAMGO丶 + 30 共享資料的黑幣獎勵,謝謝共享。
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂2 踩
回復

使用道具 舉報

沙發
ID:480682 發表于 2019-3-10 13:16 | 只看該作者
樓主在嗎,能不能再講詳細一點呀
回復

使用道具 舉報

板凳
ID:348296 發表于 2019-4-4 22:57 | 只看該作者
畢設很難 發表于 2019-3-10 13:16
樓主在嗎,能不能再講詳細一點呀

你有什么問題
回復

使用道具 舉報

地板
ID:508011 發表于 2019-5-13 14:28 | 只看該作者
請問一下,這些硬件是怎么連接的?
回復

使用道具 舉報

5#
ID:403027 發表于 2019-5-21 17:01 | 只看該作者
正想學習ESP8266,謝謝樓主
回復

使用道具 舉報

6#
ID:545795 發表于 2019-5-23 18:30 | 只看該作者
感謝分享
回復

使用道具 舉報

7#
ID:348296 發表于 2019-12-4 17:06 | 只看該作者
galaxyinterfere 發表于 2019-5-13 14:28
請問一下,這些硬件是怎么連接的?

串口連接wifi就行了呀
回復

使用道具 舉報

8#
ID:293363 發表于 2020-5-16 18:47 | 只看該作者
樓主,我的怎么上傳不了數據啊
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区 中文字幕 | 国产视频2021 | 中文字幕一区二区三区四区五区 | 亚洲一区二区免费视频 | 亚洲精品一区在线观看 | 免费看日韩视频 | 欧美一区二区三区四区视频 | 一区二区三区欧美 | 爱综合 | 黄片毛片免费观看 | 国产欧美一区二区精品久导航 | 亚洲精品综合一区二区 | 一区二区三区网站 | 国产精品美女久久久久久免费 | 在线一区| 欧美日韩在线播放 | 欧美精品一区二区三区四区五区 | 国产一区视频在线 | 欧美日韩国产三级 | 亚洲一区二区久久久 | 亚洲成人一区二区三区 | 久亚州在线播放 | 免费成人国产 | 国产精品毛片在线 | 成人日b视频 | 亚洲a毛片 | 欧美 日韩 国产 成人 | 久久国产精品精品 | 久久久成人免费视频 | 婷婷精品 | 国产高清精品一区 | 国产精品久久久久久久久久久新郎 | 伦理一区二区 | www亚洲精品 | 97视频在线观看网站 | 日本在线看片 | 三级欧美 | 久久福利电影 | 国产日韩一区二区三免费 | 精品久久国产 | 欧美成人第一页 |