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
社会の窓締め忘れ通知バックルを作った話epsode2
Search
Yoshiaki110
April 23, 2018
1.1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
社会の窓締め忘れ通知バックルを作った話epsode2
Yoshiaki110
April 23, 2018
More Decks by Yoshiaki110
See All by Yoshiaki110
リモートお酌システム.pdf
yoshiaki110
0
570
Featured
See All Featured
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
520
Thoughts on Productivity
jonyablonski
76
5.4k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
540
The Curse of the Amulet
leimatthew05
3
15k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The Pragmatic Product Professional
lauravandoore
37
7.5k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
900
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.1k
Un-Boring Meetings
codingconduct
0
430
Exploring anti-patterns in Rails
aemeredith
4
510
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Transcript
None
自己紹介
「遠隔お酌」ご存知ですか センサー付きの徳利を傾けると 離れた場所にあるお酌装置がお酒を注ぐ • 実家のお父さん、お母さんと • 田舎のおじいちゃんと • 単身赴任の旦那さんと •
海外留学の友達と 離れていても いっしょに飲んでいる気分♪ ♪ ネットのつながりを 心のつながりに 「遠隔お酌」でググってね 懇親会でデモします
三年前のある日 • 京浜東北線の車内 • 昼間なので空席多い • 私の前に立つ人が • 膝が付くぐらいぴったり、座りたい?隣の席は空いている のに
本題にいきます
三年前のある日 • 変な奴!でも、かっこいい、みっちーに似ている、私よりちょっと若い • 私の顔の前で、自分の股間を指さした(自慢したいのかな?) • 知らん顔していたら、隣に座って、ピッタリ寄り添ってきた • 気持ち悪りっ!!て思った瞬間、左手を私の膝に、右手は私の股間に ピンチ!!
私のチャックが全開でした • そうです、みっちーはチャックが開いているのを 人に知られないように 一生懸命私に教えてくれてたのです • それを、気持ち悪りって、いけない私... • ということで、締め忘れを通知する (ベルトの)バックルを作ることにしました
1年前に作ってIoTLTで発表しています • 市販のBLEセンサの磁気センサ を利用 • チャックにつけた磁石が離れる とスマホから警告音 • それでも、チャック上げないと 電話がかかる
Qiitaにも書いた
湿度で尿漏れ通知 • 湿度センサもついてる • 年とると、切れが悪くなる • ブツをしまった後にタラーッと • ズボンにシミが •
センサの位置を下に(股に)設置 ついでの機能
若い女性にも使える? もしかして、湿度センサは • ジジ・ババ以外につかえるかも • 準備OK • パートナーにそっとおしらせ
LINEで確認 実証実験してません • 恥ずかしがり屋の 草食男子には便利?
昨年の装置は、大きな問題が!! •チャック忘れるような人は、高齢のかたで スマホもっていない
他人のスマホを使っちゃえ と、ゆうことで •LINEビーコン •お友達になっていれば、ペア リングなしでBLE通信できる • アドバタイジングパケットに データを入れられる
社会の窓チャンネル • 近くにある、ビーコン付きバックル の状態を検知、チャックが開いてい る場合 • 「近くにチャックあけているかたがい ます、教えてあげてください」 • 恥ずかしい場合、電話で教えること
もできる
構成はこんなかんじ • BLE Nano(Arduino)に磁気ス イッチ • チャックにつけた磁石が離れる と近くのスマホにメッセージ • メッセージのへ返答で電話をか
けることも可能
デモ • 3分枠なので • 懇親会でデモします
人が教えてあげるって よくない? • すべて機械でやるのは、いいのか? • やさしさ、つながり、を考慮すべきでは? • つまらない時代、つまらないアプリになってしまう • 遠隔お酌のコンセプトと同じ「つながり」
湿度センサの追加機能 ところで 誰だ? どこだ? • 電車の中で準備OK • 席立てなくて、乗り過ごす学生続出?
技術情報
BLE NANO 2 • Mbed電源でもArduinoでも開発可能 • 今回は、慣れている、Arduinoを使用 • スイッチサイエンスで2192円 •
USBライターが必要、本体とセットで3888円
状態 LED ビーコン信号 電源投入時 ゆっくり点滅 ー 磁石が近くにある (チャックが閉まっている) 消灯 ー
磁石が近くにない∴チャックが開いている (磁石が離れてから、10秒間) 早く点滅 ー 磁石が近くにない∴チャックが開いている (磁石が離れてから、10秒以上経過) 点灯 発信
#include <nRF5x_BLE_API.h> #include "setting.h" BLEDevice ble; uint8_t sid[] = {0x6F,
0xFE}; uint8_t sdata[] = {0x6F, 0xFE, 0x02, 0x01, 0xDE, 0xAD, 0xBE, 0xEF, 0x7F, 0x00}; uint8_t hwid[] = HWID; int cnt = 0; void advertising() { ble.init(); ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE); ble.accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LIST_16BIT_SERVICE_IDS , sid, sizeof(sid)); ble.accumulateAdvertisingPayload(GapAdvertisingData::SERVICE_DATA , sdata, sizeof(sdata)); ble.setAdvertisingType(GapAdvertisingParams::ADV_NON_CONNECTABLE_UNDIRECTED); ble.setAdvertisingInterval(160); // 100ms; in multiples of 0.625ms ble.setAdvertisingTimeout(5); // 単位は秒 ble.startAdvertising(); ble.waitForEvent(); ble.stopAdvertising(); ble.shutdown(); delay(150); } void setup() { Serial.begin(9600); NRF_POWER->DCDCEN = 0x00000001; pinMode(LED, OUTPUT); pinMode(D2, INPUT_PULLUP); memcpy(&sdata[3], hwid, 5); for (int i = 0; i < 10; i++) { // 10秒間ウエイト digitalWrite(LED, HIGH); // LED ON delay(500); digitalWrite(LED, LOW); // LED OFF delay(500); } }
oid loop() { int data = digitalRead(D2); if (data) {
if (++cnt & 0x1) { digitalWrite(LED, HIGH); } else { digitalWrite(LED, LOW); } if (cnt > 30 ) { // 3秒間 digitalWrite(LED, HIGH); advertising(); // チャックが開いている時だけ通信 } } else { cnt = 0; digitalWrite(LED, LOW); } Serial.println(data, HEX); delay(100); }