資料介紹
描述
注意(2018 年 2 月 24 日)- 該設備已更新,包括對“我的衣服干了嗎?”的烘干機狀態響應的 Alexa 技能。請參閱下面的 2.0 版說明。
我聯排別墅的洗衣房在樓下,我的聽力不如以前了。所以,我不能總是聽到烘干機警報響起來通知衣服已經干了。因為我也不喜歡皺巴巴的衣服,所以我需要知道烘干機停止的時間,這樣我才能把東西掛起來。
因此,我將 Arduino Yun 與加速度計配對,并對 Arduino 進行編碼以將狀態發布到ThingSpeak頻道。我添加了 Alexa Skill 和 Lambda 函數來啟用“Alexa:我的衣服干了嗎?” 檢查 ThingSpeak 通道干燥器狀態并通過 Echo 提供語音響應的查詢。
最后,Arduino 代碼包括與Cayenne myDevices的集成,以便在烘干機停止振動時發送短信提醒。(當開發人員可以使用 Alexa 語音通知時,這將更新為也使用該功能。)該設備包括一個按鈕,供用戶啟動監視器(觸發“開啟”通知)和一個 LED,以直觀地指示監視器何時可用。主動感應振動。
版本 1.0 - 帶短信提醒的烘干機監控器
(有關 ThingSpeak 和 Alexa Skill 的 2.0 版新增內容,請參見下文。)
步驟 1.1:連接加速度計、按鈕和LED
- X軸輸出;連接到 Yun pin 3
- Y軸輸出;連接到 Yun pin 4
- X軸接地;連接到 Yun GND
- Y軸接地;連接到 Yun GND
- +5V;連接到 Yun 5V
- T Out(用于測量補償的溫度讀數;未用于該項目)
瞬時按鈕和10K歐姆電阻連接到GND、5V和Yun pin 2,如下圖。
指示燈 LED直接插入 Yun 引腳 13(陽極,長腿)和 GND(陰極)。(注意:還可以添加一個 220 歐姆電阻器與 LED 陽極串聯,以限制 LED 的磨損。)
而已!
步驟 1.2:Cayenne myDevices 帳戶
訪問Cayenne myDevices網站創建一個免費帳戶并獲取 Arduino 代碼的身份驗證令牌。
創建帳戶后,選擇Add New... > Device/Widget并選擇 Arduino microcontroller 選項...
...然后選擇 Arduino Yun草圖...
...獲取包含您的身份驗證令牌和適用于 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 ...。
搜索“Cayenne”庫并通過 myDevices 安裝 Cayenne
步驟 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的參數可以在現場進行調整,以解決不同設備振動強度的變化。
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)監控加速度計輸出
當監控器處于活動狀態時,程序將持續檢查加速度計讀數以查看是否與之前的讀數有變化。如果沒有檢測到變化,監測器就知道振動已經停止。
// 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 設備儀表板小部件
返回 Cayenne 儀表板,選擇Add New... > Device/Widget ,然后選擇Sensors > Generic > Digital Input 。為您的小部件命名并從上面的第 2 步中選擇 Yun 設備。為連接選擇“數字”,為小部件選擇引腳 D13 和“2 狀態”(開/關)。
儀表板小部件將指示烘干機的狀態:綠色 =“開啟”(感應振動)或無顏色 =“關閉”。
步驟 1.6:配置 Cayenne 設備觸發器
仍然在 Cayenne 儀表板中,選擇Add New... > Trigger。為您的新觸發器命名并選擇 Yun 設備。如下圖配置,并指定您的短信手機號碼。(或者,您可以指定電子郵件地址,或同時指定兩者。)
提示:如果您與家里的其他人共用烘干機,您可以設置一個額外的觸發器,在烘干機啟動時提醒每個人,讓他們知道烘干機當前正在使用中。
其他資源:
- Arduino.cc有一個關于設置 Yun 和連接到 wifi 的很好的教程。
- Cayenne有關于為 Arduino 設備配置平臺的詳細文檔。
{注意 (02/24/2018):Cayenne 最近更改了 Arduino API 以需要 MQTT。此項目的代碼需要更新才能使用 CayenneMQTT 庫。}
2.0 版 - 通過 Alexa Skill + ThingSpeak 添加烘干機狀態檢查
步驟 2.1 :設置ThingSpeak頻道
在 Arduino IDE 中,通過庫管理器添加 ThingSpeak 庫:
接下來,創建一個ThingSpeak帳戶(如果您還沒有)并按照創建公共頻道的簡單說明進行操作:
完成頻道設置后,記下您的頻道 ID和寫入 API 密鑰。在您的 Arduino 代碼中,添加以下行并將占位符替換為您的頻道 ID 和寫入 API 密鑰。
// ThingSpeak - Version: Latest
#include
// ThingSpeak example
#include "YunClient.h"
YunClient client;
unsigned long myChannelNumber = #######;
const char * myWriteAPIKey = "XXXXXXXXXXXXXXXXXXX";
在初始設置部分,添加以下內容:
void setup() {
// ThingSpeak
ThingSpeak.begin(client);
}
并在主循環中添加:
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.
當設備被激活時,ThingSpeak 通道現在將在可視化區域顯示烘干機狀態信息。
步驟 2.2 :設置Dryer Alert Alexa Skill
Dryer Alert 需要配置 Alexa Skill 以及 AWS Lambda 函數的編碼。我們將從 Alexa 技能開始。
如果您還沒有亞馬遜開發者賬戶,請訪問Alexa Skills Kit (ASK) 網站并注冊。該網站上還有一些很棒的教程,可用于了解創建 Alexa Skill 的基礎知識。對于烘干機警報技能,您需要一些基本意圖:
{
"intents": [
{
"intent": "DryerStatusIntent"
},
{
"intent": "AMAZON.HelpIntent"
},
{
"intent": "AMAZON.CancelIntent"
},
{
"intent": "AMAZON.StopIntent"
}
]
}
您還需要指定一些語句來觸發 AWS Lambda 服務:
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教程完成技能配置。記下應用程序 ID;您將需要它來設置 AWS Lambda 函數。
第 3 步:為烘干機狀態配置AWS Lambda函數
技能配置完成后,轉到AWS 管理控制臺(如果需要,創建一個免費帳戶)并繼續訪問Lambda 管理控制臺。選擇創建函數:
(如果您是 Lambda 新手,請先查看入門教程。)
在 Designer 的添加觸發器部分,選擇 Alexa Skills Kit 選項并使用上一步中的應用程序 ID 將 Lambda 函數與技能連接起來。
Lambda 函數 Python 代碼在下面的代碼部分提供。您只需將此代碼剪切/粘貼到您的 lambda_function.py 中。對于此項目,您唯一需要更改的是指定您自己的公共 ThingSpeak 頻道和您正在監控的相應字段。
# Change these elements to point to your data
channel = 177778
field = 1
#
您還可以更改語音響應以滿足您自己的需要。
Lambda 配置完成后,記下右上角的 ARN 編號并返回技能配置頁面并在默認端點字段中輸入 ARN。這樣就完成了集成。
如果您沒有 Alexa 設備,可以使用模擬服務Echosim.io 試一試。
未來的改進:
1) 版本 2.1 - 當 Alexa 宣布開發人員支持通知時,添加通知讓 Alexa 在烘干機停止時發出警報:Alexa,“你的衣服干了”。
?
- 手勢識別功能開源案例
- Nerf Alexa家庭防御炮塔開源構建
- Alexa自動保姆開源項目
- Mindstorms Math Alexa啟用獎品卡車開源構建
- Arduino的現代RTOS和狀態機開源分享
- 適用于Amazon Alexa的游戲Speed Tap開源
- 汽車智能開源分享
- Alexa EV3糖果機開源分享
- WIFI智能開源電熱水器的原理圖和源代碼免費下載 47次下載
- 海為PLC在烘干機烘干溫度控制上的應用 16次下載
- 洗衣機和烘干機解決方案指南 10次下載
- 基于現場總線技術的粘膠長絲烘干工藝自動控制 33次下載
- 單片機控制在網板烘干線上的應用研究
- 系統設計:狀態觀測器的設計及其響應
- 論全響應和零狀態響應、零輸入響應
- 什么是有限狀態機?如何解決傳統有限狀態機「狀態爆炸」問題? 6309次閱讀
- 狀態機該怎么監控 439次閱讀
- Spring狀態機的實現原理和使用方法 2171次閱讀
- SaberRD狀態機建模工具介紹(一)什么是狀態機建模 1778次閱讀
- 什么是動態電路的零狀態響應呢? 2907次閱讀
- 什么是狀態機?狀態機的種類與實現 9883次閱讀
- 淺談RC電路的零狀態響應 1w次閱讀
- 推薦十大開源的靜態網站生成工具,無須掌握HTML和CSS技能 1.2w次閱讀
- 一個完整的產品項目EMC測試有哪些步驟 1861次閱讀
- 紫外線傳感器在餐具消毒機中的應用 833次閱讀
- 狀態機概述 如何理解狀態機 1w次閱讀
- 中國人工智能開源軟件前生今生到底如何? 5691次閱讀
- 利用狀態機的狀態機實現層次結構化設計 3337次閱讀
- 使用ModelSim自動生成狀態機FSM的狀態轉換圖 1.5w次閱讀
- FPGA工程師:如何在FPGA中實現狀態機? 1.3w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多