资料介绍
描述
至少可以说,PiSquare附带的原始代码非常简陋!愚蠢的是,我曾假设PiSquare会附带一些允许与 HAT 交互的可配置软件。有点像,但太基础了。
这个项目的目的是调查和编写 Raspberry Pi 和PiSquare的代码。我选择了我拥有的最简单的 HAT 之一——PiHut Status 板。它由 5 个按钮和 10 个 LED(5 个红色和 5 个绿色)组成。我选择的任务是控制机舱中的一些灯和插头,并查看每个灯和插头的状态。灯是 Philips Hue,插头是 TP-Link——两者都有 Python 库(phue和kasa)。
树莓派代码
- 将 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。
- 在Arduino中使用按钮
- 在PlatformIO中使用ESP-12K开发板Nodemcu-32-S2
- AXU2CG FPGA XLINX核心板原理图 36次下载
- 在STM32系列MCU中使用硬件实时时钟AN3371 1次下载
- 基于多值输入多示例学习的颈椎健康状态评估 4次下载
- 在MFC中使用OpenCV的教程下载 2次下载
- 锂电池多状态模型剩余寿命预测方法 11次下载
- 数据驱动的建模:在水资源和环境工程学中使用MATLAB 0次下载
- 在西门子PLC中使用SCL语言编程的技巧 61次下载
- 基于分等级随机抽样聚类的交通运行状态模式分类方法 14次下载
- 在51单片机中使用ucosii有哪些优缺点详细资料分析
- AltiumDesigner PCB设计指南(AD软件19新版+多层板设计+封装库) 0次下载
- 如何使用dsPIC DSC信号板作为开发工具在目标板上仿真和调试固件
- 如何在MPLAB XC8集成开发环境中使用编译器的详细概述
- 小波在声发射刀具状态检测应用
- RK3588 技术分享 | 在Android系统中使用NPU实现Yolov5分类检测-迅为电子 313次阅读
- 超级电容在工业相机中使用的好处有哪些 150次阅读
- 如何在测试中使用ChatGPT 635次阅读
- 如何在Linux中使用htop命令 1334次阅读
- 什么是状态机?状态机的种类与实现 7953次阅读
- 在Zynq裸机设计中使用视觉库L1 remap函数的示例 568次阅读
- 什么是TCP状态转移 1050次阅读
- 在多路复用数据采集系统中使用精密SAR和Σ-Δ转换器的设计权衡 759次阅读
- 如何在bash中使用条件语句 2014次阅读
- 状态机到底是什么 3672次阅读
- 基于protel 99se设计的多接口通信测试板 2816次阅读
- 孔板流量计在某石化装置的应用 664次阅读
- 浅谈MEMS在状态监控领域的优势 673次阅读
- 20个在Linux操作中使用到的ls用法的示例详解 2538次阅读
- Zynq中使用FreeRTOS的空闲钩子函数时在SDK中的设置 2494次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多