2026年8月24日月曜日

rasp2経由でraspi3へssh

 raspi2経由でraspi3へsshするには、
ssh-keygen -t rsa -b 4096 として、3回リターン
ssh-copy-id pi@raspi3のIPアドレス  ここでyesのあと、ログインのためのパスワード
ssh pi@raspi3のIPアドレス パスワードなしでSSH使えるようになります。

これを使って、raspi2からraspi3の操作(赤外線等)をすることに。

import subprocess
from bottle import route, run, template
@route('/***/***')
def index():
    return '''
        <h1>照明リモコン</h1>
        <form action="/press_button" method="post">
            <button type="submit" style="font-size:2em; padding:20px 40px;">
                ON / OFF ボタンを押す
            </button>
        </form>
    '''

@route('/press_button', method='POST')
def press_button():
    cmd = ["ssh", "pi@アドレス", "python3 /home/pi/shomei.py"]    
    result = subprocess.run(cmd, capture_output=True, text=True)    
    raspi3_reply = result.stdout    
    raspi3_error = result.stderr    
    
    if result.returncode == 0:
        return f"<h1>送信成功!</h1><p>Raspi3からの返事: {raspi3_reply}</p>"
    else:
        return f"<h1>エラー発生</h1><p>理由: {raspi3_error}</p>"

# Raspi 3側の /home/pi/shomei.py の中身
import subprocess
try:
    cmd = ["sudo", "ir-ctl", "-s", "/home/pi/uoTo28.txt", "-d", "/dev/lirc0"]
    subprocess.run(cmd, check=True)    
    print("HK9335の赤外線信号(uoTo28.txt)を送信しました。")
except subprocess.CalledProcessError as e:
    print(f"ir-ctlの実行に失敗しました。エラーコード: {e.returncode}")

0 件のコメント:

コメントを投稿