デジタルガジェット一覧

プリンタ買い替え

 自宅のプリンタを買い替えました。ブラザーのDCP-J973N-B。今までもその前もキヤノンで、ヘッドが逝かれてグダグダになる末路。今度は長生きなのかな。ツレの父がブラザーのを10年以上つかっているらしい。と、心配しつつもプリンタ使うのはほとんどツレなのです。PCやスマートフォンが使えない環境でなければ紙で用意しておく必要性もなく。ただ、右半身が不自由になってからは閲覧の簡便性と時間短縮のために予め情報を紙にしておくシチュエーションは出てきている。


BME280をやめてBMP085に

 ベランダにて環境値測定している自作機器。i2cバスのセンサー値がおかしくなったり、ハングしたりどうにも安定しない。先代はマイコン部をATmega328pでやってて全然安定稼働していたのに、ESP32に変えてから不安定。全く動かないのではなく連続稼働させてるとだめになる。仕方なしに1日1回リセットするようにしたがそれでもおかしくなる。ESP32のi2cは癖があるらしいけどドライバのメンテまでしたくない。
 思い切って、i2cの気圧・湿度センサーBME280を手持ちの気圧センサーBMP085と湿度センサーSi7021に載せ替えた版を作って、7/12のハング時に切り替えた。1日1回のリセットも無しのバージョン。で、本日7/21で変更してから1週間以上たつが、今まで色々対策してた苦労が嘘だったかのように安定稼働している。これならリセット無しのバージョンのままで良いかなと思う。3時間おきにセンサー値のDBが更新されてるかチェックしてメール飛ばしてるのも、データ未更新時と朝1回の更新チェック機能自体の確認のメールだけに変更しようと思う。


google home miniにベランダの気温を報告させる 改善編

この記事でつくったベランダ気温通知。通知の音が小さいのを改善しようとぐぐってたらVoiceText Webを発見。早速組み込んでみた。最初しゃべらなくて、確認のために生成されてるWAVをftpして持ってきてもノイズだらけの小さな声で、お試し制限なのかなぁと思ってた。何のことはないftpをバイナリーモードでしてなかっただけでwavは正しく生成されてた。google homeが再生してくれなかったのは単にパーミッションでforbiddenになってただけで、最終的にはちゃんと動きました。


iPhone SE導入

DoCoMo白ロムのA-GPS問題に辟易してたのでiPhone SEの白ROM(ストレージ32G)を導入しました。位置ゲー専用なのでデータ通信SIM。モバイルsuicaを使うのでDoCoMo白ロムは位置ゲー以外用として並行運用。
久々のiOSは(iPod touch(wifiだけの裏が銀の奴), iPhone 3GS以来)どうも戸惑う。戻るボタンが欲しい。アプリの設定変更がアプリの中から出来ないのも慣れない。自分にはiOS機は永遠のサブ機。でもこの4インチのサイズは片手かつ非利き手で持つにはいい感じ。フルキーの反応も良くTYPOが殆ど無い。この点は評価してるだけにもったい無いもんだ。


google home miniにベランダの気温を報告させる

昨年末にgoogle-home-notifierを試したときに思ったことを実現してみた。
何をできるかというと、
google home miniに「外の気温は?」と聞くと、「ベランダの気温は27.0度です。」と答えてくれるというもの。

概略を書いておくと
iftttのthisのGoogle Assistantで「外の気温は?」をトリガーにwebhookを動かす。それを自宅のraspberry pi上のhttpd(sslと認証は入れてある)で待受。webhookが来たら、自宅のセンサーの値をためてるmysqlから最新のベランダ気温をjsonで取ってくる。google homeに応答させる「ベランダの気温はxx度です。」を作って、google-home-notifierにrequests.postして、google-home-notifierがgoogle homeに話させて完了。google-home-notifierのngrokは使わないので止めた。センサーのデータは直接、ベランダのセンサーをコントロールしてるESP32に聞いてリアルタイムのデータのjsonももらえる。最初はそっちでやってた。他のセンサーと統一するためにDBから取得とした。で、雨センサー版も作ったけども音声トリガーが難しい。「雨降ってる?」だとgoogle home標準の天気機能が動いてしまう。要改善です。

