あっきぃ日誌

鉄道ブログのような技術系ブログのようななにか

PC電源ON時にスイッチがオンだったらGrubでWindowsを選んでくれるPro Micro

ラズピッピ以外のボード工作、気がついたら今日はもう一個作ってました。

うちのPCはLinuxとWindows10のデュアルブートで、デフォルトはLinuxでありつつ利用頻度は半々といった感じで運用してます。どちらもSSHかRDPで接続するので、Windowsを起動するときはディスプレイの入力を切り替えずに電源ボタンを押して、10秒後のGrubが起動したであろうタイミングで挿しっぱなしにしてあるキーボードのカーソルキーを連打してWindowsを選択して起動しています。

日中工作をしている途中、引き出しをあさっていたらPro Microが出てきたので、Windowsを起動するときの作業をこいつにやらせることにしました。起動してPro Microの通電が始まった時、スイッチがショートしていたらWindowsモード(10秒くらい待ってカーソルキーを連打してEnter)になります。キーを押し終えたかLinuxモードのときはデバイスをスリープモードにして終わらせています。エコい。

雑にフリスクケースに打ち込んでサクッと完成。

f:id:Akkiesoft:20190323225131j:plain:w640

設置も雑にやりましたが、やりたいことはできるようになったので良いのではないでしょうか。

f:id:Akkiesoft:20190323225145j:plain:w640

めでたし。

以下コード。終了時に消せるLEDを消しとくコードはここのを参考にしました。

www.electronicsweekly.com

#include <HID-Project.h>
#include <HID-Settings.h>
#include <avr/sleep.h>

const int buttonPin = 2;
const int RXLED = 17;
const int TXLED = 30;

int buttonState = 0;

void setup() {
  pinMode(buttonPin, INPUT);
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(RXLED, OUTPUT);
  pinMode(TXLED, OUTPUT);
  buttonState = digitalRead(buttonPin);
  if (buttonState == LOW) {
    Keyboard.begin();
    delay(11000);
    for (int i=0; i < 4; i++){
      Keyboard.press(KEY_DOWN_ARROW);
      delay(10);
      Keyboard.release(KEY_DOWN_ARROW);
      delay(10);
    }
    Keyboard.press(KEY_RETURN);
    delay(10);
    Keyboard.release(KEY_RETURN);
  }
  digitalWrite(LED_BUILTIN, LOW);
  digitalWrite(RXLED, HIGH);
  digitalWrite(TXLED, HIGH);
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  sleep_mode();
}

void loop() {
  delay(1000);
}

ESP-WROOM-02でトイレの電気がつけっぱなしだったらZabbix経由で通知する

インターネットに繋がってないのでIoTじゃないです(前置き)

前にAitendoでESP-WROOM-02を買ったんですが、つなぎ方がよくわからず放置していました。部屋の隅でブレッドボードにブスブス刺されまくって宙に浮いてたのを、片付けるついでに活用してみました。というはなし。

開発ボードだとリセットとかのボタンがあったりプルアップ抵抗がついてたりしますが、Aitendoのブレイクアウトボードはそのへんが何もついておらず、そのへんが必要というのもあまり理解してなかったので、最初は3V3とGNDだけつないで動かないなあとか言ってました。いろいろ読んで回った結果、EN-3V3、GPIO2-3V3、GPIO15-3V3はとりあえず常時10KΩでプルアップして良さそうということがわかったので、ブレッドボードでぐちゃぐちゃつないでいましたが、今回は思い切ってブレイクアウトボードに用意入れていたパターンに抵抗を直接取り付けました。

f:id:Akkiesoft:20190323135944j:plain

ファームウェアは前回(ブログに書いてない)MicroPythonを書き込んでいたので、3V3とGNDをつなぐだけで動かせるようになりました。本当はGPIO0から10KΩを挟んでGNDにプルダウンする必要があるようですが、動いてるのでいいか。ファームウェアを書き換えるときはGPIO0から10KΩを挟んで3V3にやれば良いようです。こう言う切り替えがあるところこそブレッドボードでやりましょうかね。

(参考) マイコンの実験:ESP-WROOM-02でWiFi通信の実験1

