電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用Alexa和Arduino的動(dòng)畫(huà)智能燈

使用Alexa和Arduino的動(dòng)畫(huà)智能燈

2022-12-09 | zip | 0.18 MB | 次下載 | 免費(fèi)

資料介紹

描述

為什么燈帶

我一直對(duì)可尋址的 RGB LED 燈帶著迷。無(wú)窮無(wú)盡的色彩效果和動(dòng)畫(huà)功能一直吸引著我的創(chuàng)造力,所以幾年前我決定為 Arduino 板開(kāi)發(fā)一個(gè)名為 ALA(Arduino Light Animations)的庫(kù)。Alexa 現(xiàn)在讓我可以用我的聲音控制房間的燈光和效果,這太棒了!

項(xiàng)目概況

有這個(gè)項(xiàng)目所必需的組件。

  • Amazon Alexa:自定義 Alexa 技能(Light Strip)定義語(yǔ)音交互模型并翻譯發(fā)出到 Lambda 函數(shù)的命令(意圖)。
  • Amazon Lambda :一個(gè) Python 腳本,它從 Alexa 接收消息并將更新發(fā)送到 IoT 服務(wù)。
  • 亞馬遜物聯(lián)網(wǎng):物聯(lián)網(wǎng)服務(wù)存儲(chǔ)一個(gè)“事物影子”,它代表了 RGB 條帶的狀態(tài)。每次影子更新時(shí),訂閱的 MQTT 客戶端 (Raspberry PI) 都會(huì)收到通知。
  • Raspberry PI :這臺(tái)小型 PC 運(yùn)行 MQTT 客戶端以接收來(lái)自 Amazon IoT 服務(wù)的消息。另一方面,它將通過(guò) USB 端口為 Arduino 板供電并發(fā)送命令。
  • Arduino :這個(gè)不錯(cuò)的微控制器將運(yùn)行ALA 庫(kù)來(lái)驅(qū)動(dòng) LED 燈條,通過(guò) USB 串行端口接收來(lái)自 Raspberry PI 的命令。您可以使用 Arduino Uno、Nano 或 Mega 開(kāi)發(fā)板。
  • WS8212 RGB LED 燈條:這些是可尋址的 LED 燈條,因此每個(gè) LED 燈都可以單獨(dú)控制。這允許美麗多彩的燈光動(dòng)畫(huà)。
?
pYYBAGOSje2ALBxBAABIysDgOb8334.png
建筑層
?

項(xiàng)目中沒(méi)有什么是非常具有挑戰(zhàn)性的,但是有很多相互關(guān)聯(lián)的部分。我建議您按照建議的結(jié)構(gòu)在堅(jiān)實(shí)的基礎(chǔ)上構(gòu)建您的項(xiàng)目,然后再繼續(xù)下一步。為了使事情盡可能簡(jiǎn)單,我將項(xiàng)目拆分為兩個(gè)子項(xiàng)目。

該項(xiàng)目的第一部分在我的Web-Controlled LED Animations with Raspberry Pi and Arduino Hackster.io 項(xiàng)目中有所描述,它將指導(dǎo)您完成連接 Raspberry PI、Arduino 板和 WS8212 LED 燈條所需的步驟。在此階段結(jié)束時(shí),您將能夠使用網(wǎng)絡(luò)瀏覽器從智能手機(jī)或 PC 控制 LED 動(dòng)畫(huà)。

?
poYBAGOSjjuAAYajAA1Y364Kc6g962.jpg
?

此處描述的項(xiàng)目的第二部分將使用 Amazon Alexa 在之前的實(shí)施中添加語(yǔ)音控制。要正確設(shè)置整個(gè)鏈條,需要執(zhí)行幾個(gè)步驟,因此請(qǐng)耐心等待并仔細(xì)按照說(shuō)明操作。

亞馬遜物聯(lián)網(wǎng)

你完成硬件部分了嗎?現(xiàn)在是上云的時(shí)候了!我們將使用 AWS IoT 平臺(tái)來(lái)管理來(lái)自互聯(lián)網(wǎng)的“事物”。

