在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

畢業設計| 手把手教你制作智能家居系統

朱老師物聯網大講堂 ? 2022-01-20 09:45 ? 次閱讀

本次分享的畢設來自B站up主一頓晚上飯,用了六篇文章詳細的記錄了項目設計細節。達爾聞將文章分享給大家,希望可以幫助正在做畢設的同學。文章有點長,值得收藏哦~終于在2021年畢業了,從2020年11月開始的畢業設計在5月份也答辯完成,大學生活也結束了,在指導老師的幫助下,我的畢業設計及論文評選為校級優秀。現在終于有時間來寫一篇比較詳細的Arduino uno R3開發板+ESP8266-01s+機智云平臺的智能家居開發詳解。網上關于成套的智能家居詳解少之又少,因此想幫助后面的同學們進行設計!我的設計可能大部分同學看不上,但是可以對一些學校論文檢查不算認真,只需要有設計就行的同學省一筆錢233333

在選題之后直接開始面向CSDN編程(bushi),因為智能家居的方向太廣,大多數都是基于STM32單片機制作的,也有部分51單片機。但因為選題原因,我需要找到Arduino單片機的例程,關于這一部分又雜又亂,所以我只能把所有看起來有用的東西全部收藏,然后在后面著手制作的時候拿出來看。

最后的成品狀態如下圖:

ffde2f4e-7919-11ec-99ef-dac502259ad0.png

總而言之呢,我的畢業設計實現了以下幾個功能,這幾個功能應付一下畢設應該是沒問題的:

1)在手機端單獨控制每個控制端的開關。

2)在手機端查看傳感器數據。

3)監測到火焰自動報警、開窗、開門。

4)監測到下雨自動關窗。

5)在進行操作時有聲音提示。

6)按鍵實現在自動模式和手動模式切換的功能。

7)在白天回家開門時自動開門、開窗;在夜晚回家時自動開門、開燈、開窗;離家時自動 關燈、關窗。

8)多種模式選擇,包括正常模式、睡覺模式、電影模式、下雨模式、自動模式。

9)自動模式實現傳感器與家具聯動,根據傳感器設置的值自動開關家具。

功能不算很多,也不是很高大上,同時還是有略微的幾個bug(畢竟誰不會寫bug呢),但是基本運行完全沒問題,具有很強的參考意義。

1

機智云平臺的配置

要制作智能家居系統,大家的第一想法就是遠程控制,其次就是設備之間的聯動。

所以要解決遠程控制這個問題,有很多方式,比如自己架設服務器、使用平臺提供的服務等,對于這一系列教程來說,我們就要使用最簡單的方式快速的開發自己的智能家居系統,因此我選擇了機智云平臺。

選擇機智云的原因就是它提供了一系列的服務,就像自動代碼生成服務,云端服務等。我們只需要自己設置數據點(硬件的數據范圍、名稱),它就可以一鍵生成硬件端的配置代碼以及手機APP控制端的源碼,可以說是非常方便了。

關于機智云平臺的簡介我就不在這里多說了,有想深入了解的小伙伴可以自行查閱百度或者機智云開發文檔。下面直接進入正題,我的教程全部依照我自己的設計進行講解。

首先需要注冊一個機智云賬號:https://www.gizwits.com/,注冊之后進入開發者中心,點擊創建新產品,進入如下界面并選擇:

004e3a1e-791a-11ec-99ef-dac502259ad0.png

創建完成后即可自動進入項目管理界面,

0079e524-791a-11ec-99ef-dac502259ad0.png

左側工具欄中,基本信息包含了產品名字,產品類型,通訊方式以及Product Key,Product Secret 。

數據點是項目中使用到的硬件模塊的各種信息,這部分信息需要自己創建數據點,在后續自動生成代碼時就會自動把數據的get、set、send生成好,差不多就這個意思。

虛擬設備是模擬調試,數據點創建好之后可以在網頁中實時的模擬數據的上傳和數據的讀取,可以用來判斷數據點設置的是否正確。

