chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>從Alexa控制Raspberry Pi(Linux設(shè)備)

從Alexa控制Raspberry Pi(Linux設(shè)備)

2022-12-09 | zip | 0.41 MB | 次下載 | 免費

資料介紹

描述

當(dāng)向 Alexa 發(fā)出語音命令時,在 Raspberry Pi 上運行命令/腳本。

?

我希望能夠通過向我家里的 Alexa Dots 發(fā)出語音命令來在我的 Raspberry Pi 上運行命令。此外,我想通過 Alexa 安排任務(wù),而不是必須將計劃任務(wù)單獨添加到我家里的幾個 Pis。

為此,我們需要設(shè)置:

  • 同時登錄 AWS 和 Amazon 開發(fā)者站點以確認(rèn)您可以訪問 AWS 和 Amazon 開發(fā)者站點
  • AWS IAM:創(chuàng)建 RPi 腳本將用于登錄 AWS 的用戶和組
  • AWS SQS(消息隊列)。
  • AWS LAMBDA 函數(shù)
  • 亞馬遜 Alexa 技能

Alexa 技能指向 Lambda 函數(shù),根據(jù)發(fā)出的語音命令取決于將什么消息添加到 SQS 隊列,在 Rapsberry Pi 上運行腳本來檢查 SQS 隊列并根據(jù)消息啟動作業(yè)或腳本樹莓派。

AWS 和亞馬遜開發(fā)賬戶

如果您還沒有 AWS 帳戶,則需要設(shè)置一個,沒有理由認(rèn)為該項目不屬于 AWS“免費套餐”,該套餐允許每月向 Lambda 發(fā)出 100 萬次免費請求,向 Lambda 發(fā)出 100 萬次免費請求。 SQS 服務(wù)。為了超越免費套餐,您需要每 3 秒發(fā)出超過 1 個請求(基于每月 30 天),設(shè)置后我將腳本設(shè)置為每 15 秒運行一次,但當(dāng)然如果我有 10 個 RPi 在做那么需要考慮的一個請求。

AWS - 創(chuàng)建用戶和組

登錄 AWS 并轉(zhuǎn)到 IAM 管理控制臺并添加用戶:

https://console.aws.amazon.com/iam/home?#/users

?
pYYBAGOSnc-AHZytAABIfL9Xris835.png
?
?
pYYBAGOSndSAX_ogAADCI_SN6aQ828.png
?

由于權(quán)限是在組級別設(shè)置的,因此我們需要為該用戶創(chuàng)建一個新組,如果我們將來創(chuàng)建更多用戶,他們也可以使用同一組。該用戶將從 Raspberry Pi 登錄,因此需要能夠查看和更新?? AWS SQS 中的隊列。

?
poYBAGOSndeAL8f9AABqSi_2a1Y700.png
?

為此,我們可以使用亞馬遜預(yù)定義策略(預(yù)設(shè)權(quán)限),搜索“sqs”并選擇策略“AWSLambdaSQSQueueExecutionRole”,然后單擊“創(chuàng)建組”(這將允許用戶讀取和寫入 SQS 隊列) .

?
pYYBAGOSnduAfHtlAAE8V3xliMs913.png
?

這會將您帶回“將用戶添加到組”屏幕,并且將選擇新組以將新用戶添加到其中,單擊“下一步:標(biāo)簽”按鈕繼續(xù)。

?
pYYBAGOSnd6ASMs4AAEFHCbYF7k662.png
?

在“添加標(biāo)簽”屏幕上,只需單擊“下一步:審閱”按鈕繼續(xù)。

在下一個屏幕上,查看新用戶的詳細(xì)信息并單擊“創(chuàng)建用戶”

在接下來的屏幕上,確保您“下載.csv”,因為這將是您獲取此用戶憑據(jù)的唯一機(jī)會。

?
pYYBAGOSneSAWSlWAACqlpCa3XI156.png
?

CSV 中的憑據(jù)將添加到 RPi 上的腳本中,以便它可以登錄以訪問 SQS 隊列。

