Archive for マイコン

音声による赤外線リモコンで明りの制御

結局、pi zero wとRPZ-IR-Sensor phatで作成。ESP-IRの赤外線LEDは指向性が強くて使いづらいのでやめた(特定の機器の赤外線受光部近くで使うには良いが)。スマートスピーカとの連携はIFTTTを使用してwebhooksで受信。外部公開するので、webサーバまわりはなるべく不要な機能を消して、SSL(オレオレ証明)と認証は実装した。このphatはBME280(気圧、湿度、温度センサー)、TLS2561(照度センサー)も載ってるのでこれらも利用する予定。

で、居間の自分の机の上で疎通テストをしてたら天井が「ピッ」と鳴る。寝室のシーリングライトのリモコンコマンドなのだが(笑)。どうやら居間のシーリングライトの1つが寝室と同じリモコン対応機だった模様。結婚前のツレが持ってた物でリモコンもなくなってるから気づかなかった。寝室と同じコードでいける。

というわけでpi zero wをもう1セット購入した。居間は半分テスト用半分実用程度。

音声コマンドはショートカット化して、「寝室 つけて|消して|豆球」でOK。場所の特定はどこのHomeに言ったかで判断できるといいんだが。スマートホーム機能でなくIFTTT連携でやってるんじゃ難しいか。
Google AIY Voice Kitもゲットしたので、Google系のスピーカが3つです。Amazon系は招待状が全然来ないからdot1台だけ。どうなってるんだ?>招待状。

片手ではんだ付け

raspberry pi zero wのhatにピンヘッダをつけるべく、片麻痺になってから初めてのはんだ付けをした。

基板はテーブルに置いたままで、左手にはんだごて、右手にハンダの体勢。で、やってみると右手のハンダをうまく当てられない。仕方なしにコテ先にハンダをのせてからはんだ付けしたい部分にあてる。本来は、コテ先で付ける部分を熱して、そこにハンダを点けて溶かすんだが。で、ハンダがのったコテ先が震える震える。短く持って、前腕をテーブルの端に当てて安定させる。いやー難しい。数カ所ハンダブリッジが出来てしまったが、溶かし直してなんとか修正。40ピン全部はやってられないので、信号が必要なピンと両端の4ピン、4ピンをはんだ付けして完了。

はてさて動作確認は一発でOKでした。左手の精度と支持力をあげれば、結構はんだ付けできそう。2.54mmピッチ以上に限るけどね。

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分だけあかりをつけて」ってのも便利だなぁとか。

google home notifier

試してみましたよ。Linux mint 17.3 mateだとnodejsでエラーが。Ubuntu 17.10をVirtualBoxで仕立てたけどなんかエラーでるねぇ。ってかUbuntu、 FcitxじゃなくiBusデフォになってたりする?
結局、どこのご家庭でも常備されてるRaspbery Piで成功しました。ただ文言を話すだけなら ATmegaのAquesTalk pico LSIでも出来るからなぁ。

スマートスピーカテスト

寝室の照明をコントロールする手始め。
Google home miniをつかって音声コマンドをテストした。IFTTTを使用。Google home miniに「メールして」とお願いすると、自分のメールアドレスに「メールしたよ」という本文のメールが届くだけ。thatの部分をwebhookに変えて、自宅内のマイコンのWebサーバを引っ張らせて照明の赤外線リモコンと同じ発光をすれば良い。マイコンを外にさらすのもアレだけど、OSが無い分raspberry piとかをさらすよりは良いだろう。IFTTTでなくて直接宅内でスマートスピーカからRESTできるといいんだが、「Actions on Google」の「Actions SDK」 の方も試してみたい。宅内ローカル環境としてサーバ兼赤外線発光機を立てるならpiもありだな。pi zero wも1枚だけあるし。

