Node-REDのMQTTブローカノードを使ってみた
概要
enebular上のNode-REDにMQTTブローカを立てて、通信してみました。備忘録として残します。
手順
1.MQTTブローカノードをインストール
2.MQTTテストフロー作成
次に示す4種類のノードを使用しました。
・MQTT inノード
・MQTT outノード
・injectノード
・debugノード
ノードを次のように配置し、接続しました。
MQTT outノードの設定箇所は次の通りです。
・プロパティ
- トピック:/pub
- Qos:2
・接続
- サーバ:localhost
- ポート:1883
・セキュリティ
- ユーザ名:任意
- パスワード:任意
MQTT inノードの設定はMQTT outノードと同じです。
デプロイ後、injectボタンを押すとmsg.payloadの内容がデバッグコンソールに表示されます。
おわりに
ここまでやって5分でした。
Node-REDお手軽ですね!!
FT232HのMPSSEでSPIモード1を使うときの落とし穴(備忘録)
FT232HのMPSSE機能を利用し、USB-SPI変換をしました。
接続するSPIスレーブデバイスがSPIモード1で動作します。
MPSSEのデータシートを見ると、OPCODE"0x01"が使えそうです。
しかし、このまま使う事ができませんでした。
原因はsclkの初期値を"1"にしていない事でした。
流れとしては、
(1) CS :Low、sclk:High
(2)データ送信
(3)CS:HIgh、sclk:Low
データシート見ても見当たらなかったような...。
いろいろFT232Hの情報を集めてやっとたどり着いたのが
「トランジスタ技術 2006 1月号」
こちらにはFT2232Hの使い方が細かく掲載されています。
トラ技は神!
Raspberry PiでNode-REDを実行する
概要
Raspberry PiでNode-RED実行環境を構築した備忘録です。
開発環境
- ターゲットデバイス : Raspberry Pi 2
- ターゲットOS :Raspbian Buster Lite
- Node.js : v10.15.2
- npm : v6.10.0
手順
1.パッケージのアップデートをしておく
sudo apt-get update
sudo apt-get upgrade
2.Node-REDとnpmをインストール
sudo apt-get install nodered
update-nodejs-and-nodered
3.Node-REDの自動起動設定
sudo systemctl enable nodered.service
自動起動したくない場合は、通常の起動コマンドを使用する。
node-red-start
4.Node-REDエディタを展開
ブラウザから↓URLにアクセス。
http://raspberrypi.local:1880/
↓エディタ画面
メモ
Raspberry PiにおけるNode-RED設定ディレクトリは次のパスです。
/home/pi/.node-red
ZYBOのブートSDカード作成 ~Debian~
概要
ZyboのブートSDカード作成を行った備忘録です。
準備
次の作業は完了済みとして、root file sysytemの書き込みについて記述しています。
・ブートファイルは準備済み
・SDカードのパーテション編集
・ブートパーテションにブートファイルを配置
開発環境
SDカード作成はVMware上のUbuntuで行っています。
参考
FPGAといえばこのブログですね(^^)
marsee101.blog19.fc2.com
手順
LinaroからLinux imageをダウンロードします。
https://releases.linaro.org/debian/images/installer-armhf/17.08/
今回は
linaro-stretch-installer-20170706-43.tar.gz
を使用します。
※古いバージョンだとDebianのサポートが終了していることがあり、"apt-get update"でエラーが発生するので新しいバージョンにしました。
デスクトップにダウンロードしてきて解凍します。
【ダウンロードコマンド】
sudo wget https://release.linaro.prg/debian/images/installer-armhf/17.08/linaro-stretch-installer-20170706-43.tar.gz
【解凍コマンド】
sudo tar -zxvf linaro-stretch-installer-20170706-43.tar.gz
解凍すると"binary"ディレクトリができます。
SDカードをマウントして、パーテションext4にbinary下のファイルシステムをコピーします。
【マウント先ディレクトリ生成コマンド】
sudo mkdir /mnt/fat32
sudo mkdir /mnt/ext4
【SDカードのマウントコマンド】
sudo mount /dev/sda1 /mnt/fat32
sudo mount /dev/sda2 /mnt/ext4
注意:sda1 ➡ sda2の順にマウントしないとエラーが発生してマウントできない。
sudo mv ./binary/* -t /mnt/ext4
Debianのファイルシステムが書き込まれたことを確認します。
【ディレクトリ確認コマンド】
ls /mnt/ext4
確認出来たらSDカードをアンマウントします。
【アンマウントコマンド】
sudo umount /dev/sda1
sudo umount /dev/sda2
ZYBOにSDカードをセットして、シリアルコンソールで起動確認して終了です。
ZYBOで動作するDebianにユーザを追加する(ホームディレクトリ生成)
Node-RED デスクトップ v0.9.0でカスタムノードを作成する
概要
Node-REDデスクトップ版のV0.9.0が公開されました!
特徴を見てみましょう。
↓公式サイトから抜粋
Node-RED デスクトップ | Node-RED Desktop
「Node generator組み込み済み」。これはとてもうれしい機能です。
今まではコマンドプロンプトでコマンドを打っていて面倒でした。
functionノードからカスタムノードを作成
早速、Node-REDデスクトップ版でカスタムノードを作ってみますインストールについては、公式サイトからzipまたはexeをダウンロードしてインストールするだけでとっても簡単でした。
※ウイルスバスターがインストールを阻害してくるのが面倒な程度です。
次のようなフローを作成しました。
injectノードからtimestampを受け流すだけのfunctionノードです。
functionノードを展開して、ツールバー「tool」→「Generate a custom node」をクリックするとカスタムノードが生成されます。
完了するとエクスプローラが立ち上がり、生成されたファイルを確認できます。
生成されたノードファイルは次のパスにあります。
C:\Users\ユーザ名\.Node-RED-Desktop\
作ったカスタムノードは、ツールバー「tool」→「Add alocal node...」を選択し、追加したいノードフォルダ(今回は"node-red-contrib-test")を選択するとパレットに追加されます。
おわりに
Node-REDのエディタとNode generatorが一体になったので、とても便利になったと思います。
ESP32のデバッグ便利ツール紹介~スタックトレースを解析
1.概要
ESP32でプログラム開発中、ある事をするとリブートしてしまう問題が発生しました。Arduino IDEで開発しているとブレークポイントデバッグできないので困っていました。そんな時、デバッグの便利ツールを見つけたの紹介します。
スタックトレースを解析する"EspExceptionDecoder"です。
このツールはシリアルコンソールに出力されるトレース情報を解析し、ソースコードのどの部分で問題が起きているか表示してくれます。
2.導入
導入方法は以下のサイトを参考にさせていただきました。
3.使用方法
"EspExceptionDecoder"を導入後にArduino IDEを再起動し、ビルドし直す必要があります。ビルドを忘れてツールを開くとelfファイルの選択画面が表示されます。(ビルド時に現プロジェクトのelfファイルパスがEspExceptionDecoderに通ると思われます)
シリアルコンソールを開いているとリブート時のログが表示されます。その中にスタックトレース情報があります。”Backtrace :” で始まるログです。参考に、私の環境で表示されたログは次の通りです。
ツールの導入が正しく行えていれば、Arduino IDEのツール内に"EspExceptionDecoder"があるので起動します。起動すると次のような画面が表示されます。
シリアルコンソールに表示されているスタックトレースをコピーして貼り付けます。
私の場合では
Backtrace: 0x400d2248:0x3ffca210 0x4008e559:0x3ffca270
です。
貼り付けると次のように問題の箇所が表示されます。
この情報のおかげでデバッグできました!