Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
ハムスターを監視するシステムを Raspberry Pi と PHP の Swoole で作った話.pdf
memory
PRO
April 24, 2019
Programming
1
8.2k
ハムスターを監視するシステムを Raspberry Pi と PHP の Swoole で作った話.pdf
memory
PRO
April 24, 2019
Tweet
Share
More Decks by memory
See All by memory
Team building programs for Engineering Team at Torana, Inc
memory1994
PRO
0
180
PHP で NFC リーダーを実装する 〜 PHP とハードを繋ぐ 〜
memory1994
PRO
0
640
PHP で NFC リーダーを実装する
memory1994
PRO
1
490
ビジネスサイド向け SQL 講座資料(株式会社トラーナ)
memory1994
PRO
3
230
Laravel でも非同期処理が扱える!? PHP 8 から初める非同期処理 〜Laravel Octane〜
memory1994
PRO
2
1.6k
理解しておくべき PHP のバリデーション
memory1994
PRO
9
1.9k
swoole と laravel-swoole を用いたハイパフォーマンスアプリケーション構築
memory1994
PRO
4
2.4k
ゼロベースから Laravel を用いた API 実装オートメーション
memory1994
PRO
11
5.3k
株式会社トラーナ プロダクト開発部説明資料
memory1994
PRO
2
17k
Other Decks in Programming
See All in Programming
heyにおけるSREの大切さ~マルチプロダクト運用の「楽しさ」と「難しさ」および今後の展望~
fufuhu
3
2.3k
Unboxing Rails 7
claudiob
1
120
競プロへの誘 -いざな-
u76ner
0
380
[RailsConf 2022] The pitfalls of realtime-ification
palkan
0
370
Hapticをカスタマイズしてみよう / ZOZO Tech Talk #6 Customize Haptic
endoumari
0
370
About Type Syntax Proposal
quramy
1
1.2k
読みやすいコードを書こう
yutorin
0
440
未経験QAの私が、よきQA(Question Asker) になっていく物語
atamaplus
0
380
CIでAndroidUIテストの様子を録画してみた
mkeeda
0
190
あなたの会社の古いシステム、なんとかしませんか?~システム刷新から考えるDX化への道筋とバリエーション~/webinar20220420-grapecity
grapecity_dev
0
140
CLI構築のススメ
nyankotaro
1
260
Nix for Scala folks
kubukoz
0
140
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
498
130k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
268
11k
Done Done
chrislema
174
14k
The Brand Is Dead. Long Live the Brand.
mthomps
45
2.7k
Optimizing for Happiness
mojombo
365
63k
Unsuck your backbone
ammeep
659
55k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1M
Writing Fast Ruby
sferik
612
57k
Imperfection Machines: The Place of Print at Facebook
scottboms
253
11k
Web Components: a chance to create the future
zenorocha
303
40k
Rebuilding a faster, lazier Slack
samanthasiow
62
7.2k
In The Pink: A Labor of Love
frogandcode
130
21k
Transcript
ϋϜελʔΛࢹ͢ΔγεςϜΛ Raspberry Pi ͱ PHP ͷ Swoole Ͱ࡞ͬͨ 2019/04/24 PHPษڧձ@౦ژ
ΊΓʙ
ͩΕʁ
ΊΓʙ (@m3m0r7) גࣜձࣾ GameWith Ͱ αʔόʔαΠυ݉ϑϩϯτΤϯυΤϯδχΞ ͱͯ͠ಇ͍ͯ·͢ɻ ϐʔΤΠνϐʔνϣοτσΩϧ 2019 ͷ
5 ݄ʹΊ·͢ɻస৬׆ಈதͰ͢ɻ
͏ͪͷϋϜελʔͷ͝հ
Lily (ϦϦΟ) ੑผɿঁͷࢠ ੜɿ2018 11 ݄ ͖ͳ৯ɿ Ϗεέοτ, Ϧϯΰͷ͔͡Γ
ݏ͍ͳ৯ɿསͷ͔͡Γ झຯɿڅਫثͷϊζϧΛΨδΨδ͢Δ͜ͱɻΔΑΓ͖Έ͍ͨͰ͢
Έͳ͞ΜɺSwoole Λͬͨ͜ͱ͋Γ·͔͢ʁ
ͦͯ͠ɺRaspberry Pi Λͬͨ͜ͱ͋Γ·͔͢ʁ
None
ϊʔϚϧΧϝϥϞδϡʔϧ ؒ༻ΧϝϥϞδϡʔϧ
͏ͪͷ Raspberry Pi Ͱ͢
None
͏ͪͷϋϜελʔઐ༻ͷϥοΫͰ͢
͜ͷ͕ࠓճͷ Raspberry Pi Λ ͓͍ͯΔͱ͜ΖʹͳΓ·͢
ٕज़ελοΫ
- Raspbian (Raspberry Pi) - PHP 7.3 - Swoole v4
- Python 3 - React.js (+ Gulp) ओʹ͜ͷ 5 ͭ
අ༻͍͘Βͩͬͨͷ͔ʁ
- Raspberry Pi 3 Model B * 2 ≒ 5,200
* 2 ≒ 10,000 ԁ - ΧϝϥϞδϡʔϧ * 2 ≒ 5,000 * 2 ≒ 10,000 ԁ - VPS (ࠓճ ConoHa) ≒ 2,500/m ԁ - ϧʔλʔ ≒ 15,000 ԁ Πχγϟϧίετ ≒ 37,500 ԁ ϥϯχϯάίετ ≒ 2,500 ԁ
ׂͱ͍͍ஈ͠·͢
ϨΠςϯγʁ
ମײ 0.5 ඵ͘Β͍
αʔόʔͷߏ
ࣗ LAN VPS (ConoHa) PiCamera Ϟδϡʔϧ 4 byte ͷunsigned long
ͳαΠζσʔλ + picamera.start_recording (mjpeg) ϊʔϚϧΧϝϥ ͔Β TCP Ͱૹ৴ φΠτΧϝϥ͔Β TCP Ͱૹ৴
ࣗ LAN ଆͲ͏ͳ͍ͬͯΔͷ͔ʁ
- ͦͦࣗͷωοτϫʔΫͷϙʔτ։͚ͨ͘ͳ͔ͬͨ - தܧαʔόʔ͓͚ສࣄղܾʂ͘͞Βͷ VPS ͷ౦ژϦʔδϣϯ͕ۭ͍ͯ ͳ͔ͬͨͷͰɺࠓճಅͷ ConoHa ΛνϣΠε -
ϧʔλʔΛ৽ௐͯ͠࠷ߴͷڥʹͨ͠ - Python3 ͷ picamera Λͬͯແݶʹ VPS (ConoHa) ʹૹΓ͚͍ͭͯ·͢
None
VPS ଆͲ͏ͳ͍ͬͯΔͷ͔ʁ
- PHP ͷ Swoole ͷ Coroutine Λͬͯ Raspberry Pi ͔Βͷσʔλͷड৴
༻αʔόʔ, ConoHa σʔλΛૹΔͨΊͷૹ৴༻αʔόʔΛ༻ҙ - ͨͬͨ͜Ε͚ͩʂ Simple is best.
※ Ұ෦ͷίʔυ
࣮ࡍͷϓϩμΫτͷը໘
None
ετϦʔϛϯάͷςετ
Ͳ͏͔ͬͨʁ
ΧϝϥͷԼͰखΛৼΓͭͭϐʔεΛ͢Δ
None
- mjpeg Motion JPEG ͷུɻ - H.264ݕ౼ͨ͠ͷͰ͕͢ɺ ffmpeg Λ௨͢ͱϨΠςϯγ͕
5 ඵ͘Β͍૿͑Δ ͕͋Γ, mjpeg ΛνϣΠε - MIME type multipart/x-mixed-replace Ͱৗ࣌ίωΫγϣϯΛషΔ - (ͳͷͰɺϒϥβͷλϒϩʔσΟϯάதͷ··) - ϨΠςϯγ ମײ 0.5 ඵ͘Β͍ɻͦ͜ΒΜͷͷΑΓૣ͍ - ΊͬͪΌ͵Δ͵Δʹಈ͘
Swoole ΛͬͯΈͯͷײ
- PHP Ͱඇಉظॲཧ͑Δͷਆʂ - Ϗϧυ࣌ʹ —enable-maintainer-zts Λ͠ͳ͍͍ͯ͘ͷͰɺಋೖͷϋʔυ ϧ͕͍ ( phpize
͚ͩͰ͍͚Δ ) - Atomic ͕ͤΊͯ serializable ͳͷ͑ΔΑ͏ʹͳΔͱͳ͓خ͍͠ - ݱঢ়Ͱ͖ͳ͍ͷͰɺ Channel ͰແཧΓ Coroutine ؒͷσʔλͷड͚ ͠Λ͍ͯ͠·͢ɻ
՝
ೋޙʹεΫϦϓτ͕མͪΔ
ϩάऔͬͯͳ͍ͷͰམͪͨ ݪҼ͕Θ͔Βͳ͍ʗ(^o^)ʘ
Ҏ্Ͱ͢
THANK YOU FOR YOUR LISTENING !!