找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5651|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

簡(jiǎn)易智能家居-物聯(lián)網(wǎng)綜合設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書(shū)下載

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:428393 發(fā)表于 2018-11-17 20:05 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
簡(jiǎn)易智能家居系統(tǒng)

一、任務(wù)和要求

1、任務(wù)
設(shè)計(jì)并制作一套簡(jiǎn)易智能家居系統(tǒng)。系統(tǒng)結(jié)構(gòu)如下圖所示。
2、要求
1)51單片機(jī)(終端結(jié)點(diǎn))能實(shí)現(xiàn)溫度的測(cè)量,并能將溫度在LCD顯示器上顯示;
2)51單片機(jī)(終端結(jié)點(diǎn))能檢測(cè)有無(wú)火災(zāi)發(fā)生,并將火警送LCD顯示器上顯示;
3)51單片機(jī)(終端結(jié)點(diǎn))能實(shí)現(xiàn)對(duì)D1、D2、D3三盞LED燈的開(kāi)關(guān)的控制,并將燈的工作狀態(tài)送LCD顯示器顯示;
4)51單片機(jī)通過(guò)串口WIFI模塊連接,把WIFI模塊設(shè)置成透?jìng)鞴ぷ髂J剑琖IFI模塊通過(guò)路由器連接上所在的網(wǎng)絡(luò);
5)通過(guò)網(wǎng)絡(luò)調(diào)試助手將計(jì)算機(jī)設(shè)置成TCP SERVER,并通過(guò)網(wǎng)絡(luò)調(diào)試助手實(shí)現(xiàn)溫度的采集與顯示、火警狀態(tài)顯示、LED燈工作狀態(tài)的顯示,并能通過(guò)網(wǎng)絡(luò)調(diào)試助手控制LED燈的工作;
6)用有人手機(jī)網(wǎng)絡(luò)調(diào)試助手將手機(jī)設(shè)置成TCP SERVER,實(shí)現(xiàn)用手機(jī)顯示溫度、火警狀態(tài)、LED燈的工作狀態(tài),并能通過(guò)手機(jī)網(wǎng)絡(luò)調(diào)試助手控制LED燈的工作。
7)將終端結(jié)點(diǎn)的工作狀態(tài)上傳到ONENET物聯(lián)網(wǎng)云平臺(tái)。
二、溫度的采集、火警檢測(cè)與LED燈的控制
功能要求:本模塊以51單片機(jī)為核心,用溫度傳感器DS18B20測(cè)量溫度,通過(guò)火災(zāi)傳感器檢測(cè)有無(wú)火災(zāi)發(fā)生,用獨(dú)立按鍵開(kāi)關(guān)三盞LED燈,并將溫度和LED燈的工作狀態(tài)在LCD1602上顯示。
  • 普中51單片機(jī)實(shí)驗(yàn)開(kāi)發(fā)實(shí)驗(yàn)儀介紹
1)獨(dú)立按鍵
2)1602LCD顯示器接口
3)LED模塊
  • 獨(dú)立按按鍵控制LED燈的工作
分別用單片機(jī)開(kāi)發(fā)板上的K1、K2、K3這三個(gè)按鍵模擬開(kāi)關(guān),用開(kāi)發(fā)板上的D5、D6、D7三個(gè)LED模擬三盞燈。其程序流程圖如下:
  • LCD1602顯示器原理及編程應(yīng)用

字符型液晶顯示模塊是一種專門(mén)用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式 LCD,目前常用 16*1, 16*2,20*2 和 40*2 行等的模塊。本設(shè)計(jì)中用的顯示器為L(zhǎng)CD1602 字符型液晶顯示器,是一種16*2的顯示器。為例,其實(shí)物如下圖;1602LCD 分為帶背光和不帶背光兩種,基控制器大部分為 HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無(wú)差別。其詳細(xì)資料請(qǐng)看“LCD1602中文資料”。

