Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

node.js

NodeJS express製のアプリのPOSTアクションでbodyがundefinedしか入らなくなった件

過去にNodeJS express製アプリのPOSTアクションを受け付ける処理を実装しました。 久しぶりに引っ張り出して動かしたところ……なぜかformからの内容がundefinedと空になって受け付けない事態に。 nodeJSなんて選択肢が無い時に使うもんで全く勉強が追いついて…

AzureのIoT系をつかう その8:実物RasPiで指令データをうける

実際のところ config.json { "connectionString": "Your Primary Connection String Here", "interval": 2000 } index.js(node.js版) 新しいライブラリとしてonoffを導入します $ npm install onoffこの状態で const fs = require('fs'); const device = req…

AzureのIoT系をつかう その7:実物RasPiからデータを送る

実際のところ shuzo-kino.hateblo.jp でデバイス登録とRasPiにIoT Hub用のnodeJs環境が構築されている状態を想定します。 config.json { "connectionString": "Your Primary Connection String Here", "interval": 2000 } index.js(node.js版) const fs = re…

AWS Lightsailで動くexpress(node.js)なアプリをHTTPS対応させる

実際のところ 前提環境 AWS LightSail certbot for apache まずはcertbotを導入。 $ sudo apt install certbotLightsailのnode.js版はデフォではapacheが動いています。 なのでapache用の拡張ソフトを導入します。 $ sudo apt install python3-certbot-apach…

Node-RedでMJPEG  その2:Imagemagickで加工したWEBカメラの結果を表示

