×

在PiSquare中使用PiHut状态板

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2023-06-13

陈文博

分享资料个

描述

至少可以说,PiSquare附带的原始代码非常简陋!愚蠢的是,我曾假设PiSquare会附带一些允许与 HAT 交互的可配置软件。有点像,但太基础了。

这个项目的目的是调查和编写 Raspberry Pi 和PiSquare的代码。我选择了我拥有的最简单的 HAT 之一——PiHut Status 板。它由 5 个按钮和 10 个 LED(5 个红色和 5 个绿色)组成。我选择的任务是控制机舱中的一些灯和插头,并查看每个灯和插头的状态。灯是 Philips Hue,插头是 TP-Link——两者都有 Python 库(phuekasa)

树莓派代码

  • 将 PiServer 文件夹复制到您的 Raspberry Pi。
  • 安装以下所需的 python 库(通常是 pip3 install library ):
  • 汤姆
  • phue
  • 蟒蛇卡萨
  • 安装以下所需的 python 库(通常是 pip3 安装):toml phue python-kasa
  • 编辑 configuration.toml 文件(在“configs”文件夹中)以定义灯和插头的名称。
  • 运行 pisquare-server.py

PiSquare 代码 (MicroPython)

PiSquare 上已经安装了 MicroPython,因此您应该可以立即复制此代码。

  • 将这三个文件复制到您的 PiSquare
  • 将“psconfig_template.py”重命名为“psconfig.py”
  • 编辑 psconfig.py 并适当更改值,单独保留引脚转换。
  • 安装 picozero 库。
  • 运行 main.py

怎么运行的

树莓派服务器

服务器软件将读取配置文件(TOML格式)。您应该能够定义多个 HAT 配置,因此您可以将多个 PiSquares 与一个 Pi 服务器(未经测试)一起使用。

这三个值(psalias、类型和主机)定义了每个按钮的“名称”、它控制的设备类型以及每个“处理程序”中使用的“主机”值。

每个 HAT 都需要自己的库来处理特定 HAT 的输入/输出。在启动“侦听器”代码之前,服务器将为每个 HAT 实例化一个类对象。

“侦听器”代码(希望如此!)是通用的,仅用于处理来自 PiSquare 的输入。目前,该流量始终从 PiSquare 开始,对每个请求的响应都会发送回 PiSquare。我希望稍后扩展它,这样它也可以从 Pi 开始对话。

PiHutStatus 类设置并处理来自 PiSquare 的所有消息。该定义由 configuration.toml 文件提供。如果您编写自己的 HAT 处理程序代码,则需要确保包含“handlerequest”方法,该方法接收从 PiSquare 发送的消息并执行您想要的任何操作!

PiSquare 客户端

main.py 中的 PiSquare 客户端代码主要是特定于 HAT 的。但是,它确实包含一段通用代码,用于处理 PiSquare 与 Wi-Fi 的连接以及与 Pi 之间的消息发送/接收。

消息格式

Python 很好地处理了 Python 字典和 JSON 之间的转换,所以我使用 JSON 在 PiSquare 和 Pi 之间发送信息。

一般格式为:

{'client': 'clientname', 'payload': {payload}}`

有效负载的结构取决于所需的“操作”。对于此 HAT,它是“requeststatus”或“changestate”。

'changestate' 动作的格式,它打开/关闭灯/插头或切换状态,是:

{'action': 'changestate', 
 'button': 'whichbutton',
 'status': 'on/off/toggle'}

“requeststatus”动作的格式,请求灯/插头的当前状态(开或关)

{'action': 'requeststatus', 
 'button': 'whichbutton'}

对于您自己的 HAT,您可以根据需要定义有效负载!

结论

PiSquare并不完美,但经过一些争论,我已经定型并能够处理一顶简单的帽子,并为通信端提供了一堆可重用的代码Comms 仍然需要一些工作(例如从 Pi 初始化对话),但希望这是一个足够好的开始,让大多数人开始使用大多数 HAT。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !