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
ufoo68
July 14, 2020
Technology
0
510
GraphQLをIoTで使う
ufoo68
July 14, 2020
Tweet
Share
More Decks by ufoo68
See All by ufoo68
文法で学ばないJavaScript
ufoo68
0
45
Cookieとは?
ufoo68
1
62
今更ながら、開発現場での生成AI活用について
ufoo68
0
62
28歳独身エンジニア 婚活してみた
ufoo68
0
25
OpenAIでクッキー型を作る
ufoo68
1
59
初めて開発リーダーをやってみた話
ufoo68
0
130
M5Stack用の指紋認証デバイスを試す
ufoo68
0
870
結婚式のクイズアプリを自作した話
ufoo68
0
670
M5Stack Core2とAlexaでインターフォンに自動で対応してくれるIoTデバイスを作りたかった話
ufoo68
0
720
Other Decks in Technology
See All in Technology
「Blue Team Labs Online」入門 - みんなで挑むログ解析バトル
v_avenger
0
180
社内レビューは機能しているのか
matsuba
0
130
JAWSDAYS2026 [C02] 楽しく学ぼう!AWSとは?AWSの歴史 入門
hiragahh
0
160
Tebiki Engineering Team Deck
tebiki
0
27k
進化するBits AI SREと私と組織
nulabinc
PRO
0
200
バクラク最古参プロダクトで重ねた技術投資を振り返る
ypresto
0
130
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
13k
Sansanでの認証基盤内製化と移行
sansantech
PRO
0
510
プラットフォームエンジニアリングはAI時代の開発者をどう救うのか
jacopen
6
3.5k
複数クラスタ運用と検索の高度化:ビズリーチにおけるElastic活用事例 / ElasticON Tokyo2026
visional_engineering_and_design
0
160
JAWS DAYS 2026 楽しく学ぼう!ストレージ 入門
yoshiki0705
2
190
スクリプトの先へ!AIエージェントと組み合わせる モバイルE2Eテスト
error96num
0
180
Featured
See All Featured
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
140
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
440
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
340
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
350
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
990
The SEO Collaboration Effect
kristinabergwall1
0
390
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
110
A Soul's Torment
seathinner
5
2.5k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
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氏に感謝