実際のところ もっとスマートな方法はいくらかあったのでしょうが、とりあえず動くものを。ホスト名は"picam"としますまず画像の保存先にてシンプルなサーバーを起動 $ python3 -m http.server 8080 --directory /home/pi/ この状態で [ { "id": "7f2b6b5c.6…

node-red-node-ui-listでwidgetにリスト表記を追加 その2:画像をローカルのものに

実際のところ ローカルファイルはWEB鯖経由で配信し、それを受け取る様式にします。 画像の配信(http.serverをつかって) 画像の入ったディレクトリで $ python3 -m http.server 8000 node-red側 手前でJSONを以下のように吐き出します [ { "title": "ONE",…

node-red-node-ui-listでwidgetにリスト表記を追加

実際のところ データはJSONで出す [{"title":"<b>Apple</b>","description":"This is description of <font color=\"red\"><b>Apple</b></b>.","icon":"https://upload.wikimedia.org/wikipedia/commons/thumb/1/15/Red_Apple.jpg/500px-Red_Apple.jpg"},{"title":"<b>Banana</b>","description":"This is …

toLocaleTimeStringでHH:DD:SSな時刻文字列を生成できる

これまでjavascriptで時刻文字列を生成するときはgetHours他で必要な情報をとり文字列に結合していました。 Javascript書く時は横着してリファレンスをあまり見ないのですが、ちゃんと読んでみたら……ありましたピッタリなのが。 実際のところ Node-Redで時刻…

Node-RedでSVGを描画する その6:HTMLタグを植え込む

shuzo-kino.hateblo.jp の続き 実際のところ <svg x="0" y="0" height="300" viewBox="0 0 100 100" width="300" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> </svg>

Node-RedでSVGを描画する その5:base64でラスター画像を埋め込む

これはNode-RedというよりSVGの仕様ですが……SVGにはIMAGEタグにbase64埋込でラスター画像を表示できます。 実際のところ <svg x="0" y="0" height="300" viewBox="0 0 100 100" width="300" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> </svg>

Node-RedでSVGを描画する その4:Viewboxで見え方を変える

SVGにはviewboxというオプションがあります。 名前の通りで見え方を決めるオプションで 実際のところ 参考もと Manipulate the viewbox · bartbutenaers/node-red-contrib-ui-svg Wiki · GitHub viewBox - SVG&colon; Scalable Vector Graphics | MDN

Node-RedでSVGを描画する その3:SVGにイベントを設定しPayloadに載せたりJavascriptを実行したりする

shuzo-kino.hateblo.jp の続きで、イベント 実際のところ イベントのわりあて 実際にマウスオーバーするとこんな感じでメッセージが表示されます 前回と同様に作っていればスライダーで半径が変わりますが、 ゼロの場合には読みだされないので、使いどころ次…

Node-RedでSVGを描画する その2:変数の受取による動的変化

shuzo-kino.hateblo.jp の続き。 前回のでは直接記述でしたが、今回はこれに変数経由でパラメータを送り込むように作ってみます。 実際のところ 他のノードと同様、変数は"{{msg.payload}}"のような感じで与えます。

Node-RedでSVGを描画する その1:環境構築とUIの表示

ベクター画像であるSVG形式をNode RedのUIでも活用できる「node-red-contrib-ui-svg」を見つけたのでメモ 実際のところ パッケージ「node-red-contrib-ui-svg」を追加するとUIのところに新しいアイコン ノードを開くと、こんな感じの画面が デカデカと出…

filterノードで文字通りのフィルタリングをする

Node-redにはfilterノードというのもあり、一定の範囲内では値を読み捨てたり、逆に急激な変化を無視したりできます 実際のところ UIのスライダーとグラフを用いて超簡易フィルターとして使ってみますこの程度だと旨みがないですが、外付けカメラから得られ…

Raspberry Pi 4b にnodered環境をつくりUSBカメラの内容を表示させる

Raspberry Pi 4b でnode redのUIからUSBカメラの内容を表示してみたのですがDockerだとUSBデバイス周りの取り回しが苦労したので本体に直接焼く事にしました。 実際のところ 導入 node-red-contrib-usbcamera を導入 なぜかRasPiの方にアイコンが追加される …

Node-RedをHTTPS化する

公式の説明にもある通り、Node-Redはデフォでは安全ではありません。例としてwebcamのような接続デバイスを使うパッケージだと、そもそも稼働しない事も。 実際にパッケージ公式の説明にも Browser Support This node will work in all modern browsers, but…

NodeRedでSQLite3を使う

ある程度が大きくなってくると、流石にデータの保存が問題になってきます。 幸い、NodeRedのパッケージにはSQLite3との接続パッケージがあります。 実際のところ node-red-node-sqlite 初期状態ではDBもないので、「新規にsqlitedbを追加」をクリック ローカ…

node-redで遊ぶ その8:MQTTで通信する

外部のarduino デバイスとMQTTで通信する 実際のところ MQTT送受信のノードはデフォを使う ただしサーバー自体は引っ張ってくる必要あり実績の多い(らしい)node-red-contrib-aedesを導入。 aedesを設定 ノードをつなぐと、こんな塩梅。 出口が二つあるので…

node-redで遊ぶ その7:決まった時刻•日時に実行する

Injectのオプションで指定できます 実際のところ ループ動作を入れると、こういうマークがつく 使える 秒 日時 日付

node-redで遊ぶ その7:ダッシュボード接続元のカメラを連動させる

shuzo-kino.hateblo.jp で使ったダッシュボードに対し、node-red-node-ui-webcamという拡張を使うと接続元のカメラを使った撮影を利用する事が可能 遠隔地の機体でカメラを使う場合はfswebcamを使う別のノードを利用すること(後述) 実際のところ WEB UIと…

node-redで遊ぶ その5:拡張機能をつけてダッシュボードをつくる

node-REDには他ユーザーの作ったノードを利用できる拡張機能があります。 公式提供のwidgetはちょっとしたダッシュボードを作るのに便利です。 実際のところ パッケージの導入 設定に飛び 「パレット」 ~> 「ノードを追加」で「node-red-dashboard」と入力し…

node-redで遊ぶ その4:udpパケットを送る

実際のところ これをUbuntu 20.04LTS on Dockerのnetcatでうけると…… $ netcat -u -l 9999 Thu Oct 06 2022 15:10:13 GMT+0000 (Coordinated Universal Time) 参考もと

node-redで遊ぶ その3:簡易Web鯖を立てる

実際のところ <html> <head></head> <body> <h1>Time: {{ timestamp }}</h1> </body> </html> Inspectは毎回自分で実行する必要はありますが……。 http://localhost:1880/helloにアクセスすると 参考もと Create an HTTP Endpoint : Node-RED Include data captured in another flow : Node-RED

node-redで遊ぶ その2:javascriptな関数をつかう

実際のところ // Create a Date object from the payload var date = new Date(msg.payload); // Change the payload to be a formatted Date string msg.payload = date.toString(); // Return the message so it can be sent on return msg; 参考もと node…

node-redで遊ぶ その1:環境構築と最初のflow

観測範囲では主に自宅IoTまわりの人が使っている(ように思える)node-redを少し弄ってみました node-redは名前の通りnode環境です ちょっと前ならnode.jsな時点で敬遠していたでしょうが、ある程度ツールも作成できるようになったので、まぁええかなと 実際…

underscore.jsでEnumbleなデータを楽しく扱う

nodejsを書いていて、mapだのlistめいた挙動をやりたい……と何となく感じていましたが、世のなか同じ発想の人は多かったようです underscore.jsはEnumbleなデータをガリガリ弄るのに適したライブラリです。 実際のところ ライブラリを読んで使うわけですが、"…

nodejsでtcp socketをつかう

実際のところ 送り手 var net = require('net'); var HOST = 'localhost'; var PORT = 9999; var client = new net.Socket(); client.setEncoding('utf-8'); client.setTimeout(1000); client.connect(PORT, HOST, function() { console.log('CONNECTED TO: …

node.jsからgoogle driveをつかう その3:画像のダウンロードと表示

実際のところ トークンの生成 前回と同様、drive.fileのスコープにしないと使えないので注意 スクリプト function downloadFile(auth) { var fileId = 'XXX'; var dest = fs.createWriteStream('/images/photo.jpg'); drive.files.get({ fileId: fileId, alt…

node.jsからgoogle driveをつかう その2:ファイルアップロード

実際のところ トークンの生成 前回のサンプルと異なり、Scopeを変更しないといけません ファイルにアクセスするのは"https://www.googleapis.com/auth/drive.file" 具体的にはこんな感じで書き換わるはず const SCOPES = ['https://www.googleapis.com/auth/…