资料介绍
描述
至少可以说,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使用单片机实现七人表决器的程序和仿真资料免费下载
- 2.96 MB | 44次下载 | 免费
- 2联想E46L DAOLL6笔记本电脑图纸
- 1.10 MB | 2次下载 | 5 积分
- 3MATLAB绘图合集
- 27.12 MB | 2次下载 | 5 积分
- 4PR735,使用UCC28060的600W交错式PFC转换器
- 540.03KB | 1次下载 | 免费
- 5UCC38C42 30W同步降压转换器参考设计
- 428.07KB | 1次下载 | 免费
- 6DV2004S1/ES1/HS1快速充电开发系统
- 2.08MB | 1次下载 | 免费
- 7模态分解合集matlab代码
- 3.03 MB | 1次下载 | 2 积分
- 8美的电磁炉维修手册大全
- 1.56 MB | 1次下载 | 5 积分
本月
- 1使用单片机实现七人表决器的程序和仿真资料免费下载
- 2.96 MB | 44次下载 | 免费
- 2UC3842/3/4/5电源管理芯片中文手册
- 1.75 MB | 15次下载 | 免费
- 3DMT0660数字万用表产品说明书
- 0.70 MB | 13次下载 | 免费
- 4TPS54202H降压转换器评估模块用户指南
- 1.02MB | 8次下载 | 免费
- 5STM32F101x8/STM32F101xB手册
- 1.69 MB | 8次下载 | 1 积分
- 6HY12P65/HY12P66数字万用表芯片规格书
- 0.69 MB | 6次下载 | 免费
- 7华瑞昇CR216芯片数字万用表规格书附原理图及校正流程方法
- 0.74 MB | 6次下载 | 3 积分
- 8华瑞昇CR215芯片数字万用表原理图
- 0.21 MB | 5次下载 | 3 积分
总榜
- 1matlab软件下载入口
- 未知 | 935119次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420061次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233084次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191367次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183335次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73807次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65987次下载 | 10 积分
评论
查看更多