あとをしNOTE

Welcome to my blog🎉

HUGOブログをiPhoneで書く環境

執筆は基本PCで行いますが、iPhoneなどのモバイルでも行いたいです。 一度PCから投稿した記事をgithubのアプリからrawデータを編集して更新していましたが使いづらかったです。 workingcopyとobsidianを使ってみたら結構良いです。 obisidianは普段からライフログ用に使っています。 .obsidianは.gitignoreにしましたが、hugoには影響ないようです。 obsidianではfrontmatterをきれいに表示してくれるのが便利です。 デメリット hugo new posts/A/index.mdができないので新規記事はフォルダを作ったりindex.mdをコピペしたりと手間がかかる。 iPhoneからはhugo server -Dができないので、プレビューが見れません。しかしobsidianでプレビューできますので問題になってません。

2025/02/08 · Last updated on 2025/02/08 · 1 min · 13 words

ソリオMA15Sが対応しているPIDを調べる

はじめに OBDから取れるデータは何か、対応しているPIDを調べてみました。 Wikiに載ってるStandard PIDsは全て対応しているわけでは無いため、ソリオが対応しているPIDを調べてみます。 使ったもの ELM327 v1.5 調べ方 Service 01 PID 00 - Show PIDs supported 上記wikiにあるように、ELM327からコマンド01 00(service 01 PID 00)を送信するとPID 01からPID 20までで、対応しているPIDのビットには1、未対応のPIDのビットには0がセットされます。 wikiの例だと、01 00の応答が0x BE 1F A8 13だった場合、これを2進数に変換すると 0b 1011 1110 0001 1111 1010 1000 0001 0011 となるため 対応してるPIDは1が立っているPID 01, 03, 04, 05, 06, 07, 0C, 0D, 0E, 0F, 10, 11, 13, 15, 1C, 1F ,20となります。 左端から見ていくため、例えば左端の0xB=0b1011では、PID 01は対応、02は未対応、03,04は対応ということになります。 PID 20が対応しているということは次の PIDs supported [$21 - $40] ということになるため、PID 21 から PID 40 が存在するということになります。 コマンド01 00と同様に考えて、01 20を送信するとPID 21 から PID 40 までの対応状況が分かります。 ...

2025/01/05 · Last updated on 2025/02/19 · 3 min · 473 words

ArduinoでOBDをシミュレートしてELM327とつなぐ

はじめに 車両のOBDでデータを取りたいと思っていますが、車両で開発は大変なのでArduinoで車両をシミュレートする環境を作りました。 参考 以下を参考にさせていただきました。ありがとうございます。 環境 windows Arduino nano互換機 MCP_CAN_lib v1.5.1 ELM327 v2.1 MCP2515モジュール Car Scanner(Androidアプリ) OBDケーブル Arduino nano互換機 について 久々に使ったので、最初書き込みができなくて困りました。 IDEでOld Bootloaderを選択します。 MCP2515モジュール について Amazonで3個セット安いやつです。 KKHMF 3個 MCP2515 CAN バス モジュール TJA1050 SPI レシーバー Arduino AVR MCU ARM に対応 不良が混じっていることが多いみたいなのでモジュールを2つ使って動作確認をしました。 こちらは以下を参考にして動作確認をしました。ありがとうございます。 OBDケーブル について 以下を使用しました。 LoongGate OBD - II 16ピンオープンプラグワイヤを終了するには - OBD2 16ピンラウンド延長コネクタ診断ケーブル - 0.3メートル レビューには商品袋に記載のピンアサインと実際のピンアサインは違うとあったのでテスターチェックしましたが、商品袋に記載の通りでした。なのでGreen - CAN-H,Green/White - CAN-Lで接続しています。 Pin Color Function 4 Orange Chassis GND 5 Light blue Signal GND 6 Green CAN high 14 Green/white CAN low 16 Red 12V ...

2024/12/26 · Last updated on 2025/02/07 · 1 min · 150 words

ヘルシオAX-L1をArduinoで改造

