きりのブログ

パソコン、開発関係の思いつきと作業記録

PCの電源交換

長らく使っているおうちデスクトップPCですが、起動後しばらくすると電源が落ちるようになりました。

CPUやマザーボード等は交換して来ましたが、ケース&電源ユニットは11年前のもので、以前から懸念していた通り電源ユニットが寿命を迎えたようです。

 

スペック等は以前の記事にて。

デスクトップPCのHDDをSSDに換装 - きりのブログ

 

ケース付属の電源ユニット

メーカー: Comstars
型番: KT-T150FX-06A
出力: 150W
外寸: 65mm(W)×65mm(H)×130mm(D)

 

特殊な外寸な上、ケースギリギリで収まっています。同サイズのものを探しましたが見つかりませんでした。そこで以前ちょこっと調べていたACアダプタ電源化することにしました。

購入したもの

DC/DC変換ユニット

メーカー: PICO BOX
型番: DC-ATX-160W
出力: 160W

 

ACアダプタ

メーカー: 電源の家
型番: DY-10A
出力: 120W

 

120Wで足りるか不安でしたが、グラボなし、光学ドライブなしなのでなんとかなるかな、と勢いで購入しました。後で計算たところ、今の構成だと110W程度は必要なようでギリギリっぽい。今の所動いていますが、場合によってはACアダプタだけ買い替えないと駄目かもしれません。

バックパネルにはAC電源用の穴がありませんが、グラボ用のバックプレート上部に1.5cm四方の外せるパネルがあったので利用しました。ちょっとホコリが心配ですけど。

元の電源ユニットを外したのでケース内に余裕ができました。これで熱源が減りましたが、吸入ファンも減ったのでエアフローが心配です。まあ、使用頻度がめっきり減っているので多分大丈夫でしょう。

副次効果として静音化した・・・ような気がします。CPUファン、ケースファンがあるので気持ち程度ですけど。

スマホ購入 AQUOS sense4

スマホを買い替えました。

経緯

これまでは HUAWEI nova lite 2 を使っていました。2018年3月からなので2年と10ヶ月ほど使っていたことになります。最近は非力さが目立ってきて、不意にアプリが落ちたり反応しなくなることも稀にありました。しかしながら、一番の買い替え動機となるバッテリーの劣化は思ったより感じられず、まだ使い続けることも可能な程度だったのは良い点でした。これは子供にお下がりして、壊れるまで使ってもらう予定です。

選定

新しいスマホの選定は下記に重点を置きました。

  • コスパ → 3万円以内で性能の良いもの(出来れば2万円前後)
  • Felicaあり → マイナポイントや確定申告の為。キャッシュレス決済も視野に
  • サイズ小さめ → iPhone 12 mini のサイズ感好き

ここらへんを満たすものとして候補に上がったのが次の4つでした。

iPhoneでも良かったのですが、中古への不安とやっぱり高いので諦め。
Reno AはAndroid 9で止まっているのが不安。
Reno3 Aはバッテリーや性能にちょっと不安あるのと、中国メーカーへの風当たりが強くなる気配があるのが悩ましい・・・。

ずっとOPPOを追ってきましたが、眼中になかったAQUOS sense4が良さそうなことにふと気づきました。評判を調べたところ色々不具合あったようですがアップデートで対処されており現在は問題なさそう。値段はちょっとお高めですが3万円以内で入手可能でCPUやベンチマークもそこそこ良くミドルスペックに近い性能です。RAM 4GB、ROM 64GBはウィークポイントですが、HUAWEI nova lite 2に比べれば増えているので大丈夫そう(それぞれ3GB, 32GB)。バッテリー容量が大きく、本体の厚みはありますが長持ちするのは嬉しい点です。

購入

最終的にAQUOS sense4(SH-M15)を購入しました。IIJmioのサプライサービスで29,800円にSIM追加で3,000円クーポン付きです。

色は3色ありましたが無難な黒に。

ケースはSpiegenのリキッド・エアーです。ボタン押しやすくて良い。

フィルムはOVER'sの全面保護タイプのガラスフィルム。

 浮きもなくケースとの干渉もありませんでした(らくらくクリップは上手く使えなかったのでいつも通り貼った)。操作への影響もなし。

移行

データ移行はLINEぐらいで、あとはGoogle側で良しなにしてくれるので手間がありません。ワンタイムトークン発行する認証系のアプリでちょっと躓きました。Pay系のアプリは再ログインしてちょこっと設定するだけ。ゲームはそのまま維持されました。

使用感

