触れてみよう電子工作×IoT

SDカードが郵便を通知! 無線LAN付きSDカード「FlashAir」を使ってドアポストセンサーを作ってみた<後編>

郵便物が届くとスマホにメール通知 text by 余熱

 僚誌「INTERNET Watch」とリレー形式で掲載していく本連載「触れてみよう電子工作×IoT」。

 前回、INTERNET Watch側で東芝「FlashAir」を使ったドアポストセンサーの概要を紹介したが、今回はその後編ということで、実際に制作したものを紹介しよう。

(編集部)

触れてみよう電子工作×IoT
第1回 FlashAir編 <前編>

今回制作するシステムの動作イメージ。家のドアポストに郵便物が届いたらメールで通知をする。

郵便物が届くと「FlashAir」がメールを通知ドアポストセンサーを作るために必要な部品を紹介

 今回必要となるものは、前回のINTERNET Watchの記事で概要を紹介したFlashAirと傾斜スイッチ、そしてFlashAirに電源供給するための基板「AE-SD」、その他もろもろです。これらの部品は秋葉原で入手可能です。

購入したもの。すべての部品は秋葉原で入手可能。
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を参考にしてください。

FlashAirのピンアサイン。Luaスクリプトから動作させる場合、CMD端子は0x01、DAT0端子は0x02に割り当てられる。
配線図。FlashAir評価ボードに傾斜スイッチとLEDを取り付ける。
ブレッドボードにAE-SDと傾斜スイッチ、LEDを接続し、まずは傾斜スイッチONでLEDを光らせて動作を確認。

その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の勉強をしてみたい方の第一歩として、とても強力なツールだと思います。

IoT電子工作の制作・使用は、自己責任で行ってください。また、第三者からアクセスされない環境・設定で運用するなど、セキュリティ対策にも留意が必要です。この記事を読んで行った行為によって生じた損害は、筆者および編集部では一切の責任を負いかねます。

余熱 (@yone2_net)

 「れすぽん」や「空と月」、「みんなのラボ」などのサークルで同人誌や基板を頒布しています。Twitterアカウントは@yone2_net

 ケースについては悩んでいたのですが、今回はフリスクに助けられました。便利なので今後も使っていきたいですね。中身はどうしよう…。