MicroPython的午睡(52) ATOMLite、気圧の測定結果をNode-REDへ

Pressure_EC
Joseph Halfmoon

前回、定番の圧力センサ Bosch BMP280の補償計算をなんとかやっつけてMicroPythonで気圧と温度を測れるようになりました。今回は測った結果を、例によってMQTTに載せてNode-REDへ報告し、Dashboard上にグラフ表示してみます。まずは前回プログラムのモジュール化から。

“MicroPython的午睡(52) ATOMLite、気圧の測定結果をNode-REDへ” の続きを読む

ブロックを積みながら(45) Node-RED、Dashboard、formノード

Form_EC
Joseph Halfmoon

前々回、Node-REDダッシュボードのTemplateノードを使ってみました。表示ができるだけでなくボタンを配置して入力にも使える優れものでした。今回は同じく入出力兼用のformノードを使ってみます。ユーザーとのインタフェースを作るにはバッチリ?なノードです。

“ブロックを積みながら(45) Node-RED、Dashboard、formノード” の続きを読む

ブロックを積みながら(44) Node-RED、Dashboard、Chartノード

chart_EC
Joseph Halfmoon

Node-REDのDashboardのノード群には、常々お世話になっているのでありますが、よくわからないまま「成り行き」で使ってしまっています。今回はグラフを描くときに使うchartノードについて、使い方を確かめて行きたいと思います。ついでにRandomノードについてもチャッカリとテスト。

“ブロックを積みながら(44) Node-RED、Dashboard、Chartノード” の続きを読む

ブロックを積みながら(43) Node-RED、DashboardのTemplateノード

dashboard_template
Joseph Halfmoon

前回Templateノードを試してみました。しかし手元のパレットにはもう一つTemplateノードがあります。前回は「機能」パレットでしたが今回は「Dashboard」パレットの中のノードです。Dashboardは人とのインタフェースを担いますが、その中でも入出力双方をできるTemplateノードはお役立ちか?

“ブロックを積みながら(43) Node-RED、DashboardのTemplateノード” の続きを読む

MicroPython的午睡(49) ATOMLite、温湿度を測ってNode-RED報告

ATOMLite_Dashboard
Joseph Halfmoon

今回からようやく外付けのデバイスをM5ATOMLiteに接続して、ラズパイで走っているNode-REDとの間を繋ぐところに入ってまいります。その1は、ありがちな「温度、湿度」のご報告です。ここまでの準備で、回路も簡単、ソフトも簡単、ほとんど何もやることがないです。本当か?

“MicroPython的午睡(49) ATOMLite、温湿度を測ってNode-RED報告” の続きを読む

MicroPython的午睡(48) 中途半端なリファクタリング。組み込みには組み込みの?

FILES_Thonny
Joseph Halfmoon

前回、内蔵のLEDとスイッチがNode-REDから使えるように復旧しました。今回はいよいよ外付けハード追加と思ったのですが、その前にスクリプトを整理することにいたしました。カッコよく言うならリファクタリングというやつ。でも作業しながら、どうするのが良いのか迷いましたです。迷える子羊(?そうは見えないが)にお導きを。

“MicroPython的午睡(48) 中途半端なリファクタリング。組み込みには組み込みの?” の続きを読む

ブロックを積みながら(41) Node-RED、SplitしたらJoinするしかないな。

Join_Test_FLOW
Joseph Halfmoon

前回は、Sequenceを作り出すために Splitノードを使ってしまいました。さすれば、今回は Joinノードを使ってSplitしたSequenceを元に戻してみるしかありません。やって見ればシミジミ会得できました。何もすることはありません。勝手に元に戻ります。これもSplitノードが「仕込んで」くれているお陰。

“ブロックを積みながら(41) Node-RED、SplitしたらJoinするしかないな。” の続きを読む

ブロックを積みながら(40) Node-RED、配列をSplitして、Switchで仕分け

split_switch
Joseph Halfmoon