使った実感として去年末も思ったがgoogle-home-notifierだと音声音量が小さいのよ、普通のgoogle homeの会話音声よりも。仕組み的に喋らせたいテキストからgoogle-tts-apiでmp3を作って再生させてる様だけども音量のパラメータが見当たらない。今春から使えるGoogle Cloud Text-to-Speech ならVolume Gain Controlもあるようなので、こっち対応させるかと。あ、誰か作ってるかも、検索検索っと。
もう1個改善したいのは、トリガーを引いたgoogle homeに応答を話させる事。居間と寝室にgoogle homeがあるけれど、今は居間のgoogle homeしか問い合わせ結果を話せない。iftttのGoogle Assistantがどの子からのトリガーかを伝える機能が無いから居間固定にしてる。google、iftttのアカウントを分ければできそうだけれど、そうするとスマートホーム機能が・・・。


tinker board s

連休前半用にasusのtinker boardをゲット。あわよくば、家の普段作業をここでと。

まずはtinker osとandroidの動作確認。microSDスロットがSD3.0対応なのでUHS-I U3のカードを入手。連休中はamazonが読めないのでbic実店舗に行って16Gをゲット。
armbianのtinker board用を入れる。sなのでeMMCにインストールしたいところだが、対応版osじゃないとイメージ入れても動かん。USBでマスストレージ認識させるためのちっこいブートパーティションがいる模様。仕方ないのでmicroSDで確認。言語関連を日本語にして、fcitx-mozcで日本語入力OK。fcitxでcapslockでime on/offできた。速度は・・・微妙。
だが、大きな落とし穴があった。それはarmアーキテクチャ。今までLinuxで使ってたソフトがarmにあるとは言えず。ソースみてポートするまでの余力はない。ので、livaと入れ替えることにする。livaは一応x86だし。

で、メインマシン上のVMやら古いマシンやらにxubuntuを入れて試してた。ちょうど18.04も出たところだし。LubuntuよりはXubuntuがいいかな。


29インチ/21:9 ウルトラワイド

 29インチ/21:9 ウルトラワイドのモニターが欲しいと思って2ヶ月くらい。コンソール開いて、メモしながら、Web記事を参照にしつつ作業をすると 1920×1080では足りない。どうしてもWindowを上に持ってくる作業が入って不効率。ダダでさえ片手かつタッチタイピングも封じられてるのにだ。タッチタイプができずキーボードを見てるとIMEがオンのままでメチャクチャなコマンド打ってたり。
 ただ、21:9 ウルトラワイドはLGくらいしか製造してないニッチなんだよね。複数LCDだとやっぱベゼルのとこで分断すてしまうし。ついでなのでスピーカ付きにしてみようかとか。
 問題は今使ってるベアボーンがHDMIにサウンドを流すようになってるかわからないとこ。放送波見る方のTVに繋いで確かめるかね。HD4600なので2560×1080は対応してると思うけど。ってか縦1080にも文句は言いたいよ。昔1920×1200使ってたから。悪貨に駆逐されてしまったけど。


今日の電子工作作戦0407

1) 水槽水温計をmbedからmicropython on ESP32に移行した。ココだけでなくabmientへのデータアップロードも対応。水温センサー部分はmbed版のを流用。ブレッドボード作成なので、ジップロックで埃よけとした。

2) ここへのデータアップロードが正しく動作してるかの確認用にスクリプトを入れた。3時間毎に起動して、直近1時間に1件もアップがないモノをリストアップして自分メール。だたこのサーバ入れてるgoogle cloud platformのgoogle compute engineでは、port25,465,58でsmtpが通りません。こないだ宅内liva用にsendgridのアカウントを作ったのでそれを利用。postfixをインスコして設定。無事メール送信できるようになった。

