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に直接投げる方法になるかな


2021年12月10日金曜日

広島ドリミネーション2021

  撮影日:2021/11/20

撮影場所:広島県広島市


11月22日(月)に広島市内へ出かけようとしたが、予報では雨だったので急遽予定を変更して土曜日に外出


それなりに落ち着いてきたこともあり人出は多く、久々の人ごみに少しストレスを感じてしまった

去年まで利用していた駐車場が閉鎖になったため、別の駐車場を調査して何とか車も停めることができた


今年は少し早めに来たこともあり、暗くなってもそこまで寒さを感じるほど冷えなかったのは幸いだ




11月17日から開始だったため、12月に見に来ていた昨年よりも夜の人通りも多いように感じた
ただ、各人距離を取ったり、展示物にも冊が設けられていて近づきすぎたり触れないようになっている物も多かった様な気がする



昨年やその前に見かけた桜や紅葉のイルミネーションが見当たらなかったり、イルミネーションをしていないエリアも存在したため、少し物足りなさは感じる状態だった




とはいえ、小規模ながら開催することで人出も増え、少しでも経済が回るのであればそれはそれでいいんじゃないかと思う

2021年11月23日火曜日

今年の秋も短かった

 撮影日:2021/11/14

撮影場所:山口県岩国市 吉香公園


休みの合間を見つけて錦帯橋辺りに紅葉を撮りに出掛けてみた

今年は染まりかけだったり散りかけだったりで、いまいち好みの景色を見つけることはできなかった



暖かい日から急に寒くなったので綺麗な紅葉は期待できない思っていたので予想通りではあったのもの少し残念


年々秋が短くなっている様な気がするので、来年も恐らくすぐ終わるんだろうな



久々に中版フィルムのMamiya RB67を持ち出したけど、ウェイト担いだ散歩で終わってしまった気もする

最寄りのキタムラへ現像を依頼したら、仕上がりが約2週間後とのこと
時期的なものなのか需要の問題なのかまでは聞いていないが、フィルム自体も廃盤品が増えているし、そろそろ手放す事も検討した方がいいのだろうか

撮るのも楽しいし、写る絵も好きだけど、現像に今まで以上の時間が掛かったりフィルムが手に入りにくくなるのであれば撮る楽しさも減ってしまうから仕方ない
あと一本残っているProviaを撮り終わってからまた考えよう

2021年10月19日火曜日

OpenWrtにZabbix Agentを入れてZabbix Serverから監視する

ZabbixサーバにOpenWrtを追加したので手順をメモ


Zabbix Serverは5.0 LTS


■Zabbix Agentインストール

OpenWrtにログイン後【システム】>【Software】から【Zabbix-agentd】をダウンロードする

【abbix-extra-mac80211】と【zabbix-extra-network】と【zabbix-extra-wifi】はagentdの追加パッケージの様なのでついでにインストールした

wifiのはいらなかったかな

agentのバージョンは5.0.7-3なのでZabbix Serverのバージョンが違えば使えないかな


■設定ファイル修正

次に OpenWrtにSSHでログインして設定ファイルを編集する

# vim /etc/zabbix_agentd.conf

Server= <Zabbix ServerのIP>

ServerActive=<Zabbix ServerのIP>

Hostname=<Agent側のホスト名>

※OpenWrtの初期ホスト名は【OpenWrt】


■FWルール追加

このままだとPortが空いてないのでiptablesでルールを追加する

# iptables -A INPUT -p tcp --dport 10050 -j ACCEPT -s <Zabbix ServerのIP>



■Zabbix Serverホスト追加

後はZabbix Server側にホストを追加すればいい

グループは【Linux Servers】でインターフェースは【エージェント】としてOpenWrtのIPアドレスを指定

しばらくすればステータスが有効になって各種グラフの数値が取得できる



問題なく稼働しているし、速度もそれなりに出ているものの、XG Firewallに比べれば機能に劣るし、GUIで簡単に管理できる機能も少なく感じる


いっそのことOpenWrtを入れたNanoPi R4Sを予備に回して、Ubuntuマシンに組みまえたLIVA ZにOpensense入れてメインマシンに使って見ようかとも思うが、そうするとUbuntuを入れるマシンが足りなくなるので、別途小型のベアボーンでも欲しくなるな

2021年10月11日月曜日

秋晴れのコスモス

撮影日:2021/10/02

撮影場所:山口県下松市 下松スポーツ公園