中古のヘルシオAX-L1をメルカリで500円でゲットしました。 油汚れまくり、板金ボコボコ、プラパーツバキバキでしたが、壊れてなく(?)ラッキーな買い物でした。 しかし、使いづらいのがノブ 回すのですが、狙った番号にならない。通り過ぎちゃう。 なので、Arduinoで改造しました。 普段使うのは自動温めの3番,手動温めの29番なので、それを一瞬でできるようにプッシュスイッチをつけました。 ポチッとすると3番,29番になるような感じです。 ノブはロータリーエンコーダなので、パルス信号が出ています。 ポチった時にArduinoからパルス信号をだしてノブを模擬します。 3番がノブ3回転分なら、Arduinoから3回転分のパルスを出します。 いざヘルシオを開封 ノブの波形を見てみます。 適当に線を伸ばして 波形はしっかり2相ズレて出力されています。 回さないと3.3Vだったのでプルアップされています。 ノブ、スイッチの両方で動作するような回路にします。 といってもダイオードを入れただけです。 ダイオードのアノード側はヘルシオのロータリーエンコーダに並列に接続します。 スイッチを接続したポートはArduinoの内部プルアップとしました。 一応シミュレーションで見てみると大丈夫そうです。 スイッチを押してロータリーエンコーダを回していない時は、ダイオードが導通するためスイッチのプルアップ抵抗とロータリーエンコーダのプルアップ抵抗の両方から電流が流れます。 プルアップ抵抗が同値なら2倍の電流が流れますが、抵抗値はおそらく数kΩで電流は大した事ないので問題ないと思います。 ちなみにシミュレーション上の電圧などの定数は動作を見るためだけだったので適当です。 回路図はkicadで書きました。 githubにあげました。 atooshi-note/AX-L1 Arduinoのプログラムもgithubにあげてあります。 スイッチは以下の4つ実装します。 ノブ左1回転(left)、自動温め(atatame)、手動温め(syudou)、ノブ右1回転(right) 手動温めは29番で29回転は多いので後ろから数えています。 ノブ左1回転(left) 自動温め(atatame) 手動温め(syudou) ノブ右1回転(right) 動作が確認できたので、きれいに付けて ブレッドボードで最終動作確認して 基板に実装して固定。むき出し 便利!! 以上

2024/03/23 · Last updated on 2025/02/05 · 1 min · 39 words

にゃんCAM再構築

