一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

人工智能應(yīng)用實(shí)操:Python控制IoT智能硬件的教程

智能物聯(lián)研習(xí)社 ? 來(lái)源:涂鴉智能 ? 作者:智能物聯(lián)研習(xí)社 ? 2020-12-09 11:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

人工智能機(jī)器學(xué)習(xí)的火熱,將Python語(yǔ)言的熱度帶到了一個(gè)新高度,朋友圈經(jīng)常刷到的Python小課,甚至讓很多非技術(shù)的同學(xué)一度懷疑,不會(huì)點(diǎn)Python都不好意思說自己是現(xiàn)代人。關(guān)于Python的基礎(chǔ)知識(shí),網(wǎng)上內(nèi)容很多,感興趣的都可以找到大量資料學(xué)習(xí)。本篇文章,我主要從一些讀者關(guān)注的問題出發(fā),比如在各種IoT智能設(shè)備普及的今天,如何利用Python去控制智能硬件,實(shí)現(xiàn)一些功能演示呢?比如我們可以利用Python控制燈泡的開關(guān)、亮度調(diào)節(jié)、顏色變化等等。

實(shí)際上,這些控制硬件設(shè)備的能力,并不需要你完全自己去開發(fā)程序?qū)崿F(xiàn),通過現(xiàn)成的平臺(tái),通過簡(jiǎn)單的Python代碼編程,就可以實(shí)現(xiàn)智能設(shè)備的控制和交互,真正讓你掌握軟件和硬件能力的打通。下面,我會(huì)利用涂鴉云開發(fā)平臺(tái)手把手教你如何使用該平臺(tái)并通過 Python 調(diào)用相關(guān) API 控制一款智能設(shè)備。利用涂鴉云開發(fā)平臺(tái),您可以獲取涂鴉 IoT 平臺(tái) OpenAPI 的調(diào)用權(quán)限。通過簡(jiǎn)單的代碼編程就可以輕易控制 Powered By Tuya 智能設(shè)備。

物料清單

硬件:一款智能硬件設(shè)備,任何 Powered By Tuya 設(shè)備皆可,您也可以前往涂鴉智選平臺(tái)采購(gòu)樣品。

軟件:一款 Python IDE,例如 PyCharm、VS Code、IDLE 等

步驟

第 1 步:創(chuàng)建云開發(fā)項(xiàng)目

想要使用涂鴉API,您需要先在 涂鴉云開發(fā)平臺(tái) 創(chuàng)建一個(gè)項(xiàng)目。

創(chuàng)建成功后,在項(xiàng)目詳情頁(yè)面,您可以獲得授權(quán)密鑰(Access ID 和 Access Secret 的組合)。請(qǐng)復(fù)制出來(lái)妥善保管,調(diào)用 API 時(shí)您需要用到授權(quán)密鑰。

第 2 步:關(guān)聯(lián)設(shè)備到項(xiàng)目

使用涂鴉 OpenAPI 主要是為了控制智能設(shè)備,所以我們需要先將設(shè)備關(guān)聯(lián)到云開發(fā)項(xiàng)目中。

設(shè)備關(guān)聯(lián)方式

涂鴉提供了4種關(guān)聯(lián)設(shè)備的維度:

由于前 3 種需要您開發(fā)智能硬件產(chǎn)品或移動(dòng)應(yīng)用,為了快速體驗(yàn) IoT 應(yīng)用構(gòu)建流程,本文使用第 4 種方式關(guān)聯(lián)設(shè)備關(guān)聯(lián)。

推薦方式一:使用涂鴉智能 App 添加智能設(shè)備

推薦方式二:添加虛擬設(shè)備

如果您沒有可用的 Powered By Tuya 設(shè)備,您還可以通過添加虛擬設(shè)備來(lái)完成調(diào)試。關(guān)聯(lián)產(chǎn)品下的設(shè)備:通過產(chǎn)品 PID 關(guān)聯(lián)您開發(fā)的智能設(shè)備。關(guān)聯(lián)微信小程序配網(wǎng)添加的設(shè)備:通過 App schema 關(guān)聯(lián)您開發(fā)的小程序下的設(shè)備。關(guān)聯(lián) App 配網(wǎng)添加的設(shè)備:通過 App schema 關(guān)聯(lián)您開發(fā)的 App 下的設(shè)備。關(guān)聯(lián) App 賬號(hào)下的設(shè)備:通過使用涂鴉智能 App 關(guān)聯(lián)您的 IoT 賬號(hào)里配網(wǎng)的設(shè)備。手機(jī)里安裝涂鴉智能 App 或智能生活 App。

