このブログを検索

ラベル RaspberryPi の投稿を表示しています。 すべての投稿を表示
ラベル RaspberryPi の投稿を表示しています。 すべての投稿を表示

2021/08/28

電力表示とセンサーゲイトウェイを合体

 ベランダや宅内の各種センサーのブロードキャストを受信しambientへ送ってる子(raspberry pi3)のダウン頻度があがった。microSDチェックしたら読めないところができてる。で、今のうちに必要なとこバックアップして作り直そう。どうせなら電力のスマートメータの表示してる子(これもraspberry pi)と一緒にしてしまおう。ということで作業開始。

 raspberry pi4のmem4g機が余ってるからそれにまとめることにした。とりあえずmicroSD 8Gに Raspberry Pi OS Lite版で。電力計はpython3, BTGWはpython2.7だったので python3に揃えることにした。壁掛けできるようアクリルパネルをAmazonで調達。サクッと完成。
 で。Rainbow HATのLED表示じゃなくて、7〜10インチくらいの液晶パネルをつなげて全センサーの値を表形式で株価の様に表示したいなと。 Raspberry Pi OSのノーマルGUI版で別途構築して入れ替えよう。GUIっても表示するだけだからpythonでええかな。センサー値の共有は sqliteをtmpfsで良いかと。センサー値はambientに上げてるからそっちから拾ってこれるけど、違うやり方をやってみたい。

2020/12/30

raspberry piに環境構築未完

昨日の夜、pi4にxubuntu-desktopをインストールさせたまま寝た。
ので、起きてから環境構築。
numlock周りの設定を変えて、ユーザ作って。

・Arduino IDE
arm64のtar.xzを拾ってきて普通に動く。初回起動時点で日本語表示になってる。ただ、ボードマネージャではESP32の環境を入れられない。「対応してない」と言われる。

・XCTU
Digiのダウンロードページにはx86,x64のみで armなし。

・PyCharm
tar.gzを拾ってきたがエラー。java関係の依存?

・vs code
arm64版で普通に動く。

といったような結果。chromeboxで動いちゃうから、現時点ではつきつめない。M1 macのおかげでarm対応が増えて来れば期待ができる。バックアップ用にintel CPUなpixelbook goの方に環境作ったほうが得策だ。持ち運びできるからMake系電子工作と相性良いし。

2020/12/28

年末・年始は

今日で仕事納めでした。

で、年末年始は何するかというと
・galium osからchrome osに戻したchrome boxにLinux部にArduino開発環境とxBee3 microPython開発構築
・Raspberry pi 4にもArduino開発環境の構築
・自作した Arduino や pythonのコードの整理。GitLab使ってみたけど分担構築とかしてないからローカルで良いかなと思い。Linuxでお手軽なのないかな。
あと、クリスマス頃に自宅内をwifi5メッシュからwifi6メッシュに変えたのだが、会社のノートPCがwifi6だとSSID見つけてくれない事があって困ってる。intel AC8260の問題らしいけどドライバをアップデートする権限はないので、対症療法的にwifi5のAPを1つ作ろうかとか。今までのorbiはmicroといってもデカイんで戻したくない。

2020/12/12

いろいろインストール

昨夜は、USB接続のSSDでのOS起動テストしてからはほったらかしになってたRaspberryPi4に、新たに高耐久SSDを買ってやり、Raspberry Pi OSを入れてやっていた。Raspberry Pi OS 64bit版正式リリースもはやく頼む。chromeが入らんのよ。

今日の午前中はWindows10機の再インストール。CPUはi7-4790S なので長く使えてる。で、記憶域がmSATA 240GBと2.5インチSATA480GBで、色々OSを入れていたのでパーティションが大量にありぐちゃぐちゃ。480GBを1本丸っとWindowsにして、240GBはGoogleDrive同期用にした。で、Windows何に使うかというと、マイナンバーカードリーダーの接続用とKindle for PC用くらいか。WindowsUpdateの遅さ確認も忘れずに。

午後は本命作業。GalliumOS 入れてたchromebox 3をchrome osに戻す作業。USBブートするためにファームも変えてたので試行錯誤。https://mrchromebox.tech/ のおかげで無事にchrome osに戻せました。でも、いまだにkindleアプリはインストールできない。タッチパネル機じゃないとインストールできないと読んでいる。やはり、メモリ16GBに拡張してあるんで余裕。CPUはIntel i3-7130Uだが。今まで自宅メイン機だったpixelbook goと交代だな。

2019/10/20

久しぶりにmake系でも