前回はSwitchノードを使って「仕分け」をやってみましたが、Sequence rulesによる仕分けというものは出来ませんでした。今回はSplitノードを使って配列要素をSequenceとして並べ、それをSwitchノードで仕分けてみたいと思います。まさにベルトコンベアで流れてくる箱を行き先別に仕分けるイメージ。

“ブロックを積みながら(40) Node-RED、配列をSplitして、Switchで仕分け” の続きを読む

ブロックを積みながら(39) Node-RED、行き先切り替え、Switchノード

Switch_FlowECB
Joseph Halfmoon

前回のChangeノードは、「積荷」を載せ替えたりするためのものでした。今回のSwitchノードは、「行き先」への仕分けを担うもの、という感じです。仕分けの方法もいろいろあって非常に便利です。今回はその基本部分を使ってみますが、一見しただけでもなかなか便利。

“ブロックを積みながら(39) Node-RED、行き先切り替え、Switchノード” の続きを読む

MicroPython的午睡(46) uasyncioでMQTT送受信、ATOMLite

M5ATOM Flow
Joseph Halfmoon

前回までで「エッジ側」M5ATOM LiteとNode-REDサーバー(Raspberry Pi 3)との間でMQTTを介してJSONオブジェクトを送受できるようになりました。しかし不満なのは送受信のタイミングです。前回まで単一のmainループにお任せだったので便利とは言えない仕組みでした。今回から uasyncioを使って改良していきたいと思います。

“MicroPython的午睡(46) uasyncioでMQTT送受信、ATOMLite” の続きを読む

ブロックを積みながら(38) Node-RED、Changeノード、実は超強力

Change Nodes Flow
Joseph Halfmoon

今回、Changeノードを使ってみて、その強力さをようやく理解しました。特にJSONata式を使うことでJSONオブジェクトに対してQueryをかける機能が良い感じです。この際、JSONataを勉強せねばと思いました。今まで Functionノードで書いていたもののかなりは Change ノードで代替可能に思えてきました。そして分かり易くて、書きやすい。今まで損していた?

“ブロックを積みながら(38) Node-RED、Changeノード、実は超強力” の続きを読む

MicroPython的午睡(45) MQTTでJSON-OBJ受信、M5ATOMLite

MQTTsettings_Flow
Joseph Halfmoon

前回が「送信」であったので、今回は当然「受信」です。しかし受信で想定しているのは何か設定値がホストから指令されてくるというシーン。「設定値」ともなるとそれを保存しておく場所から用意しておかないとマズイ気がします。そこで、設定値はNode-REDからアクセスできるSQLiteのデータベースに記録しておき、それを取り出して送ることに。今のところ何も効果はないですが。

“MicroPython的午睡(45) MQTTでJSON-OBJ受信、M5ATOMLite” の続きを読む

AIの片隅で(25) ESP-EYE、ESP32+カメラとマイク、とりあえず写真を一枚

ESP-EYE_working
Joseph Halfmoon

Espressif製の「AIoT」開発ボード、ESP-EYEを入手いたしました。ぶっちゃけESP32のDevkitに、カメラとマイクを搭載した小型ボードという感じです。売りは “Voice Wake-up” と “Face Recognition” です。今回は出荷時状態のまま、電源入れて、一声かけて?カメラを起動、写真を1枚キャプチャしてみました。私の中国語通じちゃう?

“AIの片隅で(25) ESP-EYE、ESP32+カメラとマイク、とりあえず写真を一枚” の続きを読む

MicroPython的午睡(44) MQTTでJSON-OBJ送信、M5ATOMLite

uJsonFlow
Joseph Halfmoon

前回 MQTT Subscribe ができたので、MicroPythonで動いているM5ATOM LiteとNode-REDを動かしているRaspberry Pi 3機で上り下りの通信がOKとなりました。今回は、通信内容をJSON化して後で拡張しやすいようにしてみたいと思います。まずはPublish側から。使用するMicroPythonモジュールはujsonです。

“MicroPython的午睡(44) MQTTでJSON-OBJ送信、M5ATOMLite” の続きを読む