再到服務一欄,應用配置就是對APP安裝包文件的配置,在這里生成一個ios或者安卓的安裝應用程序,可以在其中添加QQ\微信登錄選項(需要自己去申請api接口key),

應用開發就是生成APP的源碼包的地方,這個地方在APP篇會在講解,最開始調試可以使用機智云提供的默認APP。

MCU開發是這篇需要用到的,自動生成的硬件端代碼。

首先對數據點進行配置:

進入數據點一欄后,點擊新建數據點,根據自己的設備進行選擇,比如說我現在要添加一個LED燈,標識名(自己定)我就填寫LED_Bedroom,大家也知道要控制一個LED燈,通常使用1,0表示開和關,因此我們需要設置一個可寫的數據點,來寫入開關信息,數據類型選擇布爾就可以個,只需要ture和false值就好。完成后點擊添加,這樣我們就添加進了第一個數據點。

00de6260-791a-11ec-99ef-dac502259ad0.png

接下來我們添加一個光照傳感器的數據點,光照傳感器的運行模式就是將模塊中的光照數值傳入開發板中,因此光照傳感器的讀寫類型設為只讀即可,數據類型選擇數值,經過資料查詢發現光照傳感器的數值范圍為1-65535,分辨率的意思就是保留幾位小數,根據光照傳感器的最大參數自行設定即可。

014342d4-791a-11ec-99ef-dac502259ad0.png

接下來創建一個枚舉類型的數據點,用來設置不同的模式,我在自己的項目中設置了正常模式、睡覺模式、電影模式、下雨模式和自動模式五種模式,用來一鍵切換。如下:

0188a3ec-791a-11ec-99ef-dac502259ad0.png

常用的數據點設置就是這樣,根據自己使用的模塊設置即可,在數據點主界面可以編輯中文名稱,會顯示在最后生成的APP中。我的數據點設置如下:

01d6abdc-791a-11ec-99ef-dac502259ad0.png

數據點設置完成之后一定要保存,否則刷新會消失。

接下來就可以自動生成代碼了,在左側工具欄選擇基本信息,點擊顯示Product Secret,復制顯示出來的代碼,再選擇左側工具欄的MCU開發,并將剛才復制的Secret粘貼上,并如下選擇:

021a5fc6-791a-11ec-99ef-dac502259ad0.png

點擊生成代碼包,稍等片刻即可下載。此時就可以放一邊備用了,關于機智云的配置就結束了。

2

ESP8266-01S的固件燒錄

我們選擇了機智云平臺,因此我們要給它燒錄進相應的固件——Gagent固件,下載地址:

https://download.gizwits.com/zh-cn/p/92/94

下載這個即可。

下載好之后就可以進行燒錄的,因為ESP8266-01s并沒有USB接口,因此我們需要一個下載器燒錄模塊,usb轉ttl模塊,型號為cp2102,長這個樣子:

0289350e-791a-11ec-99ef-dac502259ad0.png

使用時需要下載驅動,這里讀者可以自己去搜索安裝。同時我們需要下載固件燒錄工具,flash_download_tool_v3.8.5,這里讀者可以自己去搜索安裝。以及需要下載機智云的Gagent_Debugger_v3.2.3軟件,用來燒寫好后進行調試固件。

https://download.gizwits.com/zh-cn/p/98/119

下面是連線說明,連線不夠用可以借助面包板:

USB轉TTL的RX連接ESP8266-01s的TX

USB轉TTL的TX連接ESP8266-01s的RX

USB轉TTL的3v3連接ESP8266-01s的3v3

ESP8266-01s的IO0接地!

ESP8266-01s的EN接高(接到3v3即可)

USB轉TTL的GND連接ESP8266-01s的GND

ESP8266的gpio0端口控制著模塊的工作模式,GPIO0為低時是下載(燒錄)模式,正常時為工作模式,因此燒錄完成之后將此線拔掉在上電即可正常工作。

在這里需要注意,ESP8266-01s模塊需要非常標準的3.3v供電,千萬不要接到非3.3供電接口。

準備工作正式完成,下面我們就可以開始準備燒錄固件了,