AIスピーカーと家電の連携ネタ

 Google Home MiniやAmazon Echo Dotでのホームオートメーション。既製品は結構高価な上、値下がりしてたものも高騰してる感じ。じゃあ自分で作るかと。
 うちの寝室はエアコンとシーリングライトが赤外線リモコン対応。シーリングライトのリモコンは点灯ボタンと消灯ボタンが独立してるタイプ。以前ラズベリーパイのi2sDAC音楽プレイヤーを作った時に、ミニコンポを操作出来るように赤外線リモコンを作っていたからこれの応用で行けるだろうと。部品点数も少ないから、ブレッドボード、できればハンダゴテ握りたいかな。あ、照明リモコンはオンオフが共通ボタンタイプだったとしても、照度センサー付けとけば、今点いてるか消えてるかは判断できるなぁ。このあたりが自作だと出来合いの赤外線リモコンより柔軟性はある。ソフト的にはRESTでオンオフできるインターフェイスを宅内LANに公開しときゃ良いのかな?
 ちっとぐぐったらRaspbery Piなんざ使うまでもなくESP-WROOM-32でやってる例があった。ESP32は2つくらい持ってるからこっちのほうが良さそう。単独でADC使えるし。

雨センサー復帰

 入院中にあったマンションの外壁塗装の所為で取り外して部屋の中に回収してあったXBee雨センサー。電池電圧(単2が二本)も2V切るか切らないかくらいまで落ちてきてたのでメンテナンス。ケースを外して、電池交換。雨が当たるプリント基板部分も取れてたのでビニールテープ等で付け直す。親機との通信が確認できたところでベランダの雨があたる位置へ付け直した。週末の雨で動作確認。

raspberry pi設定

pi zero wを手に入れて居たが設定してないので設定した。「w」なのでネットワークは無線LANで。PCからsshできるとこまでは済んだ。
ついでに、遊んでるpi 3も再インストール。最新のrsapbianのGUI付き。無線LANも設定しPCからSSH,VNCできるとこまでやった。

しばらくviなど使ってなかったけど、いじってると思い出してくる。が、キーストロークはそのまま打てないんだよなぁ。左手しか動かんから。

さて、設定は済んだので。ちっとi2c,spi,uartあたりをいじってみます。言語はやっぱpythonかな。

volumio復帰

朝、カーテンを開けるときに和室のTVの後ろにおいてあるRaspberry Piをみると赤いLEDが点滅してる。ブラウザからvolumioにアクセスしてもつながらない。sdが逝かれたかなと思いつつ放おって出勤。

帰宅後確認。
SDを抜いてLinuxでマウントしたら無事。Raspberry Piをマイデスクの方に取り出してSD戻して起動してみたら無事に起動。その状態のPiをもとの環境に戻したらまた赤LEDの点滅。
どうも電源が怪しいと思ってUSB電源を取り替えたら正常起動。
一応バックアップイメージをDDで戻そうかと思ってたので助かった。イメージは16Gあるから時間かかるのよ。volumioも新しくなってるだろうから、そろそろバージョンアップも検討するかな。カスタマイズして、volumioのWeb画面から赤外線リモコンでコンポの電源オンオフやらボリューム調整できるようにしてるので一筋縄ではいかないけどね。

hems基板とりあえず完成

(以下は 2016/10/10の月曜のことですが・・・)

PCA9956BのRGBバーグラフを入れてまずはブレッドボードでテスト。

20161012_01

普通に動作したので、Adafruitのブレッドボードタイプ基板Perma-Protに載せ替えた。

20161012_02

通常のブレッドボードと違ってPerma-Protはセンターの部分が1ピン分短いのだった。左右も63ピンではなく60ピンだけども。

ブレッドボードからブレッドボードタイプの基板への移植なので作業は超楽ちんでした。

次はこいつのケースを3Dプリントするか、プラバンで作るかだな。あと、PCA9956BのRGBバーは少し光り方を変更する予定。今は8個使って250w単位だけど、100w単位にして色で表現したい。0-800は緑系で、801-1600は黄色系で、1601-2400はオレンジ系で、それより上は赤で。うーんやはりBlueのLEDの出番がない(笑)。