福野泰介の一日一創 - create every day

鯖江市役所JK課発の空席リアルタイムオープンデータを使ったアプリ「sabota
机の今の状況を伝える「つくえなう」が伝える一人がけ11座席の空き状況。
取材、視察が続く、鯖江の人気アプリ!


鯖江市図書館内、iPadでデモ、見えます!
ハードウェアメンテナンスに合わせて、iPhone7やiPadなどの画面サイズに合わせた調整も行いました。


ちぎれたコードをはんだづけして、すべての電池の交換。各座席に組み込まれるIchigoJamのボタンを押しながら電池ボックスのスイッチオンで光センサーの状況を無線LANを通じてサーバーへ送信するプログラムが自動起動!


つくえなう / sabota」図書館の開館時間は10時です!
座席のスタンドスイッチON、タイムラグ10秒程度でいることになります。
ぜひ一度、座りにいってみてください!
鯖江市図書館 文化の館

なんでも見えるまち、鯖江!
今週末は「電脳メガネサミット2016」開催です。

JK課考案、プリント基板化した図書館IoTの空席センサーの量産が完了。11座席に設置してきました。
座席上の電気スタンドボックス内に固定された100円均一の小型タッパーに電池込みでいれるだけと簡単!さすが無線!450円無線LAN ESP-WROOM-02 のおかげです!


見えている人気の1人がけ机、センサーが仕込まれていることはこの写真からはわからない


こちら11座席、センサーの状態をRでグラフ化
0-1023のアナログセンサーで光を状態を取得、925をしきい値として設置、青が電気スタンドを消して暗くなったタイミング=離席した時間。
5番と10番は、窓側に向いた座席となっていて明るく、設置した際、925のしきい値でうまくいかなかったため、暫定的に値の変化によって送信するモードにしてあるため、連続した送信になっている。
R: x$time >- as.POSIXlt(paste("2016/03/28 ",x$time))
R: plot(x$time,x$id,pch=20,col=ifelse(x$val >925,"blue","red"))


こちらが連続モードとしている5番のグラフ。
10時から12時半まで値が小さい=明るい=電気スタンドをつけている=たぶん机を使っている状態。
12時から13時まで使われていなくて、13時から再び利用されている。
明るさセンサーは結構ゆれることがわかる。
R: x2<-subset(x,x$id==5); plot(x2$time,x2$val)


理想的なグラフ1番、電気をON/OFFしたタイミングのみ無線LANモジュール(ESP-WROOM-02)の電源を入れ、送信するため単3電池2コで数ヶ月もつ・・・はず!
R: x2<-subset(x,x$id==1); plot(x2$time,x2$val)


4番、電気を消している時の値が、しきい値925付近のため無駄な通信が発生してしまっている。
R: x2<-subset(x,x$id==4); plot(x2$time,x2$val)

上昇時と下降時、それぞれにしきい値を設定する、しきい値をパターンに応じて自動設定するなど改造しておくのもいいかもしれない。 プログラムの変更、ハードウェアの調整、手軽にあれこれいじれるのがBASICのいいところ!(下記は前回との差分、T(=925)をしきい値に送信版)

150 OUT5,0:W=0:T=925 160 B=ANA(2)<T 170 FOR L=1 TO 1 180 CLT:A=ANA(2):?A 190 IF (A>T)<>B LED1:GOSUB @WIFISENDA:B=A>T:LED0 200 WAIT 3*60,0 210 L=0:NEXT


こちらが手量産したIchigoJamのWiFiシールドたち、プリント基板化したのではんだ付けは1つ10分ほどで済みました! 鯖江市図書館「文化の館」1人がけ机の空席を見るにはこちら「つくえなう / sabota


豊橋から、ご来鯖!オープンデータ、odp、IoT、IchigoJamHana道場をご案内しました。
地方に眠る宝の数々、どんどん発掘していきましょう!

鯖江市役所JK課アプリのsabota(さぼた)、第三弾はWiFiを使ったIoT版です。
iBeaconとiPadを使ったシステムは、11席ある座席の遠くの電波をうまく拾わないことがありましたが、今回はWiFiなので安心かも。iPadも不要になってより手軽に導入できるはず!


ひとまず中央の1席のみ試験的に設置。白い箱にWiFiとマイコンとして使っているIchigoJam、伸びている線の先には光センサーがついています。


箱の中身。電池とWiFiモジュール(ESP-WROOM-02でIoT実験)、センサーの値を定期的にシリアル送信するプログラムを書き込んだIchigoJamが入ってます。 IchigoJamのプログラムはこちら(ver1.1用)