私の使い方では快適につかえてます。スクロールで引っかかることもないですし、RAM増えたおかげでアプリを切り替えて戻ってきても前の状態を維持しているのでストレスありません。
ジェスチャーナビゲーションを使っていますが、たまに誤爆して戻ってしまいます。ナビゲーションバー出すためのワンアクションが不要になったので慣れれば快適そうです。

持ち上げてパネル点灯も便利ですが、つい電源ボタン押してしまい点灯→即消灯して「あれ?」ってなります。これも慣れかもしれませんが、無効にするかもしれません・・・。

指紋認証・顔認証は問題無いレベル。(nova lite 2は指紋認証がほぼ認識できなくなってしまったので、今度は壊れずに使い続けられればいいなぁ。)センサー位置が背面から前面に変わり、人差し指だけでなく左手親指も登録しました。認識精度・速度は問題ありません。

マイナンバーカードを使った確定申告を行いました。読み取り位置が少々シビアですが問題なく使えました。(それよりマイナポータルアプリやマイナポータルのサイト、確定申告書作成サイトの方が分かりにくくて苦労しました。連携の設定とか)

サイズ小さいという事前情報で期待していたのですが、nova lite 2とほぼ一緒だったので肩透かし食らいました。実物見て買わないと駄目ですね。逆に厚みと重さは覚悟していましたが個人的には気になりません。

バッテリーは評判通り良く持ちます。スリープ時はほとんどバッテリーを消費していない印象です。使用時は普通に減るんですけど。

デフォルトの通知音が耳につきます。音量のせいもあると思います。アプリの通知設定も確認したりと試行錯誤中です。

AQUOS便利機能各種はあまり使っていません。

感想

まだ重いゲームは試していませんが、前機種と同様の使い方をした範囲では快適になっており満足です。バッテリー保ちがいいと心にゆとりが出ますね。

国内メーカー端末は海外端末に比べるとどうしてもコスパに劣ると思い選択肢に出てこなかったのですが、SHARPが頑張ってて目からウロコでした。中国メーカーに手が出しにくくなっている昨今なので、今後もこの路線で頑張って頂きたいと思いました。

SSD換装 覚書

ノートパソコンのM.2 SSDを換装したので覚書。想定外のところでかなり躓きました。


256GBが一杯になったので512GBへ交換しました。
購入したSSDはこれ。

M.2 SSD NVMe 2280(M Key)。

元々はSanDiskの「SD8SN8U-256G-1006」というM.2 SATAのものが付いてました。B&M Keyのものです。細かいところは違いますが該当品はこれかな?(製造中止品)

パソコンはWin10 Proが入った「HP EliteBook 820 G3」です。分解手順は省略しますが、M/BにはM.2のI/Fが一つしかありません。

 

一番簡単なのは、外付けとして認識させて各種ソフトでクローンしてしまうことですが、外付けするケースが手持ちにありませんでした。
こういうのがあると話は簡単だったのですけどね。 

クローンできないので、一旦イメージバックアップを取ってそれを新しいSSDに書き戻すことにしました。

 

まずは現在のパーティション形式を確認します。「ディスクの管理 」から該当ディスクのプロパティ→ボリューム タブで確認できます。GPTでした。

16GBのUSBメモリを使って回復ドライブを作成しました(システム ファイル込みで16GB必要)。かなり時間かかりました。(後で分かりましたが、これブートできませんでした。ディスクの空き容量が足りなかったのか正常に作成できなかった模様。これは後で作り直しました。)

念のためCドライブのBitLockerを解除しました。

他で使っていた外付けHDDを繋いでイメージバックアップを取ります。が、なぜか認識しなかったりと動きが怪しい。使っているHDDケースもちょっと怪しいのでファームウェアアップデートをしてみたり。(既に後継製品出ています)

繋いで外してとやってたらようやく認識しましたが、イメージバックアップの作成で早々にコケる。他のPCに繋いでた時にもイメージバックアップに使っていたのが原因かと思いバックアップ先ディレクトリ(WindowsImageBackup)の名前変えようとしたが対象PCでは権限がないのか変更できない。他のPCにつなぎ直して名前を変更しました。対象PCにつなぎ直してイメージバックアップ実行するも状況変わりません。書き込み権限がなさそう・・・?試しに適当なファイルをコピーしようとしたが撥ねられます。なんでや・・・ディスクの管理から見てみると「読み取り専用」でマウントされています。原因分かりませんが、とりあえずオフライン→オンラインして再マウントしたところ書き込み可能になりました。先が長い・・・

順番が前後しましたが、イメージバックアップはOS標準機能を使いました。コントロールパネルの「バックアップと復元(Windows7)」ですね。「システム イメージの作成」から実行できます。全パーティションを対象にしました。

