Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ハムスターを監視するシステムを Raspberry Pi と PHP の Swoole で作...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
memory
PRO
April 24, 2019
Programming
1
9.8k
ハムスターを監視するシステムを Raspberry Pi と PHP の Swoole で作った話.pdf
memory
PRO
April 24, 2019
Tweet
Share
More Decks by memory
See All by memory
AI 時代だからこそ学ぶべき PHP の基礎
m3m0r7
PRO
7
2.2k
JVM の仕組みを理解して PHP で実装してみよう
m3m0r7
PRO
1
380
コードゴルファー道
m3m0r7
PRO
0
550
ChatGPT とつくる PHP で OS 実装
m3m0r7
PRO
3
300
事業観点から見る技術的負債の返済
m3m0r7
PRO
4
1.2k
PHP でアセンブリ言語のように書く技術
m3m0r7
PRO
1
260
PHP でアセンブリっぽく書く技術
m3m0r7
PRO
1
170
How to implement a RubyVM with PHP?
m3m0r7
PRO
3
3k
二郎系ラーメンのコールで学ぶ AST 解析
m3m0r7
PRO
8
3.2k
Other Decks in Programming
See All in Programming
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
330
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
520
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
390
Docコメントで始める簡単ガードレール
keisukeikeda
1
120
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
2
290
nilとは何か 〜interfaceの構造とnil!=nilから理解する〜
kuro_kurorrr
3
1.9k
20260315 AWSなんもわからん🥲
chiilog
2
150
encoding/json/v2のUnmarshalはこう変わった:内部実装で見る設計改善
kurakura0916
0
410
LangChain4jとは一味違うLangChain4j-CDI
kazumura
1
180
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
480
Codex の「自走力」を高める
yorifuji
0
1.2k
PostgreSQL を使った快適な go test 環境を求めて
otakakot
0
550
Featured
See All Featured
How to make the Groovebox
asonas
2
2k
Mobile First: as difficult as doing things right
swwweet
225
10k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
Everyday Curiosity
cassininazir
0
160
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
310
YesSQL, Process and Tooling at Scale
rocio
174
15k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
100
Code Review Best Practice
trishagee
74
20k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Prompt Engineering for Job Search
mfonobong
0
180
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
230
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 !!