ESP32 micropython一覧

micro:bitで microPython

 昨晩、翌朝雪が積もっていない事を祈りつつ、ESP32にGallimOSからesptool.pyでmicroPythonを焼いてて思った。「そういえばmicro:bitでもmicroPython使えたような。」と。micro:bitはESP32と違ってwifiは使えないがbluetoothはあったりする。Web Bluetooth APIなんつうものでchromeと通信できるらしい。だが、microPython上ではメモリが足りなくてBT使えないそうだ。
 でもとりあえず、ちょっとあそんで見ます。


ESP32開発環境はできた

 昨日の夜、chromeboxのGalliumOS上でESP32を焼くべくテストしてたが、ttyUSB0が出てこない。lsusbでも気配がない。つなげるデバイスを変えてみてもだめ。Kabylakeカーネルがサポートしてないのだろうかと、異なる環境を試して見るべく眠ってる asus chromebook C223(こっちはApollo Lake)にGalliumOSを入れたとこで寝た。
 本日起きてきて試すがC223でも同様にだめ。1点、自分のユーザーをdialoutグループに入れるのを忘れてたが、これはttyUSB0が出てこないのとは関係ない。googleりつつ redditを読んで、「ケーブルを変えたらいけた」という例をみつけた。半信半疑で以前接続実績のあるケーブルに変えたら/dev/ttyUSB0が出て来ました。いわゆる充電用だけのケーブルだった模様。昨夜は4本くらいケーブル変えてたが全て外れだったのか。
 chromeboxで行けたのでC223でもやってみて、OKだねというとこでクラムシェルを閉じてしまった。C223をGalliumOS化したときに、この開閉に難ありの記事はみたが。閉じたクラムシェルを開けたらOSが壊れてると言いやがってGalliumOSを起動出来ない。CTRL-UはdisableされててCTRL-Lもきかず。仕方なしに別のchromebookでリカバリーUSBを焼いてchromeosとしてのリカバリーまではやった。またC223 にGalliumOSいれても、蓋閉じてまた壊れたらやなのでこちらでやりなおすのはひとまず封印。余裕あるときにLinuxMintのMATE版でも入れてみるかな。Xfceはデザインは好きだがWindowの枠が細すぎて掴みにくいんだよ。
 その後もchromeboxのGalliumOSでmicroPythonのIDEであるuPyCraftを動かそうと四苦八苦。uPyCraftは古いアプリで、使ってるフレームワークやらライブラリがもう時代遅れで導入が難しい。結局諦めた。
 chromeboxでESP32を書き込むのは出来たのでよし。今は有料になってしまったFritzingもインストール出来たさ。microPythonは以前使ってたampyでなんとかするさ。あとはarduino系の開発をこっちですべく、ソースやライブラリを移して、NASにrsyncしたりGitLabに同期する設定いれたら本稼働できる。このタイミングでGitHubも入れるかね、GitHubは以前はフリーだと制限が多くて使えなかったのでGitLabを使ってただけです。


ベランダセンサーを入れ替え

 連休前半はベランダのセンサーの作り替え。
 明るさ(CDS)、気圧、温度、湿度(BMP280)だけにした。データは今まではプルだったのを5分おきのプッシュに変更。この変更を入れたので、google home&ifttt&raspberry piでやってた外の気温レポートを修正した。いままではベランダセンサーに気温を聞いていたところをambientから取得するように切り替えでOK。リアルタイムのデータは取れないけど、5分毎だからまぁ良いだろう。多少データにスパイクがあるものの動作はしている。
 あ、あとOTAでのプログラムコード書き込みに対応させたので「ベランダに出てボードを外して来て書き換えてまた戻す」といった作業が基本的には要らなくなった。部屋の中からプログラムコード書き換えができる。バグってループさせたりしなければ大丈夫な筈。


今日の電子工作作戦0407

1) 水槽水温計をmbedからmicropython on ESP32に移行した。ココだけでなくabmientへのデータアップロードも対応。水温センサー部分はmbed版のを流用。ブレッドボード作成なので、ジップロックで埃よけとした。

2) ここへのデータアップロードが正しく動作してるかの確認用にスクリプトを入れた。3時間毎に起動して、直近1時間に1件もアップがないモノをリストアップして自分メール。だたこのサーバ入れてるgoogle cloud platformのgoogle compute engineでは、port25,465,58でsmtpが通りません。こないだ宅内liva用にsendgridのアカウントを作ったのでそれを利用。postfixをインスコして設定。無事メール送信できるようになった。

3) micropython on ESP32でWi-SUNのテスト。
ネット上のいくつかのコードをサンプルに移植をしてたが、
・通常pythonからmicro系への変換
・不要機能のコードの削除、変更
・python2系からpython3系の変換
と変える部分が多くて、一番やっかいなのがpython2系からの変換。まとめてやってたら疲れちゃったのでこの件は一旦放置とする。
Linux上でpython2で動作確認した上で、python3への変更と動作確認・不要機能の削除を実施。そのうえでmicropythonへの移植 と段階をおかないと駄目だ。


micropython on ESP32

ESP32が宅内に増殖してるのでmicropythonも試している。
ssl使ったらメモリが無くて落ちたけど、httpなら大丈夫かな。
水層水温をココとambientにアップロードするのに使いたい。
Wi-SUNのスマートメーター電力情報も、今はmbedからpi zero wに切り替えて仮運用してるけど、micropython on ESP32で安定すればさらに切り替えたいなぁ。