寝室の照明のコントロールにraspbery pi zerowに赤外線LEDを付けたのを使ってる。こいつが反応しなくなっていたので調査。
ログファイルを見る限りgoogle homeからIFTTT通ってzerowまでは通っている。赤外線発光コマンド irsendがこけていた。どうやら最近のカーネルでlirc関連の制限値が変わったようで、それでエラーとなってる。仕方無いからカーネルバージョンを巻き戻したら難なく動きやがりました。まったくなんで値(LIRCBUF_SIZE)を小さく変えるんだよ。

m5camera
ESP32使ったカメラモジュール。前、ベランダでやってたように定期アップロードを試みた。前なんて、Arduinoでシリアル接続のカメラをベランダに置いて、部屋の中のmbedとXBeeで無線通信させて使っていたんだが。今は消しゴムサイズで全部やってくれる。
アップロード先は自分サーバではなくクラウドストレージにした。AmazonPhotoが空いてるので使おうかと思ったが、今はAPI公開してないらしい。なのでGoogleDrive。最初、サンプル見つけてなかなかうまくいかなかった。原因はサンプルについてるgoogle.comの証明書が古かった。修正して無事定期アップロードできた。あとは光センサーと連動さえて、真っ暗な時はアップロードしなくしよう。

台風で退避した雨センサー
台風19号の時に部屋に退避していた。ついでだからと電池を交換していたら外装が砕けた。ベランダの雨のあたるところに設置してあるから紫外線浴びまくりで樹脂がボロボロになってた。2年前退院してきた時も同じように壊れたが、あの時はまだ同じサイズのケースがあったので事なきを得た。
今回はジップロックに入れて仮運用となった。まぁ、中のXBeeモジュールもケースが錆さびだしそろそろ終わりかと。
そういうわけでESP使って新センサーを作ろうとは思ってる。間欠deepsleep運用すればWiFiでも電池でなんとかなるんでないかと。問題ははんだ付けとケース加工。時間かければ&ツレに手伝ってもらえばなんとかなろう。

2018/12/02

電力スマートメータ表示機を変更

 今までmbedでやってたスマートメータからBルートで現在消費電力を持って来て使う工作。最近になってソースコードを変更したら動かない。まぁ、ベースの消費電力表示は動けども、他のサービスと連携するコードがだめだ。もうコードが古いから。
 ということで環境変更。ESP32でやってみていたけどもUARTが化けたりふんづまったりで安定しなかった。どうもロームのBP35A1はシビア臭い。前にESP-WROOM-02で試したときもそうだっった。
 で、raspberry piに環境を再変更。piならほかサービスとの連携部分が作りやすい。BP35A1との接続はUART−USB変換して繋いでみた。とんとん拍子で作成完了です。あとはGoogleの BigQueryからデータスタジオへの連携を作ればOK。



BP35A1はブレッドボード。早くハンダゴテを麻痺側で持てるようになってユニバーサル基板に作り変えたい。

2018/08/17

pi2 aptで壊れて再構築

 宅内IoTにしてるraspberry piの一つが壊れた。ベランダセンサーからデータを取得したり雨センサーからの通知をxbeeで受け取ったり、そしてそのデータを別マシンのRDBに書き込む役割をしていた。こいつのソフトアップデートしとこうと木曜帰宅後にapt updateしてapt upgradeした。いつもより時間がかかる。1つのアプリで数時間かかりそうなのがあったので、キャンセルしてみた。で、再起動して再度aptを実行すると E: Error reading the CPU tableでどうにもならん。
 というわけで再インストール。昨晩、最新のRASPBIAN STRETCH LITEをダウンロードさせながら寝たので別microSDにインストール。もとのSDも読める部分はあるのでLinux Liteからpythonアプリのコードを無事退避。raspbianの初期設定(password変更、ホスト名変更、locale変更, timezone変更、ipv6禁止、ipv4固定化、swap禁止、vim-tyny消して普通のvimを導入 など)を実施。この辺り、自動化させないとなぁと思いつつしてない。(仕事でも自動化させたいブツが入りそうだがWindowsなんだよなぁ)。
 改めてapt update, apt upgradeを実施。pythonコードを戻して、pip3でライブラリをインストール。手起動でpythonコードの動作確認してcron登録して復帰完了。左手だけでも1時間半くらい。SDにイメージ焼くのとaptが時間かかる。
 さて、自動化のために ansibleのplaybook書くかね。

2018/07/02

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

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

2018/06/09

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のアカウントを分ければできそうだけれど、そうするとスマートホーム機能が・・・。

2018/03/31

クラウドでなく自宅内の細々Linux機をいじる