で、何度目かのイメージバックアップを実行しましたが、今度は途中で止まります(進捗バーが進まなくなる)。旧SSDの空きが1GBない状態なので空き領域不足かな、ということで不要なものを削除します。「ディスク クリーンアップ」ツールを管理者権限で起動すると出来ることが増えるのでそれで対応。数十GB空きを確保して実行しましたがやっぱり動きが怪しい。それ以外にも設定画面からのリンクがエラー返したりとOS自体の動きも怪しいので一旦再起動したところまともに動くようになりました。この状態でイメージバックアップを実行しようやく最後まで行きました。(数時間はかかります)

新しいSSDに載せ替えます。 PCの電源落として、裏のカバー外して、バッテリー外してSSD付け替えて。

回復ドライブのUSBメモリからブート・・・しません。UEFIで起動順序を確認しましたが問題なし。しょうがないので旧SSDに戻して回復ドライブの再作成を行います。今度は「システム ファイル」はなしで進めると必要容量1GBだそうで、さっくり終わりました。イメージバックアップが取れてるのでシステムファイルいらんもんね。再度SSD載せ替えて回復ドライブのUSBからブートします。

ブートできたら、まずは新SSDパーティション形式を確認です。コマンドプロンプト起動して、diskpartで、list disk。現状はMBRなのでGPTに変更します。select disk、clean、convert gpt。詳しくはググってね。

これでようやく復元の準備が整いました。外付けHDD繋いで、「イメージでシステムを回復」から進めます。これも結構かかります。

完了するとPC再起動されます。が、Windowsロゴは出ますがちゃんと起動しません。スタートアップ修復が行われ失敗→再起動が何度か行われますが駄目。外付け機器外して、数回ほど自動修復に任せましたが起動しないので、手動でスタートアップ修復してみたりdism(使い方分からんので断念)やsfc /scannowしてみたりして何度か再起動してたら起動しました。ここらへん、以前もあったような気がしますがよく分かりません。

長かった・・・がまだ続きます。

次にCドライブの拡張です。Cドライブの後ろにいくつかパーティションがあるので、これを最後尾に移動して、Cドライブの後ろに未割当領域を作ります。Windowsのディスクの管理からはパーティションの移動ができないので、適当なソフトをインストールして使って下さい。で、移動は出来てCドライブの後ろに未割当領域は作れるのですが、なぜかCドライブの拡張ができません。恐々としながら他パーティションの移動だけしてPCを再起動しました。これによりCドライブが該当ソフトから拡張できました。なぜかディスクの管理ではできませんでしたが。これもよく分からないですね。

最後に再度BitLockerをかけて完了です。トラブル続きで丸一日かかりました・・・。今後増えるだろうM.2 SSDのトラブル対応を考えて外付けケース買おうと思います。

Microsoft Teamsで特定のワードが含まれていたらメール通知するFlow

Teamsの指定のチャンネルに特定のワードが含まれた投稿があったらメールで通知するFlowを作ってみました。ただし、動作確認が取れているのはincoming Webhook経由での投稿のみです。つまり、前記事 ラズパイで温度監視 の続きでもあります。

SharePointやOneDriveの変更を検知してTeamsに投稿するFlowの記事は見つけたのですが、逆がなかったので公開してみます。

まずは、TeamsでFlowを使えるようにします。「アプリ」から「Flow」を選択して追加します。この手順はよく見かけるので割愛。

Teamsの画面左の「・・・」からFlowを選択してサインインするとFlowとチャットする画面になります。画面上部の見出し「フロー」を選び、「+ 一から作成」でフロー作成画面に移ります。

まずはトリガー。「teams」で検索するとトリガーに「新しいチャンネルのメッセージが追加されたとき(プレビュー)」が出るのでこれを選びます。続けて対象のチームとチャンネルを選びます。

新しいステップを追加して、アクション「条件」を追加。値として「メッセージ 添付ファイル 項目」を選ぶと、「条件」が「Apply to each」のセクションに入ります。再度「条件」を開いて「値の選択」欄に式

string(items('Apply_to_each'))

を指定し、判定条件「次の値を含む」、値に監視したいワードを入れます。

最後に「はいの場合」のアクションとしてメール送信を入れて完了です。

ハマりどころとしては、Teamsのincoming Webhookで単純なテキストが投稿された場合、本文のテキストは添付ファイル扱いになること。苦肉の策として添付ファイルを文字列変換して対象ワードが含まれるか判定しています。

Flowの実行履歴やテスト実行でどんな内容がトリガーとして流れてきたのか生データが確認できるのは新しい発見でした。