さて、MicroPythonでこんなコードを作成。WiFiに接続するだけなんですけど。ファイルの転送はampy(https://github.com/pycampers/ampy)を使うと便利です。boot.pyとしてESP-WROOM-02に転送しました。

import machine
import network

wlan = network.WLAN(network.STA_IF)
if machine.reset_cause() != machine.SOFT_RESET:
  wlan.active(True)
  wlan.ifconfig(('192.168.xx.xxx', '255.255.255.0', '192.168.xx.1', '192.168.xx.1'))

if not wlan.isconnected():
  wlan.connect('<SSID>', 'パスワード')
  while not wlan.isconnected():
    machine.idle()

電源は3.3Vが必要なので、まあとりあえずUSBシリアル変換のボードを使用。

f:id:Akkiesoft:20190323141739j:plain

これをトイレに設置。電源もだいぶ前から用意してたんですが特につなぐものがなく放置していたものをいよいよ活用!

f:id:Akkiesoft:20190323143526j:plain

この電源、照明を消すと同じく落ちるので、照明がついている間だけESP-WROOM-02が起動するということになります。

つまり、あとはZabbixでping監視すればトイレの照明がつけっぱなしかどうか見られますね。pingを30秒ごとに確認するようにしたので、トリガーは10分(直近20回)のあいだに0(消灯)が0回だったら警告として通知するようにしました。

{toilet:icmpping[<ESPのIPアドレス>,4].count(#20,0)}=0

今のトイレはLED電球で、常夜灯程度の消費電力で光るのでそんなにガッツリ監視しなくてもいいんですけどね。あとは家を出る前に消し忘れをチェックできるようになると良さそうです。

いやでもねえ、もうちょいいい使い方したい気もするよね🤔

東急2000系2002Fデハ2252のプレートを買った

f:id:Akkiesoft:20190321110213j:plain:w640

東急2000系のうち陸送で廃車になった車両とサハ8976の部品販売が東急の通販で先週末ありました。恩田で改番になった車両は入ってなかったようでした。車番プレートは開始数分で完売していましたが、優先席のつり革はわりとしばらく残ってるようでした。

私が10時のスタートと同時にポチポチー!!って押して確保したのはデハ2252の車内プレート。2と5しかねえみたいな面白みのない?番号ですが、朝の通勤は2002Fが来たらデハ2202かデハ2252に乗ってたのでこれを選択しました。ホントはよく乗ってたデハ2202がほしかったんですけど、前述の通り恩田の分はなかったので次の機会を狙っていきましょう、あるのか知らんけど。あと車外プレートはすでにサハ9812のがあるので小さい車内プレートでがまん。

f:id:Akkiesoft:20190321112211j:plain:w640

裏面。あ、凹凸があるのか。

f:id:Akkiesoft:20190321112221j:plain:w640

飾り付けはサハ9812の隣に。数字だらけの部屋になってちょっとやべー感じになってしまった、かも。今更ておくれか!ガハハ。

f:id:Akkiesoft:20190321112235j:plain:w640

ところで、先日9023Fに変わったあとの元2003Fにやっと乗れてウキウキしてたんですが、いざ乗ったら加速が突然止まってガタッ!と揺れたり、ATCの速度超過みたいな挙動とともにEBでもなさそうなブレーキ具合なのに「急停車します」の自動放送を連発して昔の音MADみたいなことになってたりして、正直乗っててこわい感じでした。途中から作業員が乗り込んでいたのですぐに確認が入っているようでしたけど、大丈夫なのかちょっと不安になったのでした。デハ9223の竜巻インバーターいいですね。デハ9323-9423と音が違って混在してるのもまたよし。

f:id:Akkiesoft:20190321115532j:plain:w400

綾鷹、はてなハイクで6年2ヶ月かけて千本選ばれる

はてなハイク終了まで10日弱となりました。

はてなハイクでは千本慣らしと呼ばれるキーワードのシリーズがあり、生ビール、回転寿司の皿、初音ミクのイラスト等様々な物事が千本慣らしされています。物によっては2週目に突入しているものもあります。

で、つい先程ですが、綾鷹千本選ばれ慣らしが1000本を達成しました。2013/1/10のキーワード作成から6年2ヶ月で1周目をゴールしたことになります。めでたい。

h.hatena.ne.jp

こんなクソキーワードを始めたのは私なわけですが、ひたすらアップし続けてくれたハイカーさんに感謝です。綾鷹も6年間なくならずに残ってくれたことに感謝ですね。

h.hatena.ne.jp

f:id:Akkiesoft:20190318132836j:plain

記念すべき1000本目はあんとわ (AntoineDoinel)さんでした。

h.hatena.ne.jp

f:id:Akkiesoft:20190318132846j:plain

早くも2周目が勢いよく進んでいるところですが、残り10日でもう千本選ばれるには42人でケース買いするのが最短ルートのようです。ともあれハイクがなくなったあとも選ばれるお茶は綾鷹でしょう。

ちなみに、同じく私が2014/02/22にスタートした「綾鷹以外のお茶千本慣らし」は1周目の41本という状況です。こちらも奮ってご参加ください。

h.hatena.ne.jp

(追記)つぼさん(id:A_Wilhelm)がまとめてくれました。わたしブランクがある割に5%もあんのね。

h.hatena.ne.jp

空気清浄機を買った

10日前で上京から丸12年が過ぎ、13年目に突入しました。こんなに長く東京に居座るとは思ってもみなかったので人生わからないもんですね。とくに出会いみたいなのも結局ないので何もわからんですね。10日前は福島に日帰り出張をして、今週は大阪に3日ほど出張して、3月初っ端以来2週間ぶりにまた風邪をひいて倒れてました。いまは回復してます。

さて、長いこと本州にいるとそろそろ花粉症なるものが怖くなってきますよね。ただでさえこの数年は連年のウン倍とか言って騒がれていますもんね。話を聞いているだけで目がゴロゴロする……と思っていたのですが、大阪出張中はなんともなく、帰ってきたら目がゴロついて気づきました。ハウスダストだこれ。

日々忙しくだらしなく生きているので布団の手入れもサボりがちだったんですが、どうも布団にハウスダストが溜まっていて、そこで目をやられていたようです。気づいた翌日にベッドを総メンテしたら目のゴロつきは落ち着きました。落ち着いた気がします。掃除はマメにやろう。おわり。

ただまあ、花粉も含めて、空気清浄機には興味はあったので、なんとなくAmazonでポチりました。ギフトが9000円くらい溜まってしまっていたのでそれの消化も兼ねています。

f:id:Akkiesoft:20190317141213j:plain

特にこだわりはなかったと言うか、空調といえばみたいな感じでダイキンをセレクトしました。早速動かしてますが、静かすぎて何もわからん。近づいたら一回だけホコリに反応して動作音が強くなった程度。そんなすぐには効果は出ないでしょうけど、なんかいい感じになるといいですね。

あと久しくAmazonで買い物をしてなかった(ヨドバシ派)ので、初めてデリバリープロバイダーが自宅まで配送に来ました。まあ、普通に届きましたね。どうも最近神奈川担当のデリバリープロバイダーの拠点が江田のあたりにできたそうで。一時期なんか騒がれていたような問題も改善が進んでいるんでしょうかね。