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信號強度將中繼。
- 定期將功率使用數據傳遞給經紀人。
- 檢查設備是否仍連接到經紀人。如果設備不再連接,請轉至退縮。
