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
My Smart? Home Architecture with Golang
Search
y_matsuwitter
June 22, 2015
Programming
6
3.5k
My Smart? Home Architecture with Golang
「我が家のアーキテクチャ with Gokang」
GoCon2015 summerにて
y_matsuwitter
June 22, 2015
Tweet
Share
More Decks by y_matsuwitter
See All by y_matsuwitter
Building Products in the LLM Era
ymatsuwitter
11
9.6k
Product Utilization of Large Language Models Starting Today
ymatsuwitter
3
2.8k
経営・意思・エンジニアリング
ymatsuwitter
23
20k
LLM in 2023 and 2024
ymatsuwitter
8
5.8k
Turbulent Technological Changes and Career Strategies
ymatsuwitter
2
2.8k
LLM in toB Service and Its UX
ymatsuwitter
7
11k
Agent and small LLM validation
ymatsuwitter
7
3k
Information management for a culture of speed: The story of Notion and LayerX
ymatsuwitter
4
10k
Monorepo on AWS
ymatsuwitter
0
320
Other Decks in Programming
See All in Programming
レベル1の開発生産性向上に取り組む − 日々の作業の効率化・自動化を通じた改善活動
kesoji
0
270
新メンバーも今日から大活躍!SREが支えるスケールし続ける組織のオンボーディング
honmarkhunt
5
8.2k
技術同人誌をMCP Serverにしてみた
74th
1
680
Git Sync を超える!OSS で実現する CDK Pull 型デプロイ / Deploying CDK with PipeCD in Pull-style
tkikuc
4
240
코딩 에이전트 체크리스트: Claude Code ver.
nacyot
0
870
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
2
14k
初学者でも今すぐできる、Claude Codeの生産性を10倍上げるTips
s4yuba
16
12k
Railsアプリケーションと パフォーマンスチューニング ー 秒間5万リクエストの モバイルオーダーシステムを支える事例 ー Rubyセミナー 大阪
falcon8823
5
1.4k
PHPで始める振る舞い駆動開発(Behaviour-Driven Development)
ohmori_yusuke
2
420
テストから始めるAgentic Coding 〜Claude Codeと共に行うTDD〜 / Agentic Coding starts with testing
rkaga
15
5.3k
Agentic Coding: The Future of Software Development with Agents
mitsuhiko
0
120
ペアプロ × 生成AI 現場での実践と課題について / generative-ai-in-pair-programming
codmoninc
2
20k
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Fireside Chat
paigeccino
37
3.5k
YesSQL, Process and Tooling at Scale
rocio
173
14k
The Language of Interfaces
destraynor
158
25k
Balancing Empowerment & Direction
lara
1
440
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
4 Signs Your Business is Dying
shpigford
184
22k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Testing 201, or: Great Expectations
jmmastey
43
7.6k
We Have a Design System, Now What?
morganepeng
53
7.7k
Transcript
զ͕ՈͷΞʔΩςΫνϟ w/ Golang Architecture of my smart? home with Golang
About me • Gunosy inc., Corporate Officer • iOS, Android,
Infrastructure, Web, etc... • Uses Golang in production since 2014/02 • ਖ਼࠲
Lunch Hack @Gunosy • ͓னʹࣾһͰू·ͬͯࣗ༝ʹ։ൃਐΊΔΠϕϯτ • ࠓճͷ͓͜͜Ͱ։ൃͨ͠ͷͰ͢
͍ͭͰGolangΤϯδχΞืूத We are always hiring Golang engineers.
About today's talk • झຯ։ൃͰࣗΛͦΕͬΆ͍εϚʔτԽͨ͠ • The story about my
(maybe not) intelligent home
Overview
Overview • MQTT broker centered architecture • RaspberryPi with temperature
and humidity sensor • Slack with bots • IRKit (as air conditioner controller) • Influxdb (for data store) • Mackerel (for server monitoring)
with Golang!!
MQTT with Go MQTT is a machine-to-machine (M2M)/"Internet of Things"
connectivity protocol. It was designed as an extremely lightweight publish/subscribe messaging transport.
MQTT with Go • MQTT Broker centered, event driven data
flow. • One to many Pub/Sub message queueing. • 2 kind of topics. (/command, /sensor)
RaspberryPi with Go • Collect sensor data (SHT21) • Send
sensor values to MQTT broker • Monitored by mackerel-agent with kidoman/embd
Slack Bot with Go • Using Slack's slash command and
incoming webhook integrations. • A Slash command process sends command event to MQTT Broker. • Bot Processes receive events and send some information to Slack.
IRKit with Go • Wifi connected remote controller • HTTP
API • MQTT broker => command event => Go => Power on/off More about IRKit => Link
Demo
Point • Send events and sensor values to MQTT anyway.
Golang empowers your home hack. Runs almost anywhere you want.