ヘルシオ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

hugo papermod

HUGO Version # hugo version hugo v0.118.2-da7983ac4b94d97d776d7c2405040de97e95c03d+extended darwin/amd64 BuildDate=2023-08-31T11:23:51Z VendorInfo=brew theme選び直しの方針 robustを使っていたが気分転換 サムネイル画像いらない 記事リストは一覧で theme案 mini https://nodejh.com/hugo-theme-mini/posts/ アーカイブ、タグ、disqus、アナリティクスあり 検索なし papermod https://adityatelange.github.io/hugo-PaperMod/ 検索あり disqusあり 更新頻度高 hobor https://themes.gohugo.io/themes/harbor/ 検索あり 日本人作成 更新滞り アイコンがまる stack https://themes.gohugo.io/themes/hugo-theme-stack/ 良い感じ papermodにした 参考 : Installation · adityatelange/hugo-PaperMod Wiki method1(git clone)にした netlifyでデプロイ 参考 : [hugo] HugoとGitHubとNetlifyで静的サイトを簡単に作成 netlifyでgitのリポジトリを追加する(認証) netlify設定 build command : hugo publish directry : public netlify.toml をルートに追加 内容はrobustでの設定そのまま themeはgit cloneなので上記サイトを参考にする .gitmodulesをルートに。 lastmod の表示 Add “Last Edited” to posts · adityatelange/hugo-PaperMod · Discussion #775 ...

2022/08/25 · Last updated on 2025/02/07 · 2 min · 218 words

NCP-HG100 を 楽天モバイル Band3 に固定する

楽天モバイルは改悪されてしまいましたが・・・ でも固定回線代わりにするにはまだメリットありだと思います💡 この内容は先にツイッターでつぶやいてますが、その詳細です😁 バンド3で使えるLTEルータはあまり数がありませんが、改造できるならこのルーターは一番安上がりだと思います バンド固定に関係ないメモ Amazonのレビューにありましたが、Wi-Fiが弱いらしい なので、これはブリッジモードにして、Wi-Fi飛ばす用のルータは別途用意すると。 中身はOpenWrt つまり遊べる でも遊びづらいらしい やること 先人の知恵をお借りします🙏 USB2.0化 バンド3固定 auのバンド18と26(パートナー回線)を拾わないように 18だけ除外でも良さそうだが、両方除外する 購入 お試しでやりたかったのでメルカリで中古をポチぃ 2900円でした Amazonでも売っていて、5000円くらい https://amzn.asia/d/d5rsMYx とりあえず動作 手持ちの楽天モバイルSIMを挿入してみる うごいた パートナー回線(au)は拾わなかった 楽天モバイルで接続中(アプリにもそのように表示あり) 自分が居た場所がたまたま良かったか 20Mbpsくらいだったので、まあまあ 複数SIMを差し替えて使えれば尚良しだったが、L01sのようにAPNプロファイルの切り替えができない(書き換える必要がある)ので面倒 楽天モバイル専用かな 殻割り 写真たち↓ USB2.0化 参考↓ 感謝🙏 pin29,31をマスクした ピンは両面にあるので、pin29と31は隣同士 teraterm文字化け Windows10から作業しましたが、teratermが文字化けして何が何だかさっぱり ググって一通り試してもだめ baudrate を変えてもだめ teratermを使うことは諦めました 通信できてることはわかるですが これじゃコマンドうてない Arduino を使ってシリアル通信 と バンド3固定 ふとArduinoのシリアルコンソール使えばいいじゃんと気づく😎 Arduino Uno を使います UnoにはUSB-シリアル変換がのっているので、その部分だけ使うというわけです Arduino本体(Atmega328)は何もしていません 回路図をみると接続はパラなのでいける! でもインピーダンスが低いと信号が上手く伝わらなくなってしまう(可能性があると思う)ため、Atmega328側はinputでハイインピーダンスにし、プルアップしておいた(一応) Arduinoのスケッチ↓ void setup() { // put your setup code here, to run once: pinMode(0,INPUT); pinMode(1,INPUT); digitalWrite(0,HIGH); digitalWrite(1,HIGH); } void loop() { // put your main code here, to run repeatedly: } baudrateは 115200 bps ...

2022/07/01 · Last updated on 2025/02/11 · 1 min · 116 words

ラズパイのCPU温度をブラウザに表示

ラズパイの温度が気になります。夏だし🚀 こちらの記事のWOLサーバにCPU温度とCPU周波数を表示していますが、その詳細です 環境 ラズパイ 3B+ ubuntu 20.04.4 LTS 温度取得(sensors) ubuntuなので、こちら↓に習って sensors このままだとcpu温度しか出ないのでこちらを参考↓ sudo sensors-detect これでたくさん出る 温度取得(vcgencmd) 「ラズパイ 温度」とかでググると、vcgencmdの記事がたくさんヒットするのではないでしょうか ubuntuなので、vcgencmdがありません ので、まず入れます sudo apt install libraspberrypi-bin 以下を実行すると温度が出ます vcgencmd measure_temp temp=56.9'C sudo じゃないとだめ(でもなかった) sudoをしないと、以下のエラーが出ました vcgencmd measure_temp VCHI initialization failed でも、最初だけ必要なのかもしれません 2回目以降はsudoなしでもいけました 温度取得(ファイルから取得) ← 軽い!これを採用💡 これまでは前置きです(長い) WOLサーバに合わせて記述するので、Flaskのpythonプログラム中でvcgencmdを実行しようと思っていましたが、どうやってもブラウザに表示できませんでした Linuxコマンドはsubprocessで実行しようと試していましたが、どうやらこれが上手くいかない模様 なのでこちら↓を参考にして温度が収められているファイルから値を取ってくることにしました 四つめは動作電圧を確認するメリットをあまり見いだせなかったのと、動作電圧を記録したファイルが見当たらなかったためです。 とのことなので、電圧はいいや(分かれば、何かしらの原因切り分けには使えるが) 温度はここ↓ /sys/class/thermal/thermal_zone0 cat temp 59610 1000で割って、59.61℃ 温度じゃないけど周波数はここ↓ /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq kHz表示なので、1000で割ってMHzになる 表示仕様 温度と周波数を表示 WEBブラウザをリロードすれば値は更新 プログラム修正時 .pyファイルを書き換える時はsystemdのサービスを以下のようにする stop(止める) → status(止まったこと確認) → .py書き換える → start → status(動いたことを確認) ちゃんとしたコマンドは以下↓(stopの例) sudo systemctl stop wakeonlan-server.service nginxは触らなくても、上記だけでWEBページを更新すれば挙動がわかる ...

2022/06/30 · Last updated on 2023/09/22 · 1 min · 109 words