將智能設(shè)備配網(wǎng)到 App。打開云開發(fā) 關(guān)聯(lián)設(shè)備 頁(yè)面。選擇關(guān)聯(lián) App 賬號(hào)下的設(shè)備頁(yè)簽。使用涂鴉智能 App 進(jìn)行掃碼即可將賬號(hào)下的所有設(shè)備授權(quán)給云開發(fā)項(xiàng)目使用。智能設(shè)備關(guān)聯(lián)到云開發(fā)項(xiàng)目后,您可以在設(shè)備管理>設(shè)備列表查看到通過各種方式關(guān)聯(lián)的設(shè)備。添加完成后,可以先將設(shè)備 ID 復(fù)制出來(lái)備用,假設(shè)您獲取的設(shè)備 ID 為6c7asa9b55fs632c12zcwy。

打開云開發(fā) 虛擬設(shè)備 頁(yè)面。選擇添加虛擬設(shè)備。選擇一款產(chǎn)品,然后選擇添加虛擬設(shè)備>關(guān)聯(lián)到涂鴉 App 賬號(hào)。使用涂鴉智能 App 進(jìn)行掃碼即可將賬號(hào)下的虛擬設(shè)備授權(quán)給云開發(fā)項(xiàng)目使用。虛擬設(shè)備都被獨(dú)立放置在設(shè)備管理>虛擬設(shè)備頁(yè)面。添加完成后,可以先將設(shè)備 ID 復(fù)制出來(lái)備用,假設(shè)您獲取的虛擬設(shè)備 ID 為 vdevo160544422718591。

第 3 步:申請(qǐng) API 調(diào)用權(quán)限

涂鴉 IoT 平臺(tái) OpenAPI 默認(rèn)是非開通狀態(tài),您需要以分組為單位發(fā)起 API 開通申請(qǐng)方可使用。如果您調(diào)用未開通的 API,將產(chǎn)生權(quán)限不足的調(diào)用錯(cuò)誤。本文操作中,您需要在 云開發(fā) API 分組頁(yè)面 申請(qǐng)的 API 分別為授權(quán)管理、設(shè)備管理、設(shè)備控制。

至此,在涂鴉云開發(fā)平臺(tái)上的準(zhǔn)備工作已經(jīng)完成,接下來(lái)請(qǐng)選擇任意一個(gè)Python IDE 進(jìn)行接下來(lái)的編程實(shí)踐。

第 4 步:調(diào)用 API 控制設(shè)備

本步驟中所有涉及的 Python 代碼已經(jīng)打包生成為 python_iot_code_sample.py,您可以提前下載使用。

4.1 獲取 access_token

涂鴉 IoT 采用 HMAC-SHA256 創(chuàng)建摘要,根據(jù)不同應(yīng)用場(chǎng)景,云開發(fā)平臺(tái)提供兩套簽名算法。其中,令牌管理接口(獲取令牌、刷新令牌)算法如下:

sign = HMAC-SHA256(client_id + t, secret).toUpperCase()

以下為對(duì)應(yīng)的 Python 應(yīng)用代碼邏輯:

#從云開發(fā)項(xiàng)目獲得的授權(quán)密鑰client_id='3meqtq4x9wr22a90lee4'secret='7b121dd8196043f3b6944250fa3ad4ab'#各接口使用方請(qǐng)根據(jù)自身所在區(qū)域調(diào)用相應(yīng)接口。#中國(guó)區(qū)https://openapi.tuyacn.com#美洲區(qū)https://openapi.tuyaus.com#歐洲區(qū)https://openapi.tuyaeu.com#印度區(qū)https://openapi.tuyain.combase='https://openapi.tuyacn.com'#簽名算法函數(shù)defcalc_sign(msg,key): importhmacimporthashlib sign=hmac.new(msg=bytes(msg,'latin-1'),key=bytes(key,'latin-1'),digestmod=hashlib.sha256).hexdigest().upper()returnsignimporttimeimportrequests t=str(int(time.time()*1000)) r=requests.get(base+'/v1.0/token?grant_type=1', headers={'client_id':client_id,'sign':calc_sign(client_id+t,secret),'secret':secret,'t':t,'sign_method':'HMAC-SHA256', }) res=r.json()['result'] print(res)