我們將使用“設(shè)備影子”,它是事物狀態(tài)的副本,以及所需的更改。Raspberry PI 將訂閱一個(gè)通知提要,將更改(“增量”)發(fā)布到此影子。查看此鏈接以了解有關(guān) AWS IoT 平臺(tái)和 API 的更多信息。

創(chuàng)建物聯(lián)網(wǎng)事物

登錄AWS 控制臺(tái)。如果您還沒(méi)有這樣做,則需要?jiǎng)?chuàng)建一個(gè)免費(fèi)帳戶。

確保您已登錄右上角的美國(guó)東部(弗吉尼亞北部)歐洲(愛(ài)爾蘭)區(qū)域。

搜索“IoT”并選擇AWS IoT服務(wù)。單擊“開(kāi)始”按鈕(如果有)以關(guān)閉介紹教程。

我們首先需要為我們的“事物”創(chuàng)建一個(gè)安全策略轉(zhuǎn)到Secure > Policies菜單,然后單擊Create a Policy按鈕并輸入以下信息:

  • 名稱:LightStripPolicy
  • 行動(dòng): *
  • 資源: *
  • 效果 - 允許:選中
  • 點(diǎn)擊“創(chuàng)建”

現(xiàn)在我們可以創(chuàng)建 IoT Thing了

  • 選擇Manage > Things菜單并通過(guò)單擊Register a Thing按鈕(或右上角的Create按鈕)然后單擊Create a single thing創(chuàng)建一個(gè)新的 AWS IoT Thing 。
  • 在名稱字段中鍵入“LS01”。保留其他字段的默認(rèn)值并單擊下一步。
  • 單擊一鍵式證書(shū)創(chuàng)建部分中的創(chuàng)建證書(shū)按鈕。
  • 為您的設(shè)備和根 CA 下載 3 個(gè)證書(shū)。對(duì)于 Root CA,您可能需要右鍵單擊并保存它。
  • 下載證書(shū)后,單擊“激活”按鈕。
  • 單擊Attach a Policy按鈕,選擇您之前創(chuàng)建的LightStripPolicy ,然后單擊Register Thing 。

在繼續(xù)之前,您需要記下 AWS IoT 端點(diǎn)。單擊AWS IoT 網(wǎng)頁(yè)左下角的設(shè)置菜單,打開(kāi)它并記下端點(diǎn)。

?
pYYBAGOSjj2AGgqeAACdvrq4yZk427.png
?

配置 Raspberry PI 以收聽(tīng)“事物”

我們首先需要在 Raspberry PI 命令行上使用以下命令安裝AWS IoT Device SDK for Python :

sudo pip3 install AWSIoTPythonSDK

現(xiàn)在從 GitHub 下載LightStrip 存儲(chǔ)庫(kù)并解壓縮。

mkdir
cd /home/pi/LightStrip
wget https://github.com/bportaluri/LightStrip/archive/master.zip
unzip master.zip

將創(chuàng)建 IoT 事物時(shí)下載的四個(gè)證書(shū)復(fù)制到/home/pi/LightStrip/LightStrip-master/pi文件夾中。

編輯lightstripcfg.py腳本。您可以使用任何文本編輯器。以下是nano編輯器的命令。

cd /home/pi/LightStrip/LightStrip-master/pi
nano lightstripcfg.py

現(xiàn)在編輯設(shè)置以匹配您的配置。

  • AWSIOT:輸入您之前記下的 AWS IoT 終端節(jié)點(diǎn)。
  • ROOT_CA:根CA證書(shū)文件名
  • CERTIFICATE:證書(shū)的文件名
  • PRIVATE_KEY:私鑰文件名
  • DEVICE_NAME:保持不變?yōu)椤癓S01”

關(guān)閉 nano 編輯器并按“Ctrl+X”然后按“Y”保存文件。

按如下方式啟動(dòng) lig??htstrip.py 腳本。

sudo python3 lightstrip.py

該腳本將列出連接的 USB 端口。Arduino 應(yīng)該連接到 /dev/ttyACM0 所以運(yùn)行腳本傳遞這樣的端口。

sudo python3 lightstrip.py /dev/ttyACM0