ことの経緯 以前、raspberry piにて猫カメラ(にゃんCAM)を構築しました。 普段はTapoを使っていたので全然出番が無かったのですが、久々に起動しようとしたら起動を繰り返す変な動作をしていました(デスクトップ表示→左上にアンダーバー点滅→再起動の繰り返し) 直そうと適当にやっていたらSDカードを割ってしまいました(物理的に)。 というわけで、再構築しようとしたのですが環境が変わってつまずいたので新たに記事にしました。 教訓 SDカードは色んな意味ですぐ死ぬ。クローンを作っておくこと ハード raspberry pi 3B(3B+ではない) 32GBのSDカード 5.1V出力のACアダプタ これはlow voltage errorの対策です 機能、ファイルの置き場など OpenCVでUSBカメラ(webカメラ等)2台を制御し、30分ごとにLINEで撮影画像を送信します 2台用でプログラムを書いてあるため、2台以外(1台or3台〜)ではプログラムがエラーになり、動作しません。(具体的にはプログラムエラー→再起動のループ)) 1台分にコメントアウトすれば1台でも動作します saikidou.serviceとsaikidou.timerによってラズパイを定期再起動させますが、ラズパイの安定性向上やUSBが死んでカメラが認識しなくなることが偶にあり、それを復帰させるために実施します USBが死ぬ(例えば、カメラが1台しか繋がってないような状態になります)と上記した通りnyancam.pyがエラーになり、nyancam.serviceによってプログラムの再起動を繰り返しますが、少なくとも定期再起動のタイミング(6時間ごと)で復帰するため長期にカメラが機能しなくなることはなくなります 死亡したときはプログラムの再起動が繰り返されるため、USBカメラのLEDが点滅します(LEDは撮影時に点灯) ラズパイのそばで対応できるなら再起動を待たずともUSBの抜き差しで再認識します(USBが復帰し、nyancam.serviceによる再起動でカメラが2台認識します) GPIO26に接続したスイッチを単押しするとテスト撮影、5秒以上長押しするとラズパイをシャットダウンします Filename Path Note nyancam.py /home/USERNAME/Desktop/ プログラム本体 nyancam.service /lib/systemd/system/ nyancam.pyを自動起動する エラー時にnyancam.pyを再起動する saikidou.service /lib/systemd/system/ ラズパイを定期再起動する saikidou.timer lib/systemd/system/ saikidou.serviceとセット githubにあげてあります プログラムの実行結果 nyancam.pyを実行した結果例を載せます カメラ検索でワーニングが出ますが、動作に問題ないためそのままにしています。 camera number 0 Find! [ WARN:0] global /tmp/pip-wheel-a8gfdc_n/opencv-python_13563f08137a4b20bc4dfee05bcbf854/opencv/modules/videoio/src/cap_v4l.cpp (893) open VIDEOIO(V4L2:/dev/video1): can't open camera by index camera number 1 None camera number 2 Find! [ WARN:0] global /tmp/pip-wheel-a8gfdc_n/opencv-python_13563f08137a4b20bc4dfee05bcbf854/opencv/modules/videoio/src/cap_v4l.cpp (893) open VIDEOIO(V4L2:/dev/video3): can't open camera by index camera number 3 None [ WARN:0] global /tmp/pip-wheel-a8gfdc_n/opencv-python_13563f08137a4b20bc4dfee05bcbf854/opencv/modules/videoio/src/cap_v4l.cpp (893) open VIDEOIO(V4L2:/dev/video4): can't open camera by index camera number 4 None [ WARN:0] global /tmp/pip-wheel-a8gfdc_n/opencv-python_13563f08137a4b20bc4dfee05bcbf854/opencv/modules/videoio/src/cap_v4l.cpp (893) open VIDEOIO(V4L2:/dev/video5): can't open camera by index camera number 5 None [ WARN:0] global /tmp/pip-wheel-a8gfdc_n/opencv-python_13563f08137a4b20bc4dfee05bcbf854/opencv/modules/videoio/src/cap_v4l.cpp (893) open VIDEOIO(V4L2:/dev/video6): can't open camera by index camera number 6 None [ WARN:0] global /tmp/pip-wheel-a8gfdc_n/opencv-python_13563f08137a4b20bc4dfee05bcbf854/opencv/modules/videoio/src/cap_v4l.cpp (893) open VIDEOIO(V4L2:/dev/video7): can't open camera by index camera number 7 None [ WARN:0] global /tmp/pip-wheel-a8gfdc_n/opencv-python_13563f08137a4b20bc4dfee05bcbf854/opencv/modules/videoio/src/cap_v4l.cpp (893) open VIDEOIO(V4L2:/dev/video8): can't open camera by index camera number 8 None [ WARN:0] global /tmp/pip-wheel-a8gfdc_n/opencv-python_13563f08137a4b20bc4dfee05bcbf854/opencv/modules/videoio/src/cap_v4l.cpp (893) open VIDEOIO(V4L2:/dev/video9): can't open camera by index camera number 9 None 接続されているカメラは 2 台です カメラ0 : 0 番 カメラ1 : 2 番 CamNum0 : 0 CamNum1 : 2 ### にゃんCAM 起動 ### rev:7 30.0分ごとに撮影しまーす! 接続カメラ : 2 台 2023-09-09 11:38:42.525746 カメラ0 うp残 : 46 / 50 カメラ1 3BはUSBブートがめんどいらしい SDカードを割ってしまったので、もっと(物理的に)丈夫なUSBメモリでbootさせることを考えました しかし、3B+はデフォルトでUSBブートができるのですが、3Bはできないようです 正確には色々変更すればできるようですが面倒なので見送りました ...

2023/09/07 · Last updated on 2023/09/23 · 3 min · 576 words

別PCでHugoするときの注意点

別pcでもブログの執筆をするために別pcに git cloneしたが、 hugo server -Dでエラー git submodule update --init --recursive を実行する Hugo ビルドエラー対応 found no layout file | infraya.work またhugoのversionは揃える必要あり hugo server -Dで http://localhost:1313/にアクセスしてもPage Not Foundとなった

2023/08/26 · Last updated on 2025/01/28 · 1 min · 27 words

報告書をMarkdownで書いてPandocでいい感じのPDFにする

