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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

簡易智能家居-物聯網綜合設計實驗指導書下載

[復制鏈接]
跳轉到指定樓層
樓主
ID:428393 發表于 2018-11-17 20:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
簡易智能家居系統

一、任務和要求

1、任務
設計并制作一套簡易智能家居系統。系統結構如下圖所示。
2、要求
1)51單片機(終端結點)能實現溫度的測量,并能將溫度在LCD顯示器上顯示;
2)51單片機(終端結點)能檢測有無火災發生,并將火警送LCD顯示器上顯示;
3)51單片機(終端結點)能實現對D1、D2、D3三盞LED燈的開關的控制,并將燈的工作狀態送LCD顯示器顯示;
4)51單片機通過串口WIFI模塊連接,把WIFI模塊設置成透傳工作模式,WIFI模塊通過路由器連接上所在的網絡;
5)通過網絡調試助手將計算機設置成TCP SERVER,并通過網絡調試助手實現溫度的采集與顯示、火警狀態顯示、LED燈工作狀態的顯示,并能通過網絡調試助手控制LED燈的工作;
6)用有人手機網絡調試助手將手機設置成TCP SERVER,實現用手機顯示溫度、火警狀態、LED燈的工作狀態,并能通過手機網絡調試助手控制LED燈的工作。
7)將終端結點的工作狀態上傳到ONENET物聯網云平臺。
二、溫度的采集、火警檢測與LED燈的控制
功能要求:本模塊以51單片機為核心,用溫度傳感器DS18B20測量溫度,通過火災傳感器檢測有無火災發生,用獨立按鍵開關三盞LED燈,并將溫度和LED燈的工作狀態在LCD1602上顯示。
  • 普中51單片機實驗開發實驗儀介紹
1)獨立按鍵
2)1602LCD顯示器接口
3)LED模塊
  • 獨立按按鍵控制LED燈的工作
分別用單片機開發板上的K1、K2、K3這三個按鍵模擬開關,用開發板上的D5、D6、D7三個LED模擬三盞燈。其程序流程圖如下:
  • LCD1602顯示器原理及編程應用

字符型液晶顯示模塊是一種專門用于顯示字母、數字、符號等點陣式 LCD,目前常用 16*1, 16*2,20*2 和 40*2 行等的模塊。本設計中用的顯示器為LCD1602 字符型液晶顯示器,是一種16*2的顯示器。為例,其實物如下圖;1602LCD 分為帶背光和不帶背光兩種,基控制器大部分為 HD44780,帶背光的比不帶背光的厚,是否帶背光在應用中并無差別。其詳細資料請看“LCD1602中文資料”。

在本設計中,為同學們提供了LCD1602的驅動文件lcd.c和lcd.h,可調用的函數及功能如下:

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

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

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

void Lcd1602_Write_Data(unsigned char dat);   //寫數據

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

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

void InitLcd1602();              //1602初始化

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

  其主要特點、內部結構和工作時序請詳見“數字溫度傳感器DS18B20的應用”PPT。

2DS18B20進行一次溫度的轉換

(1)主機先作個復位操作,

(2)主機再寫跳過ROM的操作(CCH)命令,

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

  3)讀取DS18B20的溫度

讀取RAM內的溫度數據。同樣,這個操作也要接照三個步驟。

(1)主機發出復位操作并接收DS18B20的應答(存在)脈沖。

(2)主機發出跳過對ROM操作的命令(CCH)。

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

4)18B20的驅動程序

本設計中使用DS18B20的驅動程序ds18b20.c和ds18b20.h,文件中提供了如下的函數。

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

void Write_DS18B20(unsigned char dat);//通過單總線向DS18B20寫一個字節

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

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

5)18B20測溫流程圖

要點:

1、在讀取溫度數據時,是低8位在前,高8位在后,需要將這兩個數據合并為一個數據;

2、讀取的溫度是補碼形式表示的,需將轉換成原碼;

3、求實際溫度公式:temp=tp*0.0625*100+0.5(tp為浮點開數據,temp為無符號整形數據,此數據為實際溫度的100倍),乘上100是為溫度小數后保留2位,加上0.5起校正數據的作用。

4、將溫度數據存入數組時,需將各位數據分離開來,再存入數組,例:

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

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

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

3、模塊和單片機開發板的連接

GND:接地

GPIO16:其實是RST,低電平復位,所以為了正常工作,連接開發板3.3V電源

