SlideShare a Scribd company logo
1 of 24
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.lua
lua: before.lua:1: attempt to index global 'fa' (a nil value)
stack traceback:
before.lua:1: in main chunk
[C]: in ?
% lua after.lua
000000000000a000535349440000000000000000000000
000000000000000000000000000000000006640b000000
0000123456ABCDEF00000000000000000000000000000
00000000000000000000000c0a802faffffff00c0a80201c0
a802010000000000000000000000000000000000000000
00000000
0cc175b9c0f1b6a831c399e269772661
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"
000000000000a000535349440000000000000000000000
000000000000000000000000000000000006640b000000
0000123456ABCDEF00000000000000000000000000000
00000000000000000000000c0a802faffffff00c0a80201c0
a802010000000000000000000000000000000000000000
00000000
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"
000000000000a000535349440000000000000000000000
000000000000000000000000000000000006640b000000
0000123456ABCDEF00000000000000000000000000000
00000000000000000000000c0a802faffffff00c0a80201c0
a802010000000000000000000000000000000000000000
00000000
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"
000000000000a000535349440000000000000000000000
000000000000000000000000000000000006640b000000
0000123456ABCDEF00000000000000000000000000000
00000000000000000000000c0a802faffffff00c0a80201c0
a802010000000000000000000000000000000000000000
00000000
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"
000000000000a000535349440000000000000000000000
000000000000000000000000000000000006640b000000
0000123456ABCDEF00000000000000000000000000000
00000000000000000000000c0a802faffffff00c0a80201c0
a802010000000000000000000000000000000000000000
00000000
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"
000000000000a000535349440000000000000000000000
000000000000000000000000000000000006640b000000
0000123456ABCDEF00000000000000000000000000000
00000000000000000000000c0a802faffffff00c0a80201c0
a802010000000000000000000000000000000000000000
00000000
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"
000000000000a000535349440000000000000000000000
000000000000000000000000000000000006640b000000
0000123456ABCDEF00000000000000000000000000000
00000000000000000000000c0a802faffffff00c0a80201c0
a802010000000000000000000000000000000000000000
00000000
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

More Related Content

Similar to 2015-03-21 FlashAir 進捗報告会

Message Analyzer 再入門【2】
Message Analyzer 再入門【2】Message Analyzer 再入門【2】
Message Analyzer 再入門【2】彰 村地
 
Message Analyzer でパケット キャプチャー
Message Analyzer でパケット キャプチャーMessage Analyzer でパケット キャプチャー
Message Analyzer でパケット キャプチャー彰 村地
 
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発GoAzure
 
Salesforce DUG meetup09 summer15
Salesforce DUG meetup09 summer15Salesforce DUG meetup09 summer15
Salesforce DUG meetup09 summer15Ikou Sanuki
 
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Yuichi Hasegawa
 
大規模・長期保守を見据えたエンタープライズ システム開発へのSpring Frameworkの適用
大規模・長期保守を見据えたエンタープライズシステム開発へのSpring Frameworkの適用大規模・長期保守を見据えたエンタープライズシステム開発へのSpring Frameworkの適用
大規模・長期保守を見据えたエンタープライズ システム開発へのSpring Frameworkの適用apkiban
 
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~apkiban
 
Chat bot created by QnA Maker
Chat bot created by QnA MakerChat bot created by QnA Maker
Chat bot created by QnA MakerTakao Tetsuro
 
Small Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour TokyoSmall Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour TokyoTakao Tetsuro
 
WordPressで行う継続的インテグレーション入門編
WordPressで行う継続的インテグレーション入門編WordPressで行う継続的インテグレーション入門編
WordPressで行う継続的インテグレーション入門編Hiroshi Urabe
 
20150905 stream analytics
20150905 stream analytics20150905 stream analytics
20150905 stream analytics一希 大田
 
Salesforce dug meetup #5
Salesforce dug meetup #5Salesforce dug meetup #5
Salesforce dug meetup #5Akira Kuratani
 
20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみようTakuya Kawabe
 
Ignite 2021 振り返り(DevOps)
Ignite 2021 振り返り(DevOps)Ignite 2021 振り返り(DevOps)
Ignite 2021 振り返り(DevOps)Kazushi Kamegawa
 
Intelligent cloud with Microsoft Graph.
Intelligent cloud with Microsoft Graph.Intelligent cloud with Microsoft Graph.
Intelligent cloud with Microsoft Graph.Takao Tetsuro
 
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...VirtualTech Japan Inc.
 
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...Nobuyuki Tamaoki
 