報告書をMarkdownで書いてpdfにしたいと思っていたところPandocを使うと良さそうだと知りました Pandocはインストールが難しいらしいので、安易にdockerで構築しようと思い立って苦労しました。。。 LaTexは名前は知っていたのですが、学生時代はMSWordで論文を書いたため、ほぼゼロ知識だったのですが今回の構築を通して少し学べました githubにまとめました できること MarkdownからPandocを用いて1コマンドで良い感じのPDFを生成すること できたもの pandoc-latex/content.pdf at main · atooshi-note/pandoc-latex 特徴 Dockerで構築 pdf-defaults.yaml,header.texに設定を記載 pandoc-crossrefにより図表番号を自動入力(相互参照) 目次のリンク機能 章番号自動付与 defaults.yamlはpandoc2.8以降の機能です 環境 Windows10,11 macOS 12.6.8 Docker Desktop Docker > docker -v Docker version 24.0.2, build cb74dfc Pandoc > docker run -it --entrypoint=/bin/sh --volume "$(pwd):/data" manned2665/pandoclatex311 /data # pandoc -v pandoc 3.1.1 Features: +server +lua Scripting engine: Lua 5.4 User data directory: /root/.local/share/pandoc Copyright (C) 2006-2023 John MacFarlane. Web: https://pandoc.org This is free software; see the source for copying conditions. There is no warranty, not even for merchantability or fitness for a particular purpose. Pandoc-crossref ...

2023/08/26 · Last updated on 2023/09/16 · 4 min · 731 words

netlifyでQRコードリダイレクト

概要 netlifyでQRコードをリダイレクト😃 背景 立ち上げたサイトURLをQRコード化して、紙に印刷を検討。 その場合、修正が入ってサイトのURLが変わってしまったらQRコードも変更しなければならない。 しかし、紙に印刷していれば、印刷し直し。 それは困るので、リダイレクトをしてQRコードを変更せずに済むようにした。 参考 感謝🙏 https://uepon.hatenadiary.com/entry/2020/11/19/014359 検討 リダイレクトするサービスは無料でたくさんある。 しかし、無料のサービスはサーバが不明なのでやめた。 github pagesでリダイレクト 参考サイトではgithub pagesで実装されているが、github pagesはprivateリポジトリでは使えない。 publicだとURLなど、中身が公開されてしまうのでgithub pagesは辞めた。 netlifyでリダイレクト githubのリポジトリはprivateとして、 https://uepon.hatenadiary.com/entry/2020/11/19/014359 を参考に、git clone まで実施 https://bioscryptome.t-ohashi.info/hugo/hugo-netlify-build/ を参考に、netlifyとgithub連携をする basic build settings は全部空欄とした https://uepon.hatenadiary.com/entry/2020/11/19/014359 を参考に、index.htmlを作り git push -u origin main を実行 hugoの時はリダイレクト設定とかをやったが、今回はやらずにいけた。 あとは、netlifyのURLでQRコードを作ればOK netlifyのURLにアクセスすればリダイレクトされる。 その他 立ち上げたサイトはgoogle検索で出てこないようにしている 以下で検索して出てこなければOK site:サイトのURL つまり、クローラによってインデックスされていない google search consoleに申請しなければ検索に出て来ない 以上😀

2022/12/18 · Last updated on 2025/02/07 · 1 min · 52 words

【にゃんCAM2】Tapo C200 を Homeassistant で動かす

