自己紹介• 佐藤 克己 ( さとう よしき )• ( 株 ) インフォスクリュー• 技術者研修の企画、広告• システム開発• 大学等の研究開発支援
• 大学の非常勤講師を兼任• インストール・マニアックス・ファイナル 奨励賞• Lua 歴 約 1 週間
2015 年 3 月 21 日 FlashAir 進捗報告会 / info-screw.com 2
FlashAir の進捗報告• flashair-lua-dev の開発• flashair-ifttt の構想
2015 年 3 月 21 日 FlashAir 進捗報告会 / info-screw.com 3
FlashAir でないと動作しない…
2015 年 3 月 21 日 FlashAir 進捗報告会 / info-screw.com 5
FlashAir Developers のサンプルプログラムより
flashair-lua-dev
• FlashAir 用 Lua スクリプトをFlashAir 無しで動作させるためのライブラリ• FlashAir 用 Lua 固有のオブジェクト fa を提供• require “flashair” で利用可能• http://github.com/xight/flashair-lua-dev
• 利用ライブラリ• luasocket (http, ftp 通信用 )• luacrypto (md5 用 )• lyaml ( 設定ファイル読み込み )• busted ( テスト )
2015 年 3 月 21 日 FlashAir 進捗報告会 / info-screw.com 6
PC 上での動作例
2015 年 3 月 21 日 FlashAir 進捗報告会 / info-screw.com 7
% lua before.lualua: before.lua:1: attempt to index global 'fa' (a nil value)stack traceback: before.lua:1: in main chunk [C]: in ?
% lua after.lua000000000000a000535349440000000000000000000000000000000000000000000000000000000006640b0000000000123456ABCDEF0000000000000000000000000000000000000000000000000000c0a802faffffff00c0a80201c0a802010000000000000000000000000000000000000000000000000cc175b9c0f1b6a831c399e269772661
print(fa.ReadStatusReg())print(fa.md5("a"))
require("flashair")
print(fa.ReadStatusReg())print(fa.md5("a"))
実行 実行
YAML による設定
それっぽい ReadStatusReg() を出力
2015 年 3 月 21 日 FlashAir 進捗報告会 / info-screw.com 8
ssid: "SSID"mac_address: "12:34:56:AB:CD:EF"ip_address: "192.168.2.250"subnet_mask: "255.255.255.0"default_gateway: "192.168.2.1"preferred_dns: "192.168.2.1"alternate_dns: "0.0.0.0"
000000000000a000535349440000000000000000000000000000000000000000000000000000000006640b0000000000123456ABCDEF0000000000000000000000000000000000000000000000000000c0a802faffffff00c0a80201c0a80201000000000000000000000000000000000000000000000000
ssid: "SSID"mac_address: "12:34:56:AB:CD:EF"ip_address: "192.168.2.250"subnet_mask: "255.255.255.0"default_gateway: "192.168.2.1"preferred_dns: "192.168.2.1"alternate_dns: "0.0.0.0"
000000000000a000535349440000000000000000000000000000000000000000000000000000000006640b0000000000123456ABCDEF0000000000000000000000000000000000000000000000000000c0a802faffffff00c0a80201c0a80201000000000000000000000000000000000000000000000000
YAML による設定
それっぽい ReadStatusReg() を出力
2015 年 3 月 21 日 FlashAir 進捗報告会 / info-screw.com 9
ssid: "SSID"mac_address: "12:34:56:AB:CD:EF"ip_address: "192.168.2.250"subnet_mask: "255.255.255.0"default_gateway: "192.168.2.1"preferred_dns: "192.168.2.1"alternate_dns: "0.0.0.0"
000000000000a000535349440000000000000000000000000000000000000000000000000000000006640b0000000000123456ABCDEF0000000000000000000000000000000000000000000000000000c0a802faffffff00c0a80201c0a80201000000000000000000000000000000000000000000000000
ssid: "SSID"mac_address: "12:34:56:AB:CD:EF"ip_address: "192.168.2.250"subnet_mask: "255.255.255.0"default_gateway: "192.168.2.1"preferred_dns: "192.168.2.1"alternate_dns: "0.0.0.0"
000000000000a000535349440000000000000000000000000000000000000000000000000000000006640b0000000000123456ABCDEF0000000000000000000000000000000000000000000000000000c0a802faffffff00c0a80201c0a80201000000000000000000000000000000000000000000000000
YAML による設定
それっぽい ReadStatusReg() を出力
2015 年 3 月 21 日 FlashAir 進捗報告会 / info-screw.com 10
ssid: "SSID"mac_address: "12:34:56:AB:CD:EF"ip_address: "192.168.2.250"subnet_mask: "255.255.255.0"default_gateway: "192.168.2.1"preferred_dns: "192.168.2.1"alternate_dns: "0.0.0.0"
000000000000a000535349440000000000000000000000000000000000000000000000000000000006640b0000000000123456ABCDEF0000000000000000000000000000000000000000000000000000c0a802faffffff00c0a80201c0a80201000000000000000000000000000000000000000000000000
ssid: "SSID"mac_address: "12:34:56:AB:CD:EF"ip_address: "192.168.2.250"subnet_mask: "255.255.255.0"default_gateway: "192.168.2.1"preferred_dns: "192.168.2.1"alternate_dns: "0.0.0.0"
000000000000a000535349440000000000000000000000000000000000000000000000000000000006640b0000000000123456ABCDEF0000000000000000000000000000000000000000000000000000c0a802faffffff00c0a80201c0a80201000000000000000000000000000000000000000000000000
flashair-lua-dev の課題• fa.pio の仕様理解と実装• pio 周りもデバッグしやすい環境を整えたい
• fa.ReadStatusReg の仕様理解と実装• fa.FTP の実装• fa のラッパオブジェクトも欲しい• リーダブルな ReadStatusReg など
• 既に東芝様でこんなライブラリを開発しているのでは…
2015 年 3 月 21 日 FlashAir 進捗報告会 / info-screw.com 11
IFTT ( イフト ) とは• Web サービスのハブを実現する Web サービス
2015 年 3 月 21 日 FlashAir 進捗報告会 / info-screw.com 13
http://ifttt.com
flashair-ifttt
• FlashAir と IFTTT( イフト ) を繋ぐモジュール• まだ構想…
• 意義• これまでは送信側、受信側を個別開発する必要あり• IFTTT を利用することで、
IFTTT チャンネルの恩恵を受けられる• プログラムの知識がなくても、
FlashAir と Web サービスを繋ぐことができる ( かも )
2015 年 3 月 21 日 FlashAir 進捗報告会 / info-screw.com 21
FlashAir × IFTTT でできそうなコト
• FlashAir → IFTTT• 写真を撮ったら…
Facebook, Instagram, Twitter に投稿クラウドストレージに保存
• IFTTT→FlashAir• クラウドストレージに保存したら…
遠隔の FlashAir( フォトフレーム等 ) にも保存• 誕生日になったら…
フォトフレームに写真を送る
2015 年 3 月 21 日 FlashAir 進捗報告会 / info-screw.com 22
flashair-ifttt の課題• IFTTT と FlashAir 間の通信
• FlashAir からの Request は HTTP, FTP に限定• WordPress の XML-RPC を振る舞う or メールによる通知
• メールを使うなら HTTP 越しにメールを送信できるサービスが必要か
• WAN 側から FlashAir を参照した場合の自動リダイレクト• 307 Temporary Redirect で http://flashair/ に• LAN 外 FlashAir を参照できない ?
• Belkin WeMo のように FlashAir 用のチャンネルが用意できたら最高 (flashair-ifttt が要らなくなる ?)
2015 年 3 月 21 日 FlashAir 進捗報告会 / info-screw.com 23
Top Related