在本設(shè)計(jì)中,為同學(xué)們提供了LCD1602的驅(qū)動(dòng)文件lcd.c和lcd.h,可調(diào)用的函數(shù)及功能如下:

void Lcd1602_Delay1ms(uint c);   //誤差 0us

void Read_Busy();           //忙檢測(cè)函數(shù),判斷bit7是0,允許執(zhí)行;1禁止

void Lcd1602_Write_Cmd(unsigned char cmd);     //寫(xiě)命令

void Lcd1602_Write_Data(unsigned char dat);   //寫(xiě)數(shù)據(jù)

void LcdSetCursor(unsigned char x,unsigned char y);  //坐標(biāo)顯示

void LcdShowStr(unsigned char x,unsigned char y,unsigned char *str);     //顯示字符串

void InitLcd1602();              //1602初始化

  • 溫度傳感器DS18B20原理與編程應(yīng)用
1)DS18B20概述
DS18B20是單線數(shù)字溫度傳感器,即“一線器件”,其采用單總線的接口方式 與微處理器連接時(shí) 僅需要一條口線即可實(shí)現(xiàn)微處理器與 DS18B20 的雙向通訊。 單總線具有經(jīng)濟(jì)性好,抗干擾能力強(qiáng),適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,使用方便等優(yōu)點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念。 測(cè)量溫度范圍寬,測(cè)量精度高 DS18B20 的測(cè)量范圍為 -55 ℃ ~+ 125 ℃ ; 在 -10~+ 85°C 范圍內(nèi),精度為 ± 0.5°C 。

  其主要特點(diǎn)、內(nèi)部結(jié)構(gòu)和工作時(shí)序請(qǐng)?jiān)斠?jiàn)“數(shù)字溫度傳感器DS18B20的應(yīng)用”P(pán)PT。

2DS18B20進(jìn)行一次溫度的轉(zhuǎn)換

(1)主機(jī)先作個(gè)復(fù)位操作,

(2)主機(jī)再寫(xiě)跳過(guò)ROM的操作(CCH)命令,

(3)然后主機(jī)接著寫(xiě)個(gè)轉(zhuǎn)換溫度的操作命令,后面釋放總線至少一秒,讓DS18B20完成轉(zhuǎn)換的操作。在這里要注意的是每個(gè)命令字節(jié)在寫(xiě)的時(shí)候都是低字節(jié)先寫(xiě),例如CCH的二進(jìn)制為11001100,在寫(xiě)到總線上時(shí)要從低位開(kāi)始寫(xiě),寫(xiě)的順序是“零、零、壹、壹、零、零、壹、壹”。整個(gè)操作的總線狀態(tài)如下圖。

  3)讀取DS18B20的溫度

讀取RAM內(nèi)的溫度數(shù)據(jù)。同樣,這個(gè)操作也要接照三個(gè)步驟。

(1)主機(jī)發(fā)出復(fù)位操作并接收DS18B20的應(yīng)答(存在)脈沖。

(2)主機(jī)發(fā)出跳過(guò)對(duì)ROM操作的命令(CCH)。

(3)主機(jī)發(fā)出讀取RAM的命令(BEH),隨后主機(jī)依次讀取DS18B20發(fā)出的從第0一第8,共九個(gè)字節(jié)的數(shù)據(jù)。如果只想讀取溫度數(shù)據(jù),那在讀完第0和第1個(gè)數(shù)據(jù)后就不再理會(huì)后面DS18B20發(fā)出的數(shù)據(jù)即可。同樣讀取數(shù)據(jù)也是低位在前的。整個(gè)操作的總線狀態(tài)如下圖:

4)18B20的驅(qū)動(dòng)程序

本設(shè)計(jì)中使用DS18B20的驅(qū)動(dòng)程序ds18b20.c和ds18b20.h,文件中提供了如下的函數(shù)。

void Delay_OneWire(unsigned int t);//單總線延時(shí)函數(shù)

