2022-06-30
今年の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
- 奈良工業高等専門学校 情報工学科 サイバーセキュリティ教育研究部門

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS