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
GraphQLをIoTで使う
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ufoo68
July 14, 2020
Technology
510
0
Share
GraphQLをIoTで使う
ufoo68
July 14, 2020
More Decks by ufoo68
See All by ufoo68
BlenderをCodexで動かす
ufoo68
0
140
改めて考えるOSSのあり方について
ufoo68
0
48
文法で学ばないJavaScript
ufoo68
0
61
Cookieとは?
ufoo68
1
71
今更ながら、開発現場での生成AI活用について
ufoo68
0
77
28歳独身エンジニア 婚活してみた
ufoo68
0
32
OpenAIでクッキー型を作る
ufoo68
1
66
初めて開発リーダーをやってみた話
ufoo68
0
140
M5Stack用の指紋認証デバイスを試す
ufoo68
0
890
Other Decks in Technology
See All in Technology
多角的な視点から見たAGI
terisuke
0
130
ボトムアップ限界を越える - 20チームを束る "Drive Map" / Beyond Bottom-Up: A 'Drive Map' for 20 Teams
kaonavi
0
170
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
100k
AI対話分析の夢と、汚いデータの現実 Looker / Dataplex / Dataform で実現する品質ファーストな基盤設計
waiwai2111
0
340
いつの間にかデータエンジニア以外の業務も増えていたけど、意外と経験が役に立ってる
zozotech
PRO
0
370
Vision Banana: Image Generators are Generalist Vision Learners
kzykmyzw
0
340
変化の激しい時代をゴキゲンに生き抜くために 〜ストレスマネジメントのススメ〜
kakehashi
PRO
5
1.2k
2026年春のAgentCoreアプデ 細かいやつ全部まとめ
minorun365
3
220
フロントエンドの相手が変わった - AIが加わったWebの新しいインターフェース設計
azukiazusa1
33
11k
AI飲み会幹事エージェントを作っただけなのに
ykimi
0
120
Agent の「自由」と「安全」〜未来に向けて今できること〜
katayan
0
350
2026-05-14 要件定義からソース管理まで!IBM Bob基礎ハンズオン
yutanonaka
0
120
Featured
See All Featured
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
500
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
390
30 Presentation Tips
portentint
PRO
1
290
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
210
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
190
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
Darren the Foodie - Storyboard
khoart
PRO
3
3.3k
Music & Morning Musume
bryan
47
7.2k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
290
Docker and Python
trallard
47
3.8k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
180
Transcript
IoTLT vol.65 GraphQLをIoTで使う
自己紹介 • 名前 ◦ 松永勇太(@ufoo_yuta) • 出身地 ◦ 滋賀県 •
やってること ◦ スポーツIoTLT主催 • 最近の趣味 ◦ VRゲーム
GraphQLとは • WEB APIのためのクエリ・スキーマ言語 ◦ クライアントアプリのためのクエリ ◦ データのモデル定義のためのスキーマ • Facebookの開発チームが提案
◦ 公開は2015年 • 個人的に好きなWEBの規格
GraphQLを用いた開発 かなりざっくりとしたイメージ↓ • クエリ ◦ クライアントアプリからのリクエスト ◦ GETやPOSTのようなもの • リゾルバ
◦ リクエストに対するレスポンス処理と同じイメージ クエリ構文解析 リゾルバ実行
GraphQLをIoTで使うとは? IoTデバイスから送られたデータを GraphQLサーバで受け止めてみる
データ送信にMQTTを用いる • IoTでよく使われている通信規格 • 軽量なプロトコル • pub/subモデル • 今回のイメージ↓ IoTデバイス
(publisher) MQTTサーバー GraphQLサーバー (subscriber)
今回の発表について こちらの記事を参考にしました↓ Live IoT Data Subscription with Apollo GraphQL and
MQTT
IoTデバイスはM5StickCを使用 コードは以前に記事にまとめた「M5StickCで歩数計を作る」の内容のものを流用 やりたいことは、 1. M5StickCの内蔵センサを用いて歩数を計測 2. 歩数データをJSON化 3. MQTTサーバーへ送信
サーバー側の開発環境 • GraphQLサーバー ◦ 言語 ▪ Node.js ◦ ライブラリ(主要なものだけ) ▪
express ▪ apollo-server-express ▪ graphql-mqtt-subscriptions • MQTTサーバー ◦ Eclipse Mosquittoのテスト用ブローカー
デバイス側の開発環境 • マイコン ◦ M5StickC • 言語 ◦ Arduino •
ライブラリ ◦ PubSubClient ◦ ArduinoJson
GraphQLサーバーのためのスキーマ type SensorData { steps: Int! // 歩数 time: String!
// タイムスタンプ } type Subscription { subscribe2sensor(topic: String!): SensorData! } schema { subscription: Subscription }
センサーデータを受信するクエリ subscription { // GraphQLとリアル通信を行うためのクエリ subscribe2sensor(topic: "test/+/env") { steps //
歩数 time // タイムスタンプ } }
動画
さいごに • GraphQLをIoT開発に使うことができた • MQTTはsubscribeと組み合わせることができる • 実際にクライアントアプリを作ってみるとGraphQLの恩恵に授かれそう • 記事を書いてくださったShan Desai氏に感謝