資料介紹
描述
至少可以說,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次下載 | 免費
評論
查看更多