24
FlashAir 進進進進進 2015 進 3 進 21 進 進進進進進進進進進進進進進 進進 進進 ( 進進進 進進進 )

2015-03-21 FlashAir 進捗報告会

Embed Size (px)

Citation preview

FlashAir 進捗報告会2015年 3月 21日

株式会社インフォスクリュー佐藤 克己 (さとう よしき )

自己紹介• 佐藤 克己 ( さとう よしき )• ( 株 ) インフォスクリュー• 技術者研修の企画、広告• システム開発• 大学等の研究開発支援

• 大学の非常勤講師を兼任• インストール・マニアックス・ファイナル 奨励賞• 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-lua-dev

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

flashair-ifttt

IFTT ( イフト ) とは• Web サービスのハブを実現する Web サービス

2015 年 3 月 21 日 FlashAir 進捗報告会 / info-screw.com 13

http://ifttt.com

2015 年 3 月 21 日 FlashAir 進捗報告会 / info-screw.com 14

明日、雨が降りそうなら iPhone に通知

これから雨が降りそうなら、 iPhone に通知

if then

15

171 channel

if then

16

171 channel

if then

17

if then

18

if then

if then

19

if then

if then

if then

20

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

要望• API リファレンスの拡充• 各々のメソッドのサンプルのソースコードが欲しい

• 開発ライブラリなどあれば公開してほしい

2015 年 3 月 21 日 FlashAir 進捗報告会 / info-screw.com 24