2022年1月31日月曜日

ヘッドセットのイヤーパッドとヘッドバンドカバー交換

 自宅のデスクトップPCや仕事用のPCでのリモートワークで毎日酷使しているパイオニア製のヘッドセットSE-MS5Tのイヤーパッドとヘッドバンド部分の合皮が剥げてきた


使えないことはないが、たまに耳に黒いカスが付いたりするのが不快なので交換する


純正は見つからなかったので、Amazonで適当にサイズが合いそうなものを見繕ってきた

イヤーパッドはオーディオテクニカのATH-Mシリーズ互換のものがサイズが近そうだった

購入したものは外径10mm×8.7mm、内径5.5mm×4mmくらい

ヘッドバンドカバーは長さ245mm、幅70mmで伸縮性のある素材にした



イヤーパッドははめ込んでいるだけなのですぐ取れたが、ヘッドバンドカバーは両端の部品のネジを外して合皮の縫い目を切って分解していく



ざっくりばらしてみたが、ヘッドバンドの内側クッションはそのまま使えそう

外側の薄い方は両端がはみ出るので少しカットして再利用

ヘッドバンドカバー自体はファスナーで閉じるだけなので、少し引っ張って伸ばしながら占めてやればちゃんと閉まった



手軽に交換できる部品を交換しただけで十分綺麗になった

ただ、イヤーパッドの内径が少し小さいのか素材が固いのか、若干耳への当たりが固くなった気がする

使っている内になじめばいいが、痛くなるようなら別の物を探してもいいかもしれない



価格の割に音がいいし、creative mediaのSoundblaster Play3経由で利用ると低音もそれなりに鳴るので満足している

こういった消耗品を用意している高価なヘッドフォンに買い替えるのもいいかもしれないが、ひとまずはこれが壊れるまではそのまま使っていきたいとも思う

2022年1月23日日曜日

8インチのandroidタブレット購入

Fire HD 8を所持しているものの、利用できるアプリとスペックがそれなりなので、別途androidタブレットの購入を検討していた


年末頃からAmazonで【 Blackview Tab6 】という8インチタブレットが販売されており、見たところ公式ショップからの出品だったので試しに購入


 


日本公式ショップということもあり技適はもちろん取得済み


本体サイズとしてはFire HD 8よりも縦長な感じ

スペックは高いわけではないが、電子書籍の閲覧やYouTubeの動画を見る程度であればそこまで気にならない

さすがにゲームを遊ぼうと思うとそれなりに軽量のパズルゲームなどでないと難しい
GPU処理が必要なものはかなりもたついたり、ゲームの起動自体に時間が掛かるなど不便だった


ただ、サブ機として購入したので個人的には全く問題ない
またグレースケールモードを搭載しており、ボタン一つでモノクロ表示にできるので、書籍を読む際はより見やすくなるのが良い

できればFHD対応の方が細かい文字もより見やすくなったろうが、価格を考えれば十分妥協できる


液晶保護フィルムは標準で貼られているが個人的に質感が好みではないのでガラスフィルムは別注した
画面保護だけが目的なら標準のフィルムでも十分かもしれない

2022年1月6日木曜日

Raspberry Piで取得したセンサー情報をGoogleスプレッドシートに保存する(Python)

 Raspberry PiにBME280と MH-Z19Cを繋げてデータを取得できたので、cronで定期的にGoogleスプレッドシートに投げる方法のメモ

(尚、センサー類の部分は省略)


Google 公式ドキュメントは以下の辺りを参照した

【 Google APIs ご利用方法 】 

Google Cloudのアカウントを作成してプロジェクトを事前に作っておき、以下手順を実行


1:Google CloudAPIの有効化

【 Cloud Console API ライブラリ 】からプロジェクトを選択して、APIページで有効にするをクリックして有効化


2:サービスアカウントの作成とJSONキー取得
Google Cloud Platform内から【 APIとサービス 】> 【 認証情報 】を開く
画面右下の【 サービスアカウントを管理 】を開く

画面上部の【 +サービスアカウントを作成 】からアカウントを作成する


【 サービスアカウント名 】を入力、2項目の【 サービスアカウントID 】は自動入力されるので、そのまま作成する


作成したサービスアカウントを選び、移動した先で【 キー 】タブを開き【 鍵を追加 】のプルダウンメニューから【 新しい鍵を作成 】を選び、JSON形式の鍵を作成する
操作しているPCにJSON形式の鍵が保存されるので、Raspberry PiにはSCPコマンドなどで送信しておく

3:必要なAPIライブラリ有効化
Google Cloud Platform内から【 APIとサービス 】> 【 ライブラリ 】を開く
検索窓から【 Google Derive API 】と【 Google Sheet API  】の2つを有効化する


4:Googleスプレッドシート側での共有設定
データを保存したいスプレッドシートを作成し、画面右上の【 共有 】を開き、上記で作成したサービスアカウントを追加する
サービスアカウントの表記は以下の通り
【  <サービスアカウント名>@<サービスアカウントID>.iam.gserviceaccount.com 】


5:Raspberry PiへGoogleスプレッドシートと認証用のライブラリインストール
$ sudo pip install gspread
$ sudo pip install oauth2cliengt


後はPythonでコードを書くだけ

import gspread
import json
import datetime 
from oauth2client.service_account import ServiceAccountCredentials

#Google スプレッドシートAPI認証
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
credentials = ServiceAccountCredentials.from_json_keyfile_name('<保存したJSONキーのパス>', scope)
gc = gspread.authorize(credentials)
SPREADSHEET_KEY = '<対象スプレッドシートキー>'
worksheet = gc.open_by_key(SPREADSHEET_KEY).worksheet('<シート名>')

#日時取得
today = datetime.datetime.now()

#Googleスプレッドシートへデータ転送
record = [ today.strftime('%Y/%m/%d %H:%M'), <B列の値>,<C列の値>,<D列の値>,<E列の値>]
worksheet.append_row(record)


<スプレッドシートキー>は該当スプレッドシートのURLに含まれている値を入力する
    https://docs.google.com/spreadsheets/d/<スプレッドシートキー>/edit#gid=0
シート名は日本語でも問題なく認識した

今回のコードではA列に日時を入れている、B〜E列には温度、湿度、気圧、CO2濃度の値をそれぞれ入れて、最終行に追記する形にしている


思いの他簡単に送信できたので、後はデータポータルでの可視化やGoogle Apps Scriptを用いた自動通知などと絡めれば十分使えると思う

端末が増えた場合は、デバイスID的な列を追加するか、スプレッドシートのシート自体を分けてしまえば管理もしやすそうな気がする


次はGCPへのデータ送信もやりたいが、Google IoT Coreからpub/Sub経由でFunctionを使うと課金されるので、試しに使うならBigQueryに直接投げる方法になるかな