2026年3月31日火曜日

国債の利率高いと円安?

  巷では、国債の利率を高くして円高にしようとするのが常識らしいですが、意外と逆でないかという方もいますね。債券市場では、利率上がれば債券価値は下がるわけで、円安になりやすいのでないかということらしいです。

 円高だと海外のものが安く買えていいと思いがちだけど、日本は、物を作って加工貿易のほうが豊かになるともいえそう。日本は、古い理論に沿って、利率を下げたら円安になると考えていたようです。実際は、利率下げたために円高になり、不況の原因にもなっていた。

 今後は、インフレもあるので、日本は金利は上げざるを得ないとすれば、今後は円安が続き、輸出が好調になりそうな感じもありますね。米国には、不利ですが、米国はそれに気づいてないのかもしれませんね。それで、日本は円高にしたがっていますが、それなら利率下げるべきなんでしょうが。逆のことをやろうとしているという皮肉な結果になりそうです。

 利率上げて円安にして輸出重視で行くほうが、国内に仕事がもどってくるという意味ではいいでしょうね。輸出が好調ならそれに伴い、産業への投資は進みそうですし、供給力増強にもつながりそうです。利率下げて円高にすると、この30年間見る通り、外に仕事でていってしまって、内需拡大でもしないとなかなか厳しい感じはしますね。(でも、内需拡大すると、バブルがはじけて、また緊縮とか言い出しそうな日本なので、やめておいたほうがいい?)

捨てようか迷っていたタイマーを改造してみた

 キー入力は待ち受け電力が多いためか、 電池があまり持たないタイマーだったので、しょっちゅう電池交換も面倒で、いつのまにか使わなくなったタイマーでしたが、そのまま捨てるのももったいない気がして、試しにTTP223と2sc1815で使うときだけOnにするようにしてみた。  

 TTP223も3uA程度は消費するようので、はたして長持ちするかどうか試してみないとわからないけれど。

 赤色LEDが見えないとOnOffがわかりにくかったので、写真のように、上部からタッチセンサーが見えるように加工した。(タッチセンサの端にハンダが見えますが。これは、センサ本体を中におさめて、延長した導線で、外にタッチ部をだすことを試みたときのもの。あまりうまくいかなかったので、あきらめました。)
 オンのたびモード切替など操作が必要なったり、Offしてから数分置いて完全に電荷が抜けないと再度Onにはできなかったりということはありますが、それでも、少し省エネにはなったのでないかと思います。
※その後、1週間くらいしたら、OFFが完全にならなくなりました。どうも、タッチセンサも若干不安定なようです。原因はよくわかりませんが。

2026年3月27日金曜日

苗床管理Esp32c3による温度調整

 しばらく利用してみたが、手元から温度を細かく調整できるのは便利。外気温によって、リレーonの比率が変わるのもグラフから一目瞭然で、異様に比率が高いときは、熱が逃げている可能性もあったりするので、それをみて再度苗床をセットしなおしたりしている。

D2,D3はそれぞれヒーターに密着したセンサーのためかなり高めの温度になっている。D1,D3が制御用のセンサー。発芽までは温度高くてもいいけれど、発芽後はあまり温度が高くても徒長しやすいらしいので、途中から少しさげるようにしている。


2026年3月23日月曜日

追加でEsp32C3を苗床管理用に利用することに

 Esp32C3へのマイク、アンプ追加の実験はうまくいかなかったので、マイクは取り除き、センサとSSRをつなげて、苗床管理用に使うことに。ヒーターと白色LED(徒長防止)どちらにも使えるように考えてみた。管理用のアプリは、すでにあるものを若干拡張して使用予定。


bottleの一部  
esp32c3
 
※esp32c3のAPモードで苦労する。SSIDやパスワードはAPモードで設定したかったのですが、いろいろ注意が必要なようで、うまく切り替えがいかないときは、以下の点の確認が必要なようです。
IDEの設定:
 Board:ESP32C3 Dev Module   CPU:160MHz   Flash Mode :DIO  Flash Freq :80MHz   Upload Speed :460800   USB CDC On Boot :Enabled  Partition :Default   Erase Flash :Only Sketch 変な時 :All Flash
 モードの確認: WiFi.mode(WIFI_AP);
出力は適切か:  WiFi.setTxPower(WIFI_POWER_19_5dBm); 8_5dBmで安定する場合も
チャンネル6でSSID非表示をfalseなら:  WiFi.softAP("ESP32_AP", "12345678", 6, false);
※調整器はケースをアクリル板にしているので、風除室だと紫外線で脆くなりやすいかと思い、車用の塗装スプレーをかけている。
※4月になると、日差しが強いと30度ごえになることもあるので、苗の近くが30度超えたらアラーム再生するように機能追加した。(これまではヒーター故障想定して、ヒータ近くのセンサが45℃超えたらアラームとしていたが、それだけではだめだと気付きました。)

