今期からOrizuruの関連メンバーでIoT/AI ソリューション事業部として新規事業部の立ち上げとなりましたので、
何かIoTっぽい事をやってみようと考えていた所
付近の座席に座るエンジニアから「暑い」「暑い」という声が…
あなたの業務中、付近の席の同僚からも「暑い」「寒い」といった声が聞こえて来るオフィスもあるのではないでしょうか?
オフィス内の空調は座席により不安定な所も多いようです。
そんなオフィス内の空調管理をめぐるエンジニア達の熱き戦いの日々のお話
※2018/02/16に弊社で開催したLT会にて自分が発表した内容の記事になります。
ある日事件は起きた
何が問題か
- オフィスの空調に安定感がなく、エリアにより暑いエリア、寒いエリアが発生する
- IoT/AIチーム席周辺は暑くなりやすいため、某上位エンジニアがやる気減↓ ↓
- そもそも空調管理問題はよくあるイタチごっこに陥りやすい(設定温度を上げれば暑い、下げれば寒い的な)
- コミュ障な我々が管理部に主張できない
IoTによる自動化へ踏み出そう
- 某上位エンジニアがやる気増→生産性向上↑↑
- 管理部に自分で伝達に行かなくても良い→業務上のコミュニケーションコストの削減
- コミュ障な我々が管理部に主張しなくて良い→精神衛生上の健康
構成
・ざっくり考えた初期の構想
・結局今回できたもの
準備したもの
基本コンセプト:時間・手間・費用を極力掛けない
・会社で拾った
- 温度センサー(展示会用)
- LANケーブルいくつか
・家で拾った(Amazonで拾った)
- Raspberry Pi3 Model B
- ブレッドボード
- ジャンプワイヤ
- LED
- 抵抗(330Ω)
実装
ブレッドボード
ブレッドボードの配線図は電子回路設計ツール Fritzingを使用し記載しています。
http://fritzing.org
コード(Node.js v5.12.0)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
'use strict'; const fs = require('fs'); const path = require('path'); console.log('Running....'); main(); function main() { try { run(); } catch (e) { console.log(e) } } function run() { const thresholdBase = 25; const targetDir = '/home/pi/FTP'; const files = getFiles(targetDir); if (files.length === 0) return; // 最新のファイルのみを対象に取得 const filePath = path.join(targetDir, files[files.length - 1]); const csvStr = fs.readFileSync(filePath, 'utf-8'); const value = getTemp(csvStr); console.log(value); const Gpio = require('onoff').Gpio, led = new Gpio(25, 'out') if (value <= (thresholdBase - 2.0) || (thresholdBase + 2.0) { fs.unlink(path.join(targetDir, file), function (err) { if (err) throw err; }); }); } function getFiles(targetDir) { const files = fs.readdirSync(targetDir).sort(); return files; } function getTemp(csvStr) { const rows = csvStr.split(/\r\n|\r|\n/); // 対象の温度数値のみ返す(今回は一箇所) return parseFloat(rows[rows.length - 1].split(',')[1]); } |
学び
- Linuxに関する知見が弱かったので、FTPサーバの立て方やパーミッションとかcronとか基礎知識の勉強になった。
- ハード面を考慮したシステム構成の考え方
- IoT界隈で流行りのラズパイでブレッドボード入出力
- 今後自動制御機構を進化させて行くと回路の勉強になりそう
- 実装に伴い、処理フローは日頃業務で実装しているOrizuru Gatewayでの知見が役に立った
今後やりたいこと
- 今回はコントローラを自動制御する機構まで作成できなかったのでその機構の追加(ハード面の検討含む)
- 設定温度の設定機構
- 現在の設定温度の通知機能
- そもそも空調自動制御装置を設置する事が管理部に許されるのか不明なので、その根回し
まとめ
今回はセンシングしたデータからLチカまでの実装で
システムによる完全な自動「制御」というところまでは実装できませんでしたが
空調を変更してくれる誰かがLチカ通知を受けて独りでに調整してくれれば
実質半自動化したようなものですよね!(笑)
今後も時間を見つけて進化させていきたいと思います!
また、他のIoT的なテーマに関しても日々目を配っていこうと思います!