Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ハムスターを監視するシステムを Raspberry Pi と PHP の Swoole で作...
Search
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
2k
JVM の仕組みを理解して PHP で実装してみよう
m3m0r7
PRO
1
340
コードゴルファー道
m3m0r7
PRO
0
470
ChatGPT とつくる PHP で OS 実装
m3m0r7
PRO
3
270
事業観点から見る技術的負債の返済
m3m0r7
PRO
4
1.2k
PHP でアセンブリ言語のように書く技術
m3m0r7
PRO
1
240
PHP でアセンブリっぽく書く技術
m3m0r7
PRO
1
160
How to implement a RubyVM with PHP?
m3m0r7
PRO
3
2.9k
二郎系ラーメンのコールで学ぶ AST 解析
m3m0r7
PRO
8
3.1k
Other Decks in Programming
See All in Programming
これならできる!個人開発のすゝめ
tinykitten
PRO
0
110
AIコードレビューがチームの"文脈"を 読めるようになるまで
marutaku
0
350
AIコーディングエージェント(Manus)
kondai24
0
180
Microservices rules: What good looks like
cer
PRO
0
1.4k
Tinkerbellから学ぶ、Podで DHCPをリッスンする手法
tomokon
0
130
新卒エンジニアのプルリクエスト with AI駆動
fukunaga2025
0
230
Cell-Based Architecture
larchanjo
0
120
MAP, Jigsaw, Code Golf 振り返り会 by 関東Kaggler会|Jigsaw 15th Solution
hasibirok0
0
240
Why Kotlin? 電子カルテを Kotlin で開発する理由 / Why Kotlin? at Henry
agatan
2
7.2k
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
340
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.2k
愛される翻訳の秘訣
kishikawakatsumi
3
330
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
76
5.2k
Music & Morning Musume
bryan
46
7k
RailsConf 2023
tenderlove
30
1.3k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.3k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Six Lessons from altMBA
skipperchong
29
4.1k
Balancing Empowerment & Direction
lara
5
800
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 !!