測(cè)試客戶端將連接到 Amazon Thing Shadow 服務(wù)并訂閱LS01影子設(shè)備的更改。成功連接后,客戶端腳本會(huì)將其狀態(tài)更新為 LS01 設(shè)備影子,并收到這樣的確認(rèn)消息。

?
pYYBAGOSjkeAXiPeAAEABfmFnVY693.png
?

要驗(yàn)證一切是否正常工作,請(qǐng)返回 AWS IoT 控制臺(tái)并選擇“管理”>“事物”菜單,然后打開(kāi)LS01設(shè)備。選擇陰影菜單,您將看到設(shè)備陰影狀態(tài)。

單擊 Shadow Document 部分中的Edit鏈接,并將以下 JSON 文檔粘貼到 Shadow state 框中。

{
 "desired": {
   "animation": "101"
 }
}

這是你應(yīng)該看到的。

?
pYYBAGOSjkmADa33AACJfv7GbC4146.png
?

單擊“保存”鏈接時(shí),“增量”消息將發(fā)送到 Raspberry PI 上的 MQTT 客戶端,這將打開(kāi) LED 燈帶。

以下 JSON 文檔會(huì)將顏色變?yōu)樗{(lán)色。

{
 "desired": {
   "color": "0066CC"
 }
}

在這一點(diǎn)上,我們能夠從 ASW 物聯(lián)網(wǎng)服務(wù)控制我們的 LED 燈條,所以你應(yīng)該為你感到驕傲。

AWS Lambda 函數(shù)

AWS Lambda 允許在云中運(yùn)行代碼而無(wú)需配置或管理服務(wù)器。它是 Alexa Skills Kit 之間的完美橋梁,將在該項(xiàng)目的最后一步啟用語(yǔ)音控制。

登錄到AWS 控制臺(tái)。從服務(wù)列表中,選擇Lambda 。

確保您登錄的區(qū)域與您在上一步中使用的區(qū)域相同:右上角的美國(guó)東部(弗吉尼亞北部)歐洲(愛(ài)爾蘭)區(qū)域。

單擊創(chuàng)建函數(shù)按鈕。點(diǎn)擊Author from scratch ,配置如下:

  • 名稱 = LightStrip
  • 運(yùn)行時(shí) = Python 3.6
  • 角色 = 創(chuàng)建自定義角色。這將啟動(dòng)一個(gè)新選項(xiàng)卡。只需單擊“允許”按鈕即可創(chuàng)建一個(gè)名為 lambda_basic_execution 的新角色。
  • 現(xiàn)有角色:lambda_basic_execution
  • 單擊創(chuàng)建函數(shù)按鈕

記下右上角的 Lambda ARN ID。

?
poYBAGOSjlGATROHAACr1CeUVfc405.png
?

單擊LightStrip框以顯示功能代碼部分。

代碼輸入類型:內(nèi)聯(lián)編輯代碼

  • 運(yùn)行時(shí):Python 3.6
  • 處理程序:lambda_function.lambda_handler

應(yīng)該已經(jīng)定義了lambda_function.py腳本。將LightStrip\lambda\lambda_function.py文件中的代碼粘貼到代碼編輯器中。

創(chuàng)建另一個(gè)名為ala_controller.py的文件,并將LightStrip\lambda\ala_controller.py文件中的代碼粘貼到代碼編輯器中。

這就是整個(gè)事情的樣子。

?
pYYBAGOSjlOAcrYhAADcRLQBIuM233.png
?

完成后,單擊右上角的橙色保存按鈕。

Alexa 技能

我們現(xiàn)在可以為 Alexa 創(chuàng)建 Light Strip 自定義技能。

轉(zhuǎn)到Amazon Developer Console并根據(jù)需要登錄。您可能需要先注冊(cè)您的帳戶。

轉(zhuǎn)到Alexa > Alexa Skills Kit(入門(mén))

?
pYYBAGOSjlmAe7oHAAB0bV-v_oM111.png
?

單擊右上角的添加新技能按鈕,然后在技能信息選項(xiàng)卡中輸入以下數(shù)據(jù):

  • 技能類型:自定義交互模型
  • 語(yǔ)言:英語(yǔ)(美國(guó))
  • 名稱:燈帶
  • 調(diào)用名稱:燈帶
  • 點(diǎn)擊保存

這創(chuàng)造了技能。請(qǐng)注意技能 ID。

?
pYYBAGOSjlyAGN5pAACJBWk-ZTQ972.png
?

選擇“交互模型”菜單,然后單擊“啟動(dòng)技能生成器”按鈕。

單擊代碼編輯器按鈕并將LightStrip/alexaskill/lightstrip_skill.json文件的內(nèi)容粘貼到文本框中。

?
poYBAGOSjmeAM4QLAAC_pQhgdjE492.png
?

單擊保存模型構(gòu)建模型按鈕。構(gòu)建模型需要幾分鐘時(shí)間,請(qǐng)耐心等待。單擊技能信息按鈕返回技能配置頁(yè)面。

現(xiàn)在點(diǎn)擊配置菜單。

在服務(wù)端點(diǎn)類型中,選擇AWS Lambda ARN ,然后粘貼您在上面記下的 Lambda 函數(shù) ARN。

保留所有默認(rèn)值并單擊下面的“保存”按鈕。

將 Alexa 技能連接到 Lambda 函數(shù)

返回您的 Lambda 函數(shù)。在右側(cè)有一個(gè)預(yù)定義觸發(fā)器列表。選擇Alexa Skills Kit ,它將添加到您的函數(shù)中。

?
pYYBAGOSjmuAY3CwAACsVY0CPMk263.png
?

配置如下:

  • 應(yīng)用程序 ID = 您在上面記下的技能 ID
  • 點(diǎn)擊添加
  • 點(diǎn)擊保存

你完成了

該項(xiàng)目現(xiàn)已完成。嘗試以下語(yǔ)音命令:

  • 打開(kāi)燈帶
  • 打開(kāi)
  • 將亮度設(shè)置為 20%
  • 將亮度設(shè)置為 50%
  • 將顏色設(shè)置為紅色
  • 將顏色設(shè)置為綠松石色
  • 關(guān)掉
  • 運(yùn)行令人興奮的動(dòng)畫(huà)
  • 播放輕松的動(dòng)畫(huà)

LightStrip 技能還允許更高級(jí)的語(yǔ)音交互

  • 我:Alexa,打開(kāi) Light Strip
  • Alexa:歡迎使用 LightStrip - LED 燈條會(huì)發(fā)出藍(lán)光
  • 我:?jiǎn)?dòng)動(dòng)畫(huà)
  • Alexa:你想要輕松還是刺激的動(dòng)畫(huà)?
  • 我:放松
  • Alexa:好的 - LED 燈帶將顯示隨機(jī)動(dòng)畫(huà)
  • 我:下一個(gè)動(dòng)畫(huà)
  • Alexa:好的 - 將顯示另一個(gè)隨機(jī)動(dòng)畫(huà)