4.2 編寫通用請(qǐng)求函數(shù)

所有業(yè)務(wù) API 都需要帶公共參數(shù),為了避免重復(fù)繁瑣的操作,建議您編寫 GET 和 POST 請(qǐng)求,方便后續(xù)使用。同時(shí),業(yè)務(wù)接口的簽名算法與之前步驟中獲取 Token 時(shí)使用的不同,算法如下:

sign = HMAC-SHA256(client_id + access_token + t, secret).toUpperCase()

以下為對(duì)應(yīng)的 Python 應(yīng)用代碼邏輯:

importjson#get請(qǐng)求函數(shù)defGET(url,headers={}): t=str(int(time.time()*1000)) default_par={'client_id':client_id,'access_token':res['access_token'],'sign':calc_sign(client_id+res['access_token']+t,secret),'t':t,'sign_method':'HMAC-SHA256', } r=requests.get(base+url,headers=dict(default_par,**headers)) r=json.dumps(r.json(),indent=2,ensure_ascii=False)#美化request結(jié)果格式,方便打印查看 returnr#post請(qǐng)求函數(shù)defPOST(url,headers={},body={}): importjson t=str(int(time.time()*1000)) default_par={'client_id':client_id,'access_token':res['access_token'],'sign':calc_sign(client_id+res['access_token']+t,secret),'t':t,'sign_method':'HMAC-SHA256', } r=requests.post(base+url,headers=dict(default_par,**headers),data=json.dumps(body)) r=json.dumps(r.json(),indent=2,ensure_ascii=False)#美化request結(jié)果格式,方便打印查看 returnr

4.3 雙向控制設(shè)備

通過 獲取設(shè)備最新狀態(tài) 的 API,您可以獲得設(shè)備的最新狀態(tài),需要使用設(shè)備 ID 作為參數(shù)調(diào)用 API。以下為對(duì)應(yīng)的 Python 應(yīng)用代碼邏輯:

#云開發(fā)項(xiàng)目里關(guān)聯(lián)設(shè)備的IDdevice_id='65057368c44f3380cc4b'r=GET(url=f'/v1.0/devices/{device_id}/status') print(r)

返回結(jié)果示例如下所示,更多詳情,請(qǐng)參考智能設(shè)備的 指令集:

{"result":[ {"code":"switch","value":true }, {"code":"countdown_1","value":0 }, {"code":"cur_current","value":68 }, {"code":"cur_power","value":3 }, {"code":"cur_voltage","value":2125 } ],"success":true,"t":1606880360840}

在控制一個(gè)未知的設(shè)備之前,有時(shí)您并不知道可以下發(fā)哪些指令來(lái)控制設(shè)備。這時(shí)就可以先用這個(gè) API 獲得這個(gè)設(shè)備所有可用的控制指令,然后再下發(fā)具體指令來(lái)控制設(shè)備。

r=GET(url=f'/v1.0/devices/{device_id}/functions') print(r)

以智能插座為例,返回結(jié)果示例如下:

{"result":{"category":"cz","functions":[ {"code":"switch","desc":"[插座]開關(guān)","name":"開關(guān)","type":"Boolean","values":"{}" }, {"code":"countdown_1","desc":"開關(guān)1倒計(jì)時(shí)","name":"開關(guān)1倒計(jì)時(shí)","type":"Integer","values":"{"unit":"s","min":0,"max":86400,"scale":0,"step":1}" } ] },"success":true,"t":1606880309547}

獲取到設(shè)備指令集后,您可以調(diào)用 下發(fā)設(shè)備指令 API 來(lái)控制智能設(shè)備。

#根據(jù)該設(shè)備的控制指令集組裝參數(shù)d={"commands":[{"code":"switch","value":True},]} r=POST(url=f'/v1.0/devices/{device_id}/commands',body=d) print(r)

返回結(jié)果示例:

{"result":true,"success":true,"t":1606880463013}

詳情 :基于涂鴉云開發(fā)平臺(tái)的 Python IoT 開發(fā)實(shí)踐 (tuya.com)

小結(jié)