void Write_DS18B20(unsigned char dat);//通過(guò)單總線向DS18B20寫(xiě)一個(gè)字節(jié)

unsigned char Read_DS18B20(void);//從DS18B20讀取一個(gè)字節(jié)

bit init_ds18b20(void);//DS18B20設(shè)備初始化

5)18B20測(cè)溫流程圖

要點(diǎn):

1、在讀取溫度數(shù)據(jù)時(shí),是低8位在前,高8位在后,需要將這兩個(gè)數(shù)據(jù)合并為一個(gè)數(shù)據(jù);

2、讀取的溫度是補(bǔ)碼形式表示的,需將轉(zhuǎn)換成原碼;

3、求實(shí)際溫度公式:temp=tp*0.0625*100+0.5(tp為浮點(diǎn)開(kāi)數(shù)據(jù),temp為無(wú)符號(hào)整形數(shù)據(jù),此數(shù)據(jù)為實(shí)際溫度的100倍),乘上100是為溫度小數(shù)后保留2位,加上0.5起校正數(shù)據(jù)的作用。

4、將溫度數(shù)據(jù)存入數(shù)組時(shí),需將各位數(shù)據(jù)分離開(kāi)來(lái),再存入數(shù)組,例:

datatemp[0] = temp / 10000+0x30;

              datatemp[1] = temp % 10000 / 1000+0x30;

  • 串口助手顯示溫度及控制LED燈工作
  • 通過(guò)串口助手用單個(gè)字符控制LED燈工作
功能說(shuō)明: 編程時(shí),用變量receivedata接收串口助手發(fā)送過(guò)來(lái)的單個(gè)字符數(shù)據(jù),分別用字符a、c和e打開(kāi)D1、D2和D3燈,分別用字符b、d和f關(guān)閉D1、D2和D3燈,其程序流程圖如下:
  • 通過(guò)串口助手用字符串控制LED燈工作
功能說(shuō)明: 編程時(shí),用字符數(shù)組receivedata接收串口助手發(fā)送過(guò)來(lái)的字符串?dāng)?shù)據(jù),分別用字符串d1on、d2on和d3on打開(kāi)D1、D2和D3燈,分別用字符串在d1off、d2off和d3off關(guān)閉D1、D2和D3燈,其程序流程圖參考用單個(gè)字符控制LED燈工作的流程圖。
  • 本模塊功能的編程實(shí)現(xiàn)
  • ESP8266wifi模塊介紹
1、ESP8266WIFI模塊簡(jiǎn)介
ESP8266是一個(gè)完整且成體系的WIFI網(wǎng)絡(luò)解決方案,能夠搭載軟件應(yīng)用,或通過(guò)另一個(gè)應(yīng)用處理器卸載所有WIFI網(wǎng)絡(luò)功能。本設(shè)計(jì)中我們使用的ESP8266是串口型WIFI,速度比較低,不能用來(lái)傳輸圖像或者視頻這些大容量的數(shù)據(jù),主要應(yīng)用于數(shù)據(jù)量傳輸比較少的場(chǎng)合,比如溫度信息,一些傳感器的開(kāi)關(guān)量等。雖然傳輸?shù)臄?shù)據(jù)量比較少,但也能一次傳輸幾千字節(jié)的數(shù)據(jù),而且通信非常穩(wěn)定,可以滿足大多數(shù)應(yīng)用。
ESP8266-WIFI模塊支持STA/AP/STA+AP三種工作模式。
STA模式:ESP8266模塊通過(guò)路由器連接互聯(lián)網(wǎng),手機(jī)或電腦通過(guò)互聯(lián)網(wǎng)實(shí)現(xiàn)對(duì)設(shè)備的遠(yuǎn)程控制。
AP模式:默認(rèn)模式,ESP8266模塊作為熱點(diǎn),實(shí)現(xiàn)手機(jī)或電腦直接與模塊通信,實(shí)現(xiàn)局域網(wǎng)無(wú)線控制。
STA+AP模式:兩種模式的共存模式,即可以通過(guò)互聯(lián)網(wǎng)控制可實(shí)現(xiàn)無(wú)縫切換,方便操作。
ESP8266-WIFI模塊僅在單連接狀態(tài),支持透?jìng)髂J剑═CP CLIENT透?jìng)骱蚒DP透?jìng)鳎?/font>
3、引腳排列

