2026年2月8日日曜日

esp32温度センサ動作で苦労する

 カメラも動作させているためか、FNK0060なるESP32 は、BMP280ライブラリの中の名称のダブりなどでうまくビルドできず、苦労した。google AIからかなりハードよりのコードを出してもらいなんとか解決。 また、I2Cは、2つが限度らしく、リレー動作がひとつあまってしまう。そこで、温度が50度程度なったら、両方のリレーがオフになるように、2つのリレーに共通にもうひとつ常時onのリレーをつなごうかと考えている。いわゆるフェールセーフ機能。

2026年2月7日土曜日

苗床温度調整をesp32で

 3月ぐらいから、小さめの衣装ケースに発泡スチロールを入れ、5Vヒーターで温度調整しながら、試してみようかと思い準備中。念のため、ヒーターには70度ぐらいの温度ヒューズを直列に入れるといいらしい。コードはこれから考える予定。ハードは、センサ部分の残してほぼできてきた。

 配線図では、12Vを降圧コンバータで5VにしてたものをEsp32に使っているが、安定せずうまくいかなかったので、専用の5Vを用意する予定。




2026年2月3日火曜日

(備忘録)sqliteでのデータのコピー

 GUIのsqlite3ブラウザでデータコピーする方法を忘れないようにメモしておこうと思います。

・B Browser for SQLiteを使う場合

1) コピー先を開く

2) コピー元を Attach(別名を付ける)

 「データベースに接続」(「開く」ではないので注意!)で →ソースの データベースを追加

  Alias(別名)に src と入力

※ この段階で「src」という別DBとして認識される

3) SQL 実行(INSERT のみ)

「SQL実行」タブで以下を実行

INSERT INTO shishutunyu1 (date, sishutu, shunyu, zandaka, himoku, biko)

SELECT date, sishutu, shunyu, zandaka, himoku, biko

FROM src.shishutunyu1

WHERE date BETWEEN '2025-01-01' AND '2026-02-03';

4)変更を書き込み

2026年2月1日日曜日

Qtによる家計簿アプリ公開

  まだ、インポート関係で多少バグもありそうな気もしますが、念のため、インポート失敗したら、インポート直前にUndoできるようメニュー追加しました。いったん公開したいと思います。また、セルの編集がすぐ反映しないときは、再計算をクリックする仕様にしました。
 こちらにあります。(マニュアル・ヘルプ等はまだつくっていませんが。)
 1 銀行からのCSVインポート機能(極力汎用性もたせて、現段階では3~4つぐらいのところには対応させました) 2 スマホで入力したデータの転記機能
など追加しました。
 2のためには、 raspiのbottleとandroid studioが必要です。参考までにコードは以下のとおり。

bottle 

android

※今は、Windowsで使用していますが、Qtで作成したので、将来的にはLinuxでも使用することを考えています。


2026年1月30日金曜日

android自作アプリがWIFIで内部サーバに接続できない問題

  外部からは、モバイル回線だと接続できるけれど、家でWIFIだと内部サーバに接続できないという問題があり、いろいろ解決まで時間がかかった。ちなみに、Chromeなどでは問題なく接続できるので、自作アプリに問題あるのは予想できた。

 ChatGPTでも解決できず、googleAIに質問したところ、解決。android:networkSecurityConfig="@xml/network_security_config"が厳格すぎたせいだった。自作アプリには、かなりセキュリティ対策を厳密にしているらしい。もともと、androidはgoogle製なので、的確な回答ができたのだと思う。

 WIFIかどうかをアプリ内で判別し、URLを切り替えたり、ポート制限もしているので、合わせて、network_security_configでLocalIpの設定を入れたらOkだった。

2026年1月27日火曜日

スマホから支払記録のセキュリティ改善

 買い物などしたとき、少し時間あるときはスマホで支出内容をraspiにネット経由で記録して、あとでPCで自作家計簿を開くと確認ボタンですぐ反映できるようにしている。転記したら一時置き場所のraspiのデータは削除します。これまでは、一時的データなのでとくに認証とかしてなかったのですが。少し工夫してみました。

 C#版とQt版としばらく併用していて、先々Qt版に切り替える予定ですが、いずれもデータ取り込みについては、同じraspiサーバ(bottle)を使っているので、大幅に作り変えたくないと考えました。家計簿ソフトはさわらず、bottleのみ改善しました。

 いったん外部から接続できなくして、認証ページをつくり、指定した時間、認証ページが使っているアドレスからのアクセスのみ受け付けるような仕組みを組み込みました。これによって、一定時間のみスマホからデータ入力ができるようになりました。入力が終わって、指定時間がすぎれば、自動的にまた接続できなくなるので、それほど手間なくできそうです。

2026年1月26日月曜日

raspiにbind9

LAN内のラズパイ、ルータ、プリンタ、アクセスポイントなど、ホスト名でアクセスできるように 内部DNSにしてみた。以前行ったbind9の設定の仕方を思い出しながら、うまくいかなかったところは、chatGPTの助けも借りながら、なんとか完了。

・ルータは静的ルーティング設定で、自分のドメインのものはすべて、ルータに行くように設定。LAN側サーバアドレスをラズパイにして、ラズパイにbind9を入れます。

・ufwで、tcp,udpでローカル内からの53番ポートのアクセスを許可します。

・各種設定はネット上の情報を参照して行った。 host コマンドで最後に確認。

※今回、/etc/resolv.conf に問題があることがchatGPTから指摘受ける。どうやらnetworkManagerから生成されたものが、ルーターに行くようになっていて、raspi(127.0.0.1)が使われてないことがわかる。ただ、/etc/resolv.conf は 直接編集できず、
nmcli connection showでeth0でいいか確認して、
sudo nmcli connection modify "eth0" \
ipv4.ignore-auto-dns yes \
ipv4.dns 127.0.0.1 \
ipv6.ignore-auto-dns yes \
ipv6.dns ::1
これを反映
sudo nmcli connection down "eth0"
sudo nmcli connection up "eth0"
確認するとcat /etc/resolv.confー>nameserver 127.0.0.1

まだ、よくわからないところもあるが、とりあえず、指定したホスト名で内部はアクセスできるようになった。

※さらに、これだけではよくないらしくnamed.conf.optionsに追加して

options {
directory "/var/cache/bind";
recursion yes;  clientが「全部教えて」>BINDは、自分の zone を探し、なければ、無ければ 権威DNS …を 最後まで代行して答える。これが無いと「権威サーバーに聞いてね」で終わる。
allow-recursion { localnets; localhost; };再帰を 誰に許すか。localnets とは?BINDが認識している 直結ネットワーク  
allow-query { localnets; localhost; };DNS問い合わせそのものを誰に許すか。LAN内 → 正引き・逆引きともにOK  外部 → そもそも答えない   内部専用DNSなら 必須

# 外向きは forwarder に任せる(安定)
forwarders {
1.1.1.1;
8.8.8.8;
};
dnssec-validation auto;
listen-on { 127.0.0.1; 192.168.1.0/24; };BINDが どのIPアドレスで待ち受けるか。
挙動   127.0.0.1 → 自分自身
192.168.1.x → LANからのDNS
書かないと? デフォルトで 全インターフェース IPv6含めて全部待ち受けることも
不要な露出を防ぐため明示推奨
};