午前中に健康診断を終わらせて、天気が良かったので昼から下松のスポーツ公園まで足を伸ばしてコスモスを見てきた



秋にしては日差しがまだ強く暑い時期ではあるものの、空もきれいでコスモスの色も栄えていた





とは言え、ずっと日向も暑いので木陰で休みながら、暗い中佇むコスモスもいくつか撮影


影が差している様な中に鮮やかな色が浮かんでいる感じは結構良かった


高さもまばらでまだ7割程だったが、軽く散歩しながら楽しむには十分咲いていたかな



2021年10月4日月曜日

Chromebookにwine6を入れてkindle for PC版を利用する

 Ryzenだけなのかは検証していないが、x86系のCPUを搭載しているChromebookだとplay storeのkindleアプリの挙動が良くない


LenovoのC13 Yogaだと次画面の読み込みがうまく行かず、一旦全ページに戻ってから再度ページ送りしないと表示されないなどの症状があり、まともに使えない


ということで、ChromebookのLinux環境(Crostini)上にwineを入れてWindows版のkindle for PC版を利用してみることにした


Chromebookへの wine6のインストールは以下

How to use and install Wine 6.0 on a Chromebook

また、日本語フォントのインストールは以下

Chromebook Crostini + Wine で Win32 レトロゲームを楽しむ

kindel for pcのインストールは以下

[日記] Ubuntu 20.04でWine v6を使いKindleを動かす


をそれぞれ参考にさせていただいた


■Wineインストール

バージョンはwine-6.0.1

$ sudo dpkg --add-architecture i386

$ wget -nc https://dl.winehq.org/wine-builds/winehq.key

$ sudo apt-key add winehq.key

$ echo "deb https://dl.winehq.org/wine-builds/debian/ buster main" | sudo tee /etc/apt/sources.list.d/wine.list

$ echo "deb https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_10 ./" | sudo tee /etc/apt/sources.list.d/winehq.list

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DFA175A75104960E

$ sudo apt update

$ sudo apt install --install-recommends winehq-stable

$ winecfg

$ sudo apt install nemo

$ wine package.exe

$ ln -s  /home/<username>/.wine/drive_c/users/<username>/Desktop /home/<username>/wine

Windowsのバージョンは8.1に設定しておく

■日本語フォントのインストール

・winetricksインストール
$ wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
$ chmod +x winetricks
$ sudo mv winetricks /usr/bin/

・64bit版wineフォント設定
$ winetricks cjkfonts

・32bit版wineフォント設定
$ export WINEPREFIX=~/.wine32
$ export WINEARCH=win32
$ winetricks cjkfonts


■Kindle for PCのインストール

アマゾンの公式サイトからWindows用のkindle for PCをダウンロードする
ブログ執筆時点ではwine6であれば、ネット上でよく見る不審なサイトからダウンロードする旧バージョンでなく公式サイトのバージョンが利用できた
(ダウンロードしたバージョンは1.26.0)

kindle用のフォルダを作成してからインストールする
$ mkdir -p {WINEPREFIX:-$HOME/.wine}/drive_c/users/$USER/AppData/Local/Amazon/Kindle
$ wine /<ダウンロードしたパス>/KindleForPC-installer-<ダウンロードしたファイル名>.exe



問題なくインストールできれば、Linuxアプリ内に【kindle】 や【Files】のアイコンが追加されている
【Kindle】のアイコンを起動してもwine32bit版にパスが通っていないため、ファイルが見つからず起動できない

【Files】を起動して【wine】フォルダを開くと【kindle】があるので、こちらから起動してみる


wine32でコマンドを打ってもいいが、こちらの方が早い
パスを通すのが面倒だったのと、この操作で手間を感じないのでパスは通していない

起動して2要素認証を行ってログインすれば問題無く利用できる
KVM上に立てたWIndowsで利用する場合と違って、タブレットモードで縦画面にしてもちゃんと回転して使えるのは便利でいい
ただ、書籍一覧ページでのスクロールが、画面右のスクロールバーを使わないと駄目な点が少し残念かな



Kidnleを利用する前提でChromebookを購入したいのであれば、スペック気にせずarm系のマシンを選ぶ方がいい

色々と調べたところarm系を搭載したモデル であれば問題なく利用できるようだ
Linux環境で色々試したり、それなりのマシンスペックを求めたい場合はx86系のCPUを搭載したモデルになるが、Androidアプリはまともに動作しないものもある