丨場(chǎng)景聯(lián)動(dòng)智能電燈如何感知光線下_第1頁(yè)
丨場(chǎng)景聯(lián)動(dòng)智能電燈如何感知光線下_第2頁(yè)
丨場(chǎng)景聯(lián)動(dòng)智能電燈如何感知光線下_第3頁(yè)
丨場(chǎng)景聯(lián)動(dòng)智能電燈如何感知光線下_第4頁(yè)
丨場(chǎng)景聯(lián)動(dòng)智能電燈如何感知光線下_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

首先,我們先看一下網(wǎng)關(guān)的系統(tǒng)架具體的架構(gòu)圖如下所示在樹(shù)莓派上進(jìn)行藍(lán)牙開(kāi)發(fā),你可以使用bluepy軟件包。它提供了一個(gè)Python語(yǔ)言版本的低功耗藍(lán)牙API接口,而且對(duì)樹(shù)莓派的適配非常好。通過(guò)終端登錄在學(xué) 第15講的時(shí)候,你應(yīng)該已經(jīng)在樹(shù)莓派上部署好了包含GladysAssistant的Raspbian操作系統(tǒng),現(xiàn)在你可以直接使用這個(gè)系統(tǒng)。安裝軟件包之前,我們?cè)陔娔X終端上輸入下面令,通過(guò)SSH協(xié)議登錄到樹(shù)莓統(tǒng)中。1$ssh其中,pi就是默認(rèn)的登錄用戶名,gladys.local是樹(shù)莓派開(kāi)發(fā)板的本地當(dāng)提示輸入時(shí),我們輸入默認(rèn)raspberry,然后回車(chē),就登錄到了樹(shù)莓統(tǒng)通過(guò)圖形化窗口軟件登錄樹(shù)當(dāng)然,你也可以使用提供圖形化窗口的軟件來(lái)登錄樹(shù)莓派,比如SecureCRT,它除了支持串口協(xié)議,同時(shí)也支持SSH協(xié)議。你只需要新建接會(huì)話,按照下圖所示的內(nèi)容填寫(xiě)第一次登錄時(shí),SecureCRT彈窗提示我們查看“HostKey”,這時(shí)點(diǎn)擊“Accept然后我們輸入“raspberry”,同時(shí)勾選“Savepassword”,省去以后重復(fù)輸入在樹(shù)莓派開(kāi)發(fā)我們?cè)跇?shù)莓派的終端上輸入下面命令,就可以完成bluepy的安裝$sudoapt-getinstallpython3-piplibglib2.0-$sudopip3install另外,我們還需要安裝interruptingcow件包。它主要是便于編寫(xiě)定時(shí)任務(wù)。它的安裝1$sudopip3install具體代碼如下,供參考代代123456789#File:blescan.pyimporttimefromthreadingimportfrominterruptingcowimportfrombluepy.btleimportelegate,Peripheral,Scanner,UUID,frombluepy.btleimportBTLEDisconnectError,BTLEManagementError,class SCAN_TIMEOUT=

init(self,name):self._name=name def results= #messages= # return defscan_processor=scanner=scanner.scan(self.SCAN_TIMEOUT,with"Retrievingdatafrom{}device{}timedoutafter{}repr(self),self._name, whilenot return return47classADV_TYPE_SERVICE_DATA=