1 'WIFI-UP 5 D=1 10 WAIT 60*10:UART3:? 20 ?"AT+CIPMODE=1":WAIT 60*2 30 ?"AT+CIPSTART=";CHR$(34);"TCP";CHR$(34);",";CHR$(34);"***.***.***.***";CHR$(34);",****":WAIT 60*2 40 ?"AT+CIPSEND":WAIT 60 50 ?D;" ";ANA(2) 55 LED1:WAIT3:LED0 60 WAIT 60*10 70 GOTO 50

事前に一度、ESP-WROOM-02のWiFi設定だけしておけばOK!
UART3はシリアル\r\nモード、****はサーバーのIPとPORT番号でソケット接続を使用


光センサーをケーブルで延長して仮設置。
コーポレートフェローシップの石崎さんがはんだづけしてくれました!


サーバー側のプログラムを変更して、机の電気を入れると、使ってるよマークがでることを確認!

懸案は電池の持ち。とりあえずは起動し続けてどれほど持つか実験してみますが、本運用する際には省電力モードに対応する予定です。

こちらのWebアプリでご覧いただけます。
つくえなう by 鯖江市役所JK課 / 鯖江市図書館(文化の館)空席状況確認アプリ
鯖江市図書館、文化の館、ビーコン館内ナビゲーション「さばとマップ」と合わせて現地でご体験ください!

JK課メンバーの不満から生まれた、図書館空席チェックアプリ、sabotaもしJKが「インパクトマッピング」を読んだら)。センサー故障も、利用者からの要望多いらしく、改修リニューアルとなりました。

コスト重視で赤外線を使ったセンサーIchigoJamを使ったシステムでスタートするも、センサー破損と不調をくりかえし、磁気センサーを経て、iBeaconバージョンをテスト。しばらくすると落ちてしまうことと省電力化の課題を残していました。

MyBeaconを使った半量産対応と、取り付け方法の課題を解決したと鯖江市役所の方から連絡あって、本日設置となりました!


新sabotaシステム!iBeaconが使うBluetooth4.0の電波が届きやすい場所に移設。


鯖江市役所開発の100均で3つで100円のタッパー&ネジ止めシステム!
数ヶ月、うまくいけば1年毎の電池交換もラクラク!


いくつかのステップを通じてオープンデータにする旧sabotaの流れ


iBeaconと無線LANを使ってぐっとシンプルになりました


旧システム、回収してまた別のシステムへの素材とします


新システム、1つ1,000円のAplix MyBeacon Fun MB005 Ac に、光センサーを加えたもの

多量の線材を回収して、ひとまず撤収。現在稼働しているセンサーは両端と中心の3箇所のみ、残りの設置を行って、sabotaバージョン2の本稼働となります!

iPadで動かしているアプリは、Swiftでつくっています。GClueさん公開のiBeaconのサンプルをベースに、Swiftの現バージョンで動くように更新したソースコードがこちら(ViewController.swift)。図書館センサーで使っているUUIDに変更しているので、図書館で試してみるとおもしろいです。

info.plist の Information Property List に NSLocationAlwaysUsageDescription という Key に Type=String で、位置情報利用許可メッセージを加えるのを忘れずに!(詳しくは、同GClueさん公開のiBeaconのサンプル

図書館空席センサーsabotaのつくえなう用、光センサーを使った新型を量産すべく、部品集め。iBeaconに、電子工作しやすいAplix MyBeacon Fun MB005(1,000円/コ)が便利そう。光センサーとして、秋月電子で照度センサ(フォトトランジスタ)NJL7302L-F3を調達。取説を参考にブレッドボードで実験した成功した接続方法がこちら。

MyBeaconのVDDに、電池3Vの+とフォトトランジスタ長い方を接続
MyBeaconのMODE1に、フォトトランジスタの短い方をと抵抗2.4kΩの片側を接続
MyBeaconのGNDに、電池3Vの-と抵抗2.4kΩの片側を接続


つくえなうセンサーiBeacon光バージョン、机の照明ボックス内側に貼り付けて使用する)

MyBeaconのUUIDは、Aplixの管理サイト「MyBeacon Administrator Portal」で割り当てられ、Major、Minorはスマホアプリ「MyBeacon Tool」から設定する。

アプリでログインし、設定(直接入力)を選び、起動したMyBeaconを近づけるとUUIDなどが設定できる。緯度経度の初期値がその場所になるので注意が必要。管理サイトで設定内容をCSVでインポートしておくと、設定(予約値反映)で順番に近づけるだけで一気に設定できて便利!

上記回路で、うまくいかないものもあって要調査だが、手軽な電子工作でiBeaconで遊べるので便利。IchigoJamにつないで、特定のゲームをクリアしたらiBeaconが発信され、次のステージへのヒントがでるフィールドゲームも楽しいかもしれない。

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / アイコン画像 / プロフィール画像