為了更好地理解這里的交互模型是技能的完整 VUI 圖。

?
pYYBAGOSjm-Af5CuAACvwGHpHQQ320.png
光帶技能VUI圖
?

增強(qiáng)和改進(jìn)

開(kāi)機(jī)自動(dòng)啟動(dòng) AlaWeb

該項(xiàng)目的一個(gè)小改進(jìn)是在啟動(dòng)時(shí)自動(dòng)啟動(dòng)lig??htstrip.py腳本,這樣您就不需要在每次啟動(dòng) Raspberry PI 或出現(xiàn)問(wèn)題時(shí)手動(dòng)啟動(dòng)它,而您必須重新啟動(dòng)。按照此說(shuō)明進(jìn)行操作。

添加和調(diào)整動(dòng)畫(huà)

Light Strip cskill 已經(jīng)定義了 20 個(gè)動(dòng)畫(huà)變化。但是,ALA 庫(kù)允許您輕松地設(shè)置您自己的動(dòng)畫(huà),選擇動(dòng)畫(huà)預(yù)設(shè)、調(diào)色板和速度。您可以添加自己的動(dòng)畫(huà)或調(diào)整ala_controller.py腳本中的現(xiàn)有動(dòng)畫(huà)。在第 80 行左右,您將看到一個(gè)動(dòng)畫(huà)設(shè)置列表,您可以根據(jù)自己的喜好修改或增強(qiáng)這些設(shè)置。

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開(kāi)發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)