Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
GraphQLをIoTで使う
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ufoo68
July 14, 2020
Technology
540
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GraphQLをIoTで使う
ufoo68
July 14, 2020
More Decks by ufoo68
See All by ufoo68
BlenderをCodexで動かす
ufoo68
1
660
改めて考えるOSSのあり方について
ufoo68
0
83
文法で学ばないJavaScript
ufoo68
0
95
Cookieとは?
ufoo68
1
100
今更ながら、開発現場での生成AI活用について
ufoo68
0
97
28歳独身エンジニア 婚活してみた
ufoo68
0
51
OpenAIでクッキー型を作る
ufoo68
1
83
初めて開発リーダーをやってみた話
ufoo68
0
160
M5Stack用の指紋認証デバイスを試す
ufoo68
0
950
Other Decks in Technology
See All in Technology
AIとペアプロを始める。人とのペアプロをやめる。ペアプロの良さを改めて知る。もっと好きになった。 / Rediscovering Pair Programming
honyanya
1
350
OpenTelemetryのメトリクスをCloudWatchに送ってPromQLで見てみた
ota1022
0
120
生成AIのテナント制御とシャドーMCP対策 | AIを"止めずに"、情報を守る
yukun
0
160
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
2
480
AIオーケストレーションを活用した 開発ワークフローの設計と実践
bqnq
0
140
アリアドネの糸と、20年ごとの建て替え ── 長尾真『電子図書館』を、伊勢で読み直す / Rereading Makoto Nagao’s "Electronic Library" in Ise
ykiyota
0
160
Gitは怖い?共有ワークスペースから始めるSnowflakeチーム開発
coco_se
0
160
「図書館」という名前のままでいいのか -Code4Lib JAPANカンファレンス2026 アンカンファレンス報告- / Code4Lib JAPAN Conference 2026: Unconference Report
ykiyota
0
170
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
140
Where Is JetBrains AI Heading- — Central CLI, Air Alpha, and the Agentic Development Stack
x5gtrn
PRO
0
160
Reactの設計論
uhyo
14
8.3k
AI時代だからこそ、スケールしないことをやろう
yutashigemura
1
150
Featured
See All Featured
A designer walks into a library…
pauljervisheath
211
25k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
440
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
My Coaching Mixtape
mlcsv
0
310
How to Think Like a Performance Engineer
csswizardry
28
2.8k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
Done Done
chrislema
186
16k
Building AI with AI
inesmontani
PRO
1
1.2k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Ruling the World: When Life Gets Gamed
codingconduct
0
330
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
270
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氏に感謝