電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>烘干機狀態(tài)響應(yīng)的Alexa技能開源分享

烘干機狀態(tài)響應(yīng)的Alexa技能開源分享

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

資料介紹

描述
注意(2018 年 2 月 24 日)- 該設(shè)備已更新,包括對“我的衣服干了嗎?”的烘干機狀態(tài)響應(yīng)的 Alexa 技能。請參閱下面的 2.0 版說明。

我聯(lián)排別墅的洗衣房在樓下,我的聽力不如以前了。所以,我不能總是聽到烘干機警報響起來通知衣服已經(jīng)干了。因為我也不喜歡皺巴巴的衣服,所以我需要知道烘干機停止的時間,這樣我才能把東西掛起來。

因此,我將 Arduino Yun 與加速度計配對,并對 Arduino 進行編碼以將狀態(tài)發(fā)布到ThingSpeak頻道。我添加了 Alexa Skill 和 Lambda 函數(shù)來啟用“Alexa:我的衣服干了嗎?” 檢查 ThingSpeak 通道干燥器狀態(tài)并通過 Echo 提供語音響應(yīng)的查詢。

最后,Arduino 代碼包括與Cayenne myDevices的集成,以便在烘干機停止振動時發(fā)送短信提醒。(當開發(fā)人員可以使用 Alexa 語音通知時,這將更新為也使用該功能。)該設(shè)備包括一個按鈕,供用戶啟動監(jiān)視器(觸發(fā)“開啟”通知)和一個 LED,以直觀地指示監(jiān)視器何時可用。主動感應(yīng)振動。

?
pYYBAGOSj_yAdL3GAAOynXL3pKw563.jpg
烘干機狀態(tài)監(jiān)視器
?

版本 1.0 - 帶短信提醒的烘干機監(jiān)控器

(有關(guān) ThingSpeak 和 Alexa Skill 的 2.0 版新增內(nèi)容,請參見下文。)

步驟 1.1:連接加速度按鈕LED

Memsic 2125 加速度計有 6 個引腳:

  • X軸輸出;連接到 Yun pin 3
  • Y軸輸出;連接到 Yun pin 4
  • X軸接地;連接到 Yun GND
  • Y軸接地;連接到 Yun GND
  • +5V;連接到 Yun 5V
  • T Out(用于測量補償?shù)臏囟茸x數(shù);未用于該項目)
?
poYBAGOSkAKAC4HrAAH3PnsJzEI873.jpg
烘干機監(jiān)控接線
?

瞬時按鈕10K歐姆電阻連接到GND、5V和Yun pin 2,如下圖。

指示燈 LED直接插入 Yun 引腳 13(陽極,長腿)和 GND(陰極)(注意:還可以添加一個 220 歐姆電阻器與 LED 陽極串聯(lián),以限制 LED 的磨損。)

通過 USB 為 Yun 供電。

而已!

步驟 1.2:Cayenne myDevices 帳戶

訪問Cayenne myDevices網(wǎng)站創(chuàng)建一個免費帳戶并獲取 Arduino 代碼的身份驗證令牌。

創(chuàng)建帳戶后,選擇Add New... > Device/Widget并選擇 Arduino microcontroller 選項...

?
pYYBAGOSkAWAa8GoAABp1n5ZBOY753.jpg
?

...然后選擇 Arduino Yun草圖...

?
pYYBAGOSkAmAaRh9AABQjeIFczg875.jpg
?

...獲取包含您的身份驗證令牌和適用于 Yun 的正確 Cayenne 庫的代碼片段:

//#define CAYENNE_DEBUG       // Un-comment to show debug messages
#define CAYENNE_PRINT Serial  // Comment this out to disable prints and save space
#include 
// Cayenne authentication token. This should be obtained from the Cayenne Dashboard.
char token[] = "";
void setup()
{
	Serial.begin(9600);
	Cayenne.begin(token);
}
void loop()
{
	Cayenne.run();
}

保存此片段以稍后剪切/粘貼到 Arduino 草圖中。

步驟 1.3:Arduino IDE 準備

啟動 Arduino IDE(下載 IDE的說明可在 Arduino.cc 軟件部分找到)并選擇Sketch > Include Library > Manage Libraries ...。

?
poYBAGOSkA6AcgIRAACU6NazyuM088.jpg
?

搜索“Cayenne”庫并通過 myDevices 安裝 Cayenne

?
poYBAGOSkBOAHE9CAAEMrTH2aDw824.jpg
?

步驟 1.4:Arduino Yun 代碼

Arduino 代碼有幾個主要組成部分:

