資料介紹
描述
注意(2018 年 2 月 24 日)- 該設(shè)備已更新,包括對(duì)“我的衣服干了嗎?”的烘干機(jī)狀態(tài)響應(yīng)的 Alexa 技能。請(qǐng)參閱下面的 2.0 版說明。
我聯(lián)排別墅的洗衣房在樓下,我的聽力不如以前了。所以,我不能總是聽到烘干機(jī)警報(bào)響起來通知衣服已經(jīng)干了。因?yàn)槲乙膊幌矚g皺巴巴的衣服,所以我需要知道烘干機(jī)停止的時(shí)間,這樣我才能把東西掛起來。
因此,我將 Arduino Yun 與加速度計(jì)配對(duì),并對(duì) Arduino 進(jìn)行編碼以將狀態(tài)發(fā)布到ThingSpeak頻道。我添加了 Alexa Skill 和 Lambda 函數(shù)來啟用“Alexa:我的衣服干了嗎?” 檢查 ThingSpeak 通道干燥器狀態(tài)并通過 Echo 提供語(yǔ)音響應(yīng)的查詢。
最后,Arduino 代碼包括與Cayenne myDevices的集成,以便在烘干機(jī)停止振動(dòng)時(shí)發(fā)送短信提醒。(當(dāng)開發(fā)人員可以使用 Alexa 語(yǔ)音通知時(shí),這將更新為也使用該功能。)該設(shè)備包括一個(gè)按鈕,供用戶啟動(dòng)監(jiān)視器(觸發(fā)“開啟”通知)和一個(gè) LED,以直觀地指示監(jiān)視器何時(shí)可用。主動(dòng)感應(yīng)振動(dòng)。
版本 1.0 - 帶短信提醒的烘干機(jī)監(jiān)控器
(有關(guān) ThingSpeak 和 Alexa Skill 的 2.0 版新增內(nèi)容,請(qǐng)參見下文。)
步驟 1.1:連接加速度計(jì)、按鈕和LED
Memsic 2125 加速度計(jì)有 6 個(gè)引腳:
- X軸輸出;連接到 Yun pin 3
- Y軸輸出;連接到 Yun pin 4
- X軸接地;連接到 Yun GND
- Y軸接地;連接到 Yun GND
- +5V;連接到 Yun 5V
- T Out(用于測(cè)量補(bǔ)償?shù)臏囟茸x數(shù);未用于該項(xiàng)目)
瞬時(shí)按鈕和10K歐姆電阻連接到GND、5V和Yun pin 2,如下圖。
指示燈 LED直接插入 Yun 引腳 13(陽(yáng)極,長(zhǎng)腿)和 GND(陰極)。(注意:還可以添加一個(gè) 220 歐姆電阻器與 LED 陽(yáng)極串聯(lián),以限制 LED 的磨損。)
而已!
步驟 1.2:Cayenne myDevices 帳戶
訪問Cayenne myDevices網(wǎng)站創(chuàng)建一個(gè)免費(fèi)帳戶并獲取 Arduino 代碼的身份驗(yàn)證令牌。
創(chuàng)建帳戶后,選擇Add New... > Device/Widget并選擇 Arduino microcontroller 選項(xiàng)...
...然后選擇 Arduino Yun草圖...
...獲取包含您的身份驗(yàn)證令牌和適用于 Yun 的正確 Cayenne 庫(kù)的代碼片段:
//#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 準(zhǔn)備
啟動(dòng) Arduino IDE(下載 IDE的說明可在 Arduino.cc 軟件部分找到)并選擇Sketch > Include Library > Manage Libraries ...。
搜索“Cayenne”庫(kù)并通過 myDevices 安裝 Cayenne
步驟 1.4:Arduino Yun 代碼
Arduino 代碼有幾個(gè)主要組成部分:
a) Yun需要的Bridge Library
#include
b)第 2 步中的Cayenne 身份驗(yàn)證片段
c) 指定加速度計(jì)引腳和變量
// 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)場(chǎng)進(jìn)行調(diào)整,以解決不同設(shè)備振動(dòng)強(qiáng)度的變化。
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)控加速度計(jì)輸出
當(dāng)監(jiān)控器處于活動(dòng)狀態(tài)時(shí),程序?qū)⒊掷m(xù)檢查加速度計(jì)讀數(shù)以查看是否與之前的讀數(shù)有變化。如果沒有檢測(cè)到變化,監(jiān)測(cè)器就知道振動(dòng)已經(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))。
儀表板小部件將指示烘干機(jī)的狀態(tài):綠色 =“開啟”(感應(yīng)振動(dòng))或無顏色 =“關(guān)閉”。
步驟 1.6:配置 Cayenne 設(shè)備觸發(fā)器
仍然在 Cayenne 儀表板中,選擇Add New... > Trigger。為您的新觸發(fā)器命名并選擇 Yun 設(shè)備。如下圖配置,并指定您的短信手機(jī)號(hào)碼。(或者,您可以指定電子郵件地址,或同時(shí)指定兩者。)
提示:如果您與家里的其他人共用烘干機(jī),您可以設(shè)置一個(gè)額外的觸發(fā)器,在烘干機(jī)啟動(dòng)時(shí)提醒每個(gè)人,讓他們知道烘干機(jī)當(dāng)前正在使用中。
其他資源:
- Arduino.cc有一個(gè)關(guān)于設(shè)置 Yun 和連接到 wifi 的很好的教程。
- Cayenne有關(guān)于為 Arduino 設(shè)備配置平臺(tái)的詳細(xì)文檔。
{注意 (02/24/2018):Cayenne 最近更改了 Arduino API 以需要 MQTT。此項(xiàng)目的代碼需要更新才能使用 CayenneMQTT 庫(kù)。}
2.0 版 - 通過 Alexa Skill + ThingSpeak 添加烘干機(jī)狀態(tài)檢查
步驟 2.1 :設(shè)置ThingSpeak頻道
在 Arduino IDE 中,通過庫(kù)管理器添加 ThingSpeak 庫(kù):
接下來,創(chuàng)建一個(gè)ThingSpeak帳戶(如果您還沒有)并按照創(chuàng)建公共頻道的簡(jiǎn)單說明進(jìn)行操作:
完成頻道設(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.
當(dāng)設(shè)備被激活時(shí),ThingSpeak 通道現(xiàn)在將在可視化區(qū)域顯示烘干機(jī)狀態(tài)信息。
步驟 2.2 :設(shè)置Dryer Alert Alexa Skill
Dryer Alert 需要配置 Alexa Skill 以及 AWS Lambda 函數(shù)的編碼。我們將從 Alexa 技能開始。
如果您還沒有亞馬遜開發(fā)者賬戶,請(qǐng)?jiān)L問Alexa Skills Kit (ASK) 網(wǎng)站并注冊(cè)。該網(wǎng)站上還有一些很棒的教程,可用于了解創(chuàng)建 Alexa Skill 的基礎(chǔ)知識(shí)。對(duì)于烘干機(jī)警報(bào)技能,您需要一些基本意圖:
{
"intents": [
{
"intent": "DryerStatusIntent"
},
{
"intent": "AMAZON.HelpIntent"
},
{
"intent": "AMAZON.CancelIntent"
},
{
"intent": "AMAZON.StopIntent"
}
]
}
您還需要指定一些語(yǔ)句來觸發(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 步:為烘干機(jī)狀態(tài)配置AWS Lambda函數(shù)
技能配置完成后,轉(zhuǎn)到AWS 管理控制臺(tái)(如果需要,創(chuàng)建一個(gè)免費(fèi)帳戶)并繼續(xù)訪問Lambda 管理控制臺(tái)。選擇創(chuàng)建函數(shù):
(如果您是 Lambda 新手,請(qǐng)先查看入門教程。)
在 Designer 的添加觸發(fā)器部分,選擇 Alexa Skills Kit 選項(xiàng)并使用上一步中的應(yīng)用程序 ID 將 Lambda 函數(shù)與技能連接起來。
Lambda 函數(shù) Python 代碼在下面的代碼部分提供。您只需將此代碼剪切/粘貼到您的 lambda_function.py 中。對(duì)于此項(xiàng)目,您唯一需要更改的是指定您自己的公共 ThingSpeak 頻道和您正在監(jiān)控的相應(yīng)字段。
# Change these elements to point to your data
channel = 177778
field = 1
#
您還可以更改語(yǔ)音響應(yīng)以滿足您自己的需要。
Lambda 配置完成后,記下右上角的 ARN 編號(hào)并返回技能配置頁(yè)面并在默認(rèn)端點(diǎn)字段中輸入 ARN。這樣就完成了集成。
如果您沒有 Alexa 設(shè)備,可以使用模擬服務(wù)Echosim.io 試一試。
未來的改進(jìn):
1) 版本 2.1 - 當(dāng) Alexa 宣布開發(fā)人員支持通知時(shí),添加通知讓 Alexa 在烘干機(jī)停止時(shí)發(fā)出警報(bào):Alexa,“你的衣服干了”。
?
- 手勢(shì)識(shí)別功能開源案例
- Nerf Alexa家庭防御炮塔開源構(gòu)建
- Alexa自動(dòng)保姆開源項(xiàng)目
- Mindstorms Math Alexa啟用獎(jiǎng)品卡車開源構(gòu)建
- Arduino的現(xiàn)代RTOS和狀態(tài)機(jī)開源分享
- 適用于Amazon Alexa的游戲Speed Tap開源
- 汽車智能開源分享
- Alexa EV3糖果機(jī)開源分享
- WIFI智能開源電熱水器的原理圖和源代碼免費(fèi)下載 47次下載
- 海為PLC在烘干機(jī)烘干溫度控制上的應(yīng)用 16次下載
- 洗衣機(jī)和烘干機(jī)解決方案指南 10次下載
- 基于現(xiàn)場(chǎng)總線技術(shù)的粘膠長(zhǎng)絲烘干工藝自動(dòng)控制 33次下載
- 單片機(jī)控制在網(wǎng)板烘干線上的應(yīng)用研究
- 系統(tǒng)設(shè)計(jì):狀態(tài)觀測(cè)器的設(shè)計(jì)及其響應(yīng)
- 論全響應(yīng)和零狀態(tài)響應(yīng)、零輸入響應(yīng)
- 什么是有限狀態(tài)機(jī)?如何解決傳統(tǒng)有限狀態(tài)機(jī)「狀態(tài)爆炸」問題? 6309次閱讀
- 狀態(tài)機(jī)該怎么監(jiān)控 439次閱讀
- Spring狀態(tài)機(jī)的實(shí)現(xiàn)原理和使用方法 2171次閱讀
- SaberRD狀態(tài)機(jī)建模工具介紹(一)什么是狀態(tài)機(jī)建模 1778次閱讀
- 什么是動(dòng)態(tài)電路的零狀態(tài)響應(yīng)呢? 2907次閱讀
- 什么是狀態(tài)機(jī)?狀態(tài)機(jī)的種類與實(shí)現(xiàn) 9883次閱讀
- 淺談RC電路的零狀態(tài)響應(yīng) 1w次閱讀
- 推薦十大開源的靜態(tài)網(wǎng)站生成工具,無須掌握HTML和CSS技能 1.2w次閱讀
- 一個(gè)完整的產(chǎn)品項(xiàng)目EMC測(cè)試有哪些步驟 1861次閱讀
- 紫外線傳感器在餐具消毒機(jī)中的應(yīng)用 833次閱讀
- 狀態(tài)機(jī)概述 如何理解狀態(tài)機(jī) 1w次閱讀
- 中國(guó)人工智能開源軟件前生今生到底如何? 5691次閱讀
- 利用狀態(tài)機(jī)的狀態(tài)機(jī)實(shí)現(xiàn)層次結(jié)構(gòu)化設(shè)計(jì) 3337次閱讀
- 使用ModelSim自動(dòng)生成狀態(tài)機(jī)FSM的狀態(tài)轉(zhuǎn)換圖 1.5w次閱讀
- FPGA工程師:如何在FPGA中實(shí)現(xiàn)狀態(tài)機(jī)? 1.3w次閱讀
下載排行
本周
- 1IP6823 支持 qi 認(rèn)證的無線充電發(fā)射控制 SOC
- 1.01 MB | 1次下載 | 免費(fèi)
- 2IP6824? 全集成QI?無線充電發(fā)射控制SOC
- 1.22 MB | 1次下載 | 免費(fèi)
- 3PESD18VY1BBIF保護(hù)二極管規(guī)格書
- 4.56MB | 次下載 | 免費(fèi)
- 474HC4050緩沖器規(guī)格書
- 217.58KB | 次下載 | 免費(fèi)
- 574HC193;74HC7193二進(jìn)制加減計(jì)數(shù)器規(guī)格書
- 327.93KB | 次下載 | 免費(fèi)
- 674HC73-Q100雙JK觸發(fā)器規(guī)格書
- 220.85KB | 次下載 | 免費(fèi)
- 7ASW3410 USB3.1高速數(shù)據(jù)開關(guān)切換規(guī)格書
- 1.39 MB | 次下載 | 免費(fèi)
- 8多款常用電子電路分享
- 7.96 MB | 次下載 | 2 積分
本月
- 1A7159和A7139射頻芯片的資料免費(fèi)下載
- 0.20 MB | 55次下載 | 5 積分
- 2零死角玩轉(zhuǎn)STM32F103—指南者
- 26.78 MB | 41次下載 | 1 積分
- 3PIC12F629/675 數(shù)據(jù)手冊(cè)免費(fèi)下載
- 2.38 MB | 36次下載 | 5 積分
- 4PIC16F716 數(shù)據(jù)手冊(cè)免費(fèi)下載
- 2.35 MB | 18次下載 | 5 積分
- 5dsPIC33EDV64MC205電機(jī)控制開發(fā)板用戶指南
- 5.78MB | 8次下載 | 免費(fèi)
- 6STC15系列常用寄存器匯總免費(fèi)下載
- 1.60 MB | 7次下載 | 5 積分
- 7AN-1267: 使用ADSP-CM408F ADC控制器的電機(jī)控制反饋采樣時(shí)序
- 1.41MB | 5次下載 | 免費(fèi)
- 8模擬電路仿真實(shí)現(xiàn)
- 2.94MB | 4次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935124次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420063次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73813次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評(píng)論
查看更多