IoT技術って?【Obnizに触れてみた】

みなさんこんにちは!日本工学院八王子専門学校から三週間インターンシップに参加させていただいた徳増瑠菜と申します。今回はブログを書いてみようということでとりあえず書こうという意思で書きますので言い回しなど暖かい目で読んでくださると幸いです。よろしくお願いいたします!

 

ということで今回はIoTに触れていこうかなと思います。IoTって皆さん知っていますか?IoTとは簡単に言うとモノがインターネットに繋がる仕組みです。最近家電がスマホで操作できたりしますよね、その家電たちがIoTの技術を使っています。

私はIoTは将来性が高く、これから発展していく技術として個人的には一位を張り合えるんじゃないかなって思っています。

なぜそう思っているか簡単にご説明いたします!

 

IoTの将来性について

一つ目は日々の生活に入ってくることです。最近だと天気予報と連動したり生活パターンを予測したりして運転方法を考えるエアコン、空き状況がリアルタイムでわかるコインパーキングなどIoTの技術を使って生活が楽に豊かになってきています。まだ生活に入ってきていると感じている人は少ないかもしれません。しかし、あと何年かすると当たり前の世界になっていると思います。

 

二つ目はスマートシティです。スマートシティって知ってますか?自分はIoTについて知るまでスマートな街ってなにって思っていました。スマートシティとは町全体がIoT技術で連携され交通システムの最適化やエネルギーの効率化、公共サービスの改善などが図られることです。例を出すならごみ収集の効率化とかでしょうか。IoTと共に生活する未来があるってこと、つまりスマートシティが実現する未来はそう遠くないということです。

 

三つめは自動化です。人間って自動化好きですよね、自分も好きです。調べてから知りましたがIoTを組み合わせると自動化を強化できるそうです。機械学習による自己学習によって精錬された振る舞いができるようになるらしいです。なにかを自動化させるためにIoTの技術を使うことは普通になってきそうですね。

 

他にも考えられることはたくさんありますが今回はこの三点をピックアップさせていただきました。個人的意見ですのでご了承ください。

IoTの将来性が高いということは触れておいて損はない!と考え授業の時間を利用しObnizを使って簡易的な防犯センサーを作成したのでこちらをご紹介いたします。

 

Obnizでの簡易的な防犯センサーつくってみた

Obnizって?

まずObnizについてご説明いたします。Obnizとは株式会社Obnizによって開発された、IoT(Internet of Things)デバイスの開発を簡素化するためのプラットフォームです。Obnizを使用することで、非常に簡単にインターネットに接続できるデバイスを作成することができます。主な特徴として、ハードウェアの接続が簡単、ブラウザから制御可能、豊富なライブラリとAPIがある、拡張性が高いなどがあげられます。特にプロトタイピングや初心者向けのIoT開発に向いており、 ハードウェアとソフトウェアの両方の知識があまりない人でも簡単に始めることができます。私は先生からObnizを二台お借りして今回開発を行いました。

開発内容

今回目を付けた点は人口減少による空き家の増加から防犯面まで管理が行き届いていない点です。
Obnizに人感センサーとLEDマトリックスを外付けし、人を感知した時LEDマトリックスを〇に点灯(普段は×点灯)Obnizディスプレイには「人感知」の表示させます。センサー反応後所有者の端末に通知(間隔は10秒)を行い、別のObnizに情報を共有しLEDマトリックスを〇に点灯、Obnizディスプレイに「危険」の表示を行います。

稼働映像は以上の通りです。見にくい動画ですがご了承ください。

今回はjavaScriptでプログラムを組みNode.jsを使いました。Obnizのスターターキットに入っていたLEDマトリックスと人感センサーを使用しています。Obnizはブラウザ上でプログラムを組めるのも利点ですが今回通知機能の制作で問題がありVSCodeで途中から作成しております。

動画の説明です。右のObnizに人感センサーを付けて検知しています。センサー自体が強いものではないので少しラグがありますが、検知した際携帯のLINEに通知が飛んでいること、薄いですがLEDマトリックスが〇に光っていることが見えるかと思います。LINEに通知を送る際、時間を設定せずに稼働するとDOS攻撃みたいになります。そのため、現在時刻と最後に検知した時刻を関数に代入しその差が5秒以上の際に通知を送るよう設定しています。

以下にプログラムコードを抜粋して人検知があった場合の処理とLINE Notifyから通知を送る処理コードを貼ります。

 // 人の検知があった場合の処理
function handlePersonDetection() {
var currentTime = Date.now(); //現在時刻格納
// 前回通知が行われていない(detectionFlag = false)
// かつ currentTime と lastTime の差が 5 秒以上の時に通知を送信
if (!detectionFlag && currentTime - lastTime > 5 * 1000) {
detectionFlag = true;
obniz.display.clear();
obniz.display.font("sans-serif-bold", 16);
obniz.display.print('人検知');
displayMode = "text";
obniz2.display.clear();
obniz2.display.font("sans-serif-bold", 16);
obniz2.display.print('危険');
displayMode = "text";
matrix.clear(); // MatrixLED をクリアする
matrix.brightness(10); // 明るさを設定
matrix.draw(ctx); // 'O'を再描画
matrix2.clear(); // もう一方の LED 設定
matrix2.brightness(10);
matrix2.draw(ctx);

// LINE Notify から通知を送信
request(OPTIONS, function(error, response, body) {
if (error) {
console.log("Error sending LINE Notify:", error);
} else {
console.log("LINE Notify Response:", body);
}
}); 

// LED 点灯時間設定
obniz.io2.output(true);
obniz2.io2.output(true);

// 切り替えタイムアウト設定
clearTimeout(detectionTimeout);
detectionTimeout = setTimeout(function() {
handleNoPersonDetection();
}, 300); // 0.3 秒間の遅延

// 最後の通知時間を更新
lastTime = currentTime;
}
} 

今回LINE Notifyを使用し、自分のアカウントのアクセストークンをプログラムに張り付けているものになっています。また、検知してない間は時計として使えるよう時計表示を標準と設定しています。

 

今後の展望

今回は人を感知した際、所持者に通知が行き別の機器に送信・表示まで制作したが応用すればもっといい機能または別の用途に使うことができると思います。
自分が今後つけようと思った機能の例としては、
・音が出る機能(まわりの人に知らせるため)
・危険を知らせた側にも通知が送られる機能(人を検知する側のみにしか通知が送られない仕様になっているため)
・双方で検知、双方に通信ができるように(今回は一方通行の仕様になっているため)

 

感想

考えは持っていても行動ができていなかったIoTに触れるということをできてよかったです。思っていたより難易度が高くなかったのも新しい気づきでした。スケジュールを組んで何回も開発をしていますが、スケジュール通りにいくことはあまりなくいつも唸りながら作っています。それでも毎回なにかに気づけて何かを得られています。さらに、作り上げた時の達成感はいつもうれしいです。途中詰まりながらもこれからも作ろうと思えたらいいなと思います。

 

まとめ

今回はObnizを通してIoTを初めて触ってみました。IoTについて一人でも多く関心を持っていただくと同時にIoTについてあまりハードルが高くないものだという認識が広まれば幸いです。

最後まで読んでいただきありがとうございました❣

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です