老舗大企業からスタートアップへの挑戦
老舗大企業からスタートアップへの挑戦老舗大企業からスタートアップへの挑戦
老舗大企業からスタートアップへの挑戦GuildWorks
 

Similar to 2015-03-21 FlashAir 進捗報告会 (20)

Message Analyzer 再入門【2】
Message Analyzer 再入門【2】Message Analyzer 再入門【2】
Message Analyzer 再入門【2】
 
Message Analyzer でパケット キャプチャー
Message Analyzer でパケット キャプチャーMessage Analyzer でパケット キャプチャー
Message Analyzer でパケット キャプチャー
 
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
A 1-1 tfs on azure で始めるイマドキのソフトウェア開発
 
Go azure tfs_service
Go azure tfs_serviceGo azure tfs_service
Go azure tfs_service
 
Salesforce DUG meetup09 summer15
Salesforce DUG meetup09 summer15Salesforce DUG meetup09 summer15
Salesforce DUG meetup09 summer15
 
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
 
大規模・長期保守を見据えたエンタープライズ システム開発へのSpring Frameworkの適用
大規模・長期保守を見据えたエンタープライズシステム開発へのSpring Frameworkの適用大規模・長期保守を見据えたエンタープライズシステム開発へのSpring Frameworkの適用
大規模・長期保守を見据えたエンタープライズ システム開発へのSpring Frameworkの適用
 
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
 
Chat bot created by QnA Maker
Chat bot created by QnA MakerChat bot created by QnA Maker
Chat bot created by QnA Maker
 
Small Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour TokyoSmall Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour Tokyo
 
WordPressで行う継続的インテグレーション入門編
WordPressで行う継続的インテグレーション入門編WordPressで行う継続的インテグレーション入門編
WordPressで行う継続的インテグレーション入門編
 
20150905 stream analytics
20150905 stream analytics20150905 stream analytics
20150905 stream analytics
 
Salesforce dug meetup #5
Salesforce dug meetup #5Salesforce dug meetup #5
Salesforce dug meetup #5
 
20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう
 
Ignite 2021 振り返り(DevOps)
Ignite 2021 振り返り(DevOps)Ignite 2021 振り返り(DevOps)
Ignite 2021 振り返り(DevOps)
 
Pythonでwebdriver
PythonでwebdriverPythonでwebdriver
Pythonでwebdriver
 
Intelligent cloud with Microsoft Graph.
Intelligent cloud with Microsoft Graph.Intelligent cloud with Microsoft Graph.
Intelligent cloud with Microsoft Graph.
 
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
 
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
 
老舗大企業からスタートアップへの挑戦
老舗大企業からスタートアップへの挑戦老舗大企業からスタートアップへの挑戦
老舗大企業からスタートアップへの挑戦
 

More from Yoshiki Sato

インターネット利用における悪意ある行為と対策
インターネット利用における悪意ある行為と対策インターネット利用における悪意ある行為と対策
インターネット利用における悪意ある行為と対策Yoshiki Sato
 
