電源周波数観測はじめました

京都に帰ってきて電子工作する元気が出てきたので、電源周波数の観測を始めてみました。

www2.zxvf.jp

f:id:W53SA:20220411223515p:plain
1分単位の周波数変動グラフ
f:id:W53SA:20220411234740p:plain
10分中央値グラフ

1分単位のグラフをChart.jsで描き、10分中央値*1グラフをVictoriaMetrics + Grafanaで描いています。

ハードウェア

関電(60Hz) ESP32

ESP32のモータ制御機能MCPWMが持ってるインプットキャプチャ機能で測定しています。

f:id:W53SA:20220412221158p:plain
外観

回路図はこんな感じ。

f:id:W53SA:20220412222036p:plain

LM393でヒステリシスコンパレータとオープンコレクタ使ったレベルシフトをしてます。繋いでるACアダプタはデジットで30円たたき売りされてたACアダプタ*2を割って、ダイオードコンデンサを回路側に移設しています。ケースはダイソーで売ってた手芸アイテム入れを流用しています。

東電(50Hz) AVR

自分の実装に自信が持てなかったので、とものさんが書かれたAVR(ATTiny)による観測を自分でも組んでみました。

tomono.tokyo

同じ測定対象を別ハードウェアで測り続けてもアレなので、東京でADS-Bを受信してるRaspberry Piに繋いでいます。

f:id:W53SA:20220412221304p:plain
外観

ソフトウェア

ファームはArduinoなどC系で、データを受けるあたりはGoで書きました。AVRでUARTから流し込まれるデータをアップロードするのはPython3で実装しています。

github.com

TODO

  • 電圧測定もしたいな~
  • ESP32は正直オーバースペック感があるので、ESP8266でなんとかならないかな(インプットキャプチャないけど…。)

*1:最初は平均値グラフ描いてたけど、欠測時にグラフがおかしくなったのでやめた。

*2:型番からぐぐって見つけた「ニッポン放送対応防災ラジオ「セキュリオ」MHS-1242T USED ラジオとしても使用可ミュディーヒューマンサービス アダプタ(MHS-AD001)付き」と見た目が同じなので、たぶんこれ。

鴨川🦆べりで今日から始めるCircleCI

この記事は川見てる Advent Calendar 2021およびMoney Forward Engineering Advent Calendar 2021 17日の記事です。

はじめに

マネーフォワードでことし10月から京都や鴨川🦆の良さを社内にひたすら宣伝しながらGoやYAMLなどを書いているwalkureです。
入社時の部署自己紹介で「趣味は鴨川🦆です」と言ったりSlackの分報へ鴨川🦆の写真をひたすら貼り続けていたところ、カモグルイ*1とか呼ばれるようになりました。
殆どの仲間は東京にいるので、あづまの地に鴨川🦆の良さを広めるべくこれからも尽力してまいります。

f:id:W53SA:20211214094958j:plain
朝の鴨川🦆

*1:実際晴れた週末は結構な頻度で鴨川🦆河川敷に行って一日ひなたぼっこしてるので反論の余地が一切ない。

続きを読む

Slackの各チャンネルにある発言をひとつのチャンネルに集約する

KMCのSlackには#everythingという「全public channelの人間による発言を表示する」というパワフルなチャンネルがあります。

会社のSlackにもこれが欲しいなぁと思ったので、Event APIをSocket modeで拾うbotをGoでシュッと作ってみた*1

github.com

問題は会社のSlackが4000チャンネルぐらいあるのでアクティブ時間帯にはchat.postMessageのrate Limit(1秒ごと)を即座に突き抜けそう*2なこと。全部見るとか無理っぽいです。どうしよ*3

今後のアイディア

分報だけ集約するのが良さそうな気がする、どうやって判別しようか。

  • 「#times_」のようなprefixで判別
    • naming rulesとかだるくない?
  • botをinviteすることで判別
    • inviteそれはそれで面倒な気も。

いっそ自分がjoinしてるchannelだけ拾うという案もある。

*1:オリジナルの実装はRTM APIだった。

*2:Event APIって30000events/60minsのrate limitがあるけどsocket modeはどうなんだろう。

*3:作る前にチャンネル数見とけば良かったな。

ドコモメールをSIMフリースマホで使う

ドコモ謹製SIMフリー端末向けドコモメールアプリがあるけど、ストア評価*1は驚異の☆2。

play.google.com