前記事の続きで、温度監視して特定温度以上になったら「注意」の文言を付加して投稿するように変更していたので、その場合だけメール通知したかったのでこのような形になりました。Slackのようなキーワード通知の機能があればこんなことしなくて済むのですがねぇ。

ラズパイで温度監視

諸事情で部屋の温度監視が必要になったのでラズパイで作ってみた。以前から興味はあったけど用途が思いつかなかったのでこれ幸いと初挑戦。

 買ったもの

Raspberry Pi Zero WH(スターターキット)
USB電源(ラズパイ3対応のスイッチ付き 5V 2.5A)
microSD(32GB Class10)
DHT11温度センサーモジュール

全部で約5,400円。

 

初期設定 

 PC(Win10)にてmicroSDをフォーマット後、ダウンロードしたraspbian Stretch LiteをEtcherで焼き焼き。ヘッドレスセットアップするのでbootパーティションと思しきところに中身空の「ssh」というファイルを作成。wpa_supplicant.confファイルも作成してWiFiの接続情報を記入。詳細はググってください。

ラズパイにmicroSDをセットして起動し、PCからraspberrypi.local宛でssh接続まで確認。pi/raspberryでログインできる。(bonjourはじめて知った)

プロキシ環境下なので環境変数を.bash_profileにセット。

$ vi ~/.bash_profile


export HTTP_PROXY=http://xxxx:nn
export HTTPS_PROXY=https://xxxx:nn
export FTP_PROXY=ftp://xxxx:nn

再ログインして色々更新しておく。

$ sudo apt-get update
$ sudo apt-get upgrade 

 ローカライゼーション関係を設定。

$ sudo raspi-config

日時合わせの設定。参照するNTPサーバーを設定する。

$ vi /etc/systemd/timesyncd.conf

一応パスワード変えておく。

$ passwd

 作るもの

温湿度センサーDHT11からpythonでデータを読み込んで、1時間毎にMicrosoft Teamsに投稿する。

$ sudo apt-get install git
$ sudo apt-get install python3-pip
$ vi .gitconfig


[http]
proxy = http://xxxx:nn
[https]
proxy = https://xxxx:nn
[url "https://"]
insteadOf = git://

 

$ git clone https://github.com/szazo/DHT11_Python.git
$ sudo pip install rpi.gpio --proxy=xxxx:nn

配線

DHT11は基盤付きの3本足。+を3.3V、outをGPIO17、-をGNDに接続。

テスト

ライブラリ付属のサンプルを、GPIOのところだけ修正して実行してみる。

$ cd ~/DHT11_Python
$ vi dht11_example.py
(GPIOの番号を修正)
$ python3 dht11_example.py

サンプルは1秒毎に測定結果を表示するものだが、はじめの1回しか表示されない。あとは何分待ってもずっとエラー・・・

$ python dht11_example.py

毎秒とはいかないが、5秒に1回ぐらいは表示される。python3系だと上手くいかないらしい。2系でもエラー多すぎだが。原因はよくわからん・・・とりあえず、2系で続きをやる。

Microsoft Teamsに投稿

Teamsにチャンネル作って、コネクタからIncoming Webhookをセットアップ。URLを控えておく。

$ sudo pip install requests --proxy=xxxx:nn

投稿のサンプルはコレ。

# -*- coding: utf-8 -*-
import requests, json

WEB_HOOK_URL = "https://outlook.office.com/webhook/xxxx"
requests.post(WEB_HOOK_URL, data = json.dumps({
    'text': u'通知内容',
}))

 

$ python test.py

requestsがないと怒られる。pipがpython3系だったのが原因だった。get-pip.pyなるもので取ってこれるらしいので、curlで取ってくる。の前に準備。

$ vi ~/.curlrc


proxy="http://xxxx:nn"

 

$ curl -O https://bootstrap.pypa.io/2.6/get-pip.py
$ sudo python get-pip.py

$ sudo pip install requests --proxy=xxxx:nn

これで投稿できるようになった。

仕上げ

DHT11のサンプルとTeams投稿サンプルを組み合わせてスクリプトを作成。常駐ではなくcronで1時間毎に起動する。

# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
import dht11
import time
import datetime
import requests
import json

# Teams webhook url
WEB_HOOK_URL = "https://outlook.office.com/webhook/xxxx"

# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()

# read data using pin 14
#instance = dht11.DHT11(pin=14)
instance = dht11.DHT11(pin=17)

counter = 0

while True:
    counter += 1
    result = instance.read()
    if result.is_valid():
        requests.post(WEB_HOOK_URL, data = json.dumps({
            'text': u'室温 %d C' % result.temperature,
        }))
        break
    else:
        if counter > 20:
            requests.post(WEB_HOOK_URL, data = json.dumps({
                'text': 'failed.',
            }))
        break

    time.sleep(2)