注意:自 2019 年 6 月起,為了讓 Alexa 技能運行 Lambda 函數(shù),Lamda 代碼必須托管在以下區(qū)域之一:

  • 亞太地區(qū)(東京)
  • 歐盟(愛爾蘭)
  • 美國東部(弗吉尼亞北部)
  • 美國西部(俄勒岡)

https://developer.amazon.com/docs/custom-skills/host-a-custom-skill-as-an-aws-lambda-function.html

由于我住在英格蘭 (UK),我將在愛爾蘭地區(qū)通過 SQS 隊列和 Lambda 函數(shù)托管。

?
poYBAGOSneiALwaMAAAJ8oP6dw0845.png
?

創(chuàng)建 AWS SQS 隊列

找到 SQS 頁面并創(chuàng)建一個新的簡單隊列服務(wù):

?
poYBAGOSneuAA5_GAAAuTTjRR0c152.png
?

輸入新名稱并使用“快速創(chuàng)建隊列”選項創(chuàng)建“標(biāo)準(zhǔn)隊列”:

?
pYYBAGOSne2AW-hiAABnk6S4tBY813.png
?

單擊新隊列并記下我們稍后需要的 ARN 和 URL:

?
poYBAGOSne-ANc30AACCMWrs2lE136.png
?

創(chuàng)建 Lambda 函數(shù)

在 AWS 中,在“服務(wù)”中搜索“Lambda”并創(chuàng)建一個新函數(shù):

?
pYYBAGOSnfSAZibLAAHt6ibgZbU545.png
?

選擇“從頭開始創(chuàng)作”,添加名稱并將“運行時”更改為“Python 2.7”。對于執(zhí)行角色,選擇“從 AWS 策略模板創(chuàng)建新角色”,選擇“Amazon SQS 輪詢器權(quán)限”策略,為角色命名并創(chuàng)建函數(shù)。

對于功能的配置,當(dāng)您在“設(shè)計器”面板中單擊某些內(nèi)容時,配置設(shè)置將顯示在屏幕的下半部分。

從左側(cè)添加“Alexa Skills Kit”觸發(fā)器,需要配置才能保存此功能。滾動到底部,因為我們還沒有 Alexa 技能 ID(我們還沒有創(chuàng)建技能)我們暫時“禁用”它,稍后再回來。

?
poYBAGOSnfmAT-hjAAEdM_qoBq8449.png
?

選擇 Lambda 函數(shù)圖標(biāo)(對我來說是“RPi-LED-Function”),在底部我們需要提供自定義 Python 代碼,此代碼將向 Alexa 技能提供反饋并更新 SQS 隊列。

我在下面的代碼中添加了一些關(guān)于需要更改的注釋。

import boto3
  
# Below you need to add in your access key, access secret, rgion and sqs queue url
  
access_key = "This can be found in the downloaded .csv file"
access_secret = "This can be found in the downloaded .csv file"
region ="eu-west-1"
queue_url = "This can be found when looking at the SQS queue, https://..."
  
# you should not need to change the following unless you know what your doing.
  
def build_speechlet_response(title, output, reprompt_text, should_end_session):
   return {
       'outputSpeech': {
           'type': 'PlainText',
           'text': output
       },
       'card': {
           'type': 'Simple',
           'title': "SessionSpeechlet - " + title,
           'content': "SessionSpeechlet - " + output
       },
       'reprompt': {
           'outputSpeech': {
               'type': 'PlainText',
               'text': reprompt_text
           }
       },
       'shouldEndSession': should_end_session
   }
def build_response(session_attributes, speechlet_response):
   return {
       'version': '1.0',
       'sessionAttributes': session_attributes,
       'response': speechlet_response
   }
def post_message(client, message_body, url):
   response = client.send_message(QueueUrl = url, MessageBody= message_body)
def lambda_handler(event, context):
   client = boto3.client('sqs', aws_access_key_id = access_key, aws_secret_access_key = access_secret, region_name = region)
   intent_name = event['request']['intent']['name']
  