首先打開下載好的flash_download_tool_v3.8.5,選擇Developer Mode:

02bf5a12-791a-11ec-99ef-dac502259ad0.png

選擇ESP8266 DownloadTool,

0308e38a-791a-11ec-99ef-dac502259ad0.png

打開后如下圖選擇:

03372d26-791a-11ec-99ef-dac502259ad0.jpg

第一行中的文件選擇剛才下載好的ESP8266-01s的Gagent固件(GAgent_00ESP826_04020034_8MbitUser1_combine),之后將usb轉ttl插入電腦,選擇好COM端口,點擊START就可以燒寫了,其中可能燒寫失敗或者連接失敗很多次,可以嘗試更換電腦、USB端口、多試幾次進行燒寫,直到Success為止。

此時固件燒寫完成了,下面進行調試:

打開剛才下載的Gagent_Debugger_v3.2.3,轉到配置左邊的配置框

037bbd10-791a-11ec-99ef-dac502259ad0.png

點擊右下角新增,將機智云網頁中的 product key 和 product secret 復制進去,

03c12dfa-791a-11ec-99ef-dac502259ad0.png040552f0-791a-11ec-99ef-dac502259ad0.png

添加成功后選擇模擬 mcu 選項卡,

04301fee-791a-11ec-99ef-dac502259ad0.png

此時可以看到上一篇中添加的數據點在右邊顯示了出,

04892a62-791a-11ec-99ef-dac502259ad0.png

此時將ESP8266-01s的IO0線拔掉不要接,再次將USB轉TTL模塊插入電腦中,在Debugger軟件中選擇好串口和波特率,點擊打開串口,即可進行調試,此時也可以進行網絡的連接,但是需要配合機智云平臺提供的軟件進行網絡配置,如果有興趣的小伙伴可以自己試一下,在后面也會講。

點擊左下角的Airlink即可進入網絡配置,在機智云的軟件中選擇添加設備,選擇好樂鑫ESP8266即可自動搜索,搜索到就是正常的網絡連接信息,填寫即可。

ESP8266-01s固件燒錄以及配置就完成了。

3

開發板與模塊的連接

首先主控板使用的是Arduino uno R3,無線模塊使用的是ESP8266-01s,在前面的文章已經介紹過了,其次就是各種模塊了。介紹的所有模塊的連接都是按照畢業設計的針腳號進行連接,后面讀者可以自己設置針腳自己連接。在初步連接時可以使用面包板驗證可行性(就是測試一下能不能運行,并且能不能成功顯示數據)。

我也會在模塊下方貼出我自己在網上找的并且應用的使用代碼。

1)DHT11 溫濕度傳感器模塊

3pin,3.3v或者5v供電都可以,中間是數據口,代碼中需要設置端口為INPUT,接在D2口。

#include//這里需要自己下載DHT.h庫,并放入文檔/\Arduino\libraries文件夾下byteDHTPIN=2;//定義端口#defineDHTTYPEDHT11//溫濕度功能定義DHTdht(DHTPIN,DHTTYPE);//初始化//溫濕度傳感器獲取數據void DHT11_Read_Data(unsigned char * temperature, unsigned char * humidity){
*temperature=(unsignedchar)dht.readTemperature();*humidity=(unsignedchar)dht.readHumidity();return;}

2)低電平觸發的有源蜂鳴器

3pin,接3.3v或者5v都可以,5v更響(沒必要2333),中間是數據口,要在代碼中設置端口為OUTPUT,并初始化為高電平HIGH,接在D3口。使用代碼(ps:使用時記得加延時 ):

#define buzzerIO     3  //定義端口號
digitalWrite(buzzerIO, LOW); //輸出低電平,響
digitalWrite(buzzerIO, HIGH; //輸出高電平,不向

3)SG90 舵機 360度/180度

050460d8-791a-11ec-99ef-dac502259ad0.png

舵機有360度舵機和180度舵機,360度就是能360度來回轉圈,180度只能轉到設定的角度。