VCC:接單片機開發板VCC

UTXD、URXD:前者接單片機或USB轉串口模塊的RXD,后者接TXD。單片機P3.0為RX,P3.1為TX。特別注意當用單片機開發板串口測試WIFI模塊時,模塊的UTXD、URXD要分別和單片機串口的TX和RX連接。

GPIO2、GPIO0:懸空

CH_PD:連接開發板3.3V電源

三、WIFI模塊AT指令的測試

1、WIFI模塊的AT指令測試

特別提示:通過串口用AT指令測試WIFI模塊時,模塊的UTXD、URXD要分別和單片機串口的TXRX連接。

測試AT指令時,首先打開串口助手,如下圖:

設置串口號和波特率,波特率一般為115200或9600,本次實驗所用模塊已統一設置成為2400,在串口助手勾發送新行(如下圖所示),然后發送AT,如果先出現OK則說明該模塊能正常工作。

關于AT指令的測試,請同學參考文檔“AT指令集018.pdf”對AT指令進行測試。

2、WIFI模塊通過網絡和計算機通信的AT指令

1)重啟wifi模塊

指令:AT+RST

返回:OK

2)設置WIFI模塊的工作模式

指令:AT+CWMODE=3//設置模塊為透傳工作模式

返回:OK

3)登錄路由器

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

返回:WIFI CONNECTED

WIFI GOT IP

4)連接TCP服務器(wifi模塊作為客戶端,計算機作為服務器,要先打開監聽)

首先要打開軟件網絡調試助手,協議類型為TCP Server,點擊開始監聽。

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

返回:Connect OK

    執行以上指令后,wifi模塊就會連接到計算機的TCP Server,在網絡調試助手上的連接對象欄就會出現WIFI模塊的IP地址及端口號,如下圖所示:

5)使能透傳模式

指令:AT+CIPMODE=1

返回:OK

6)透傳發送數據

指令:AT+CIPSEND

返回:>(在此提示下可以發送數據)

7)退出透傳數據發送

指令:+++(去掉串口助手中發送新行選項)

返回:返回到AT指令模式

執行了以上的AT指令以后,用串口調試助手和網絡調試助手就可以實現WIFI模塊通過路由器和計算機進行數據通信了。

3、WIFI模塊和手機進行通信(WIFI模塊作為客戶端,手機作為服務器)

4)連接TCP服務器(wifi模塊作為客戶端,手機作為服務器,要先打開監聽)

首先在手機上安裝有人網絡調試助手的APP,打開APP如下圖所示:

選擇tcp server,點擊配置,設置手機的端口號,再點擊激活后,會在手機屏幕上顯示手機的IP和端口號,請一定記住IP和端口號,輸入以下指令。

指令: AT+CIPSTART="TCP","192.168.1.122",5000//手機的IP和端口號

返回:CONNECT OK

執行以上指令后,網絡助手上會顯示wifi模塊的IP和端口號,如下圖:

5)使能透傳模式

指令:AT+CIPMODE=1

返回:OK

6)透傳發送數據

指令:AT+CIPSEND

返回:>(在此提示下可以發送數據)

7)退出透傳數據發送

指令:+++(去掉串口助手中發送新行選項)

返回:返回到AT指令模式

4、多連接 server

目前 AT Demo ESP8266作為服務器, 需建立多連接作為服務器, 需建立多連接即可以連接多個client。

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

1) 設置 wifi 模式:

AT+CWMODE=3// 設置為 AP+station共存模式

響應: OK

2) 重啟生效

AT+RST

響應: OK

3) 啟動多連接

AT+CIPMUX=1

響應: OK

4) 建立 server

AT+CIPSERVER=1 //默認端口 333 333

響應 :OK

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

注意, ESP8266 作為 server 有超時機制, 如果連接建立后超時機制, 如果連接建立后一段 時間內無數據來往, server 會將 client 踢掉。請在 PC 工具連上 ESP8266 后建立一個 2s 的循環數據發送,用于保持連接。

6) 發送數據

AT+CIPSEND=0,4 // 0是設備的通信號,4表示四個字節

響應: SEND OK

7) 接收數據

+IPD,n:xxxxxxxxxx // n表示通信號 ,xxxxx 為數據


四、WIFI模塊通過網絡和計算機通信的編程實現