ドコモSIM回線で繋ぎGoogle Play Storeのキャッシュを消したらインストールは出来たけどdアカウント認証が通らない。

なんやこれ。

IMAPで送受信

www.nttdocomo.co.jp
ドコモメールはIMAP対応しているので、適当なMUA見繕えば送受信はできる。

GMailアプリもIMAP MUA機能があるけど何故か必ずHTMLメールで送るので宛先がiPhoneのMMSメールだと相手に「Attachment.html」という表示しか出ない。

いかんでしょ。

色々探して調べた結果、K-9 Mailでテキストメールを送ることが出来た。
k9mail.app

バックアップと新着通知がほしいしフォルダ分類をよしなにしてほしい

この状態だと、メーラがポーリングしないと新着メールが取れない。ポーリングしてるとスマホの電池がゴリゴリ減るので、何らかのプッシュ通知を考える必要がある。

また、昔からキャリアメールをGMailへ転送してバックアップしてる*2ので、これも引き続き必要。

ぐぐるfetchmailでやる方法がいくつかヒットしましたが、ドコモメール上でフォルダ分けしてるとそのままでは動かない。

ドコモメールでフォルダを作るとIMAPサーバ上に対応するメールボックスが出来て分類されますが、IMAPでメールボックスが複数存在していると面倒が溢れることがわかった。

  • IMAPメールサーバのlong pollingであるIDLEはメールボックス単位*3
  • fetchmailもメールボックス単位で設定を書く必要がある
  • GMailアプリはINBOX(受信トレイ)しかポーリングしてくれないので、分類されたメールはわからない。


設定側で対象フォルダを意識すると必ず事故る*4ので、勝手にフォルダを認識してくれないと困る。

仕方ないので自分でサーバ上のメールボックスなめる実装を書くことにしました。

通知をどのように送るか

GMailIMAPでのメール追加時に通知を出してくれたら良いんですけど出ない

新着メール通知表示ごときでAndroidアプリ作りたくないので、既存のものを組み合わせてやる方向で考えた。

Web Push/Notification

試してみたけど、スマホゲームのようなCPUもりもり食べるアプリを起動するとブラウザタスクが殺されるのかService Workerが死んで通知が出なくなるのでやめた。

Slack

安全牌なので作ったけど、安全すぎて面白くない。

Outlook.com

Outlook.com ならIMAPで転送したメールも受信トレイ宛なら通知を出してくれる*5ことがわかったので、GMailと同時にOutlook.comへもメールを転送することにした。

当たり前ですがメールサービスなので、これが一番自然な通知を表示してくれる。

つくったもの

Python使って、ドコモメールの全フォルダ(全部と言ってもゴミ箱とかは除く)からGMailOutlook.comにメールを転送してSlackに通知を投げるスクリプトを書いた。
github.com

適当なサーバでcronないしsystemd-timerにより定期的に実行されるイメージ。

キャリアメールさっさと捨てたいねぇという気持ちを強くして終わる。

*1:2021年6月3日時点

*2:むかしはau使ってたので自動転送サービス使っていたが、ドコモメールにはない。

*3:メールボックスをまたぐIMAP NOTIFYという仕様もあるけど、ドコモメールサーバは非対応

*4:新しく作ったフォルダが転送されないとか絶対やるミス。

*5:なんで受信トレイ以外は表示してくれないのか、ぐぐると困ってる記事ばっかり出てくる。

SC16IS750+MH-Z19B+Python/Go(Raspberry Pi)でCO2観測

在宅勤務になったので、会社よりも自宅のCO2濃度をちゃんと観測しなきゃな、って思うようになりました。

CO2観測用のセンサは昔やったことあるしいけるやろ、ということで挑戦。

続きを読む

北大東島・南大東島へ行ってきた(2020年2月)

2013年春に行った北大東・南大東島へ、2020年2月の飛び石連休で行ってきました。

f:id:W53SA:20200226013241p:plain
北大東空港

日付 便名 出発 到着 機材
2/7 JAL903 HND0740 OKA1035 JA8945
2/7 RAC847 OKA1310 KTD1415 JA84RC
2/9 RAC836 KTD1445 MMD1505 JA82RC
2/11 RAC862 MMD1115 OKA1230 JA84RC
2/12 JAL902 OKA1010 HND1220 JA01XJ

期せずして、2013年春に行った際の那覇~南北大東が同じ便になりました。現実問題として便数が限られているので旅程の組み合わせパターンそんな多くないんですよね。

続きを読む