クリエイター手抜きプロジェクト[558]IoT obniz編 LEDを制御する(2)/古籏一浩

投稿:  著者:  読了時間:9分(本文:約4,400文字)



今回もobnizでLEDを制御してみます。前回はひとつだけでしたが、今回は三つのLEDを制御します。三つということで赤色、黄色、緑色にしました。信号機と同じです(緑色でなく青色の地域もありますが、そこはお好みで)。

・抵抗内蔵5mm赤色LED(5V用) OSR6LU5B64A-5V
http://akizukidenshi.com/catalog/g/gI-12517/

・抵抗内蔵5mm黄緑色LED(5V用) OSG8NU5B64A-5V
http://akizukidenshi.com/catalog/g/gI-12518/

・抵抗内蔵5mm黄色LED(5V用) OSY5LU5B64A-5V
http://akizukidenshi.com/catalog/g/gI-12520/

・抵抗内蔵5mm青色LED(5V用) OSB5SA5B64A-5V
http://akizukidenshi.com/catalog/g/gI-12519/

3つのLEDをobnizの端子に差し込みます。obnizの端子はどこに何を差してもよいのですが、どこに何を差し込んだかは自分で把握しておく必要があります。




ここではそれぞれの色を以下のように差し込みました。

赤色LED
 io0:+(アノード)
 io1:-(カソード)

黄色LED
 io4:+(アノード)
 io5:-(カソード)

緑色LED
 io8:+(アノード)
 io9:-(カソード)

それでは、すべてのLEDを点灯させてみます。LED制御のためのオブジェクトは、それぞれのLEDごとに生成する必要があります。

<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
<script src="https://unpkg.com/obniz@1.5.2/obniz.js"></script>
</head>
<body>
<div id="obniz-debug"></div>
<script>
var obniz = new Obniz("機器番号");
obniz.onconnect = function () {
var LED_red=obniz.wired("LED", {anode:0 , cathode:1 });
var LED_yellow=obniz.wired("LED", {anode:4 , cathode:5 });
var LED_green=obniz.wired("LED", {anode:8 , cathode:9 });
LED_red.on();
LED_yellow.on();
LED_green.on();
}
</script>
</body>
</html>

三つなので、個別にオブジェクトを生成し個別に名前を付けてあります。もし、複数のLEDを処理するような場合は、配列を使った方がよいでしょう。

次にボタンクリックでLEDを点灯させるプログラムですが、以下のようになります。ボタンをクリックするたびに該当するLEDが点灯、消灯します。

<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
<script src="https://unpkg.com/obniz@1.5.2/obniz.js"></script>
</head>
<body>
<div id="obniz-debug"></div>
<button>赤色</button>
<button>黄色</button>
<button>緑色</button>
<script>
var obniz = new Obniz("機器番号");
obniz.onconnect = async function () {
var red=false,yellow=false,green=false;
var LED_red=obniz.wired("LED", {anode:0 , cathode:1 });
var LED_yellow=obniz.wired("LED", {anode:4 , cathode:5 });
var LED_green=obniz.wired("LED", {anode:8 , cathode:9 });
$("button:eq(0)").click(function(){
if(red){ LED_red.off(); } else { LED_red.on(); }
red=!red;
});
$("button:eq(1)").click(function(){
if(yellow){ LED_yellow.off(); } else { LED_yellow.on(); }
yellow=!yellow;
});
$("button:eq(2)").click(function(){
if(green){ LED_green.off(); } else { LED_green.on(); }
green=!green;
});
}
</script>
</body>
</html>

単にボタンクリックでLEDが点灯、消灯するだけでつまらないと思った人がいるかもしれません。でも、よく考えてみてください。

obnizはインターネット上で接続されていれば、どこにあってもよいのです。つまり、離れたところに自分の状態もしくはセンサーなど環境状態を知らせるのにobnizは大変便利なのです。

例えば自分のステータスを知らせるobnizを、編集部や会社などにおいておきます。遅刻しそうになったり、締め切りに間に合いそうもないときは赤色を点灯させます。

何の問題もない場合には緑色を点灯させておくといった使い方もできます。自分の精神状態を他の人に知らせるような場合にも使えるかもしれません。

緊急事態発生時にはLEDを点滅させて知らせる方法があります。このような場合は、以下のようなプログラムになります。

<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
<script src="https://unpkg.com/obniz@1.5.2/obniz.js"></script>
</head>
<body>
<div id="obniz-debug"></div>
<script>
var obniz = new Obniz("機器番号");
obniz.onconnect = async function () {
var LED_red=obniz.wired("LED", {anode:0 , cathode:1 });
var LED_yellow=obniz.wired("LED", {anode:4 , cathode:5 });
var LED_green=obniz.wired("LED", {anode:8 , cathode:9 });
while(true){
LED_red.on();
LED_yellow.on();
LED_green.on();
await obniz.wait(1000);
LED_red.off();
LED_yellow.off();
LED_green.off();
await obniz.wait(1000);
}
}
</script>
</body>
</html>

obnizは使い方やアイデア次第で、さらに便利なIoT機器として使うことができるのです。


【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/

Twitterのタイムラインに流れてきた話題のアニメ映画「若おかみは小学生!」をみてきました。テレビアニメ版は見てないのですが、本屋には前々から置いてあって気にはなってました。

前知識ゼロで見に行ったのですが、泣けちゃいますな。たぶん、前知識なしで見た方がいいんじゃないかなって気がします。絵柄はTVアニメ版の方が好みだけど...

・若おかみは小学生!(映画)
https://www.waka-okami.jp/movie/

・創って学ぼうプログラミング
https://news.mynavi.jp/series/makeprogram

・みんなのIchigoLatte入門 JavaScriptで楽しむゲーム作りと電子工作
https://www.amazon.co.jp/dp/4865940936
[正誤表]
http://www.openspc2.org/book/error/ichigoLatte/

・After Effects自動化サンプルプログラム 上巻、下巻
https://www.amazon.co.jp/dp/4844397591
https://www.amazon.co.jp/dp/4844397605

・IchigoLatteでIoT体験
https://www.amazon.co.jp/dp/B06X3X1CHP
http://digiconcart.com/dccartstore/cart/info/2561/218591

・みんなのIchigoJam入門 BASICで楽しむゲーム作りと電子工作
http://www.amazon.co.jp/dp/4865940332/

・Photoshop自動化基本編
http://www.amazon.co.jp/dp/B00W952JQW/

・Illustrator自動化基本編
http://www.amazon.co.jp/dp/B00R5MZ1PA/

・4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/

・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/