最近make系をしてないので活を入れる為に、電力スマートメーターを読み出して表示してるのを作り変えようと計画。
いま自宅でうごいてるのはRaspberryPi3とロームのBP35A1を使ってpythonでやってる奴。これの前に動かしていたのはマイコンはmbed LPC1678でC++で書いた奴。
で、次はマイコンははESP32系でmicroPythonでやろうと。M5StickCplusがあいてるのでコレに移植しようかと。まぁ、ゆっくりやっていきます。
2021/03/21
watt表示機の作り変え計画
2021/02/11
ESP32 MicroPythonで室内観測開始
pi picoを買って、MicroPythonを入れてみたけど、chrome osからシリアルが認識されないのでほおってある。流石にraspberry piでは認識できたけどね。
で、先月VScodeの開発環境をchrome osに入れたので、ESP32 MicroPythonの温度・湿度・明るさセンサーの配線を整理して、BLE-Ambientゲートウェイのコードに追加して動作させてみた。
今動いてるESP32-Arduinoベースのセンサは並行稼働させとく。こちらは来月になったら取り外す感じで良いかな。
2021/01/24
XBee3ではなくESP32 のMicroPython開発環境構築
年始から細々とやっていたESP32のMicroPythonでBLE advertiseでセンサー値やり取りの実証ができた。さすがに、エディタで編集して、ampyでアップロードして、screenで確認してを続けるのは嫌なのでIDEを整備した。年末年始にも試したけど上手く動かなかたので再チャレンジ。
環境はchrome osのLinuxコンテナ(Debian 10)。
・uPyCraft 1.0
これはubuntu16.04しか動作保証されてない。起動してもzlib 1.2.9を要求される。zlibのソース持ってきて makeして配置しても駄目。造り手が保証してないから無かった物にする。
・thonny 3.3.3
動いた。どっかでみた事あると思ったら Raspbianに入ってるヤツだな。見た目はシンプルだけどかんたんにMicroPython側にコード焼けた。最低限これが使える事はわかった。
・PyCharm 2020.3.1 & MicroPython 1.1.3 プラグイン
MicroPythonの設定で/dev/ttyUSB0に設定してるのにつながらないのは、pyserial, ampyなどを別に参照してるっぽいのと、起動し直すたびにMicroPythonの設定が初期状態に戻ってしまうからみたい。
いろいろ試してるうちに、アップロードできたけど、コンソールを自動で閉じてくれないのでttyUSB0掴んでてampyがアップロードエラーになるとかこなれていない。
PyCharmはDigi XBeeプラグインによるXBee3専用開発環境にしとこうと思う
・VScode & Pymakr拡張機能 1.1.7
自分、VScodeに慣れていないのであるが、じっくりやったらESP32 にコードアップロードできた。アップロード時にコンソール掴みっぱなしも無い。ほぼこれをメインにすることが決定した。残念な点はVScodeはキーボードショートカットでいろいろ楽できるのだけど、左手1本の現状では押せるショートカットが限られる点。ま、折り合いを付けていこう。
というわけで開発環境が準備できた。
今、ESP32でArduino codeで動かしてる部屋温度、照度センサーは ESP32 MicroPythonに切り替える。
あとXBee3の雨センサー。GalliumOS,Windows10廃止の際に最新ソースが行方不明(苦笑)。昨日XBee3実機のFLASHを見てみたら main.pyじゃなくて main.mpy(プリコンパイルされたコード)だったのだ。なので、同じ動作をするようなコードを作っておこうと。こちらはPycharmで。
というわけで、動作確認の為の部屋温度、照度、&湿度センサーを仮組みして、コードも動作確認できた。本組みし直してambientゲートウエイにも対応追加して連続稼働テストに向かいます。やっぱ今後はマイコンのコードサイズが許す限りはpythonでやろうと思う。
2021/01/07
2020/12/30
raspberry piに環境構築未完
昨日の夜、pi4にxubuntu-desktopをインストールさせたまま寝た。
ので、起きてから環境構築。
numlock周りの設定を変えて、ユーザ作って。
・Arduino IDE
arm64のtar.xzを拾ってきて普通に動く。初回起動時点で日本語表示になってる。ただ、ボードマネージャではESP32の環境を入れられない。「対応してない」と言われる。
・XCTU
Digiのダウンロードページにはx86,x64のみで armなし。
・PyCharm
tar.gzを拾ってきたがエラー。java関係の依存?
・vs code
arm64版で普通に動く。
といったような結果。chromeboxで動いちゃうから、現時点ではつきつめない。M1 macのおかげでarm対応が増えて来れば期待ができる。バックアップ用にintel CPUなpixelbook goの方に環境作ったほうが得策だ。持ち運びできるからMake系電子工作と相性良いし。
2020/12/29
chromeboxでArduino IDE + あるふぁ
chromo os に戻してから入れて無かったので入れた。前回やったときはunoは認識してたけど他はだめでした。
動作確認。
uno
何故か書き込めない。でも、「昔こんな事があったな」とUSBA−B ケーブルを変えてみたらあっさり書き込めた。
Leonardo, Micro
32U4系なので、リセットする度にchromeosで再接続する必要がありますが、書き込めます。
ESP32 系
cp2102使ってるやつですがちゃんと認識して書き込めた! それよりLinux でのesptools周りのセットアップが未だにどこか手を出す必要がある方が問題だ。
m5stick-cやFT231X 使ってるSwitchScienceオリジナル系
OK。
というわけで、raspberry piでArduino環境を別途作らなくても良さそうではある。ま、ubuntu LTSいれて作るには作るけど。
続いて pycharmとmicroPython関係を整備してベランダに2つ動かしてるXBee3のメンテ環境も再構築。
pycharmは入れるXBee用プラグイン「Digi XBee」の対応次第なので、最新版を入れれば良いわけではない。今回は2020.3まで対応してるということで 2020.3.1を入れてみたがプラグイン上手く読めました。あと忘れてた XBee汎用設定ルールの「xctu ng」もインストール。.runファイルなのだけどついsudoで実行してしまったら起動エラー。やりなおしてユーザー権限で実行してバッチリ起動しました。
あとはvs code入れる前にコンテナのバックアップを取って、いざ。というタイミングでLinuxコンテナが起動できなくなった。バックアップから戻そうとしたが、壊れてるらしく戻せなかった。βだしなぁ。1回やってることなので戻しは早い。年末ネット混雑でパッケージを落とし直すのに時間がかかる。
で、vs codeも無事入って arduino拡張入れていじってるとこ。中華フォントになってるのを治そう。感じがわかったらraspberry piにも環境作るかな。
2020/12/12
いろいろインストール
昨夜は、USB接続のSSDでのOS起動テストしてからはほったらかしになってたRaspberryPi4に、新たに高耐久SSDを買ってやり、Raspberry Pi OSを入れてやっていた。Raspberry Pi OS 64bit版正式リリースもはやく頼む。chromeが入らんのよ。
今日の午前中はWindows10機の再インストール。CPUはi7-4790S なので長く使えてる。で、記憶域がmSATA 240GBと2.5インチSATA480GBで、色々OSを入れていたのでパーティションが大量にありぐちゃぐちゃ。480GBを1本丸っとWindowsにして、240GBはGoogleDrive同期用にした。で、Windows何に使うかというと、マイナンバーカードリーダーの接続用とKindle for PC用くらいか。WindowsUpdateの遅さ確認も忘れずに。
午後は本命作業。GalliumOS 入れてたchromebox 3をchrome osに戻す作業。USBブートするためにファームも変えてたので試行錯誤。https://mrchromebox.tech/ のおかげで無事にchrome osに戻せました。でも、いまだにkindleアプリはインストールできない。タッチパネル機じゃないとインストールできないと読んでいる。やはり、メモリ16GBに拡張してあるんで余裕。CPUはIntel i3-7130Uだが。今まで自宅メイン機だったpixelbook goと交代だな。
2020/08/16
雷センサーをベランダに設置
雷センサー。
ambient連携まで実装した。室内だとノイズ元が多いのでベランダに持っていった。lightning.maskDisturber(true|false);とlightning.setIndoorOutdoor(OUTDOOR|INDOOR);はGPIOを使って再コードしなくても切り替えられるようにして。
電源がほしいので元から設置してある環境センサーと同居。3.3VとGNDをジャンプワイヤでおすそ分け。
台風の時期になったらジップロックを強化しようかな。
・・・と書いたあと、落雷を伴う夕立がきた。が、センサーのデータはアップされず。BLEの電波がが届かないのか、お裾わけの電力がESP32には足りないのか切り分けないと。XBee3はベランダで2機実績があるのでmicropythonに移植するか。と思ったがSPIはXBee3のmicropythonに実装されてたっけ?秋月版I2Cで試してみるか?ネタが付きないね。
2020/07/15
C101PでもArduinoIDE
こないだ試してはいたものの起動できてなかったCPUがArmなASUS C101PでのArduinoIDE。こっちのほうがUSB−AポートもあるのでMake系には便利。
$ uname -aLinux penguin 5.4.40-04224-g891a6cce2d44 #1 SMP PREEMPT Tue Jun 23 20:13:49 PDT 2020 aarch64 GNU/Linux
だったので、chrome osは32bitだけど64bit Arm版のarduino-1.8.13-linuxaarch64で入れてみたらビンゴ!無事起動できてblinkのコンパイルとアップロードもできました。duetに入れようかどうしようか。ポートがUSB-C 1個なのでマイコンとつなぎにくい。Over the Airでアップロードできるマイコン(ESP32 など)なら使えるかな。あ゛、ESP32用toolchainのarm版のバイナリが配られてないんだった。
2020/05/10
2020/05/06
ソーラーパネル付きセンサーはというと
4/29にベランダ側の外壁に設置したソーラーパネルとリポバッテリーのついたセンサー。稼働させて3日でバッテリー切れとなった。発電が追いつかない様だがsleep_now()が雨センサと違う動作をしてたのも気になる。XBee3のファームを最新の100Aにしたからか?。で、発電のために直射日光が当たる場所に設置となると、ベランダの柵に引っ掛ける設置となるので雨水防水対策が必要となる。また、そんなとこにおいたら温度センサーは役に立たなそう。ただ、日照が良ければ自立電源で稼働できるのかテストはしてみたいと思う。タカチの防水ケース手配しないと。最悪、いま電池駆動させてる雨センサーに使えればいいなと思う。
2020/04/29
マイコンセンサー設置日和
2020/04/15
pycharmの罠
リチウムイオンポリマーバッテリーが届いたので、XBee3に電源電圧をBLE送信するコードを書こうとした。
GaliumOSを起動して、XBee3をUSB シリアルでつないで、pycharmを起動すると画面がなんか違う。XBeeを検索できない。どうやらpycharmがアップデートした所為でXBeeMicropythonのプラグインがincompatibleになってた。設定みても無理くり動かすような指定は無さそう。しゃーないので1つ前のバージョン2019.3のpycharmをインストールして無事にXBeeプラグインが復活した。さっそく設定でpycharmの更新確認をしないようにおいた。digiがプラグインをアップデートしてくれるまでは2019.3だ。
2020/04/14
ESP32でmicropython
Xbee3でベランダでやってるのと同じのを室内に設置します。ESP32がいっぱいあるのでコイツにmicropythonを入れてですね。Arduinoでもいいんですが、Xbeeとコードの共有化が出来そうだし、デバッグ簡単だし。micropythonは入れました。Firmware built with ESP-IDF v4.x, with support for BLE, but no LAN or PPPを。BLE advertiseできれば良いので。
2020/04/12
ベランダ環境センサーのセルフ電源化準備
こないだXBee3に換えたベランダ環境センサ。2013年にseeedstudioから買ったWireless Sensor Node – Solar Kitが未使用でしまってあったので使ってみようかと。
バッテリーつないでみたけど充電されず。さすがに7年ほったらかしは過放電か。JSTコネクタで赤黒コードの配置が同じのをスイッチサイエンスさんに頼んだ。充電IC的には600mAhが良かったが400mAhしか手頃なのが無かった。Amazonだとドローン用はコネクタが違うみたいで手を出せない。まぁ、病前だったら半田づけして変えちゃうんだけどね。
さて、目論見通りに行くかなぁ。問題は設置場所が直射日光が当たらないので、ソーラーセルがどれくらい電気を出してくれるか。
2020/03/22
ベランダ気温・湿度・気圧・照度センサ XBee3版 プロトタイプ
Fritzingで適当に下書きしてブレッドボードに作成したのが上の画像。BME280ブレイクアウトにピンヘッダはんだ付けしてたら、固定用に挿してたブレッドボードをコテの根本側があたって焦がしてしまった。麻痺側右手でハンダゴテ持ってます。動く健側左手はハンダをいいタイミングで当て外しで使うからね。
で、microPythonでCDSのADCもi2cも動作はしたのでまず安心。microUSBの5V-3.3V電源モジュールを入れるべく、またFritzingで修正。ブレッドボードも普通のhalf+に変更。図面だけ書いて時間切れで実装は次回に持ち越し。
2020/03/15
新雨センサー 稼働開始
だいぶ日にちが掛かったが、雨センサーの弐号機を設置した。乾電池を単2から単1に変えて容量が倍になったので1年以上もつことを期待する。
画像で左にあるのが初号機。紫外線でケースが脆くなってひび割れたからジップロックでカバーしてる。XBeeの腹がわの金属ケースもサビサビ。のちほどお役御免とする。
2代目で変わったのは Xbee3で通信をBLEにしてMycroPythonを使ってるのと、ケースはタカチの1000円の防水のしっかりした物にした事。今回、自分だけで電池ケースにリードをはんだ付けしました。まだ、2.54mmピッチだと無理かな。また、どうせだからベランダで温度・湿度・気圧・明るさを測っているESP32もXBee3に変更を目論んでいる。まぁまだまだESP32いっぱいあるのだよねぇ。こないだ予備に2つ買い足したし。
2020/03/01
雨センサー sleep関連
電池電圧が右肩下がりだった雨センサープロトタイプXBee3 BLE版。
今、稼働してるXBee2と同じ4:Cyclic Sleepにしてみたがうまく再起動しなかった。で、Sleep Modeに 6:micropython sleepにしてみた。
sleepは sleep_now(millisec)を使用。電源電圧のグラフ見ても短期的には上がったり下がったりでそれほど電池を消費しなくなった。一旦これで仕込もうかな。
昨日、Cyclic Sleepが駄目だったので、方針変更用にESP32Sのちっちゃいブレークアウトを2個ほどゲットしています。BLEのアドバタイズのメッセージ仕様をあわせて、どちらでも使える様にするのもありだね。
2020/02/09
定期通院と新雨センサー動作実験
本日脳外科定期通院日。前日確認したら、今日は良い方の医師だったので気が楽だった。
朝からpycharmをインストールしたりやってて、通院で途切れてしまったが、新雨センサーのセンサー部のテストは完了した。ちゃんとDIO1を入力にした櫛形基板で、濡らせば0, 乾いていると1を得られた。で、この値をBLEのアドバタイズデータに入れて飛ばして、androidの「BLE Scanner」で見られました。濡らせばちゃんと値も変わる。最初「BlueFruit」というアプリで観測してたけど、こいつは1回見つけてしまうとそのアドバターザーからのデータは更新しないようで使えなかった。
センサー側は基本行けそうなので、次は piでBLEオブザーバーを書きます。