paddy firmware
1.0.0

这是电力管理守护程序Paddy的固件组件。
它使用Arduino C ++,并围绕状态机设计。它直接在受支持的芯片上闪烁。该项目使用的Arduino类型是IoT Nano 33。
该代码的工作是通过Wi-Fi与Paddy MQTT代理进行连接,或通过蓝牙低能来进行设置和错误处理。代码还应控制执行的硬件:

该状态机器的代码由单胎组件组织,这些组件一次在固件中实例化并在整个程序的生命周期中重复使用。这些模块如下:
每个州都具有预定义的职责,很容易理解每个流的作用:
- 串行(仅读取):发出设备序列号的特征。
- SSID(仅写): Wi-Fi网络的服务设置标识符。
- 密码(仅写): Wi-Fi访问点的密码。
- 企业用户名(仅写):如果Wi-Fi需要企业身份验证技术,例如EAP或PEAP,则为用户的用户名。
- 企业密码(仅写):如果Wi-Fi需要企业身份验证技术,例如EAP或PEAP,则需要用户的密码。
- JWT(仅写):守护程序使用的JSON Web令牌连接到经纪人。
- 重置(仅写):当写入此特征时,守护程序将重置其凭据。
为了进行,JWT和凭据特征必须由用户的移动设备通过Paddy App编写。必须指出的是,为简单起见,该固件检测到仅写入SSID特征的完成阶段。因此,写作可以按任何顺序进行,除了SSID ONE,必须写入持久的文字才能实现可预测的行为。为了辨别授权模式,书面特征的不同组合在Wi-Fi授权时产生了三个配置:不安全(仅SSID), Secure (SSID +密码)和Enterprise (SSID + Enterprise用户名 + Enterername + Entername + Entername + Enterrise Passperies)。
- 收听MQTT消息,即打开,关闭,重置和旋转主题。当收到这些消息之一时,它会适当执行正确的操作。
- 向经纪人发送保留的PING消息。这些消息纯粹是出于统计目的,并且不需要真正保持连接的生命;它们仅用于跟踪应用程序中的守护程序状态。在这些消息的有效载荷中,Wi-Fi信号强度将中继。
- 定期将功率使用数据传递给经纪人。
- 检查设备是否仍连接到经纪人。如果设备不再连接,请转至退缩。