3pin,紅色正極,棕色負極,黃色數據,3.3v和5v都可以帶動,但是3.3v會有干擾問題導致360度設定一致時轉動圈數不一致,所以建議用5v(因為好像要設計什么濾波電路,我并不會23333)。

360度是模擬窗簾,180度模擬門,360度端口接到D5,180度接到D4。

360度舵機使用代碼:

#include   //庫文件自行下載
Servo myServo1;  //定義舵機1 (180度)
ServomyServo2;//定義舵機2(360度)
byte posdoor = 0; //180舵機端口
byteposcurtain=0;//360度舵機端口
setup(){  //初始化函數
myServo1.attach(DoorPin);  //設置180度舵機端口
myServo1.write(0);//在180度舵機中:0為0度,里面的參數為度數,設置多少度就會轉到多少度。
 myServo2.attach(curtainPin);  //設置360度舵機端口
 myServo2.write(90); //在360度舵機中:參數90為停止,0和180為正反轉。
}
myServo2.write(0); // 正轉360度舵機
delay(2000); //延時2000ms,此時一直在轉動,如果不設置下一條代碼就停
myServo2.write(90);//停止轉動360度舵機myServo1.write(120); //180舵機轉到120度方向
myServo1.write(0);  //180度舵機轉到0度方向
4)BH1750光照強度傳感器

5pin,其中一個沒用,接3.3v電源,走的I2C通道(雖然我看了半天沒看懂這個協議),SCL接SCL,SDA接SDA,這里要注意接觸不良問題,在最后的程序中因為接觸不良經常導致整個進程直接卡死,當時找不到原因傷透了腦筋。

使用代碼:

#include#defineADDRESS_BH1750FVI0x23//ADDR="L"forthismodule#define ONE_TIME_H_RESOLUTION_MODE 0x20
byte buff[2];
//光照傳感器獲取數據intBH1750_read(){ Wire.beginTransmission(ADDRESS_BH1750FVI); //獲取傳感器地址
 Wire.write(ONE_TIME_H_RESOLUTION_MODE);  //設置開始模式
 Wire.endTransmission();
 Wire.requestFrom(ADDRESS_BH1750FVI, 2); //讓主機從傳感器獲取2位字節的數據
 highByte = Wire.read(); //獲取高位字節
 lowByte = Wire.read(); // 獲取低位字節 sensorOut = (highByte << 8) | lowByte;
 illuminance = sensorOut / 1.2;
returnilluminance;}
5)雨滴傳感器

走的是模擬接口也就是A的那一排,3.3v供電,模塊上的D端口可以不接,A0接開發板的A0。

使用代碼:

#defineRainIOA0//雨滴傳感器讀取數據 int value = analogRead(RainIO); //value值就是當前的數據

6)火焰傳感器

3.3v供電,模塊的D0接板子的D13,可以調節上面的旋鈕來調整靈敏度,調整到打火機在旁邊打火時出現警報即可。

使用代碼:

#define   fireIO            13
intvalue=digitalRead(fireIO);

當示數為1時,代表檢測到火焰,為0時表示沒有火焰。

7)繼電器+風扇

風扇買最小的需要電壓最小的即可,同時需要電池盒對風扇進行供電。繼電器就是一個電磁開關,有電時閉合,沒電時打開。在圖中左邊是開關接口(或許可以這么說),右邊是開發板控制端。

右邊需要接開發板,3.3v或5v供電,中間是數據接口,接開發板的D10.

風扇與電池盒串聯,在將其中一條線接到繼電器左邊中間的接口,另一條線接到左邊或右邊的端口,兩個端口區別就是一個是低電平觸發一個是高電平觸發,可以看作“雙開門”的樣子。

8)LED燈

LED燈用了三個,分別用作廚房、臥室、客廳的燈光模擬,長腿是正,短腿是負,接反了不亮,同時所有燈我都串聯了一個電阻,親測直接接5v會立即燒壞,所以不管3.3還是5v我都串聯了10k電阻。

9)key按鍵

對角接線,左上角接地,右下角接開發板D12口。