2017-11-10 Design of a PBL Workflow Model Suitable for Learners Situations (I...
2017-11-10 Design of a PBL Workflow Model Suitable for Learners Situations (I...2017-11-10 Design of a PBL Workflow Model Suitable for Learners Situations (I...
2017-11-10 Design of a PBL Workflow Model Suitable for Learners Situations (I...Yoshiki Sato
 
2016-12-07 Development of a Project/Problem Based Learning Body of Knowledge ...
2016-12-07 Development of a Project/Problem Based Learning Body of Knowledge ...2016-12-07 Development of a Project/Problem Based Learning Body of Knowledge ...
2016-12-07 Development of a Project/Problem Based Learning Body of Knowledge ...Yoshiki Sato
 
2016-03-01 研究の進め方を改善しよう
2016-03-01 研究の進め方を改善しよう2016-03-01 研究の進め方を改善しよう
2016-03-01 研究の進め方を改善しようYoshiki Sato
 
2015-06-28 日本情報科教育学会 第8回全国大会 プロジェクト管理手法を活用した問題解決指導の予備実践と評価
2015-06-28 日本情報科教育学会 第8回全国大会 プロジェクト管理手法を活用した問題解決指導の予備実践と評価2015-06-28 日本情報科教育学会 第8回全国大会 プロジェクト管理手法を活用した問題解決指導の予備実践と評価
2015-06-28 日本情報科教育学会 第8回全国大会 プロジェクト管理手法を活用した問題解決指導の予備実践と評価Yoshiki Sato
 
2014-07-19 日本情報科教育学会 第7回全国大会 プロジェクト管理手法を活用した問題解決指導法開発のための予備実践
2014-07-19 日本情報科教育学会 第7回全国大会 プロジェクト管理手法を活用した問題解決指導法開発のための予備実践2014-07-19 日本情報科教育学会 第7回全国大会 プロジェクト管理手法を活用した問題解決指導法開発のための予備実践
2014-07-19 日本情報科教育学会 第7回全国大会 プロジェクト管理手法を活用した問題解決指導法開発のための予備実践Yoshiki Sato
 
2013-06-29 日本情報科教育学会 第6回全国大会 課程認定科目「情報と職業」における体系的な問題解決手法の提案
2013-06-29 日本情報科教育学会 第6回全国大会 課程認定科目「情報と職業」における体系的な問題解決手法の提案2013-06-29 日本情報科教育学会 第6回全国大会 課程認定科目「情報と職業」における体系的な問題解決手法の提案
2013-06-29 日本情報科教育学会 第6回全国大会 課程認定科目「情報と職業」における体系的な問題解決手法の提案Yoshiki Sato
 

More from Yoshiki Sato (7)

インターネット利用における悪意ある行為と対策
インターネット利用における悪意ある行為と対策インターネット利用における悪意ある行為と対策
インターネット利用における悪意ある行為と対策
 
2017-11-10 Design of a PBL Workflow Model Suitable for Learners Situations (I...
2017-11-10 Design of a PBL Workflow Model Suitable for Learners Situations (I...2017-11-10 Design of a PBL Workflow Model Suitable for Learners Situations (I...
2017-11-10 Design of a PBL Workflow Model Suitable for Learners Situations (I...
 
2016-12-07 Development of a Project/Problem Based Learning Body of Knowledge ...
2016-12-07 Development of a Project/Problem Based Learning Body of Knowledge ...2016-12-07 Development of a Project/Problem Based Learning Body of Knowledge ...
2016-12-07 Development of a Project/Problem Based Learning Body of Knowledge ...
 
2016-03-01 研究の進め方を改善しよう
2016-03-01 研究の進め方を改善しよう2016-03-01 研究の進め方を改善しよう
2016-03-01 研究の進め方を改善しよう
 
2015-06-28 日本情報科教育学会 第8回全国大会 プロジェクト管理手法を活用した問題解決指導の予備実践と評価
2015-06-28 日本情報科教育学会 第8回全国大会 プロジェクト管理手法を活用した問題解決指導の予備実践と評価2015-06-28 日本情報科教育学会 第8回全国大会 プロジェクト管理手法を活用した問題解決指導の予備実践と評価
2015-06-28 日本情報科教育学会 第8回全国大会 プロジェクト管理手法を活用した問題解決指導の予備実践と評価
 
2014-07-19 日本情報科教育学会 第7回全国大会 プロジェクト管理手法を活用した問題解決指導法開発のための予備実践
2014-07-19 日本情報科教育学会 第7回全国大会 プロジェクト管理手法を活用した問題解決指導法開発のための予備実践2014-07-19 日本情報科教育学会 第7回全国大会 プロジェクト管理手法を活用した問題解決指導法開発のための予備実践
2014-07-19 日本情報科教育学会 第7回全国大会 プロジェクト管理手法を活用した問題解決指導法開発のための予備実践
 
2013-06-29 日本情報科教育学会 第6回全国大会 課程認定科目「情報と職業」における体系的な問題解決手法の提案
2013-06-29 日本情報科教育学会 第6回全国大会 課程認定科目「情報と職業」における体系的な問題解決手法の提案2013-06-29 日本情報科教育学会 第6回全国大会 課程認定科目「情報と職業」における体系的な問題解決手法の提案
2013-06-29 日本情報科教育学会 第6回全国大会 課程認定科目「情報と職業」における体系的な問題解決手法の提案
 

2015-03-21 FlashAir 進捗報告会

  • 2. 自己紹介 • 佐藤 克己 (さとう よしき) • (株)インフォスクリュー • 技術者研修の企画、広告 • システム開発 • 大学等の研究開発支援 • 大学の非常勤講師を兼任 • インストール・マニアックス・ファイナル 奨励賞 • Lua歴 約1週間 2015年3月21日 FlashAir 進捗報告会 / info-screw.com 2
  • 5. FlashAirでないと動作しない… 2015年3月21日 FlashAir 進捗報告会 / info-screw.com 5 FlashAir Developersのサンプルプログラムより
  • 6. 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
  • 7. PC上での動作例 2015年3月21日 FlashAir 進捗報告会 / info-screw.com 7 % lua before.lua lua: before.lua:1: attempt to index global 'fa' (a nil value) stack traceback: before.lua:1: in main chunk [C]: in ? % lua after.lua 000000000000a000535349440000000000000000000000 000000000000000000000000000000000006640b000000 0000123456ABCDEF00000000000000000000000000000 00000000000000000000000c0a802faffffff00c0a80201c0 a802010000000000000000000000000000000000000000 00000000 0cc175b9c0f1b6a831c399e269772661 print(fa.ReadStatusReg()) print(fa.md5("a")) require("flashair") print(fa.ReadStatusReg()) print(fa.md5("a")) 実行 実行
  • 8. 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" 000000000000a000535349440000000000000000000000 000000000000000000000000000000000006640b000000 0000123456ABCDEF00000000000000000000000000000 00000000000000000000000c0a802faffffff00c0a80201c0 a802010000000000000000000000000000000000000000 00000000 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" 000000000000a000535349440000000000000000000000 000000000000000000000000000000000006640b000000 0000123456ABCDEF00000000000000000000000000000 00000000000000000000000c0a802faffffff00c0a80201c0 a802010000000000000000000000000000000000000000 00000000
  • 9. 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" 000000000000a000535349440000000000000000000000 000000000000000000000000000000000006640b000000 0000123456ABCDEF00000000000000000000000000000 00000000000000000000000c0a802faffffff00c0a80201c0 a802010000000000000000000000000000000000000000 00000000 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" 000000000000a000535349440000000000000000000000 000000000000000000000000000000000006640b000000 0000123456ABCDEF00000000000000000000000000000 00000000000000000000000c0a802faffffff00c0a80201c0 a802010000000000000000000000000000000000000000 00000000
  • 10. 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" 000000000000a000535349440000000000000000000000 000000000000000000000000000000000006640b000000 0000123456ABCDEF00000000000000000000000000000 00000000000000000000000c0a802faffffff00c0a80201c0 a802010000000000000000000000000000000000000000 00000000 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" 000000000000a000535349440000000000000000000000 000000000000000000000000000000000006640b000000 0000123456ABCDEF00000000000000000000000000000 00000000000000000000000c0a802faffffff00c0a80201c0 a802010000000000000000000000000000000000000000 00000000
  • 11. flashair-lua-devの課題 • fa.pioの仕様理解と実装 • pio周りもデバッグしやすい環境を整えたい • fa.ReadStatusRegの仕様理解と実装 • fa.FTPの実装 • faのラッパオブジェクトも欲しい • リーダブルなReadStatusRegなど • 既に東芝様でこんなライブラリを 開発しているのでは… 2015年3月21日 FlashAir 進捗報告会 / info-screw.com 11
  • 13. IFTT (イフト) とは • Webサービスのハブを実現するWebサービス 2015年3月21日 FlashAir 進捗報告会 / info-screw.com 13 http://ifttt.com
  • 14. 2015年3月21日 FlashAir 進捗報告会 / info-screw.com 14 明日、雨が降りそうならiPhoneに通知 これから雨が降りそうなら、iPhoneに通知
  • 21. flashair-ifttt • FlashAirとIFTTT(イフト)を繋ぐモジュール • まだ構想… • 意義 • これまでは送信側、受信側を個別開発する必要あり • IFTTTを利用することで、 IFTTTチャンネルの恩恵を受けられる • プログラムの知識がなくても、 FlashAirとWebサービスを繋ぐことができる (かも) 2015年3月21日 FlashAir 進捗報告会 / info-screw.com 21
  • 22. FlashAir × IFTTTでできそうなコト • FlashAir → IFTTT • 写真を撮ったら… Facebook, Instagram, Twitterに投稿 クラウドストレージに保存 • IFTTT→FlashAir • クラウドストレージに保存したら… 遠隔のFlashAir(フォトフレーム等)にも保存 • 誕生日になったら… フォトフレームに写真を送る 2015年3月21日 FlashAir 進捗報告会 / info-screw.com 22
  • 23. 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
  • 24. 要望 • APIリファレンスの拡充 • 各々のメソッドのサンプルのソースコードが欲しい • 開発ライブラリなどあれば公開してほしい 2015年3月21日 FlashAir 進捗報告会 / info-screw.com 24