本文介紹了如何使用 Python 基于涂鴉云開發(fā)平臺(tái),調(diào)用基礎(chǔ) API 控制一個(gè)智能設(shè)備。由于 Powered By Tuya 設(shè)備體系嚴(yán)格的統(tǒng)一性,您可以將這個(gè)控制方式拓展到所有 Powered By Tuya 設(shè)備中。讓您無(wú)需考慮設(shè)備異構(gòu)性,能夠快速構(gòu)建 IoT 應(yīng)用和服務(wù)。

fqj

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 人工智能
    +關(guān)注

    關(guān)注

    1806

    文章

    48996

    瀏覽量

    249189
  • IOT
    IOT
    +關(guān)注

    關(guān)注

    187

    文章

    4303

    瀏覽量

    201728
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    最新人工智能硬件培訓(xùn)AI基礎(chǔ)入門學(xué)習(xí)課程參考2025版(離線AI語(yǔ)音視覺識(shí)別篇)

    視覺開發(fā)板開箱即用的離線AI能力,分類列出學(xué)習(xí)課程知識(shí)點(diǎn)和實(shí)參考,希望能夠幫助大家快速掌握離線 AI 智能硬件的基礎(chǔ)知識(shí)與實(shí)戰(zhàn)技能,同時(shí)了解相關(guān)AI技術(shù)在實(shí)際場(chǎng)景的應(yīng)用情況。正文按入
    發(fā)表于 07-04 11:14

    最新人工智能硬件培訓(xùn)AI 基礎(chǔ)入門學(xué)習(xí)課程參考2025版(大模型篇)

    人工智能大模型重塑教育與社會(huì)發(fā)展的當(dāng)下,無(wú)論是探索未來(lái)職業(yè)方向,還是更新技術(shù)儲(chǔ)備,掌握大模型知識(shí)都已成為新時(shí)代的必修課。從職場(chǎng)上輔助工作的智能助手,到課堂用于學(xué)術(shù)研究的智能工具,大模型正在工作生活
    發(fā)表于 07-04 11:10

    嵌入式和人工智能究竟是什么關(guān)系?

    領(lǐng)域,如工業(yè)控制、智能家居、醫(yī)療設(shè)備等。 人工智能是計(jì)算機(jī)科學(xué)的一個(gè)分支,它研究如何使計(jì)算機(jī)具備像人類一樣思考、學(xué)習(xí)、推理和決策的能力。人工智能的發(fā)展歷程可以追溯到上世紀(jì)50年代,經(jīng)
    發(fā)表于 11-14 16:39

    《AI for Science:人工智能驅(qū)動(dòng)科學(xué)創(chuàng)新》第6章人AI與能源科學(xué)讀后感

    的實(shí)際應(yīng)用。這些案例涵蓋了智能電網(wǎng)、可再生能源預(yù)測(cè)、能源效率提升等多個(gè)方面。通過這些案例,我深刻體會(huì)到人工智能在提高能源生產(chǎn)、傳輸和消費(fèi)效率方面的巨大作用。例如,智能電網(wǎng)通過人工智能
    發(fā)表于 10-14 09:27

    AI for Science:人工智能驅(qū)動(dòng)科學(xué)創(chuàng)新》第4章-AI與生命科學(xué)讀后感

    很幸運(yùn)社區(qū)給我一個(gè)閱讀此書的機(jī)會(huì),感謝平臺(tái)。 《AI for Science:人工智能驅(qū)動(dòng)科學(xué)創(chuàng)新》第4章關(guān)于AI與生命科學(xué)的部分,為我們揭示了人工智能技術(shù)在生命科學(xué)領(lǐng)域中的廣泛應(yīng)用和深遠(yuǎn)影響。在
    發(fā)表于 10-14 09:21

    《AI for Science:人工智能驅(qū)動(dòng)科學(xué)創(chuàng)新》第一章人工智能驅(qū)動(dòng)的科學(xué)創(chuàng)新學(xué)習(xí)心得

    周末收到一本新書,非常高興,也非常感謝平臺(tái)提供閱讀機(jī)會(huì)。 這是一本挺好的書,包裝精美,內(nèi)容詳實(shí),干活滿滿。 《AI for Science:人工智能驅(qū)動(dòng)科學(xué)創(chuàng)新》這本書的第一章,作為整個(gè)著作的開篇
    發(fā)表于 10-14 09:12

    實(shí)文檔】在智能硬件的大模型語(yǔ)音交互流程中接入RAG知識(shí)庫(kù)

    本帖最后由 jf_40317719 于 2024-9-29 17:13 編輯 智能硬件的語(yǔ)音交互接入大模型后可以直接理解自然語(yǔ)言內(nèi)容,但大模型作為一個(gè)語(yǔ)言模型,對(duì)專業(yè)領(lǐng)域知識(shí)的訓(xùn)練缺乏也是
    發(fā)表于 09-29 17:12

    risc-v在人工智能圖像處理應(yīng)用前景分析

    RISC-V在人工智能圖像處理領(lǐng)域的應(yīng)用前景十分廣闊,這主要得益于其開源性、靈活性和低功耗等特點(diǎn)。以下是對(duì)RISC-V在人工智能圖像處理應(yīng)用前景的詳細(xì)分析: 一、RISC-V的基本特點(diǎn) RISC-V
    發(fā)表于 09-28 11:00

    人工智能ai 數(shù)電 模電 模擬集成電路原理 電路分析

    人工智能ai 數(shù)電 模電 模擬集成電路原理 電路分析 想問下哪些比較容易學(xué) 不過好像都是要學(xué)的
    發(fā)表于 09-26 15:24

    人工智能ai4s試讀申請(qǐng)

    目前人工智能在繪畫對(duì)話等大模型領(lǐng)域應(yīng)用廣闊,ai4s也是方興未艾。但是如何有效利用ai4s工具助力科研是個(gè)需要研究的課題,本書對(duì)ai4s基本原理和原則,方法進(jìn)行描訴,有利于總結(jié)經(jīng)驗(yàn),擬按照要求準(zhǔn)備相關(guān)體會(huì)材料??茨芊裼兄谌腴T和提高ss
    發(fā)表于 09-09 15:36

    名單公布!【書籍評(píng)測(cè)活動(dòng)NO.44】AI for Science:人工智能驅(qū)動(dòng)科學(xué)創(chuàng)新

    ! 《AI for Science:人工智能驅(qū)動(dòng)科學(xué)創(chuàng)新》 這本書便將為讀者徐徐展開AI for Science的美麗圖景,與大家一起去了解: 人工智能究竟幫科學(xué)家做了什么? 人工智能將如何改變我們所生
    發(fā)表于 09-09 13:54

    報(bào)名開啟!深圳(國(guó)際)通用人工智能大會(huì)將啟幕,國(guó)內(nèi)外大咖齊聚話AI

    8月28日至30日,2024深圳(國(guó)際)通用人工智能大會(huì)暨深圳(國(guó)際)通用人工智能產(chǎn)業(yè)博覽會(huì)將在深圳國(guó)際會(huì)展中心(寶安)舉辦。大會(huì)以“魅力AI·無(wú)限未來(lái)”為主題,致力于打造全球通用人工智能領(lǐng)域集產(chǎn)品
    發(fā)表于 08-22 15:00

    FPGA在人工智能中的應(yīng)用有哪些?

    定制化的硬件設(shè)計(jì),提高了硬件的靈活性和適應(yīng)性。 綜上所述,F(xiàn)PGA在人工智能領(lǐng)域的應(yīng)用前景廣闊,不僅可以用于深度學(xué)習(xí)的加速和云計(jì)算的加速,還可以針對(duì)特定應(yīng)用場(chǎng)景進(jìn)行定制化計(jì)算,為人工智能
    發(fā)表于 07-29 17:05

    如何在Python中開發(fā)人工智能

    Python中開發(fā)人工智能(AI)是一個(gè)廣泛而深入的主題,它涵蓋了從基礎(chǔ)的數(shù)據(jù)處理到復(fù)雜的機(jī)器學(xué)習(xí)、深度學(xué)習(xí)以及自然語(yǔ)言處理等多個(gè)領(lǐng)域。
    的頭像 發(fā)表于 07-15 15:01 ?3694次閱讀

    Python中的人工智能框架與實(shí)例

    人工智能(AI)領(lǐng)域,Python因其簡(jiǎn)潔的語(yǔ)法、豐富的庫(kù)和強(qiáng)大的社區(qū)支持,成為了最受歡迎的編程語(yǔ)言之一。本文將詳細(xì)介紹Python中的人工智能框架,并通過具體實(shí)例展示如何使用這些框
    的頭像 發(fā)表于 07-15 14:54 ?2624次閱讀