init(self,name):self._ready=Falseself._name=nameself._results=defhandleDiscovery(self,dev,isNewDev,is_nodemcu=iffor(adtype,desc,value)in#ServiceDataUUID==0xFE95accordingtoifadtype==self.ADV_TYPE_SERVICE_DATAandprint("FOUNDserviceData:",adtype,desc,#ObjectID==0x1007accordingtoiflen(value)==38andvalue[26:30]==light_den=int((value[-2:]+value[-4:-mac=self._results.lightlevel=self._results.mac=self.ready=defreturndefreturndefready(self,self._ready=defreturnclassinitself._lightlevel=self._mac=defreturndeflightlevel(self,self._lightlevel=defreturndefmac(self,self.mac=MQTT接下來(lái),我們要實(shí)現(xiàn)網(wǎng)關(guān)和云平臺(tái)的對(duì)MQTT開(kāi)發(fā)環(huán)境準(zhǔn)安裝軟件藍(lán)牙網(wǎng)關(guān)與云平臺(tái)交互的通信協(xié)議也是使用MQTT議,所以我們需要安裝MQTT軟使用哪個(gè)軟件包呢?在第8講中我介紹過(guò)幾個(gè)常用的MQT軟件包,這里我們選擇支持Python語(yǔ)言開(kāi)發(fā)的EcpsePaho軟件包。我們?cè)跇?shù)莓派的終端上輸入下面令來(lái)安裝。1$sudopip3installpaho-安裝成功后,我們可以寫(xiě)一個(gè)demo序測(cè)試一下。下面是我測(cè)試的代碼,你可以參考。和第8講一樣,這段代碼仍然會(huì)連接到,并且訂閱“/geektime/iot”的消息代代123456789#File:importasdef,userdata,flags,print("Connectedwithresultcodedef,userdata,print(msg.topic+"=.on_connect=.on_message=#Stillconnectto.connect("",1883,部署文件到樹(shù)莓現(xiàn)在,我們把測(cè)試文件mqttdemo.py上傳到樹(shù)莓派上你可以在電腦終端上,運(yùn)行下面令。(注意,你需要先在樹(shù)莓派上創(chuàng)建pi-這 。1$scpmqttdemo.pypi@gladys.local:/home/pi/pi-其中這個(gè)scp命令是基于SSH協(xié)議實(shí)現(xiàn)的安全文檔傳輸功當(dāng)然,你也可能更習(xí)慣圖形化的軟件,所以我再介紹一個(gè)能實(shí)現(xiàn)scp功能的軟FileZilla。它支持MacOS、Windows和Linux操作系統(tǒng),操作打開(kāi)“站點(diǎn)管理器”,創(chuàng)建“新站點(diǎn)”。你可以按照下圖設(shè)置具體配置參數(shù),然擊“連接”,登錄到樹(shù)莓統(tǒng)。為了方便之后的使用,你可以勾選“保存”選項(xiàng)在軟件界面的左半部分是你的電腦上的文件,右半部分是樹(shù)莓派上的。你只需要雙擊左邊的某個(gè)文件,就可以將文件傳輸?shù)綐?shù)莓派上。當(dāng)然你也可以雙擊右邊樹(shù)莓派上的文件,將它傳輸?shù)侥愕碾娔X。把文件傳輸?shù)綐?shù)莓派之后,我們就可以在樹(shù)莓派的終端上輸入下面令,運(yùn)行上面demo序1$sudopython3這時(shí)我們把第8再執(zhí)在11hbmqtt_pub--urlmqtt://:1883-t/geektime/iot-云平臺(tái)創(chuàng)建光照傳感創(chuàng)建的過(guò)程與第17智能電燈的過(guò)程類(lèi)似。我快速介紹一下,你重點(diǎn)關(guān)注不同的地方就可創(chuàng)建成功后,我們點(diǎn)擊進(jìn)入數(shù)據(jù)模板的設(shè)置界面。為了盡量簡(jiǎn)單,我只定義了一個(gè)性“光照度”,而且是只讀類(lèi)型。你可以直接導(dǎo)入下面的JSON件完成數(shù)據(jù)模板的設(shè)1 "version":"profile":"ProductId":"你的"CategoryId": "properties": "id":"name":"光照度"desc":"光照度檢測(cè)"mode":"define":"type":"min":"max":"start":"step":"unit":}}"events":"actions":}在“交互開(kāi)發(fā)”頁(yè)中,和智能電燈一樣,我們?nèi)匀槐3帧笆褂眯〕绦蚩刂破贰边x項(xiàng)是打開(kāi)狀態(tài)。另外,還有一個(gè)配置項(xiàng)需要關(guān)注,那就是“智能聯(lián)動(dòng)配置”,因?yàn)橄乱徊剑凇霸O(shè)備調(diào)試”界面中,我們創(chuàng)建一個(gè)測(cè)試設(shè)備。點(diǎn)擊“新建設(shè)備”,輸入設(shè)備 到這里,騰訊云平臺(tái)上的產(chǎn)品創(chuàng)建工作就產(chǎn)品聯(lián)網(wǎng)開(kāi)在第17講中,我們已經(jīng)了解了MQTT通信的Topic,以及Broker服務(wù)器地、端、設(shè)備ID(ID)、用戶名(UserName)和(Password)等連接參數(shù)的我們還是可以使用sign.html這個(gè)網(wǎng)頁(yè)工具生產(chǎn)用戶名和,然后就能得到所有的參代代123456789#File:fromblescanimportLightScanner,importtimeimportasyncioimportjsonimportuuidimportas11QCloudDevice1213DEVICE_NAME="Ligh14PRODUCT_ID=15DEVICE_KEY=MQTTMQTT_CONTROL_TOPIC=MQTT_CONTROL_REPLY_TOPIC=def ,userdata,#print(f"Received`{msg.payload.decode()}`from`{msg.topic}`asyncdef#connectdef ,userdata,flags,ifrc==print("ConnectedtoMQTTprint("Failedtoconnect,returncode%d\n",==PRODUCT_ID+MQTT_PORT_ID="MQTT_USER_NAME="MAO3SVUCFOLigh MQTTT_PASSWORD= =MQTT.(MQTT_ .username_pw_set(MQTT_USER_NAME, .on_connect= .connect(MQTT_SERVER,MQTT_PORT, return50def , _token="Token-"+msg="method": Token":"params":"Illuminance": .publish(MQTT_CONTROL_REPLY_TOPIC,asyncdefbles=mm.on_message=mwhileTrue:data=bles.status_update()exceptExceptionase:print("BLESCANerror:",print("LightLevel:",,asyncdef=#MQTTconnection=awaitasyncio.wait_for(mqtt_connect(),exceptprint("mqttconnectedifisnotawait 在樹(shù)莓派上部接下來(lái),我們把代碼文件gateway.py和blescan.py兩個(gè)文件也上傳到樹(shù)莓/home/pi/pi- 中同時(shí),為了讓程序作為服務(wù)運(yùn)行,并且能夠開(kāi)機(jī)自啟動(dòng),我們來(lái)做一個(gè)PiGateway首先,你需要新建一個(gè)service.sh文件,內(nèi)容如下1123456set-eSCRIPT_DIR=$(cd"$(dirname"$0")">/dev/null2>&1&&pwdcdsudopython3./gateway.py然后,創(chuàng)建我們service的配置文件,內(nèi)代代123456789Description=PiGateway接著,把這兩個(gè)文件上傳到樹(shù)莓統(tǒng)的/home/pi/pi-gateway $$oda+xoda+xpi-最后,執(zhí)行下面的幾條命令,為樹(shù)莓統(tǒng)增添上PiGateway這個(gè)服務(wù)$sudocp/home/pi/pi-gateway/pi-gateway.service$sudosystemctldaemon-$sudosystemctlstartpi-$sudosystemctlstatuspi-$sudosystemctlenablepi-在第17和第18的實(shí)戰(zhàn)中,我們分別完成了智能電燈和光照傳感器的開(kāi)發(fā),現(xiàn)在終于場(chǎng)景聯(lián)動(dòng)任務(wù)個(gè)目標(biāo)可以拆解為3個(gè)自動(dòng)觸發(fā)任務(wù):當(dāng)光照強(qiáng)度大于1024Lux時(shí),關(guān)閉電燈當(dāng)光照強(qiáng)度小于1024Lux時(shí),打開(kāi)電燈至于光照強(qiáng)度等于1024Lux時(shí),也打開(kāi)電燈注意,這里的1024Lux是選擇的一個(gè)值,你可以根據(jù)房屋情況自己調(diào)整聯(lián)動(dòng)設(shè)備準(zhǔn) 備 sor_1”現(xiàn)在你的小程序里面已經(jīng)有了兩個(gè)設(shè)備,如下圖所剛才我們已經(jīng)在騰訊云物聯(lián)網(wǎng)平臺(tái)上,為光照傳感器設(shè)置了“智能聯(lián)動(dòng)配置”。現(xiàn)在,我聯(lián)動(dòng)任務(wù)創(chuàng)然后,我們進(jìn)入騰訊連連小程序,的“+”,選擇“添加智能”,開(kāi)始配置工作我們從彈框里選擇“自動(dòng)智能”,可以看到下圖的配置界首先,我們添加條件,選擇光照傳感器設(shè)備,然后就會(huì)看到光照度屬性。我們先設(shè)置1024Lux的條件然后,我們添加任務(wù),選擇智能電燈設(shè)備后,可以看到電燈開(kāi)關(guān)的屬性,選擇“關(guān)”,點(diǎn)接下來(lái),我們還可以設(shè)置一個(gè)和名稱,這個(gè)根據(jù)喜好來(lái)就行了按照相同的方法,我們可以設(shè)置其他兩個(gè)條件,如下圖所最終的智能聯(lián)動(dòng),包括了剛才提到的3個(gè)不同的觸發(fā)條件為了實(shí)現(xiàn)協(xié)議轉(zhuǎn)換,樹(shù)莓派的南向接口,也就是藍(lán)牙功能,你可以基于bluepy軟件包開(kāi)發(fā)。這里實(shí)現(xiàn)的功能是掃描光照傳感器的廣播包,并按照MiBeacon牙協(xié)議

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論