树莓派远程开关机/Raspberry远程GPIO关机PC/Raspi获取局域网IP
简介
还在为每次打开树莓派,获取IP地址而感到烦恼?
需要通过树莓派远程控制家里PC的开关机?
没有现成支持远程控制树莓派的快速框架?
芜湖!通过以下步骤即可解决上述问题!
本文介绍将涵盖两个项目:
【Project 1】:local-raspi-remote-switch** (Django)**
室友:起床打Go了!
懒狗一样的俺:先在床上打开浏览器启动电脑😅,换个姿势打开向日葵启动Steam。继续躺床上等待室友匹配...
该项目基于Python3+Django实现。通过访问WEB页面,控制树莓派的GPIO开关PC。对按钮进行了一定限制,避免频繁触碰物理开关。但早起的项目依然存在不足,只能通过同一局域网进行控制。
【Project 2】:rpswitch** (.NET)**
场景1)
挖槽?!树莓派SSH又连不上了?显示器也没有?路由器管理页面多少年不上了,密码早不知道多少了?扫描IP?那又得等一杯茶的功夫...
场景2)
室友:...(今晚打Go咩)
懒狗一样的俺:下课打Go先一步,在打饭的时候已经开好了😅
室友:挖槽,这么快的嘛...
为避免获取IP尴尬的情况,结合之前的开关机需求,进而推出P2。
该项目基于.NET5+Blazor+Signalr(服务端:Server),Python+Signalr(客户端:Client)。依旧是通过WEB端进行管理,但相比于P1做出了以下几点改善。
- 美化交互界面
- 支持公网远程管理
- 支持IP信息的获取
- 增加功能可扩展(俺瞎编的😅
环境配置
物理环境
PC x1
Raspberry x1
继电器 x1(淘宝几块钱一个,当然还要记得买杜邦线啊)
(继电器布线
(树莓派连接继电器
(继电器连接主板
(连接之后长这样
软件环境
Raspi+Ubuntu(感觉还不太严谨,就这么凑合先吧)
Python3.*
部署
Project1:local-raspi-remote-switch
1、配置Service启动项
// 1.PCSwitch.service 放置 /etc/systemd/system 下(树莓派下俺的文件名是:Pcon)
sudo mv ./PCSwitch.service /etc/systemd/system
// 2.WorkingDirectory=修改为你项目的所在路径
sudo vim /etc/systemd/system/PCSwitch.service
// 3.启动服务
sudo service PCSwitch start
2、打开浏览器,输入树莓派的IP:服务端口。(即可看到如下页面
Project2:rpswitch
服务端
dotnet 环境部署(不想看的等俺后面再补齐)
启动服务
// 在所在项目路径下执行
dotnet rpswitch.dll --urls https://*:5001
打开浏览器,输入URL:端口(即可看到如下页面
客户端
安装Python依赖
# Python包依赖 (俺太懒了,你们自己想办法把依赖打上吧。pip3 install ....
import logging
from os import getuid
import ifcfg
import json
import time
import psutil
import datetime
import uptime
import uuid
from signalrcore.hub_connection_builder import HubConnectionBuilder
import localMethod
# 树莓派GPIO模块
import RPi.GPIO as GPIO
配置Service启动项
// 1.rpswitch.service 放置 /etc/systemd/system 下
sudo mv ./rpswitch.service /etc/systemd/system
// 2.WorkingDirectory=修改为你项目的所在路径
sudo vim /etc/systemd/system/rpswitch.service
// 3.启动服务
sudo systemctl enable rpswitch
sudo service rpswitch start
(可以看到服务已经启动了!
(客户端跟服务端连接的样子
后续
这篇Blog经历过很多次延期,陆续应该有一年时间😅
目前只预设了三个远程控制的功能
TODO:
- 访问权限控制,添加后台管理登录认证
- 优化代码(远程执行使用异步、日志输出规范化、...
- ......😅
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?