# The following needs to be customised
# The intent names shown below are linked with intents created in the custom Alexa Skill.
# The 'post_message' relates to the SQS queue 
# The 'message' line is the message/response that Alexa will speak back to you  
  
   if intent_name == "LightsOn":
       post_message(client, 'on', queue_url)
       message = "Lounge Lights will now turn on"
   elif intent_name == "LightsOff":
       post_message(client, 'off', queue_url)
       message = "Lounge Lights will now turn off"
   elif intent_name == "LightsRed":
       post_message(client, 'red', queue_url)
       message = "Lounge Lights will change to red"
   elif intent_name == "LightsGreen":
       post_message(client, 'green', queue_url)
       message = "Lounge Lights will now change to green"
   elif intent_name == "LightsBlue":
       post_message(client, 'blue', queue_url)
       message = "Lounge Lights will now change to blue"
   elif intent_name == "LightsTest":
       post_message(client, 'test', queue_url)
       message = "Lounge Lights will now run a test sequence"
   else:
       message = "Sorry but I do not understand that request"
  
   speechlet = build_speechlet_response("Mirror Status", message, "", "true")
   return build_response({}, speechlet)
0

創(chuàng)建自定義 Alexa 技能

在這里登錄并創(chuàng)建一項新技能,選擇“自定義”技能和“從頭開始:”

https://developer.amazon.com/en-US/alexa/alexa-skills-kit

這里需要配置如下:

?
pYYBAGOSnfyAMP2EAAEhtNAyTP8863.png
?

Invocation Name - 這是將用于觸發(fā)技能的名稱,我稱我的為“l(fā)ounge lights”。

意圖、示例和槽- 對于這個示例,我保持簡單并為每個操作創(chuàng)建了一個“意圖”,如下所示,您還應(yīng)該注意到這些意圖反映了我在 Lambda 中添加的代碼。

?
poYBAGOSngCAIjNxAABH2BgFIJA975.png
?

這是我的一個意圖的例子,你當(dāng)然可以根據(jù)你的要求添加任何你想要的:

?
pYYBAGOSngKAeioOAABTpt5PL-I065.png
?

所以,為了讓這句話起作用,我會說“Alexa,讓 Lounge Lights 關(guān)掉?!?/font>

構(gòu)建模型- 完成上述操作后,保存并構(gòu)建模型。

端點- 添加一個端點,這是我們已經(jīng)創(chuàng)建的 Lambda 函數(shù)的 ARN。如果您在保存此端點時遇到任何錯誤,請確保已檢查以下內(nèi)容:

  • Lambda 代碼位于:亞太地區(qū)(東京)、歐洲(愛爾蘭)、美國東部(弗吉尼亞北部)或美國西部(俄勒岡)
  • “Alexa Skills Kit”觸發(fā)器已添加到 Lamdba 函數(shù)中

測試 Alexa 技能

在 Alexa 技能界面中,單擊“測試”選項卡,您可以在此處進(jìn)行測試以確認(rèn) 1) 您的意圖是正確的,以及 2) lambda 函數(shù)已正確配置。測試完成后,您可以繼續(xù)配置 Raspberry Pi 以從 SQS 隊列中讀取數(shù)據(jù)。

配置樹莓派(linux設(shè)備)

根據(jù)您的最終目標(biāo)取決于您需要在 RPi 上做什么,我的第一個測試是打開/關(guān)閉我的 Magic Mirror 顯示器,并且能夠重新啟動 RPi。

第二個是與這個項目 writeup 內(nèi)聯(lián)的,是能夠打開 ws2811/ws2812 LED 燈帶連接到我的 RPi。

需要運行以下代碼,這將登錄到 AWS 并查看 SQS 隊列中的條目,并根據(jù)存儲的消息取決于運行的本地 Python 腳本。要運行 LED,您需要將腳本作為“sudo”運行。

import boto3
import os
import time
  
access_key = "Access key from the csv file"
access_secret = "Access seret from the csv file"
region = "the region where the SQS queue is - found in the queue url"
queue_url = "SQS Queue URL, https://sqs....."
  
def pop_message(client, url):
response = client.receive_message(QueueUrl = url, MaxNumberOfMessages = 10)
  
#last message posted becomes messages
message = response['Messages'][0]['Body']
receipt = response['Messages'][0]['ReceiptHandle']
client.delete_message(QueueUrl = url, ReceiptHandle = receipt)
return message
  