3、模塊和單片機(jī)開(kāi)發(fā)板的連接

GND:接地

GPIO16:其實(shí)是RST,低電平復(fù)位,所以為了正常工作,連接開(kāi)發(fā)板3.3V電源

VCC:接單片機(jī)開(kāi)發(fā)板VCC

UTXD、URXD:前者接單片機(jī)或USB轉(zhuǎn)串口模塊的RXD,后者接TXD。單片機(jī)P3.0為RX,P3.1為T(mén)X。特別注意當(dāng)用單片機(jī)開(kāi)發(fā)板串口測(cè)試WIFI模塊時(shí),模塊的UTXD、URXD要分別和單片機(jī)串口的TX和RX連接。

GPIO2、GPIO0:懸空

CH_PD:連接開(kāi)發(fā)板3.3V電源

三、WIFI模塊AT指令的測(cè)試

1、WIFI模塊的AT指令測(cè)試

特別提示:通過(guò)串口用AT指令測(cè)試WIFI模塊時(shí),模塊的UTXD、URXD要分別和單片機(jī)串口的TXRX連接。

測(cè)試AT指令時(shí),首先打開(kāi)串口助手,如下圖:

設(shè)置串口號(hào)和波特率,波特率一般為115200或9600,本次實(shí)驗(yàn)所用模塊已統(tǒng)一設(shè)置成為2400,在串口助手勾發(fā)送新行(如下圖所示),然后發(fā)送AT,如果先出現(xiàn)OK則說(shuō)明該模塊能正常工作。

關(guān)于AT指令的測(cè)試,請(qǐng)同學(xué)參考文檔“AT指令集018.pdf”對(duì)AT指令進(jìn)行測(cè)試。

2、WIFI模塊通過(guò)網(wǎng)絡(luò)和計(jì)算機(jī)通信的AT指令

1)重啟wifi模塊

指令:AT+RST

返回:OK

2)設(shè)置WIFI模塊的工作模式

指令:AT+CWMODE=3//設(shè)置模塊為透?jìng)鞴ぷ髂J?/font>

返回:OK

3)登錄路由器

指令:AT+CWJAP="TP-LINK_ym2","12345678"//登錄路由器,路由wifi用戶名和密碼

返回:WIFI CONNECTED

WIFI GOT IP

4)連接TCP服務(wù)器(wifi模塊作為客戶端,計(jì)算機(jī)作為服務(wù)器,要先打開(kāi)監(jiān)聽(tīng))

首先要打開(kāi)軟件網(wǎng)絡(luò)調(diào)試助手,協(xié)議類型為T(mén)CP Server,點(diǎn)擊開(kāi)始監(jiān)聽(tīng)。

指令: AT+CIPSTART="TCP","192.168.0.100",8080

返回:Connect OK

    執(zhí)行以上指令后,wifi模塊就會(huì)連接到計(jì)算機(jī)的TCP Server,在網(wǎng)絡(luò)調(diào)試助手上的連接對(duì)象欄就會(huì)出現(xiàn)WIFI模塊的IP地址及端口號(hào),如下圖所示:

5)使能透?jìng)髂J?/font>

指令:AT+CIPMODE=1

返回:OK

6)透?jìng)靼l(fā)送數(shù)據(jù)

指令:AT+CIPSEND

返回:>(在此提示下可以發(fā)送數(shù)據(jù))

7)退出透?jìng)鲾?shù)據(jù)發(fā)送