特別提示:單片機開發板通過串口發送AT指令測試WIFI模塊時,模塊的UTXD、URXD要分別和單片機串口的RXTX連接

   用單片機發送相應的AT指令程序語句如下:

              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");//使能透傳模式

              delay(20);

              uart_sendstring("AT+CIPSEND\r\n");//透傳發送數據

    delay(20)注意:如用定時器0定時發送數據時,串口中斷優先級一定要高于定時器0中斷。

五、WIFI模塊和手機進行通信的編程實現

   用單片機發送相應的AT指令程序語句如下:

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

              delay(50);

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

              delay(20);

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

              delay(50);

    uart_sendstring("AT+CIPSTART=\"TCP\",\"192.168.1.122\",5000\r\n");//wifi作為 TCP client,手機作為TCP服務器, 連接 TCP server:

              delay(50);

    uart_sendstring("AT+CIPMODE=1\r\n");//使能透傳模式

              delay(20);

              uart_sendstring("AT+CIPSEND\r\n");//透傳發送數據

delay(20);

六、基于ONENET的簡易智能家居系統

OneNET是由中國移動打造的PaaS物聯網開放平臺。平臺能夠幫助開發者輕松實現設備接入與設備連接,快速完成產品開發部署。OneNET物聯網專網已經應用于環境監控、遠程抄表、智慧農業、智能家電、智能硬件、節能減排、車聯網、工業控制、物流跟蹤等多種商業領域。
到目前為止平臺支持的公開接入協議主要包括HTTP、EDP、MQTT,、MODBUS、JT/T808五種,本設計采用HTTP接入ONENET。
1、用網絡助手連接ONENET,上傳數據到ONENET

1)注冊ONENET用戶

進入ONENET主頁( https://open.iot.10086.cn/),如下圖,注冊帳號。

2)進入開發者中心,創建產品

3)創建設備

請記住設備的ID號和產品的APIKEY

4)計算作為TCP客戶端,上傳數據到ONENET

ONENET云平臺HTTP接入協議服務器IP:183.230.40.33,端口號:80

發送數據的格式指令如下,指令格式不能有錯,否則云平臺接收不到數據。

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

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

Host: api.heclouds.com

Content-Length: 15(回車換行)

(回車換行)

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

數據發送成功以后,可以在ONENET平臺觀察到上傳的數據,如下圖:

如果想通過網頁來瀏覽上傳的數據,可以通過應用管理,創建應用的方式創建應用,并通過網址來訪問。

2、把wifi模塊作為TCP客戶端,通過串口助手把數據上傳到ONENET

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

    此步驟和前面所學的wifi模塊登錄計算機作為TCP服務器完全相同,這里不再贅述。

2)通過串口助手把數據上傳到ONENET

    因為要一次發多條指令,所以使用一次發送多條指令的XCOM串口助手。如下圖

   ONENET平臺一樣可以接收到上傳的數據。

3)通過編程實現數據的上傳

(1)登錄ONENET函數

  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");//使能透傳模式

  12.               delay(20);

  13.               uart_sendstring("AT+CIPSEND\r\n");//透傳發送數據

  14.     delay(20);

  15.     }

  16. (2)上傳數據函數

  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. }

復制代碼


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

物聯網綜合設計實驗指導.docx (1.18 MB, 下載次數: 68)



評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩av在线一区 | 国产成人精品午夜视频免费 | 亚洲综合区 | 欧美一区二区三区大片 | 99精品网站 | 欧美a√ | 五月天婷婷狠狠 | 国产欧美一区二区三区另类精品 | 亚洲国产成人久久综合一区,久久久国产99 | 欧美美女一区二区 | 狠狠的干| 成人a视频在线观看 | 一区二区三区视频在线免费观看 | 人人鲁人人莫人人爱精品 | 人人人艹 | 日本三级网站在线观看 | 一区二区三区 在线 | 国产日韩一区二区 | 成人福利视频 | 中文字幕一区二区在线观看 | 精品在线一区 | 中文字幕黄色大片 | 亚洲国产精品suv | 欧美激情综合 | 二区中文 | 日韩免费一区 | 久久精品成人 | 日韩三级在线 | 日韩精品一区二区三区高清免费 | 久久av一区二区三区 | 精品一区在线 | 超碰精品在线观看 | 中文精品视频 | 在线视频国产一区 | 美国十次成人欧美色导视频 | 国产精品久久久久久久粉嫩 | www.99热.com| 欧美性受| 国产福利二区 | 欧美精品一区三区 | 国产一区二区三区免费观看视频 |