a) Yun需要的Bridge Library

#include 

b)第 2 步中的Cayenne 身份驗證片段

c) 指定加速度計引腳和變量

// Adjust these to meet your needs
const int buttonPin = 2;            // pin number of the pushbutton
const int xPin = 3;                 // pin number of the X output of the accelerometer
const int yPin = 4;                 // pin number of the Y output of the accelerometer
const int ledPin = 13;              // pin number of the LED
const int waitTime = .1;             // wait time in minutes
const float sensitivityX = 0.002;   // sensitivity of X axis in percent change
const float sensitivityY = 0.002;   // sensitivity of Y axis in percent change
// Variables:
boolean lastButtonState = LOW;
boolean currentButtonState = LOW;
boolean ledState = LOW;
int counter = 0;
float lastPulseX = 0;
float lastPulseY = 0;

waitTime、sensitivityX 和 sensitivityY參數(shù)可以在現(xiàn)場進行調(diào)整,以解決不同設(shè)備振動強度的變化。

d)初始化 Yun 和 Cayenne

void setup() {
 // Initialize serial communications:
 Serial.begin(9600);
 // Initiate Cayenne communications
 Cayenne.begin(token);
// Initialize the pins:
 pinMode(xPin, INPUT);
 pinMode(yPin, INPUT);
 pinMode(buttonPin, INPUT);
 pinMode(ledPin, OUTPUT);
 Bridge.begin();
}

e)監(jiān)控加速度計輸出

當監(jiān)控器處于活動狀態(tài)時,程序?qū)⒊掷m(xù)檢查加速度計讀數(shù)以查看是否與之前的讀數(shù)有變化。如果沒有檢測到變化,監(jiān)測器就知道振動已經(jīng)停止。

  // Find the change in the pulse:
  changeX = lastPulseX - pulseX;
  changeY = lastPulseY - pulseY;
  // Calculate the percentage change using absolute values:
  percentX = abs(changeX / lastPulseX);
  percentY = abs(changeY / lastPulseY);
  // If the percentage change is less than the sensitivity (i.e. no movement detected)
  if (percentX < sensitivityX && percentY < sensitivityY)

步驟 1.5:配置 Cayenne 設(shè)備儀表板小部件

返回 Cayenne 儀表板,選擇Add New... > Device/Widget ,然后選擇Sensors > Generic > Digital Input 。為您的小部件命名并從上面的第 2 步中選擇 Yun 設(shè)備。為連接選擇“數(shù)字”,為小部件選擇引腳 D13 和“2 狀態(tài)”(開/關(guān))。

?
pYYBAGOSkBmAPOsaAAClskOXTMA868.jpg
?

儀表板小部件將指示烘干機的狀態(tài):綠色 =“開啟”(感應(yīng)振動)或無顏色 =“關(guān)閉”。

?
pYYBAGOSkB6AHDFaAAAYCPi9K9U211.jpg
烘干機處于“開啟”狀態(tài)。
?

步驟 1.6:配置 Cayenne 設(shè)備觸發(fā)器

仍然在 Cayenne 儀表板中,選擇Add New... > Trigger。為您的新觸發(fā)器命名并選擇 Yun 設(shè)備。如下圖配置,并指定您的短信手機號碼。(或者,您可以指定電子郵件地址,或同時指定兩者。)

?
poYBAGOSkCSAEnsAAACOqtPBmbI666.jpg
?

提示:如果您與家里的其他人共用烘干機,您可以設(shè)置一個額外的觸發(fā)器,在烘干機啟動時提醒每個人,讓他們知道烘干機當前正在使用中。

其他資源

  • Arduino.cc有一個關(guān)于設(shè)置 Yun 和連接到 wifi 的很好的教程。
  • Cayenne有關(guān)于為 Arduino 設(shè)備配置平臺的詳細文檔。

{注意 (02/24/2018):Cayenne 最近更改了 Arduino API 以需要 MQTT。此項目的代碼需要更新才能使用 CayenneMQTT 庫。}

2.0 版 - 通過 Alexa Skill + ThingSpeak 添加烘干機狀態(tài)檢查

步驟 2.1 設(shè)置ThingSpeak頻道

在 Arduino IDE 中,通過庫管理器添加 ThingSpeak 庫:

?
poYBAGOSkCeAWS0IAACi2Z64YaM241.jpg
Arduino IDE 的 ThingSpeak 庫
?

接下來,創(chuàng)建一個ThingSpeak帳戶(如果您還沒有)并按照創(chuàng)建公共頻道的簡單說明進行操作:

?
pYYBAGOSkC-AEdzVAAC5EuDM5ic345.png
ThingSpeak 上的新頻道設(shè)置
?

完成頻道設(shè)置后,記下您的頻道 ID寫入 API 密鑰。在您的 Arduino 代碼中,添加以下行并將占位符替換為您的頻道 ID 和寫入 API 密鑰。

// ThingSpeak - Version: Latest 
#include 

// ThingSpeak example
#include "YunClient.h"
YunClient client;

unsigned long myChannelNumber = #######;
const char * myWriteAPIKey = "XXXXXXXXXXXXXXXXXXX";

在初始設(shè)置部分,添加以下內(nèi)容:

void setup() {
 // ThingSpeak
 ThingSpeak.begin(client);
}

并在主循環(huán)中添加:

     ThingSpeak.setField(1, ledState);
     ThingSpeak.setField(2, percentX);
     ThingSpeak.setField(3, percentY);

     // Write the fields all at once.
     ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
     delay(20000); // ThingSpeak will only accept updates every 15 seconds.  

當設(shè)備被激活時,ThingSpeak 通道現(xiàn)在將在可視化區(qū)域顯示烘干機狀態(tài)信息。

?
pYYBAGOSkDSAKY-HAACinnZ8C0k255.jpg
ThingSpeak 烘干機狀態(tài)和振動數(shù)據(jù)可視化
?

步驟 2.2 設(shè)置Dryer Alert Alexa Skill

Dryer Alert 需要配置 Alexa Skill 以及 AWS Lambda 函數(shù)的編碼。我們將從 Alexa 技能開始。

?
pYYBAGOSkDaAO0hzAACCre7ihbI239.png
?

如果您還沒有亞馬遜開發(fā)者賬戶,請訪問Alexa Skills Kit (ASK) 網(wǎng)站并注冊。該網(wǎng)站上還有一些很棒的教程,可用于了解創(chuàng)建 Alexa Skill 的基礎(chǔ)知識。對于烘干機警報技能,您需要一些基本意圖:

{
 "intents": [
   {
     "intent": "DryerStatusIntent"
   },
   {
     "intent": "AMAZON.HelpIntent"
   },
   {
     "intent": "AMAZON.CancelIntent"
   }, 
   {
     "intent": "AMAZON.StopIntent"
   }
 ]
}

您還需要指定一些語句來觸發(fā) AWS Lambda 服務(wù):

DryerStatusIntent are my clothes dry
DryerStatusIntent check the dryer status
DryerStatusIntent what's the dryer status
DryerStatusIntent what is the dryer status
DryerStatusIntent is the dryer on
DryerStatusIntent is the dryer busy

按照ASK教程完成技能配置。記下應(yīng)用程序 ID;您將需要它來設(shè)置 AWS Lambda 函數(shù)。

第 3 步:烘干狀態(tài)配置AWS Lambda函數(shù)

技能配置完成后,轉(zhuǎn)到AWS 管理控制臺(如果需要,創(chuàng)建一個免費帳戶)并繼續(xù)訪問Lambda 管理控制臺選擇創(chuàng)建函數(shù):

?
pYYBAGOSkD2AYDOdAACLT9Umb_U665.jpg
Lambda 管理控制臺
?

(如果您是 Lambda 新手,請先查看入門教程。)

在 Designer 的添加觸發(fā)器部分,選擇 Alexa Skills Kit 選項并使用上一步中的應(yīng)用程序 ID 將 Lambda 函數(shù)與技能連接起來。

Lambda 函數(shù) Python 代碼在下面的代碼部分提供。您只需將此代碼剪切/粘貼到您的 lambda_function.py 中。對于此項目,您唯一需要更改的是指定您自己的公共 ThingSpeak 頻道和您正在監(jiān)控的相應(yīng)字段。

# Change these elements to point to your data
channel = 177778
field = 1
#

您還可以更改語音響應(yīng)以滿足您自己的需要。

Lambda 配置完成后,記下右上角的 ARN 編號并返回技能配置頁面并在默認端點字段中輸入 ARN。這樣就完成了集成。

如果您沒有 Alexa 設(shè)備,可以使用模擬服務(wù)Echosim.io 試一試

未來的改進:

1) 版本 2.1 - 當 Alexa 宣布開發(fā)人員支持通知時,添加通知讓 Alexa 在烘干機停止時發(fā)出警報:Alexa,“你的衣服干了”。

?
?
來自亞馬遜的 Echo Dot
?

?


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

評論

查看更多

下載排行

本周

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

本月

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

總榜

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