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
memory
PRO
April 24, 2019
Programming
9.8k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ハムスターを監視するシステムを Raspberry Pi と PHP の Swoole で作った話.pdf
memory
PRO
April 24, 2019
More Decks by memory
See All by memory
セグメントとターゲットを意識するプロポーザルの書き方 〜採択の鍵は、誰に刺すかを見極めるマーケティング戦略にある〜
m3m0r7
PRO
1
920
PHP で mp3 プレイヤーを実装しよう
m3m0r7
PRO
0
410
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
200
AI 時代だからこそ学ぶべき PHP の基礎
m3m0r7
PRO
7
2.4k
JVM の仕組みを理解して PHP で実装してみよう
m3m0r7
PRO
1
600
コードゴルファー道
m3m0r7
PRO
0
610
ChatGPT とつくる PHP で OS 実装
m3m0r7
PRO
3
520
事業観点から見る技術的負債の返済
m3m0r7
PRO
4
1.3k
PHP でアセンブリ言語のように書く技術
m3m0r7
PRO
1
280
Other Decks in Programming
See All in Programming
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
3.6k
RTSPクライアントを自作してみた話
simotin13
0
520
Swiftのレキシカルスコープ管理
kntkymt
0
220
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
200
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
0
200
AIチームを指揮するOSS「TAKT」活用術 / How to Use “TAKT,” an OSS Tool for Orchestrating AI Teams
nrslib
6
870
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.3k
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
120
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
230
Contextとはなにか
chiroruxx
0
280
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
130
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
2
460
Featured
See All Featured
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
Unsuck your backbone
ammeep
672
58k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
150
Making Projects Easy
brettharned
120
6.7k
GitHub's CSS Performance
jonrohan
1033
470k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Between Models and Reality
mayunak
4
330
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
610
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.7k
The Curious Case for Waylosing
cassininazir
1
380
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 !!