GPIO.cleanup()

 このままcronで起動しても環境変数読み込まないのでプロキシ超えられない。bashでラップする。(-lオプション)

$ vi tempmonitor.sh

 

#! /bin/bash -l

python /home/pi/tempmonitor/tempmonitor.py

 

$ chmod +x /home/pi/tempmonitor/tempmonitor.sh

$ crontab -e

0 * * * * /home/pi/tempmonitor/tempmonitor.sh 

 感想

  • 初ラズパイ、初python、初bot(?)。楽しいヽ(=´▽`=)ノ
  • pythonのバージョン環境よくわからん。pyenv使えば楽なのかしらん。
  • プロキシ面倒

安定稼働したら指定温度以上になったときだけ投稿するように修正する予定。

IIJmioを家族で使う場合のプラン選び

音声通話機能付きSIM(みおふぉん)を家族(2~5人)で使うときに、どのプランを選ぶのがいいのかなー、と思い計算してみた。データ通信はミニマムスタートプラン(3GB/月 1ヶ月繰越可)で十分過ぎるので、実質1.5GB/人の場合も計算してみた。なお、ライトスタートプランはミニマムスタートプランのデータ通信量増額版なので除外した。

 

2019/09/19追記
2019年9月24日よりサービス内容が改定されるとのこと。各プランでの追加SIM枚数増加、名義変更可能に、などです。以下の情報は改定前のものですのでお気をつけください。

 

2人

ミニマム 2契約・・・(900+700)*2=3,200円

ミニマム 1契約SIM2枚・・・900+700*2+400=2,700円

ファミリーシェアプランSIM2枚・・・2,560+700*2=3,960円

 

3人

ミニマム 3契約・・・(900+700)*3=4,800円

ミニマムSIM2枚+ミニマムSIM1枚・・・(900+700*2+400)+(900+700)=4,300円

ファミリーシェアプランSIM3枚・・・2,560+700*3=4,660円

 

4人

ミニマム 4契約・・・(900+700)*4=6,400円

ミニマムSIM2枚を2契約・・・(900+700*2+400)*2=5,400円

ファミリーシェアプランSIM4枚・・・2,560+700*4+400=5,760円

 

5人

ミニマム 5契約・・・(900+700)*5=8,000円

ミニマムSIM2枚を2契約+ミニマムSIM1枚・・・5,400+1,600=7,000円

ファミリーシェアプランSIM5枚・・・2,560+700*5+400*2=6,860円

 

2~4人まではミニマムスタートプランで約1.5GB/人で我慢するのが安く、5人以上はファミリーシェアプランにまとめた方が安くなる。追加SIM使用料400円は絶妙な価格設定だなぁと感心してしまった。

データ通信の使用量は人それぞれなので1.5GB/月で足りない場合は早めにファミリーシェアプランへまとめることになる。

なお、IIJmioは名義変更できないので、子供が18歳になり支払いを別にしたい時は名義者でMNP転出後に、転出先で名義変更するしかない(名義変更できないMVNOに転出しちゃ駄目)。もしくは番号維持を諦めて解約&新規契約となる。不便。

まだ机上の空論なので3回線目契約して確認したいと思います。

HUAWEI nova lite 2を購入

去年の12月中旬にNexus5Xがお亡くなりになり、昔使っていたXperia Z Ultraを引っ張り出してコスパの良い安い端末が出るのを待っていました。Nexus5Xを買ったのが2016年3月で2年は空けたいなぁと思い、HUAWEI P10 liteの購入は見送って次の同価格帯の端末が出たら買うつもりでした。

2月頭にnova lite 2が出たのでキャンペーンを待って購入。私の場合はIIJmioの買い替えキャンペーンにより実質18,800円でした。

 

良い点

サイズ
Z Ultraからの変更なので尚更。手のひらスッポリ。ベストはiPhone SEですけど。

カメラ
まだ十分使っていませんが、画質・速度共に満足。光学手ブレ補正はなし。

性能
必要十分。ゲームもこなせる。

センサー
GPSは掴み良い方。疑似ジャイロもあり問題なし。指紋ロック解除早くてビビる。

 

悪い点

バッテリー
容量は普通。保ちも普通。急速充電ないのは妥協点。

曲面ガラス
フィルム貼る人は要注意。

 

感想

ランチャーのEMUIに慣れるかちょっと不安。ダメなら変えてみるつもり。日常使いには問題ないし持ち運びも楽なので、価格を考えれば満足。良い買い物でした。