デジタルガジェット一覧

雷センサーをベランダに設置

 雷センサー。
ambient連携まで実装した。室内だとノイズ元が多いのでベランダに持っていった。lightning.maskDisturber(true|false);とlightning.setIndoorOutdoor(OUTDOOR|INDOOR);はGPIOを使って再コードしなくても切り替えられるようにして。
 
 電源がほしいので元から設置してある環境センサーと同居。3.3VとGNDをジャンプワイヤでおすそ分け。

 台風の時期になったらジップロックを強化しようかな。

 ・・・と書いたあと、落雷を伴う夕立がきた。が、センサーのデータはアップされず。BLEの電波がが届かないのか、お裾わけの電力がESP32には足りないのか切り分けないと。XBee3はベランダで2機実績があるのでmicropythonに移植するか。と思ったがSPIはXBee3のmicropythonに実装されてたっけ?秋月版I2Cで試してみるか?ネタが付きないね。


雷を追う

 山の日3連休で、以前買ってあった雷センサーAS3935をテスト。Arduino UNOでは動くんだけどESP32で動かしたい。ESP32を使うのはBLEのアドバタイズを使って外部連携する為。
 ESP32でBLEの方は何とかなった。DeepSleepも行けた。でも、AS3935がねぇ何しても0xFFを返してくるのよ。秋月のi2c版だから?
 というわけで、切り分けるべくSparkfunのSPI版を注文した。残念なことに本日ゴロゴロ雷鳴がしてたのだがテストに間に合わず。
 先程ピンヘッダをはんだ付けして(手首がかえらないので難しい)、サンプル動かしてアンテナチューンしたところ(今回は80pF)。BLEとambient連携は週末かな。


PD ACアダプター各種

 
 いつの間にやらこんなに持ってました。全部プラグが畳める奴です。右から2個目のひときわデカイのはpixelbook goの純正品。
 RAVPowerが多いな。自分の好む仕様に合うものを素早く市場に出してくるからかな。
 これを持って旅行などに出たいのだけどもまだ半年は待ちだよなぁ。


wifi検討

 既出の様に、自宅のwifiはNETGEARのORBI 3台でMESHを組んでいる。ORBIがデカイので違うのも検討したい。ただ端末数が30台くらいはある。
外からのVDSLが部屋の真ん中にでてるからmesh 2台にしにくい。NAS有るから、今なら802.11axにもしたいし。CiscoのMeraki Goなんか良さげだけど802.11acなのだよね。
ルータも設定1箇所変更するたびに再起動して1分、2分待たされるタイプはもう勘弁してほしいし。
 こうやって検討しているうちがハナか。


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);
}

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