piの構築を楽にするべくansibleを使うべくCentOSを入れようとx86なマシンを出してきた。Livaの初期型。メモリ2GでストレージはeMMC64Gでファンレス。Windows8が入ってて10にアップグレードしてあったけど捨ててCentOS7.4を投入した。CentOS、昔はeMMCにはインストールできなかったが、時が解決したようで何の問題も無かった。
で、SElinuxはdisabledにしたが、firewalldはiptableに戻すこと無くそのまま使う。通知メール用に最近取得したsendgridの無料アカウントでpostfixからメールも送れるようにした。logwatchもいれて、どうせなのでpiでやってるdnsmasqをこっちに移した。

その後、pi zero wでwi-sunモジュールのテストを試みるがまったくつながらない。pi B+では動いたのだが・・・。いろいろ調べると最近のbluetooth搭載piはttyAMA0がBTと直結になって邪魔してるみたい。切り離し方法を見つけてそのとおりにやったら無事動作しました。

2018/03/09

センサ関連だいたい移行

 雨センサを移行したので今までの arduino,mbedの環境を停止し片付けた。雨センサのXBeeからの情報はraspberry piにUSB-UARTアダプタでつないだXBeeで受信してる。受信ソフトはpython3 (3.6)で書いて。XBeeのライブラリはxbee-python。digi謹製のdigi-xbeeと両方試したが前者の方がほしい情報に早く行きついた。余裕あるときにdigi-xbee用に書き換えてもよい。
 っていうより、雨なのに雨センサが感知してないです。コード断線したかな、チェックしよう。センサーの電池の電圧はXBeeのremote_at(%V)でモニターできてます。センサー側がperiodic sleepで寝てるので、雨データを送ってきた時に寝る前にすかさずremote_atを送り込んで返してもらってます。
 さて、ベランダのセンサーの値はココのperconaとambientにおくってるけど、piにも置いておこうとsqliteを検討。そのデータをすぐみられるように、piにAmazonでタイムセールになってた5インチモニタをつけた。静電容量で無く感圧だがタッチパネル。で、表示するアプリの環境はErectronを考えてる。となると、センサーか読みとってここやambientに送ってる部分やXBeeまわりを node.jsに変えたくなるなぁ。どうも pythonの閉じがないブロックに慣れない。


わかりにくいけど、やっぱ切れてました。センサー接続部が。まとめ買いした基板のあまりがあったので、線をはんだ付けして取り替えました。線をよじってつなげるだけでも片手だと大変です。なので右手も参加してもらうんだけど手関節(=手首)が自由に動かないもんだから方向が合わないんです。

2018/03/04

風が強いので工作ひきこもり

 ベランダにあらたに作ったLuxセンサが滑らかな値にならないので、CDSでの分圧のADC入力を追加した。ESP8266の時は0-1V測定で使いづらかったADCもESP32では減衰器が入って0-3.6Vで測れるのでgood。1個センサーがふえるとベランダハード&ソフト・中継用mbedとRaspberry Pi・AWSのDBと変更をかける必要がある。
 ベランダのハード&ソフトを変えるので、雨除けジップロックも横向きに変更。雨が電源のUSBケーブルを伝ってESP32まで届かないように。
 つづいて、雨センサーの中継の変更。PiにコーディネータのXBeeつないで対応する。この実験中に雨センサのケースを破壊してしまった。紫外線でもろくなってた。同じプラケースを宅内で捜索してなんとか発見。こいつの中も結露とかの所為かXBeeの金属部分に錆がういていた。で、Xbee-Python、まだ理解しきれてない。ArduinoとmbedはC/C++だったから楽だったけど、慣れれば何とかなるでしょう。今週末までにPythonに移行したい。

2018/02/27

とりあえずambient

センサー値をjsonで吐くとこまでは作っておいたので、raspberry piにてpythonでちょろっと。

headers = {“content-type”: “application/json”}
r = requests.get(url, headers=headers)
json_dict = r.json()

こんな感じで取ってきて

am_dict[‘d1’] = format(json_dict[‘BME280’][‘Press’][‘value’])

am = ambient.Ambient(99999, ‘1234567890’)
ret = am.send(am_dict)

こんな感じでambientに送信。

これでグラフで見られます。
いやー楽チンすぎる。


(まだデータがすくないからギザギザですが)

2018/02/20

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

結局、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台だけ。どうなってるんだ?>招待状。

2018/02/11

片手ではんだ付け

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

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

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

2017/12/17

google home notifier

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

2017/12/14

スマートスピーカテスト

寝室の照明をコントロールする手始め。
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枚だけあるし。

2017/12/09

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

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

2017/08/20

raspberry pi設定

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

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

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

2016/10/13

volumio復帰

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

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