2017年4月24日月曜日

AWSIOTボタンを使ってみた。(日本では売られていないので輸入!)

今日は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);
    });
};


以上で、ボタンを押すだけでメールアドレスにメールが送れるようになります。

コードを見れば何を作っているかわかった方もいると思いますが、
私の妻が臨月に入っていますので「陣痛ボタン」をつくってみました。



手に届くところに設置!
ボタンを押すと・・・





このように関係者にメールが飛びます。
何回も何回もメールが来たら(前駆陣痛が来たら)大丈夫?と電話できる仕組みです。



ん〜ハイテクですね!
いろいろなアイデアに応用できると思います。

0 件のコメント:

コメントを投稿