指令:+++(去掉串口助手中發(fā)送新行選項(xiàng))

返回:返回到AT指令模式

執(zhí)行了以上的AT指令以后,用串口調(diào)試助手和網(wǎng)絡(luò)調(diào)試助手就可以實(shí)現(xiàn)WIFI模塊通過(guò)路由器和計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信了。

3、WIFI模塊和手機(jī)進(jìn)行通信(WIFI模塊作為客戶端,手機(jī)作為服務(wù)器)

4)連接TCP服務(wù)器(wifi模塊作為客戶端,手機(jī)作為服務(wù)器,要先打開(kāi)監(jiān)聽(tīng))

首先在手機(jī)上安裝有人網(wǎng)絡(luò)調(diào)試助手的APP,打開(kāi)APP如下圖所示:

選擇tcp server,點(diǎn)擊配置,設(shè)置手機(jī)的端口號(hào),再點(diǎn)擊激活后,會(huì)在手機(jī)屏幕上顯示手機(jī)的IP和端口號(hào),請(qǐng)一定記住IP和端口號(hào),輸入以下指令。

指令: AT+CIPSTART="TCP","192.168.1.122",5000//手機(jī)的IP和端口號(hào)

返回:CONNECT OK

執(zhí)行以上指令后,網(wǎng)絡(luò)助手上會(huì)顯示wifi模塊的IP和端口號(hào),如下圖:

5)使能透?jìng)髂J?/font>

指令:AT+CIPMODE=1

返回:OK

6)透?jìng)靼l(fā)送數(shù)據(jù)

指令:AT+CIPSEND

返回:>(在此提示下可以發(fā)送數(shù)據(jù))

7)退出透?jìng)鲾?shù)據(jù)發(fā)送

指令:+++(去掉串口助手中發(fā)送新行選項(xiàng))

返回:返回到AT指令模式

4、多連接 server

目前 AT Demo ESP8266作為服務(wù)器, 需建立多連接作為服務(wù)器, 需建立多連接即可以連接多個(gè)client。

以下為 ESP 8266 作為 softAP建立 TCP 服務(wù)器的舉例 服務(wù)器的舉例 :

1) 設(shè)置 wifi 模式:

AT+CWMODE=3// 設(shè)置為 AP+station共存模式

響應(yīng): OK

2) 重啟生效

AT+RST

響應(yīng): OK

3) 啟動(dòng)多連接

AT+CIPMUX=1

響應(yīng): OK

4) 建立 server

AT+CIPSERVER=1 //默認(rèn)端口 333 333

響應(yīng) :OK

5) PC 連入設(shè)備 softAP ,PC作client 連接設(shè)備。 連接設(shè)備。

注意, ESP8266 作為 server 有超時(shí)機(jī)制, 如果連接建立后超時(shí)機(jī)制, 如果連接建立后一段 時(shí)間內(nèi)無(wú)數(shù)據(jù)來(lái)往, server 會(huì)將 client 踢掉。請(qǐng)?jiān)?PC 工具連上 ESP8266 后建立一個(gè) 2s 的循環(huán)數(shù)據(jù)發(fā)送,用于保持連接。

6) 發(fā)送數(shù)據(jù)

AT+CIPSEND=0,4 // 0是設(shè)備的通信號(hào),4表示四個(gè)字節(jié)

響應(yīng): SEND OK

7) 接收數(shù)據(jù)

+IPD,n:xxxxxxxxxx // n表示通信號(hào) ,xxxxx 為數(shù)據(jù)


四、WIFI模塊通過(guò)網(wǎng)絡(luò)和計(jì)算機(jī)通信的編程實(shí)現(xiàn)