client = boto3.client('sqs', aws_access_key_id = access_key, aws_secret_access_key = access_secret, region_name = nameOfTheRegion
  
waittime = 20
client.set_queue_attributes(QueueUrl = queue_url, Attributes = {'ReceiveMessageWaitTimeSeconds': str(waittime)})
  
time_start = time.time()
while (time.time() - time_start < 30):
print("Checking...")
try:
message = pop_message(client, queue_url)
print(message)
if message == "on":
os.system("python /home/pi/LEDScripts/LED_on.py")
elif message == "off":
os.system("python /home/pi/LEDScripts/LED_off.py")
elif message == "blue":
os.system("python /home/pi/LEDScripts/LED_blue.py")
elif message == "red":
os.system("python /home/pi/LEDScripts/LED_red.py")
elif message == "green":
os.system("python /home/pi/LEDScripts/LED_green.py")
elif message == "test":
os.system("python /home/pi/LEDScripts/LED_test.py")
except:
pass

您會在上面看到使用了包“boto3”(AWS SDK),您可以通過運行以下命令來安裝它:

python -m pip install boto3

這是運行的 Python 腳本之一的示例:

from neopixel import *
  
# LED strip configuration:
LED_COUNT = 12  # Number of LED pixels.
LED_PIN = 19  # GPIO pin connected to the pixels (18 uses PWM!).
LED_FREQ_HZ = 800000  # LED signal frequency in hertz (usually 800khz)
LED_DMA = 10  # DMA channel to use for generating signal (try 10)
LED_BRIGHTNESS = 30   # Set to 0 for darkest and 255 for brightest
LED_INVERT  = False   # True to invert the signal
LED_CHANNEL = 1   # set to '1' for GPIOs 13, 19, 41, 45 or 53
  
strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL)
strip.begin()
  
for i in range(strip.numPixels()):
strip.setPixelColor(i, Color(0, 255, 0))
  
strip.show()

為 LED 燈條設(shè)置 Pi

如果在可以運行不同的庫之前你還沒有運行它們,但是我選擇使用這個:https ://github.com/jgarff/rpi_ws281x.git

您需要運行以下命令:

sudo apt-get install build-essential python-dev git scons swig
git clone https://github.com/jgarff/rpi_ws281x.git

然后從 GitHub 下載包中的“python”目錄:

sudo python setup.py build
sudo python setup.py install

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

評論

查看更多

下載排行

本周

  1. 1DD3118電路圖紙資料
  2. 0.08 MB   |  1次下載  |  免費
  3. 2AD庫封裝庫安裝教程
  4. 0.49 MB   |  1次下載  |  免費
  5. 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
  6. 1.12 MB   |  1次下載  |  免費
  7. 4網(wǎng)絡(luò)安全從業(yè)者入門指南
  8. 2.91 MB   |  1次下載  |  免費
  9. 5DS-CS3A P00-CN-V3
  10. 618.05 KB  |  1次下載  |  免費
  11. 6海川SM5701規(guī)格書
  12. 1.48 MB  |  次下載  |  免費
  13. 7H20PR5電磁爐IGBT功率管規(guī)格書
  14. 1.68 MB   |  次下載  |  1 積分
  15. 8IP防護(hù)等級說明
  16. 0.08 MB   |  次下載  |  免費

本月

  1. 1貼片三極管上的印字與真實名稱的對照表詳細(xì)說明
  2. 0.50 MB   |  103次下載  |  1 積分
  3. 2涂鴉各WiFi模塊原理圖加PCB封裝
  4. 11.75 MB   |  89次下載  |  1 積分
  5. 3錦銳科技CA51F2 SDK開發(fā)包
  6. 24.06 MB   |  43次下載  |  1 積分
  7. 4錦銳CA51F005 SDK開發(fā)包
  8. 19.47 MB   |  19次下載  |  1 積分
  9. 5PCB的EMC設(shè)計指南
  10. 2.47 MB   |  16次下載  |  1 積分
  11. 6HC05藍(lán)牙原理圖加PCB
  12. 15.76 MB   |  13次下載  |  1 積分
  13. 7802.11_Wireless_Networks
  14. 4.17 MB   |  12次下載  |  免費
  15. 8蘋果iphone 11電路原理圖
  16. 4.98 MB   |  6次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191390次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81588次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65989次下載  |  10 積分