2026年3月22日日曜日

トルバムビガーは成長がゆっくり

せっかく、ESP32の温度調整で芽が出たトルバムビガーですが、光が不足すると徒長しやすいので、LEDテープ(昼光色)の利用も検討中。それまでの間、窓際で少しでも光をあてています。(すでに徒長してしまったので、土を追加していますが、今後どうなるか?)
※その後、なかなか大きくならず、逆に穂木のほうが大きくなりつつあるので、どうしたものかと思っていましたが、台木と穂木はそれぞれ温度を調整して、成長度合いを合わせることが必要なようです。

 

2026年3月17日火曜日

ESP32にマイクとアンプは、負荷が高く断念

 esp32C3のハードの能力ではデジタルで音声処理は難しそうで、せっかくの部品購入ではありましたが、諦めて、別の方法に切り替えました。esp32はテキスト処理にとどめておいたほうがい無難なようです。目的は音声認識英英辞典だったので、GithubPagesに、Javascriptでこちらにサイトをつくってみました。スマホなどからアクセスすると便利に使えそうです。

最初からこの方法を思いついていれば、わざわざesp32で難しいことしなくても、実現できたのですが、、、。

2026年3月15日日曜日

ESP32にスピーカとマイクをつけて実験

 短い音の録音再生(エコー)が可能か実験してみた。今後、raspi経由でいろいろ処理を予定していますが。

 配線の数が多いときは、意外とエナメル線が使いやすい。裏表に通したりしてなるべく干渉しないようにした。PCB等の発注も考えたけれど、配線の変更の可能性もあるし、それなりの料金はかかるので、最小限のユニバーサル基板にしてみた。モジュールが基板からはみ出しているところは、あとでサイズがあいそうな百均のケースに固定できないか、考えたい。

raspiで音声アラームをスケジュールに従い起動

アラームをスケジュールで起動する仕組みを考えてみた。
wavplay.py**********************
import os
import sys
import time
import subprocess
import RPi.GPIO as GPIO 
RELAY_PIN = 27
MAX_LINES = 200
def play_wav(wav_file):
    file_path = os.path.join("/home/pi", wav_file)
    if not os.path.isfile(file_path):
        return f"File not found: {file_path}"
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(RELAY_PIN, GPIO.OUT)
    try:
        GPIO.output(RELAY_PIN, GPIO.HIGH)
        time.sleep(0.2)
        proc = subprocess.Popen(["aplay", file_path])
        proc.wait()

        with open("wavlog.txt", "a", newline="") as f:
         writer = csv.writer(f)
         now_str = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
         writer.writerow([now_str, wav_file])
        with open("wavlog.txt", "r") as f:
         lines = f.readlines()
        if len(lines) > MAX_LINES:
          lines = lines[-MAX_LINES:]   # ← 最新2maxlines行だけ残す
          with open("wavlog.txt", "w", newline="") as f:
           f.writelines(lines)

        return f"Played {wav_file}"
    except Exception as e:
        return f"Error: {e}"
    finally:
        GPIO.output(RELAY_PIN, GPIO.LOW)
        GPIO.cleanup(RELAY_PIN)
if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Usage: python script.py <waveFilename>")
        sys.exit(1)
    filename = sys.argv[1]
    result = play_wav(filename)
    print(result)

crontab -e******************
0 17-19 10 11-12 * /usr/bin/python3 /home/pi/wavplay.py PurchaseKerosene.wav

ちなみに、現在のcrontabの一部
5 6 * * * /home/pi/update-cloudflare-ufw.sh >> /home/pi/tmp/ufw-cron.log 2>&1
*/10  * 13-29 2 * curl -s http://localhost:8080/py/collect >/dev/null
0     8 13-29 2 * curl "http://*.*.*.*/setConfig?setA1=21.5&setA2=21.4&setA3=21.5"
1行目cloudflare関連、2,3行目が苗床ヒーター管理

2026年3月4日水曜日

IPoE接続に変えてみた

  PPPoE接続をしばらく使ってきたが、最近土日や夜間がネット途切れるぐらい混雑してきたので、思い切ってIPoEに変えてみたら夜間でもダウンロード220Mbpsアップロード150Mbpsとだいぶ快適になった。

 ルータをどうするかで迷ったが、最近WIFI-Apを交換したばかりだし、WIFI付きの家庭用ルータはどうしても熱のためか、寿命が短いように思われたので、頑丈な有線ルータということで中古のIX2106をヤフオクで入手。希望小売価格が89000円ということなので、6000円ちょっとで購入でき、コスパはいいのでないかと思う。

 ただ、設定は情報集めがなかなか大変だった。ネットのNECの設定例も、ONU接続用の設定?のような感じだったので、PR400NEの内臓ONUを使うには不安があった。(電話はPR400NEから接続しているので、これを使わざるを得ない) ChatGPTとGoogleAIの助けを借りてなんとか、解決。

