今日はAWS IOTボタンをというものを入手しましたので紹介したいと思います。
製品の概要はこちら
このボタンすごいんです!
ボタンを押すことでAWS上のLambdaを起動させるという物。
実は日本ではまだ売られていません。
アメリカのAmazonで入手することができます。
アメリカのAmazon,IOTボタンのページはこちら
海外のAmazonの購入の仕方はこちら
下記のように、ボタンを押すと商品が配達されるAmazon dash ボタンは市販されていますが
本製品は、ボタンを押した際の処理を自分で作ることができます!
日本で売られていないのに日本で使えるの?
使えました!東京リージョンのLamdaはできませんでしたが、オレゴン州にリージョンを設定することで可能!
設定手順としては、
①まず設定アプリをダウンロード。「AWSIoTButton」というアプリ。
当然日本のアップルストアには公開されていないので、
米国のアップルストアからダウンロード。
米国のアップルストアのダウンロード方法はこちら
②次に、Wifiネットワークの接続。外に出れるネットワークであれば何でもOK。
③次にアクションを設定。ここではSend Email (node.js)を選択。
④送りたいメールアドレスのダイアログが出てきますので、メールアドレスを設定。
これでLambda上に勝手に関数が追加されます。
本文や題名、送信先の記載をちょっと変更。
const AWS = require('aws-sdk');
const SES = new AWS.SES();
const EMAIL_ADDRESS = '
送信元メールアドレス@xxx.ne.jp'; // change it to your email address
// Send a verification email to the given email address.
function sendVerification(email, callback) {
SES.verifyEmailIdentity({ EmailAddress: email }, (err) => {
callback(err || 'Verification email sent. Please verify it.');
});
}
// Check whether email is verified. Only verified emails are allowed to send emails to or from.
function checkEmail(email, callback) {
SES.getIdentityVerificationAttributes({ Identities: [email] }, (err, data) => {
if (err) {
callback(err);
return;
}
const attributes = data.VerificationAttributes;
if (!(email in attributes) || attributes[email].VerificationStatus !== 'Success') {
sendVerification(email, callback);
} else {
callback(err, data);
}
});
}
exports.handler = (event, context, callback) => {
console.log('Received event:', event);
checkEmail(EMAIL_ADDRESS, (err) => {
if (err) {
console.log(`Failed to check email: ${EMAIL_ADDRESS}`, err);
callback(err);
return;
}
const payload = JSON.stringify(event);
const subject =
'陣痛ボタンが押下されました。';
const bodyText = '
関係者にメールが送信されます。' + '\n' +'関係者の方は何回もメールが続いた場合、連絡をとってください。' + '\n' +'本人への電話番号:999-999-999' + '\n' +
'旦那への電話番号:999-999-999' + '\n' + '病院時間外電話番号:9999-9999-999';
const params = {
Source: EMAIL_ADDRESS,
Destination: { ToAddresses:['
xxxxxx@icloud.com',xxxxx@xxx.ne.jp','xxxxxx@i.softbank.jp','yxxxxxw33@i.softbank.jp']},
Message: { Subject: { Data: subject }, Body: { Text: { Data: bodyText } } },
};
SES.sendEmail(params, callback);
});
};
以上で、ボタンを押すだけでメールアドレスにメールが送れるようになります。
コードを見れば何を作っているかわかった方もいると思いますが、
私の妻が臨月に入っていますので「陣痛ボタン」をつくってみました。
手に届くところに設置!
ボタンを押すと・・・
このように関係者にメールが飛びます。
何回も何回もメールが来たら(前駆陣痛が来たら)大丈夫?と電話できる仕組みです。
ん〜ハイテクですね!
いろいろなアイデアに応用できると思います。