国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

人工智能應用實操:Python控制IoT智能硬件的教程

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

掃碼添加小助手

加入工程師交流群

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

實際上,這些控制硬件設備的能力,并不需要你完全自己去開發程序實現,通過現成的平臺,通過簡單的Python代碼編程,就可以實現智能設備的控制和交互,真正讓你掌握軟件和硬件能力的打通。下面,我會利用涂鴉云開發平臺手把手教你如何使用該平臺并通過 Python 調用相關 API 控制一款智能設備。利用涂鴉云開發平臺,您可以獲取涂鴉 IoT 平臺 OpenAPI 的調用權限。通過簡單的代碼編程就可以輕易控制 Powered By Tuya 智能設備。

物料清單

硬件:一款智能硬件設備,任何 Powered By Tuya 設備皆可,您也可以前往涂鴉智選平臺采購樣品。

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

步驟

第 1 步:創建云開發項目

想要使用涂鴉API,您需要先在 涂鴉云開發平臺 創建一個項目。

創建成功后,在項目詳情頁面,您可以獲得授權密鑰(Access ID 和 Access Secret 的組合)。請復制出來妥善保管,調用 API 時您需要用到授權密鑰。

第 2 步:關聯設備到項目

使用涂鴉 OpenAPI 主要是為了控制智能設備,所以我們需要先將設備關聯到云開發項目中。

設備關聯方式

涂鴉提供了4種關聯設備的維度:

由于前 3 種需要您開發智能硬件產品或移動應用,為了快速體驗 IoT 應用構建流程,本文使用第 4 種方式關聯設備關聯。

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

推薦方式二:添加虛擬設備

如果您沒有可用的 Powered By Tuya 設備,您還可以通過添加虛擬設備來完成調試。關聯產品下的設備:通過產品 PID 關聯您開發的智能設備。關聯微信小程序配網添加的設備:通過 App schema 關聯您開發的小程序下的設備。關聯 App 配網添加的設備:通過 App schema 關聯您開發的 App 下的設備。關聯 App 賬號下的設備:通過使用涂鴉智能 App 關聯您的 IoT 賬號里配網的設備。手機里安裝涂鴉智能 App 或智能生活 App。

將智能設備配網到 App。打開云開發 關聯設備 頁面。選擇關聯 App 賬號下的設備頁簽。使用涂鴉智能 App 進行掃碼即可將賬號下的所有設備授權給云開發項目使用。智能設備關聯到云開發項目后,您可以在設備管理>設備列表查看到通過各種方式關聯的設備。添加完成后,可以先將設備 ID 復制出來備用,假設您獲取的設備 ID 為6c7asa9b55fs632c12zcwy。

打開云開發 虛擬設備 頁面。選擇添加虛擬設備。選擇一款產品,然后選擇添加虛擬設備>關聯到涂鴉 App 賬號。使用涂鴉智能 App 進行掃碼即可將賬號下的虛擬設備授權給云開發項目使用。虛擬設備都被獨立放置在設備管理>虛擬設備頁面。添加完成后,可以先將設備 ID 復制出來備用,假設您獲取的虛擬設備 ID 為 vdevo160544422718591。

第 3 步:申請 API 調用權限

涂鴉 IoT 平臺 OpenAPI 默認是非開通狀態,您需要以分組為單位發起 API 開通申請方可使用。如果您調用未開通的 API,將產生權限不足的調用錯誤。本文操作中,您需要在 云開發 API 分組頁面 申請的 API 分別為授權管理、設備管理、設備控制。

至此,在涂鴉云開發平臺上的準備工作已經完成,接下來請選擇任意一個Python IDE 進行接下來的編程實踐。

第 4 步:調用 API 控制設備

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

4.1 獲取 access_token

涂鴉 IoT 采用 HMAC-SHA256 創建摘要,根據不同應用場景,云開發平臺提供兩套簽名算法。其中,令牌管理接口(獲取令牌、刷新令牌)算法如下:

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

以下為對應的 Python 應用代碼邏輯:

#從云開發項目獲得的授權密鑰client_id='3meqtq4x9wr22a90lee4'secret='7b121dd8196043f3b6944250fa3ad4ab'#各接口使用方請根據自身所在區域調用相應接口。#中國區https://openapi.tuyacn.com#美洲區https://openapi.tuyaus.com#歐洲區https://openapi.tuyaeu.com#印度區https://openapi.tuyain.combase='https://openapi.tuyacn.com'#簽名算法函數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 編寫通用請求函數

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

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

以下為對應的 Python 應用代碼邏輯:

importjson#get請求函數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結果格式,方便打印查看 returnr#post請求函數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結果格式,方便打印查看 returnr

4.3 雙向控制設備

通過 獲取設備最新狀態 的 API,您可以獲得設備的最新狀態,需要使用設備 ID 作為參數調用 API。以下為對應的 Python 應用代碼邏輯:

#云開發項目里關聯設備的IDdevice_id='65057368c44f3380cc4b'r=GET(url=f'/v1.0/devices/{device_id}/status') print(r)

返回結果示例如下所示,更多詳情,請參考智能設備的 指令集:

{"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}

在控制一個未知的設備之前,有時您并不知道可以下發哪些指令來控制設備。這時就可以先用這個 API 獲得這個設備所有可用的控制指令,然后再下發具體指令來控制設備。

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

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

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

獲取到設備指令集后,您可以調用 下發設備指令 API 來控制智能設備。

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

返回結果示例:

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

詳情 :基于涂鴉云開發平臺的 Python IoT 開發實踐 (tuya.com)

小結

本文介紹了如何使用 Python 基于涂鴉云開發平臺,調用基礎 API 控制一個智能設備。由于 Powered By Tuya 設備體系嚴格的統一性,您可以將這個控制方式拓展到所有 Powered By Tuya 設備中。讓您無需考慮設備異構性,能夠快速構建 IoT 應用和服務。

fqj

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

    關注

    1817

    文章

    50098

    瀏覽量

    265411
  • IOT
    IOT
    +關注

    關注

    190

    文章

    4395

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    淺談人工智能(2)

    接前文《淺談人工智能(1)》。 (5)什么是弱人工智能、強人工智能以及超人工智能? 弱人工智能(Weak AI),也稱限制領域
    的頭像 發表于 02-22 08:24 ?124次閱讀
    淺談<b class='flag-5'>人工智能</b>(2)

    開發智能體配置-內容合規

    智能體上架前,需完成“人工智能生成合成內容標識”和“大模型備案信息”填寫 ,以供平臺審核;可在智能體【配置】-【內容合規】中填寫。 人工智能生成合成內容標識 “
    發表于 02-07 11:44

    實用!智能空開過流調整步驟詳解:從原理到,精準守護用電安全

    智能家居與工業配電場景中,智能空氣開關(簡稱“智能空開”)憑借過流保護、遠程控制等功能,成為用電安全的核心防線。其中, 過流調整 是保障線路與設備免受過載、短路損害的關鍵操作。本文將
    的頭像 發表于 01-29 09:41 ?301次閱讀

    智能出席國際青年創新大會人工智能論壇

    國際青年創新大會于10月20日下午在深圳國際會展中心銀河會場震撼開啟。達智能聯合創始人呂楓受邀參會,并在人工智能論壇分享了公司AI技術在企業園區領域的創新實踐。
    的頭像 發表于 10-22 12:37 ?749次閱讀

    利用超微型 Neuton ML 模型解鎖 SoC 邊緣人工智能

    應用。 為什么選擇 Neuton 作為開發人員,在產品中使用邊緣人工智能的兩個最大障礙是: ML 模型對于您所選微控制器的內存來說太大。 創建自定義 ML 模型本質上是一個手動過程,需要高度的數據科學知識
    發表于 08-31 20:54

    挖到寶了!人工智能綜合實驗箱,高校新工科的寶藏神器

    ,技術自主可控 在如今這個科技競爭激烈的時代,國產化硬件的重要性不言而喻。比鄰星人工智能綜合實驗箱就做到了這一點,采用國產化硬件,積極推進全行業產業鏈上下游環節的國產化進程,把國產自主可控的軟
    發表于 08-07 14:30

    挖到寶了!比鄰星人工智能綜合實驗箱,高校新工科的寶藏神器!

    ,技術自主可控 在如今這個科技競爭激烈的時代,國產化硬件的重要性不言而喻。比鄰星人工智能綜合實驗箱就做到了這一點,采用國產化硬件,積極推進全行業產業鏈上下游環節的國產化進程,把國產自主可控的軟
    發表于 08-07 14:23

    華清遠見AI人工智能專業實驗室建設方案,虛實融合,以產業應用驅動高校教學訓變革!

    人工智能技術迭代提速的當下,高校教學正面臨著技術落地與人才培養的雙重挑戰。作為高校教師,我們常常會遇到這樣的困境:課本知識跟不上技術發展速度,實驗室硬件難以支撐復雜項目訓,產教融合缺乏實際落地
    的頭像 發表于 07-31 15:14 ?2036次閱讀
    華清遠見AI<b class='flag-5'>人工智能</b>專業實驗室建設方案,虛實融合,以產業應用驅動高校教學<b class='flag-5'>實</b>訓變革!

    智能人工智能智能制造專業委員會委員

    近日,達智能收到來自深圳上市公司協會頒發的證書,憑借在人工智能技術研發與應用領域的實踐成果,當選深上協“人工智能智能制造專業委員會”委員
    的頭像 發表于 07-29 16:36 ?913次閱讀

    迅為RK3588開發板Linux安卓麒麟瑞芯微國產工業AI人工智能

    迅為RK3588開發板Linux安卓麒麟瑞芯微國產工業AI人工智能
    發表于 07-14 11:23

    最新人工智能硬件培訓AI基礎入門學習課程參考2025版(離線AI語音視覺識別篇)

    視覺開發板開箱即用的離線AI能力,分類列出學習課程知識點和參考,希望能夠幫助大家快速掌握離線 AI 智能硬件的基礎知識與實戰技能,同時了解相關AI技術在實際場景的應用情況。正文按入
    發表于 07-04 11:14

    最新人工智能硬件培訓AI 基礎入門學習課程參考2025版(大模型篇)

    人工智能大模型重塑教育與社會發展的當下,無論是探索未來職業方向,還是更新技術儲備,掌握大模型知識都已成為新時代的必修課。從職場上輔助工作的智能助手,到課堂用于學術研究的智能工具,大模型正在工作生活
    發表于 07-04 11:10

    華清遠見AI人工智能專業實驗室建設方案,以產業應用驅動高校教學訓變革!

    人工智能技術迭代提速的當下,高校教學正面臨著技術落地與人才培養的雙重挑戰。作為高校教師,我們常常會遇到這樣的困境:課本知識跟不上技術發展速度,實驗室硬件難以支撐復雜項目訓,產教融合缺乏實際落地
    的頭像 發表于 06-27 13:45 ?1520次閱讀
    華清遠見AI<b class='flag-5'>人工智能</b>專業實驗室建設方案,以產業應用驅動高校教學<b class='flag-5'>實</b>訓變革!

    開售RK3576 高性能人工智能主板

    ,HDMI-4K 輸出,支 持千兆以太網,WiFi,USB 擴展/重力感應/RS232/RS485/IO 擴展/I2C 擴展/MIPI 攝像頭/紅外遙控 器等功能,豐富的接口,一個全新八核擁有超強性能的人工智能
    發表于 04-23 10:55

    NXP技術白皮書:AIoT人工智能物聯網 將人工智能與現實世界相連

    ? 分析師將人工智能物聯網 (AIoT) 大致定義為人工智能 (AI) 與物聯網(IoT)的融合,利用AI讓物聯網設備變得更智能、更具自主性。但這是一個以設備為中心的“小數據”的定義。
    的頭像 發表于 03-28 11:53 ?2109次閱讀
    NXP技術白皮書:AIoT<b class='flag-5'>人工智能</b>物聯網 將<b class='flag-5'>人工智能</b>與現實世界相連