注意点としては

・PR400NEの接続1を停止 sshで設定するために、念のためUSBシリアルコンソール(1500円ほど)用意

・NECのサンプルの変更したところ

 ip-ad subscriber Giga~は削除 ※
interface GigaEthernet0.0

  no ip addressip address 192.168.2.2/24
  ipv6 enable
  ipv6 address autoconfig ※のかわり追加
  ipv6 dhcp client dhcpv6-cl 
  no shutdown

ip dhcp profile dhcpv4-sv
  assignable-range 192.168.1.50 192.168.1.70  ::dhcpの範囲を指定できる
  dns-server 192.168.1.1

interface Tunnel0.0
  tunnel mode 4-over-6
  tunnel destination fqdn gw.transix.jp
  tunnel source GigaEthernet1.0 → tunnel source GigaEthernet0.0 に変更
  ip unnumbered GigaEthernet1.0 これはなしで→  ip address 192.0.0.2/29 に変更
  ip tcp adjust-mss auto 
  no shutdown


※内部DNSサーバをうまく扱うことができなかったが、その後、「proxy-dns server ipアドレス priority 優先度」を設定することで、使えるようになった。
 また、bottleサーバでは、cloudflareからの外部アクセス制限をipアドレスで行う方法が使えず、別の方法に変更した。どうしても複雑化しているので細かいところに影響はでてしまうようだ。
※中古のため、縦置きスタンドがなかったため、不要になったアクリルボックスの破片からミニルータでL型に切り抜き、ねじ止めしたら安定するようになる。横置きより縦置きのほうが、熱は逃げやすいと思われるので、縦置きにした。
※念のため、使わずにいた廃品からはずした冷却ファンと使わずにいた温度センサーW1209、それにハードオフの330円の12Vアダプタで冷却もできるようにした。冷却ファンを最初はひもでしばっていたが、どうも不安定なので、あり合わせのアクリル破片をリベットでつないで、縦置き上部に載せられるように、フレームをつくってみた。
※PR400NE側の192.168.2.0/24側に192.168.1.0/24側からアクセスできず、HGWの管理画面が出せず不便だったが、以下の確認することで、なんとか解決できた。
1.PR-400NEの静的ルート: 192.168.1.0/24 宛を 192.168.2.2 へ
2.PR-400NEのipv4パケットフィルタ: 192.168.1.0/24 からの通信を許可
IX2106のマニュアルでは、2つのLANを接続するには、それぞれのインターフェースに ip address 192.168.1.254/24等を記述する例がでていたが、複数のルータが絡む場合はそれぞれきちんと確認が必要だということのようだ。
※結局、上記の設定では、ipv6がつながらないことが判明、再度、こちらの設定例1をもとに修正したらうまくいった。192.168.2.0/24というゾーンはつくらないほうがシンプルでいいようだ。ただ、HGWの管理画面を出すには、なぜかipv4ではだめで、ipv6のグローバルアドレス(たまに更新されるらしい)を指定必要だった。AIの意見も聞きながらも、そのままだとうまくいかないところもあったので、やはり、人間の判断も入れながら適宜修正は必要なようだ。

2026年3月1日日曜日

久しぶりの移動運用

 外の気温は6度と、まだ風が冷たかったけれど、比較的電波状況もよく、それほど強い風でもなかったので、久しぶりの移動運用。前回、ダイポールアンテナの実験失敗していたので、再チャレンジ。今回は、NanoVNAで慎重に長さを調整してみたところ、なんとかアンテナチューナで整合できた。末端が地面に近いこともあってか、かなり短めにする必要があった。とりあえず、1エリアの移動局と59で交信することができた。

 


 (ヒートガンで柔らかくした)塩ビパイプで、不要になった物干しパイプ、壊れた雪はねの柄、つっぱり棒をつなげて作ったポールなので、かなりしなっていますがなんとか持ちこたえています。近くに1m程度の杭があったので、ひもを結ぶのに使わせてもらいました。
 たまたま、河川公園に来ていた方から、声をかけられ、アマチュア無線だという話をしたところ、以前免許を取ったけど今はやってない方のようでした。受信の様子など、見てもらいながら、少しの間、アイボール。