Arduino一覧

C101PでもArduinoIDE

 こないだ試してはいたものの起動できてなかったCPUがArmなASUS C101PでのArduinoIDE。こっちのほうがUSB−AポートもあるのでMake系には便利。

 $ uname -a
Linux 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版のバイナリが配られてないんだった。


スリープブロッカーを作る

 スイッチサイエンスさんで委託販売されてた「スリープブロッカー」。OSがSleepしないようにマウスエミュレートして定期的にちょっと動かす感じのガジェット。こないだ見たら売り切れてて、なんだろうと思ったらGizmodoで記事になった為だとか。テレワークならではですかね。(さっき見たら在庫回復した。)
 マウスをエミュレートするならうちにもあるじゃんと、ATmega32U4の載ったArduino Leonardoがあるじゃんと。早速コード書いて作ってみた。ただ、LeonardoだとchromebookのArduinoIDEではポートがつながらなかった。Leonardoは起動シーケンス時に1回接続が切れるのか、Windowsでもポピポピ言ってかからなぁ。テストをWindowsでするからWindowsでコンパイル&書き込みした。

#include <Mouse.h>

const int interval = 30;  // sec

void setup() {
  Mouse.begin();
}

// 一定時間に1回マウスを動かす x軸 右1 左1
void loop() {
  Mouse.move(1, 0, 0);
  Mouse.move(-1, 0, 0);
  delay(interval * 1000);
}

ま、簡単だが機能しているようだ。


chromebookでarduinoIDEできた

なにげに久々にぐぐったら以下のサイトを発見。
https://www.stevencombs.com/arduino/2020/01/20/arduino-on-chromeos.html
前に見た気もするけど試してみた。
Arduinoとつなぐために普段電源入れてるUSB-Cにもハブ入れて接続。arduinoとLinuxを接続するか?みたいなメッセージが出て呆気なく接続。
ArduinoIDEでもPort /dev/ttyACM0 で認識してる。blinkを書き込んだらちゃんとアップロードされて動きましたよ。
ESP32の環境もつくっちゃえばもうchromebookでカバーできるなぁ。XBee関係のソフトも試してみる価値ありだな。
半年損してたけど動いて良かった。


室温センサー作り変え

micropythonでやってた室温センサー。連続動作4時間ぐらいでハングって動かなくなるので、1時間ごとにESP.restart()するようにしてたが、なんか腑に落ちないので。ESP32のArduinoで作り直した。httpまわりはmbedより楽だな。室内光センサとしてCDSもつけてDBにアップした。この室内光データを他のデバイスからも参照して、就寝中は表示デバイスを消したりするのに使います。


ESP32 OTA

家に帰ってからOTAを試しました。実機は昨夜ジップロックに入れてベランダに貼り付けてしまったので、もう一つのESP32にて。i2cデバイスがADT7410とLCDの状態で。
いざ、コンパイル。ってあっけないほど簡単にwifiでプログラムのアップロード完了。でも、シリアルはあくまでシリアルに出力されるだけ。Serial.print()のデバッグ文も無線の向こうのマイコン側で出力される。
ってわけで、いまいち使い勝手がわるいかな。


ベランダセンサーのESP32化

arduino互換機とXBeeでやってたベランダのセンサー。去年のマンションの外壁再塗装と入院でいまは部屋の中。子機の雨センサーはベランダに復帰させたのでこれだけが使える状態。
XBeeも低消費電力でスタックも軽いのだけど、違うこともやってみようと作り変え。

wifiで勝手知ったるjsonをrestで。iotらしいmqtt化はそのうち。右手がまだハンダごてをあつかえない為、ハード組み立てはブレッドボードで。センサーはi2cに統一。

昨日の朝はESP8266でやっていたのだが、昼にESP32-DEVCでも行けるんじゃないかと変更。こっちのほうがリソースに余裕あるい青歯にすることも出来る。その後ベランダで雨除けのケーシングする際にもう少し小さい方がいいなとブレッドボードを変更。ひさびさにFritzingをいじったがCAD系で左手でオブジェクトをクリックするのがきつくて、つい違うものクリックしちゃうよ(笑)。

最初のesp8266版の抜け殻


ESP32化してみた


ブレッドボードを小さいものに変更

LCDはデバッグ確認用なので、ソフトウエアからも取り外せるようにdipswで対応。i2c的には出力オンリーなので取り外してソフトはほったらかしでも問題はなさそうだけど。

とりあえず、
 ・センサーから情報読み取り
 ・読み取った値のweb表示
 ・読み取った値のjson化
 は出来たので。ベランダに設置して部屋の中のraspberry piから情報取得やグラフ系iot向けサービスと連携させていく。でもなぁpachubeの事もあるのでwebサービスはいつ潰れてもいいように自前の代替の仕組みを用意しとかないと。