• 正文
  • 相关推荐
申请入驻 产业图谱

自动化树莓派教程:设备可达性检查器!

08/25 15:53
986
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

让我们开始今天的内容!

如果你和我一样,你的树莓派总是运行着某些东西:可能是备份、网络监控,或者只是一个简单的脚本。但是每天重复同样的任务很快就会让人厌烦。这时Python就派上用场了。只需几个简单的脚本,你的树莓派就能自动处理这些无聊的事情。我测试了许多脚本,并挑选出了其中最有用的几个。

Python脚本可以在树莓派上用于自动化功能任务,如备份、监控、警报和设备控制,只需几行代码即可实现。与bash脚本相比,它们更容易编写、阅读和扩展,尤其是在使用库或Web API时。

在本文中,我将分享一些我最常用的Python脚本,这些脚本让我的树莓派变得更智能、更省心。你会发现一些想法、代码片段和提示,你可以立即应用它们,不需要高级技能。

设备可达性检查器

如果您在家中有智能家居设备、打印机,甚至另一台树莓派,您可能想知道何时有设备离线。这对于远程管理您的创新工具非常有用。

一个 Python 脚本可以定期检查您的网络设备(路由器、打印机或智能家居控制器)是否可达。通过在设定的时间间隔内 ping 它们的 IP 地址,脚本可以检测是否有设备离线,并在发生这种情况时发送通知。

使用 ping 检查设备的可达性可以轻松通过以下代码实现:

import osimport time# List of devices to monitor (name, IP address)devices = {    "Router": "192.168.1.1",    "Printer": "192.168.1.100",    "NAS": "192.168.1.50"}def is_reachable(ip):    return os.system(f"ping -c 1 -W 2 {ip} > /dev/null 2>&1") == 0while True:    for name, ip in devices.items():        if not is_reachable(ip):            print(f" {name} ({ip}) is offline!")            # Add optional alert here        else:            print(f" {name} is reachable.")    time.sleep(300)  # Wait 5 minutes

您可以跟踪所有设备,如果任何设备离线,您可以使用Pushbullet或通过向自己发送电子邮件来通知自己,如前几节所示。

通过Pushbullet发送通知的函数示例如下所示:

import requestsdef send_alert(device_name, ip):    token = "your_pushbullet_token"    msg = f"{device_name} ({ip}) is offline!"    requests.post(        "https://api.pushbullet.com/v2/pushes",        headers={"Access-Token": token},        json={"type": "note", "title": "Device Alert", "body": msg}    )

使用这个脚本,您可以在外出度假时监控家中所有智能设备的状态。

但是,你如何确保你的树莓派本身保持下去呢?

这也可以使用心跳通知来完成;您可以修改相同的Python脚本来定期生成心跳通知。

import timeimport requestsdef send_heartbeat():    token = "your_pushbullet_token"    message = {        "type": "note",        "title": "Raspberry Pi Heartbeat",        "body": "I'm still online. Time: " + time.strftime("%Y-%m-%d %H:%M:%S")    }    requests.post("https://api.pushbullet.com/v2/pushes", headers={        "Access-Token": token    }, json=message)while True:    send_heartbeat()    print(" Heartbeat sent.")    time.sleep(3600)  # Every hour

您可以结合这些 Python 脚本来检测家中所有连接的智能设备以及树莓派本身的状态。这样,您可以在外出时放心,确保一切正常运行。

您还可以添加网络速度监控,以检测家庭网络与互联网的总体连接情况,并在连接速度低于某个阈值时发出警报。

https://raspberrytips.com/monitor-internet-speed-raspberry-pi/

对于通过树莓派对连接的服务器进行更高级的系统管理,可以考虑使用 Nagios。

https://raspberrytips.com/nagios-raspberry-pi/

很多人一直以为树莓派(Raspberry Pi)只是创客圈子里的小玩具——一块信用卡大小的开发板,用来点亮 LED、跑个 Python 脚本、或者给中学生上一堂入门编程课。然而,事实远比想象震撼:树莓派已经悄悄完成了从“教学演示”到“工业级主力”的华丽转身,正在产线、机房、实验室甚至外太空里 7×24 小时不间断服役。

如果觉得文章不错记得点赞,推荐,分享~ 我们很乐意为您提供工业树莓派的解决方案,项目有需求请联系我们~ www.edatec.cn/cn

相关推荐