特別提示:?jiǎn)纹瑱C(jī)開(kāi)發(fā)板通過(guò)串口發(fā)送AT指令測(cè)試WIFI模塊時(shí),模塊的UTXDURXD要分別和單片機(jī)串口的RXTX連接。

   用單片機(jī)發(fā)送相應(yīng)的AT指令程序語(yǔ)句如下:

              uart_sendstring("AT+RST\r\n");

              delay(50);

    uart_sendstring("AT+CWMODE=3\r\n");            

              delay(20);

    uart_sendstring("AT+CWJAP=\"TP-LINK_ym2\",\"12345678\"\r\n");

              delay(50);

    uart_sendstring("AT+CIPSTART=\"TCP\",\"192.168.0.110\",8080\r\n");

              delay(20);

    uart_sendstring("AT+CIPMODE=1\r\n");//使能透?jìng)髂J?/font>

              delay(20);

              uart_sendstring("AT+CIPSEND\r\n");//透?jìng)靼l(fā)送數(shù)據(jù)

    delay(20)注意:如用定時(shí)器0定時(shí)發(fā)送數(shù)據(jù)時(shí),串口中斷優(yōu)先級(jí)一定要高于定時(shí)器0中斷。

五、WIFI模塊和手機(jī)進(jìn)行通信的編程實(shí)現(xiàn)

   用單片機(jī)發(fā)送相應(yīng)的AT指令程序語(yǔ)句如下:

              uart_sendstring("AT+RST\r\n");

              delay(50);

    uart_sendstring("AT+CWMODE=3\r\n");            

              delay(20);

    uart_sendstring("AT+CWJAP=\"手機(jī)熱點(diǎn)名\",\"密碼\"\r\n");

              delay(50);

    uart_sendstring("AT+CIPSTART=\"TCP\",\"192.168.1.122\",5000\r\n");//wifi作為 TCP client,手機(jī)作為T(mén)CP服務(wù)器, 連接 TCP server:

              delay(50);

    uart_sendstring("AT+CIPMODE=1\r\n");//使能透?jìng)髂J?/font>

              delay(20);

              uart_sendstring("AT+CIPSEND\r\n");//透?jìng)靼l(fā)送數(shù)據(jù)

delay(20);

六、基于ONENET的簡(jiǎn)易智能家居系統(tǒng)

OneNET是由中國(guó)移動(dòng)打造的PaaS物聯(lián)網(wǎng)開(kāi)放平臺(tái)。平臺(tái)能夠幫助開(kāi)發(fā)者輕松實(shí)現(xiàn)設(shè)備接入與設(shè)備連接,快速完成產(chǎn)品開(kāi)發(fā)部署。OneNET物聯(lián)網(wǎng)專網(wǎng)已經(jīng)應(yīng)用于環(huán)境監(jiān)控、遠(yuǎn)程抄表、智慧農(nóng)業(yè)、智能家電、智能硬件、節(jié)能減排、車聯(lián)網(wǎng)、工業(yè)控制、物流跟蹤等多種商業(yè)領(lǐng)域。
到目前為止平臺(tái)支持的公開(kāi)接入?yún)f(xié)議主要包括HTTP、EDP、MQTT,、MODBUS、JT/T808五種,本設(shè)計(jì)采用HTTP接入ONENET。
1、用網(wǎng)絡(luò)助手連接ONENET,上傳數(shù)據(jù)到ONENET

1)注冊(cè)O(shè)NENET用戶

進(jìn)入ONENET主頁(yè)( https://open.iot.10086.cn/),如下圖,注冊(cè)帳號(hào)。

2)進(jìn)入開(kāi)發(fā)者中心,創(chuàng)建產(chǎn)品

3)創(chuàng)建設(shè)備

請(qǐng)記住設(shè)備的ID號(hào)和產(chǎn)品的APIKEY

4)計(jì)算作為T(mén)CP客戶端,上傳數(shù)據(jù)到ONENET

ONENET云平臺(tái)HTTP接入?yún)f(xié)議服務(wù)器IP:183.230.40.33,端口號(hào):80

