触れてみよう電子工作×IoT
SDカードが郵便を通知! 無線LAN付きSDカード「FlashAir」を使ってドアポストセンサーを作ってみた<後編>
郵便物が届くとスマホにメール通知 text by 余熱
2017年2月27日 00:00
僚誌「INTERNET Watch」とリレー形式で掲載していく本連載「触れてみよう電子工作×IoT」。
前回、INTERNET Watch側で東芝「FlashAir」を使ったドアポストセンサーの概要を紹介したが、今回はその後編ということで、実際に制作したものを紹介しよう。
(編集部)
触れてみよう電子工作×IoT |
---|
・第1回 FlashAir編 <前編> |
郵便物が届くと「FlashAir」がメールを通知ドアポストセンサーを作るために必要な部品を紹介
今回必要となるものは、前回のINTERNET Watchの記事で概要を紹介したFlashAirと傾斜スイッチ、そしてFlashAirに電源供給するための基板「AE-SD」、その他もろもろです。これらの部品は秋葉原で入手可能です。
今回の制作で購入した部品の入手先と参考価格は以下の通り。FlashAirは制作時には32GBを使用していますが、ここでは8GBの価格を掲載しています。
部品名称 | 入手先 | 参考価格(税込表記) |
FlashAir W-03 8GB | 東芝ダイレクトなど | 3,200円前後 |
AE-SD | 秋月電子 | 450円 |
傾斜スイッチ | 秋月電子 | 100円 |
ブレッドボード | 秋月電子 | 130円 |
ユニバーサル基板 | 秋月電子 | 60円 |
型想い | ボークスなど | 1,000円前後 |
フリスク | コンビニなど | 200円前後 |
配線・はんだ | 電子工作ショップ | 適宜 |
※2017年2月調べ |
その1:まずは回路を解説FlashAirのピンアサインと配線図にあわせて傾斜スイッチなどを接続してみよう
さて、いよいよ実際の組み立てを行います。
回路としては、電源供給基板「AE-SD」に傾斜スイッチとLEDを取り付けるだけの簡単なものです。FlashAirのCMD端子に傾斜スイッチ、DAT0端子にLEDを取り付けました。FlashAirの端子のピンアサインは以下の写真やFlashAir Developersを参考にしてください。
その2:フリスクケースに収めてハードは完成ドアポストへの傾斜スイッチの取り付けには「型想い」が便利
ブレッドボードをむき出しで使うと配線が抜けてしまうことがあり、見栄えもよくありません。そこで、大きさを調整したユニバーサル基板にはんだ付けを行い、フリスクケースに収めてみました。最近、フリスクのケースがリニューアルされ、ケースが若干大型化され、FlashAirを使った工作をするのにピッタリなサイズになりました。ケースの裏面に磁石を貼り付け、ドアポストに固定します。
ちなみに、傾斜スイッチをドアポストへ固定する際には「型想い」という模型向けの型取り用の素材を用いました。この素材はお湯に2分ほど漬けておくと柔らかくなり、自由な形に変形させることができます。これを両面テープでドアポストに固定します。
なお、本システムは玄関で用いるものなので、USBケーブルにて電源を供給しています。
下記に取り付け例を示します。すでに一仕事終えた雰囲気ですが、これはまだ外側の入れ物を作っただけです。続いてFlashAirのプログラムを作成していきます。
その3:仕上げはソフト、FlashAirのスクリプトを作成してみよう
FlashAirの動作を制御するための設定ファイルの変更と、Luaスクリプトの作成を行います。APIを使えばメール送信も簡単に行えます。プログラミングにあたり、開発環境のインストールなどは不要です。メモ帳などのテキストエディタだけ用意してください。
FlashAirの動作を制御するための「CONFIGファイル」
FlashAirのドライブ直下に「SD_WLAN」という隠しフォルダがあり、その中に「CONFIG」というファイルがあるのでこれを編集します。FlashAirをインターネットに接続するため、CONFIGファイルに「APPMODE=5」を記述し、STAモードで動作させます。GPIO機能を有効にするために「IFMODE=1」、Luaスクリプトの場所を指定するために「LUA_RUN_SCRIPT」を追記します。
[Vendor]
CIPATH=/DCIM/100__TSB/FA000001.JPG
APPMODE=5
APPSSID=[無線APのSSID]
APPNETWORKKEY=[無線APのネットワークセキュリティキー]
VERSION=FA9CAW3AW3.00.01
CID=02544d535730384731c8a8ac7900f501
PRODUCT=FlashAir
VENDOR=TOSHIBA
IFMODE=1
LUA_RUN_SCRIPT=/mail.lua
メールを送信するための「Luaスクリプト」
下記にメール送信を行うLuaスクリプトを示します。fa.MailSendというAPIを実行するだけで、簡単にメールを送信することが可能です。今回はYahoo!メールにて動作を確認しました。GPIO機能はfa.pioというAPIを使います。詳細はAPIガイドを参照してください。下記のスクリプトを適宜変更して、「mail.lua」という名前でFlashAirのドライブ直下に配置してください。
input = 0
sleep(10000) --10秒スリープ
while input==0 do
s, indata = fa.pio(0x02, 0x02)
input = bit32.band(indata, 0x01) --スイッチ入力
sleep(100)
end
fa.pio(0x02, 0x00)
-- メール送信
from = "[email protected]" -- 送信元のメールアドレス
rcpt = "[email protected]" -- 送信先のメールアドレス
a = fa.MailSend {
from = from,
headers = "To: "..rcpt.."\r\nFrom: "..from.."\r\nSubject: test",
body = "Mail from FlashAir",
server = "smtp.mail.yahoo.co.jp", -- SMTPサーバのアドレス
user = "ehh2015_fa", -- 送信元のメールのユーザ名
password ="[送信元のメールのパスワード]"
}
(4/7 23:55修正) 記事初出時、SMTPサーバのアドレス部分に半角スペースが入っておりました。お詫びして訂正致します。
実際にシステムを動かしてみた、メールは外出先でも確認可能
出来上がったシステムの動作例。ドアポストに郵便物を投函するとすぐにメールが届く。
出来上がったシステムの動作について、動画を撮影しました。ドアポストに郵便物が投函されるとメールが届きました。自宅のWi-Fiルータ経由でメールを送信しているため、外出先でも確認することが可能です。
また、フリスクケースに取り付けたLEDで現在の状況を確認することができます。LEDが点灯している場合はスタンバイ中、LEDが消灯していたらメールが届いているはずです。
おわりに
「スイッチを押すとメールが飛ぶ」というシステムを構成するのは結構大変なのですが、FlashAirを使うと非常に簡単に実現できるということが少しでも伝われば幸いなのですが、いかがでしたか? とっつきにくいと思われている「IoT」ですが、一つ一つの技術はそれこそ夏休みの工作レベルだったりします。
FlashAirを使った工作は非常にハードルが低いです。開発環境のインストールは不要で、メモ帳でプログラミング可能です。またFlashAirは大手家電量販店でも取り扱っているので、入手性もバッチリです。しかも飽きたらデジカメに入れれば便利に使えます(笑) これからIoTの勉強をしてみたい方の第一歩として、とても強力なツールだと思います。
余熱 (@yone2_net)
「れすぽん」や「空と月」、「みんなのラボ」などのサークルで同人誌や基板を頒布しています。Twitterアカウントは@yone2_net。
ケースについては悩んでいたのですが、今回はフリスクに助けられました。便利なので今後も使っていきたいですね。中身はどうしよう…。