まえがき 以前、ラズパイで猫カメラを作りました(にゃんCAM1)。 今回は、2です。 homeassistantとTP-linkのipカメラ Tapo C200 を使って構築しました。 こっちのほうが全然簡単です笑。 にゃんCAM1 part1から8まで記事が分かれています。 全体は8を見ればわかります。 8のリンクのみ載せておきます。 にゃんCAM1からの性能アップ内容 にゃんCAM1は画像をLINEで定期送信(30分ごと)が機能でしたが、それに加えて以下を追加しました。 ほとんどカメラのデフォルトの機能ですが。 暗視 動体検知 動画配信 カメラ設置の自由度向上 画質向上 簡素化 以下に詳しく記載します。 暗視 カメラのデフォルトの機能です。 IRカメラが搭載されており、周りの明るさに応じて自動でカメラが切り替わります。 暗さのしきい値を越えればIRカメラに切り替わります。 にゃんCAM1では普通のwebカメラを使っていたので、暗くなると全く映りません。 そのため、夜でも薄暗く電気をつけていました。 2ではその必要がなくなったため、にゃんこの負担も減るでしょう。 一応、にゃんCAM1でもIRのwebカメラを買って動作確認はしましたが、面倒くさくて完全導入はしていませんでした笑。 動体検知 これもカメラのデフォルト機能です。 30分ごとの撮影では良いタイミングを逃してしまうことは多々あります。 カメラの設置目的はお留守番に問題ないかな?の確認用とは言っても、あっ今ウンコ💩した!ご飯食べてる!がリアルタイムにわかるのは嬉しいです。 動画配信 これもデフォルト機能です。 あまり見ませんが、リアルタイムで見れるという安心感は大きいです。 homeassistantのオーバービューに表示していますが、外出先からはtailscale(VPN)でアクセスして確認します。 カメラ設置の自由度向上 カメラと電源コードのみなので置き場所の自由度があがります。 にゃんCAM1ではラズパイ本体とwebカメラ2台をダイソーのワイヤーネットに固定していたので大きいし、設置位置も限られました。 それが解消しました。 また、ipカメラなので、カメラが容易に増やせるのもメリットです。 簡素化 homeassistant本体(ラズパイ)はルーターボックスに常設していたWOLサーバ用ラズパイに入れたので、カメラ使用時はカメラだけ設置すれば良くなりました。 ついでにWOL機能もhomeassistantに構築しています。 後ほど紹介します。 そもそも ここまで読んでいただいて言うのもあれですが、わざわざhomeassistantを使わなくてもtp-linkのアプリ(tapoアプリ)を使って普通に使うだけで十分高性能です。 上記した動体検知や暗視は使えますし、モバイル回線からも動画が見れます。 じゃあ何でわざわざ?なのですが、以下が理由です。 tp-linkのサーバに動画をあげたくない LINEで画像を確認したい homeassistantで構築できる機能を使いたい 1については、モバイル回線から動画が見れている時点でtp-linkのどっかのサーバに動画が上がっているわけです。 動画のようなプライベート性の高いものを知らないサーバに上げるのは気持ちが悪いです。(それを言ったら他のクラウドサービスも一緒ですけどね) Amazonのレビューを見ると、カメラが勝手に動いたとかtapoアプリのプライバシーポリシーには第3者が動画を見ますよ?(←よく読んでない)的なことが書いてあって同意しないとアプリを使えないとか何とか。 など諸々を考えてLANのみの運用にしました。 後ほど詳しく記載しますが、ルータの設定でtapoのインターネットアクセスを遮断しています。 WANからはtailscale(VPN)を使ってアクセスします。 2についてはにゃんCAM1の機能を維持するためです。 tapo純正ではその機能は無い(調べてない、が正しい)ので、作ることにしました。 3については、WOLやtailscaleのことです。 日々の運用方法 homeassistantは常に起動しており、WOLやtailscaleのサーバとして動作しています。 そして必要なときにカメラの電源を入れればhomeassistantから見えるようになり、監視が開始します。 カメラが不要になったら、カメラの電源を抜けばそれで終わりです。 環境 raspi 3B+ 32GB SDカード 失敗メモ 以下に記載したのは構築時の自分メモです。 実際は失敗したので使用していません。 ...

2022/09/11 · Last updated on 2023/09/22 · 4 min · 743 words

Homeassistant

環境 raspi 3B+ Raspberry Pi OS 32bit 32GB SDカード OS書き込み Windowsにて、Raspberry Pi Imager v1.7.2で書き込み 書き込み時に以下を設定 Wi-Fiは設定無し(有線で接続) ssh有効化 パスワード変更 ssh接続 入ろうとしたら以下のように怒られた PS C:\Users\username> ssh username@ipaddress @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 以前同じipでラズパイを触っていて、今回OSを入れ直したために発生した なので、以下を参考にしてホスト鍵を消す 参考 : https://qiita.com/hnw/items/0eeee62ce403b8d6a23c PS C:\Users\username> ssh-keygen -R ipaddress # Host ipaddress found: line 1 C:\Users\username/.ssh/known_hosts updated. Original contents retained as C:\Users\username/.ssh/known_hosts.old これでおk アップデートとか ラズパイにssh接続していつものヤツを実施 sudo raspi-updateはプレリリース版(安定版ではない)にアップデートしてしまうのでやらない (参考 : https://qiita.com/takeaship/items/5861660c11d9d434368f) $ sudo apt update $ sudo apt full-upgrade $ sudo apt clean Home Assistant のインストール 参考 : https://smartlife99.netlify.app/home-assistant%E3%82%92%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B%E3%81%BE%E3%81%A7-%E3%81%9D%E3%81%AE-4 ...

2022/08/27 · Last updated on 2025/02/07 · 3 min · 452 words