再びM5ATOM Lite上のESP32 genericポートのMicroPythonに戻ってまいりました。今回はESP32系ならでは?のWebREPLを使用してみたいと思います。Network接続されているMicroPythonデバイスのREPLにホストのブラウザから接続する機能であります。確かに使えるのだけれどクセが強い。
MicroPython的午睡(58) micro:bit v2、MicroPython書込
以前 BBC micro:bit v1上でMicroPythonを動かしてみたことがあったのです。メモリが小さな v1 では大したスクリプトを動かせなかったです。しかしメモリ容量の拡大した v2 でなら動くはず。今回、MicroPythonのビルドからやってインストールしてみたのですが、調べてみたらビルドなど不要でした。トホホ。
MicroPython的午睡(57) ATOMLite、NodeREDからブザーを制御
前回はM5ATOMLiteに接続したブザーをPWMで鳴らせるようにしました。今回は、ブラウザ画面からNode-REDダッシュボードを操作して、そのブザーを鳴らしてみようと思います。鳴らしたままだとウルサイので止める機能も仕込んでありますよ。それにしてもATOMLite用のダッシュボード、項目増えすぎか。
MicroPython的午睡(56) ATOMLite、パッシブ・ブザー接続
このところM5ATOMLite側からNodeREDサーバーに「報告」するばかりで、逆方向のアクションがありません。そこでATOMLiteにPassive Buzzerを取り付けてみました。サーバーからブザーを鳴らせば「注意喚起」(何の?)が出来ると。今回はPWM駆動でブザーを鳴らすところまで。
MicroPython的午睡(55) ATOMLite、NodeREDにCdSセル結果報告
前回 M5ATOMLiteのADCにCdSセルを接続し、値を読み取ることができました。今回は測定値をサーバ機Raspberry Pi3上のNodeREDに報告です。DHT11、BMP280と「既に通ってきた道」なので以下同文でOK、っと思ったら温度、湿度グラフのところにバグが。。。まあついでに修正。
MicroPython的午睡(54) ATOMLite、ADCにCdSセルを接続
今回はM5 ATOMLiteのアナログ機能を使ってみるべし、と思い立ち、光量によって抵抗が変化するCdSセルを取り付けてみました。以前ラズパイPicoで接続した筈の部品をそのまま流用したので、MicroPythonのコードもほぼほぼ流用。しかしね、なんか特性変わってるんじゃね。まずはATOMLiteとの接続ですが、端子少ない割に意外と使えます。
MicroPython的午睡(53) ESPRESSIF、ESP-EYEでLチカを
ESP-EYE、サンプルソフトで動作確認、そしてビルド環境をセットアップと2回作業をしたのですが、未だに自分で書いたプログラムでLチカさえも動かせてません。ESP-IDFの敷居が高いです。そこで今回は極端なショートカットでLチカを動かしてみました。ご存じESP32用genericポートを使えば3分でLチカ動いてしまう。
MicroPython的午睡(52) ATOMLite、気圧の測定結果をNode-REDへ
前回、定番の圧力センサ Bosch BMP280の補償計算をなんとかやっつけてMicroPythonで気圧と温度を測れるようになりました。今回は測った結果を、例によってMQTTに載せてNode-REDへ報告し、Dashboard上にグラフ表示してみます。まずは前回プログラムのモジュール化から。
MicroPython的午睡(51) ATOMLite、BMP280の補償計算大変なのね
前々回、温度と湿度を測ってNode-REDに報告しました。今回は気圧も測るべしということで、定番の圧力センサBosch BMP280をMicroPythonから制御してみることに。ただし読み取りは自前のコードで実施。簡単に圧力読めるものと思っていたら、補償の計算大変なのね。自分でやってみないと身にしみませぬ。
MicroPython的午睡(50) ATOMLite、やらかしTZ、カレンダ変換
前回、ATOMLiteで温湿度を測ってサーバーのNode-REDに報告をあげるようにいたしました。測定テストで温湿度の日変化を測るべし、とてATOMLiteを動かしたまま眠りについて発覚しました。アイキャッチ画像を御覧じろ。25時?RTCがそういうこと言う?私のバグでした、トホホ。NTPで得たUTCと、報告用のJSTの変換の間違い。
MicroPython的午睡(49) ATOMLite、温湿度を測ってNode-RED報告
今回からようやく外付けのデバイスをM5ATOMLiteに接続して、ラズパイで走っているNode-REDとの間を繋ぐところに入ってまいります。その1は、ありがちな「温度、湿度」のご報告です。ここまでの準備で、回路も簡単、ソフトも簡単、ほとんど何もやることがないです。本当か?
MicroPython的午睡(48) 中途半端なリファクタリング。組み込みには組み込みの?
前回、内蔵のLEDとスイッチがNode-REDから使えるように復旧しました。今回はいよいよ外付けハード追加と思ったのですが、その前にスクリプトを整理することにいたしました。カッコよく言うならリファクタリングというやつ。でも作業しながら、どうするのが良いのか迷いましたです。迷える子羊(?そうは見えないが)にお導きを。
MicroPython的午睡(47) genericポートでもM5ATOMLiteはOKよ
前回、uasyncioのお陰でNode-REDサーバとの通信タイミングを自由に決められるようになりました。今回からM5ATOMLiteに「手足」をつけ、前回までに整備?した「インフラ」を使ってNode-REDとの間を接続して行きたいとおもいます。外付けハードの制御の前に、最初は内蔵のLEDとスイッチだな。
MicroPython的午睡(46) uasyncioでMQTT送受信、ATOMLite
前回までで「エッジ側」M5ATOM LiteとNode-REDサーバー(Raspberry Pi 3)との間でMQTTを介してJSONオブジェクトを送受できるようになりました。しかし不満なのは送受信のタイミングです。前回まで単一のmainループにお任せだったので便利とは言えない仕組みでした。今回から uasyncioを使って改良していきたいと思います。