發(fā)送數(shù)據(jù)的格式指令如下,指令格式不能有錯(cuò),否則云平臺(tái)接收不到數(shù)據(jù)。

    POST /devices/32161187/datapoints?type=3 HTTP/1.1(紅色的為設(shè)備的ID號(hào))

api-key: 87fKUPvenMiyB8lXgng=u0OY5eU= (產(chǎn)品的唯一APIKEY )

Host: api.heclouds.com

Content-Length: 15(回車換行)

(回車換行)

{wendu":23}(回車換行)

數(shù)據(jù)發(fā)送成功以后,可以在ONENET平臺(tái)觀察到上傳的數(shù)據(jù),如下圖:

如果想通過(guò)網(wǎng)頁(yè)來(lái)瀏覽上傳的數(shù)據(jù),可以通過(guò)應(yīng)用管理,創(chuàng)建應(yīng)用的方式創(chuàng)建應(yīng)用,并通過(guò)網(wǎng)址來(lái)訪問(wèn)。

2、把wifi模塊作為T(mén)CP客戶端,通過(guò)串口助手把數(shù)據(jù)上傳到ONENET

1)wifi模塊登錄路由器,登錄ONENET

    此步驟和前面所學(xué)的wifi模塊登錄計(jì)算機(jī)作為T(mén)CP服務(wù)器完全相同,這里不再贅述。

2)通過(guò)串口助手把數(shù)據(jù)上傳到ONENET

    因?yàn)橐淮伟l(fā)多條指令,所以使用一次發(fā)送多條指令的XCOM串口助手。如下圖

   ONENET平臺(tái)一樣可以接收到上傳的數(shù)據(jù)。

3)通過(guò)編程實(shí)現(xiàn)數(shù)據(jù)的上傳

(1)登錄ONENET函數(shù)

  1. void tcpserverlogin(void)

  2. {

  3.     uart_sendstring("AT+RST\r\n");

  4.               delay(50);

  5.     uart_sendstring("AT+CWMODE=3\r\n");            

  6.               delay(50);

  7.               uart_sendstring("AT+CWJAP=\"TP-LINK_ym2\",\"12345678\"\r\n");

  8.               delay(100);

  9.     uart_sendstring("AT+CIPSTART=\"TCP\",\"183.230.40.33\",80\r\n");

  10.     delay(50);

  11.     uart_sendstring("AT+CIPMODE=1\r\n");//使能透?jìng)髂J?br />

  12.               delay(20);

  13.               uart_sendstring("AT+CIPSEND\r\n");//透?jìng)靼l(fā)送數(shù)據(jù)

  14.     delay(20);

  15.     }

  16. (2)上傳數(shù)據(jù)函數(shù)

  17. void senddata(void)

  18. {

  19.      uart_sendstring("POST /devices/32161187/datapoints?type=3 HTTP/1.1\r\n");

  20.                  delay20ms();                                                                       

  21.                  uart_sendstring("api-key:87fKUPvenMiyB8lXgng=u0OY5eU=\r\n");

  22.                  delay20ms();

  23.                  uart_sendstring("Host:api.heclouds.com\r\n");                           

  24.                  delay20ms();

  25.                  uart_sendstring("Content-Length:15\r\n");

  26.                  delay20ms();

  27.                  uart_sendstring("\r\n");

  28.                  delay20ms();

  29.        uart_sendstring("{\"wendu\":");

  30.        delay20ms();

  31.        uart_sendstring(wd);//12.6   

  32.        uart_sendstring("}\r\n");

  33.        delay20ms();

  34.        uart_sendstring("\r\n");                       

  35.        delay(100);  

  36. }

復(fù)制代碼


完整的Word格式文檔51黑下載地址:

物聯(lián)網(wǎng)綜合設(shè)計(jì)實(shí)驗(yàn)指導(dǎo).docx (1.18 MB, 下載次數(shù): 68)



評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:6656 發(fā)表于 2018-12-24 11:10 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表