3) micropython on ESP32でWi-SUNのテスト。
ネット上のいくつかのコードをサンプルに移植をしてたが、
・通常pythonからmicro系への変換
・不要機能のコードの削除、変更
・python2系からpython3系の変換
と変える部分が多くて、一番やっかいなのがpython2系からの変換。まとめてやってたら疲れちゃったのでこの件は一旦放置とする。
Linux上でpython2で動作確認した上で、python3への変更と動作確認・不要機能の削除を実施。そのうえでmicropythonへの移植 と段階をおかないと駄目だ。


google home mini を壁に貼り付けた。。。が、はがれた

『「Google Home Mini」の壁掛けホルダーを試して分かったこと』というキーワードを見かけた。記事では3Dプリンタで作成したホルダーを使っていた。うちにもデルタな3DプリンタがあるのでSTLファイル手に入れれば作れるではあろう。だが1年以上動かしてないのでどう動くかわからんのと、変な動きをした時に片手で止められるかという心配もあって動作確認できていない。このプリンタで印刷したこのプリンタ用のスプールホルダーが折れちゃってるのもマイナス要因。予備も作ってあったけど片手で取り付けにくい取り付け方法なのです。

ってことで、なんの工夫もなく壁に両面テープで貼ってみた。この壁がマンションの外壁になる壁のため鋲のたぐいは刺さらない。なんかいい感じになった。机の上においてるとモノが触れたりして音量が変わったりしていたがそれを防げる。寝室のgoogle home miniも壁付けしたくなった。でも、寝室の設置したい壁は石膏ボードになるなぁ。google home miniの底部って引っ掛けられるような穴とか凹みが無いんだよなぁ。3Mのコマンドタブでささえられるかしらん。

で、数時間後。両面テープのgoogle home mini側がはがれた。めんどくさい材質だな。やっぱホルダー的なモノを介さないとだめか?とりあえずは、網と壁で挟んでる。


ESPR irでgoogle home連携

ESPR irは画像の左側のモジュール。ひとつのモジュールで赤外線受信機と赤外線LEDの双方が載ってるのでゲットしました。USB-UART変換は別に要るけどいっぱい持っている。
で、寝室の照明のリモコンをirRecvDumpでデータ化。どうやらNECフォーマットっぽい。
全灯 NEC: 176807F
調光 NEC: 17640BF
豆球 NEC: 176C03F
消灯 NEC: 17600FF
プログラムを変えて、赤外線照射のテスト。まずローカルで、ESPR上のWebサーバでsubmitボタン3つで、全灯・豆球・消灯を実装して寝室の照明の操作に成功。ある程度赤外線LEDの向きに気をつかう必要あり。ファイアウォールを変更してIFTTTからのwebhooksを受けられるように改造して、google assistantをthisに設定。
これでやっと寝室の明かりを音声で操作できるようになりましたさ。ESP8266はいっぱいあるので、赤外線LEDと組み合わせて手作りモジュールも作りたい。はんだ付けやらコードの皮むきとかの両手での作業を治具用意して片手でも出来るようにしよう。

で、ツレが「30分後に消して」とかの機能をリクエストしてきた。リモコン自体にも30分後/60分後の消灯ボタンがあるので、これを決め打ちで動かすのは出来る。だがn分後とかm時間後の任意のdelayをどう実現できるか?考えたい。IFTTT自体にはthisとthatの間にdelayを置く機能は今現在はない。案1は時間を$パラメータとしてもらってESP8266の中でwaitする。案2はこのWebサイトでwebhooksを受けてwaitしてからESPへwebhooksを引き継ぐ。ただ、waitしてる間に新たに点灯コマンドが入った時に消灯をキャンセルするとか考える必要あり。あ、夜中トイレにいくのに「5分だけあかりをつけて」ってのも便利だなぁとか。