至此接線部分就全部完成了,關于代碼部分在這里確實不詳細,因為我從網上copy下來的代碼在我的程序中多多少少都做了更改,網上也是有完整的運行代碼,讀者可以自己去搜索。

代碼的合并、編寫及燒錄可以至B站(ID:一頓晚上飯)查看。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 智能家居
    +關注

    關注

    1932

    文章

    9720

    瀏覽量

    188864
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    請求贈閱《零基礎開發AI Agent——手把手教你用扣子做智能體》

    博主好!致敬葉濤 管鍇 張心雨三位AI具身智能-智能體方面的專家、導師! 《零基礎開發AI Agent——手把手教你用扣子做智能體》一不懂編
    發表于 04-10 12:16

    GPU顯卡維修避坑指南:手把手教你識別行業套路!

    的今天,高端顯卡維修已成“暴利暗流”。虛高報價、偷換配件、技術陷阱……用戶稍有不慎,輕則損失數萬,重則設備報廢。今天小助手將揭露行業亂象,手把手教你識別套路,并推薦
    的頭像 發表于 04-02 20:31 ?419次閱讀
    GPU顯卡維修避坑指南:<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>識別行業套路!

    KiCad直播活動(三):在 Windows上編譯KiCad 手把手教您編譯/構建 KiCad 源碼

    Developer Ethan 同學,手把手教您編譯/構建 KiCad 源碼: 開發工具安裝 環境變量配置 使用 VS2022 構建 KiCad 參與直播的小伙伴還有機會獲得 KiCon Badge
    的頭像 發表于 03-24 11:14 ?573次閱讀
    KiCad直播活動(三):在 Windows上編譯KiCad <b class='flag-5'>手把手</b>教您編譯/構建 KiCad 源碼

    《零基礎開發AI Agent——手把手教你用扣子做智能體》

    《零基礎開發AI Agent——手把手教你用扣子做智能體》是一本為普通人量身打造的AI開發指南。它不僅深入淺出地講解了Agent的概念和發展,還通過詳細的工具介紹和實戰案例,幫助讀者快速掌握
    發表于 03-18 12:03

    手把手教你做星閃無人機—KaihongOS星閃無人機開發實戰》系列課程課件匯總

    為助力開發者迅速掌握『KaihongOS輕量系統開發技術』與『星閃無線通信技術』,實現快速上手與深度體驗,“開鴻Developer社區”攜手“電子發燒友”再次聯合推出《手把手教你做星閃無人機
    發表于 03-18 10:33

    手把手教你做PC-KaihongOS筆記本電腦開發實戰》課件匯總

    ”攜手“電子發燒友”聯合推出了 《KaihongOS手把手系列直播課程》,該系列課程以實際產品為案例,詳細講解每個產品的開發全流程。 此次首發內容是《手把手教你做PC-KaihongOS筆記本電腦開發
    發表于 03-18 10:25

    開發者集結!《手把手教你做星閃無人機》第二課開講啦!

    開發者集結!《手把手教你做星閃無人機》第二課開講啦!
    的頭像 發表于 02-17 19:40 ?243次閱讀
    開發者集結!《<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>做星閃無人機》第二課開講啦!

    手把手教你做星閃無人機》即將開播,鎖定15日晚七點!

    KaihongOS手把手系列直播課再度來襲為助力開發者迅速掌握『KaihongOS輕量系統開發技術』與『星閃無線通信技術』,實現快速上手與深度體驗,“開鴻Developer社區”攜手“手電子發燒友
    的頭像 發表于 01-13 19:42 ?336次閱讀
    《<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>做星閃無人機》即將開播,鎖定15日晚七點!

    手把手教你做PC》課程即將啟動!深開鴻引領探索KaihongOS筆記本電腦開發實戰

    ”攜手“電子發燒友”聯合推出了《KaihongOS手把手系列直播課程》,該系列課程以實際產品為案例,詳細講解每個產品的開發全流程。此次首發內容是《手把手教你做PC-
    的頭像 發表于 01-06 20:46 ?402次閱讀
    《<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>做PC》課程即將啟動!深開鴻引領探索KaihongOS筆記本電腦開發實戰

    源碼開放 智能監測電源管理教程寶典!

    源碼開放,今天我們學習的是電源管理系統的核心功能模塊,手把手教你如何通過不同的技術手段實現有效的電源管理。
    的頭像 發表于 12-11 09:26 ?540次閱讀
    源碼開放  <b class='flag-5'>智能</b>監測電源管理教程寶典!

    Air780E模組LuatOS開發實戰 —— 手把手教你搞定數據打包解包

    本文要說的是低功耗4G模組Air780E的LuatOS開發實戰,我將手把手教你搞定數據打包解包。
    的頭像 發表于 12-03 11:17 ?494次閱讀
    Air780E模組LuatOS開發實戰 —— <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>搞定數據打包解包

    stm32單片機畢業設計——物聯網智能家居源代碼原理圖

    一、設計簡介本畢業設計項目是基于STM32單片機的物聯網機智云智能家居系統,包含原理圖PCB手機APP。智能家居系統以STM32C8T6單片
    的頭像 發表于 11-30 01:03 ?1957次閱讀
    stm32單片機<b class='flag-5'>畢業設計</b>——物聯網<b class='flag-5'>智能家居</b>源代碼原理圖

    手把手教你通過宏集物聯網工控屏&amp;網關進行協議轉換,將底層PLC/傳感器的數據轉換為TCP協議并傳輸到用戶

    手把手教你通過宏集物聯網工控屏&網關進行協議轉換,將底層PLC/傳感器的數據轉換為TCP協議并傳輸到用戶終端
    的頭像 發表于 08-15 13:29 ?892次閱讀
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>通過宏集物聯網工控屏&amp;網關進行協議轉換,將底層PLC/傳感器的數據轉換為TCP協議并傳輸到用戶

    手把手教你排序算法怎么寫

    今天以直接插入排序算法,給大家分享一下排序算法的實現思路,主要包含以下部分內容:插入排序介紹插入排序算法實現手把手教你排序算法怎么寫在添加新的記錄時,使用順序查找的方式找到其要插入的位置,然后將
    的頭像 發表于 06-04 08:03 ?973次閱讀
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>排序算法怎么寫

    手把手帶你移植HAL庫函數

    開發者更高效地進行嵌入式開發。手把手帶你移植HAL庫函數HAL庫提供了一套抽象接口,使開發者無需直接操作底層硬件寄存器,就能實現對硬件的控制。這種抽象使得代碼能夠更
    的頭像 發表于 05-18 08:04 ?2950次閱讀
    <b class='flag-5'>手把手</b>帶你移植HAL庫函數
    主站蜘蛛池模板: 日夜夜操| 免费无毒片在线观看 | 一级在线观看视频 | 日本黄色一级网站 | 国产欧美日韩综合精品一区二区 | 亚洲线精品一区二区三区 | 男女视频在线播放 | 午夜美女久久久久爽久久 | 亚洲综合色婷婷 | 一区二区三区四区无限乱码在线观看 | 黄色网址你懂的 | 国产精品推荐天天看天天爽 | 男人边吃奶边爱边做视频日韩 | 人操人爱| 亚洲国产精品久久婷婷 | 天天干在线免费视频 | jiuse在线 | 奇米影视四色7777 | 月夜免费观看高清在线完整 | 亚洲精品456| 97爱爱爱| 男人j桶进女人j的视频 | 操操操天天操 | 色综合一区二区三区 | 中文字幕第13亚洲另类 | 亚洲日韩色图 | 久久精品国产99国产精品免费看 | 美女午夜| 天天操丝袜| 天天射夜夜爽 | 日本天天操 | 激情五月激情综合 | avtt加勒比手机版天堂网 | 69日本xxxxxxxxx56 69日本xxxxxxxxx78 | 26uuu影院亚洲欧美综合 | 最好看的2019中文字幕1 | 在线日本人观看成本人视频 | 99午夜高清在线视频在观看 | 久久精品美女 | 天天摸天天添人人澡 | 欧美黄又粗暴一进一出抽搐 |