今年の
CyberSakuraの優勝校、
奈良高専に初訪問。どんな環境でも変わらないIPアドレスがうれしい、
Internet3による新しいIoT開発体験、楽しんでもらえました。
(
全国中高生のサイバーセキュリティ技術ナンバーワンを決める「CyberSakura」優勝は奈良高専チーム)
Internet3キャラバン、鳥羽商船高専に続く第二弾。
(
Internet3とNode-REDによる次世代アプリ開発入門 in 鳥羽商船高専)
Node-REDを使ってシンプルに友達のラズパイと接続を確認。LEDとボタンを外部端子につないで、自在に遠隔操作。どんなネットワークにつないでも、そのIPアドレスを使えばP2Pで安全につながります。
Internet3ユーザー専用掲示板「
BBS3」を使うと、それぞれのIPアドレスを共有するのに便利。
Node-REDの「inject」ノードをダブルクリックして、日時(タイムスタンプ)を数値1に変える、もう一つ「inject」を置いて同様に0に変える。つないで、それぞれボタンを押すことで1と0を伝えます。
表示用ノード debug に加えて、WebSocket を置いてつなぎたい端末のIPアドレスとパス名を記述。もうひとつの端末には待受用の WebSocket に同じパス名を記述し、その先に GPIO を置いて、電子工作でLED。
遠隔地のラズパイをカチカチ操作するコトができました!
ノードをいろいろ足したり、電子工作でいろんなものをつなぐだけで、それぞれの端末での役割を柔軟に設計できます。福井高専、鳥羽商船高専のInternet33ユーザーとの遠隔接続実習も楽しそう!
プログラミング好きのためのアドバンストコーナー。もっと、すばやく切り替えたいという学生要望に応えたトグルスイッチノード!ボタンを押すたびに1と0を交互に流すノードのつくりかた紹介。(src on GitHub)
<script type="text/javascript">
RED.nodes.registerType("toggle-button", {
category: "function",
color: "#a6bbcf",
defaults: {
name: { value: "" },
buttonState: { value: true },
},
inputs: 0,
outputs: 1,
icon: "file.png",
label: function() {
return this.name || "toggle-button";
},
button: {
onclick: async function() {
const url = "/toggle-button/" + this.id;
await fetch(url, { method: "POST" });
},
},
});
</script>
<script type="text/html" data-template-name="toggle-button">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i>Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
</script>
<script type="text/html" data-help-name="toggle-button">
<p>A simple toggle button node (1 or 0)</p>
</script>
管理用のブラウザ上で動く、フロント側をHTML内のJavaScriptで記述して
module.exports = (RED) => {
function ToggleButtonNode(config) {
RED.nodes.createNode(this, config);
const node = this;
node.on("input", (msg) => {
//node.warn({ RED, config, globalThis })
msg.payload = this.flg ? 1 : 0;
node.send(msg);
});
};
RED.nodes.registerType("toggle-button", ToggleButtonNode);
RED.httpAdmin.post("/toggle-button/:id", RED.auth.needsPermission("toggle-button.write"), function(req, res) {
const node = RED.nodes.getNode(req.params.id);
if (!node) {
res.sendStatus(404);
return;
}
node.flg = !node.flg;
node.receive();
res.sendStatus(200);
});
};
端末内(サーバー側)で受け取った側の動作を記述。ブラウザと端末はHTTP接続ですが、Internet3ならなりすましも盗聴も無いので安心です。
ものづくり工房というロボット製作用の部屋
夢づくり工房、こちらもロボット製作しています!
かつて自衛隊が使った、アメリカの練習飛行機、T-6テキサンが迎える奈良高専。学生による補修の記録が熱い!Internet3で互いに通信し合う、空のIoTも熱い!
(T-6 テキサンの現状に関する報告書)
ようこそ、自由なネットへ!
プログラミングとネットワークの活用はリベラルアーツ、どんな学科も安全で簡単なネットワークを使って新しいモノと社会を創りましょう。
2年ぶりのリアルチーム開発、jigインターン、参加募集中!
「jigインターン / 高専生・学生向けjig.jpのインターンプログラム」
新社屋とリニューアル古民家、楽しい仲間が待ってます!
links
- 奈良工業高等専門学校 情報工学科 サイバーセキュリティ教育研究部門