資料介紹
描述
至少可以說(shuō),PiSquare附帶的原始代碼非常簡(jiǎn)陋!愚蠢的是,我曾假設(shè)PiSquare會(huì)附帶一些允許與 HAT 交互的可配置軟件。有點(diǎn)像,但太基礎(chǔ)了。
這個(gè)項(xiàng)目的目的是調(diào)查和編寫(xiě) Raspberry Pi 和PiSquare的代碼。我選擇了我擁有的最簡(jiǎn)單的 HAT 之一——PiHut Status 板。它由 5 個(gè)按鈕和 10 個(gè) LED(5 個(gè)紅色和 5 個(gè)綠色)組成。我選擇的任務(wù)是控制機(jī)艙中的一些燈和插頭,并查看每個(gè)燈和插頭的狀態(tài)。燈是 Philips Hue,插頭是 TP-Link——兩者都有 Python 庫(kù)(phue和kasa)。
樹(shù)莓派代碼
- 將 PiServer 文件夾復(fù)制到您的 Raspberry Pi。
- 安裝以下所需的 python 庫(kù)(通常是 pip3 install library ):
- 湯姆
- phue
- 蟒蛇卡薩
- 安裝以下所需的 python 庫(kù)(通常是 pip3 安裝庫(kù)):toml phue python-kasa
- 編輯 configuration.toml 文件(在“configs”文件夾中)以定義燈和插頭的名稱。
- 運(yùn)行 pisquare-server.py
PiSquare 代碼 (MicroPython)
PiSquare 上已經(jīng)安裝了 MicroPython,因此您應(yīng)該可以立即復(fù)制此代碼。
- 將這三個(gè)文件復(fù)制到您的 PiSquare
- 將“psconfig_template.py”重命名為“psconfig.py”
- 編輯 psconfig.py 并適當(dāng)更改值,單獨(dú)保留引腳轉(zhuǎn)換。
- 安裝 picozero 庫(kù)。
- 運(yùn)行 main.py
怎么運(yùn)行的
樹(shù)莓派服務(wù)器
服務(wù)器軟件將讀取配置文件(TOML格式)。您應(yīng)該能夠定義多個(gè) HAT 配置,因此您可以將多個(gè) PiSquares 與一個(gè) Pi 服務(wù)器(未經(jīng)測(cè)試)一起使用。
這三個(gè)值(psalias、類型和主機(jī))定義了每個(gè)按鈕的“名稱”、它控制的設(shè)備類型以及每個(gè)“處理程序”中使用的“主機(jī)”值。
每個(gè) HAT 都需要自己的庫(kù)來(lái)處理特定 HAT 的輸入/輸出。在啟動(dòng)“偵聽(tīng)器”代碼之前,服務(wù)器將為每個(gè) HAT 實(shí)例化一個(gè)類對(duì)象。
“偵聽(tīng)器”代碼(希望如此!)是通用的,僅用于處理來(lái)自 PiSquare 的輸入。目前,該流量始終從 PiSquare 開(kāi)始,對(duì)每個(gè)請(qǐng)求的響應(yīng)都會(huì)發(fā)送回 PiSquare。我希望稍后擴(kuò)展它,這樣它也可以從 Pi 開(kāi)始對(duì)話。
PiHutStatus 類設(shè)置并處理來(lái)自 PiSquare 的所有消息。該定義由 configuration.toml 文件提供。如果您編寫(xiě)自己的 HAT 處理程序代碼,則需要確保包含“handlerequest”方法,該方法接收從 PiSquare 發(fā)送的消息并執(zhí)行您想要的任何操作!
PiSquare 客戶端
main.py 中的 PiSquare 客戶端代碼主要是特定于 HAT 的。但是,它確實(shí)包含一段通用代碼,用于處理 PiSquare 與 Wi-Fi 的連接以及與 Pi 之間的消息發(fā)送/接收。
消息格式
Python 很好地處理了 Python 字典和 JSON 之間的轉(zhuǎn)換,所以我使用 JSON 在 PiSquare 和 Pi 之間發(fā)送信息。
一般格式為:
{'client': 'clientname', 'payload': {payload}}`
有效負(fù)載的結(jié)構(gòu)取決于所需的“操作”。對(duì)于此 HAT,它是“requeststatus”或“changestate”。
'changestate' 動(dòng)作的格式,它打開(kāi)/關(guān)閉燈/插頭或切換狀態(tài),是:
{'action': 'changestate',
'button': 'whichbutton',
'status': 'on/off/toggle'}
“requeststatus”動(dòng)作的格式,請(qǐng)求燈/插頭的當(dāng)前狀態(tài)(開(kāi)或關(guān))
{'action': 'requeststatus',
'button': 'whichbutton'}
對(duì)于您自己的 HAT,您可以根據(jù)需要定義有效負(fù)載!
結(jié)論
PiSquare并不完美,但經(jīng)過(guò)一些爭(zhēng)論,我已經(jīng)定型并能夠處理一頂簡(jiǎn)單的帽子,并為通信端提供了一堆可重用的代碼。Comms 仍然需要一些工作(例如從 Pi 初始化對(duì)話),但希望這是一個(gè)足夠好的開(kāi)始,讓大多數(shù)人開(kāi)始使用大多數(shù) HAT。
- 在Arduino中使用按鈕
- 在PlatformIO中使用ESP-12K開(kāi)發(fā)板Nodemcu-32-S2
- 在STM32系列MCU中使用硬件實(shí)時(shí)時(shí)鐘AN3371 1次下載
- 基于多值輸入多示例學(xué)習(xí)的頸椎健康狀態(tài)評(píng)估 4次下載
- 在MFC中使用OpenCV的教程下載 2次下載
- 鋰電池多狀態(tài)模型剩余壽命預(yù)測(cè)方法 11次下載
- 數(shù)據(jù)驅(qū)動(dòng)的建模:在水資源和環(huán)境工程學(xué)中使用MATLAB 0次下載
- 在西門(mén)子PLC中使用SCL語(yǔ)言編程的技巧 74次下載
- 基于分等級(jí)隨機(jī)抽樣聚類的交通運(yùn)行狀態(tài)模式分類方法 14次下載
- 在51單片機(jī)中使用ucosii有哪些優(yōu)缺點(diǎn)詳細(xì)資料分析
- AltiumDesigner PCB設(shè)計(jì)指南(AD軟件19新版+多層板設(shè)計(jì)+封裝庫(kù)) 0次下載
- 如何使用MCP1630鎳氫電池充電器演示板的詳細(xì)中文資料概述
- 如何使用dsPIC DSC信號(hào)板作為開(kāi)發(fā)工具在目標(biāo)板上仿真和調(diào)試固件
- 如何在MPLAB XC8集成開(kāi)發(fā)環(huán)境中使用編譯器的詳細(xì)概述
- 小波在聲發(fā)射刀具狀態(tài)檢測(cè)應(yīng)用
- 射頻前端模塊中使用的集成無(wú)源元件技術(shù) 1.3k次閱讀
- CentOS中使用tcpdump抓包 1.2k次閱讀
- 在MATLAB中開(kāi)發(fā)狀態(tài)監(jiān)控算法 1.1k次閱讀
- RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類檢測(cè)-迅為電子 2k次閱讀
- 超級(jí)電容在工業(yè)相機(jī)中使用的好處有哪些 898次閱讀
- 如何在測(cè)試中使用ChatGPT 1.4k次閱讀
- 如何在Linux中使用htop命令 4.1k次閱讀
- 在Zynq裸機(jī)設(shè)計(jì)中使用視覺(jué)庫(kù)L1 remap函數(shù)的示例 1.5k次閱讀
- 在多路復(fù)用數(shù)據(jù)采集系統(tǒng)中使用精密SAR和Σ-Δ轉(zhuǎn)換器的設(shè)計(jì)權(quán)衡 1.6k次閱讀
- 如何在bash中使用條件語(yǔ)句 2.8k次閱讀
- 基于protel 99se設(shè)計(jì)的多接口通信測(cè)試板 3.7k次閱讀
- 孔板流量計(jì)在某石化裝置的應(yīng)用 1k次閱讀
- 淺談MEMS在狀態(tài)監(jiān)控領(lǐng)域的優(yōu)勢(shì) 1.7k次閱讀
- 20個(gè)在Linux操作中使用到的ls用法的示例詳解 3k次閱讀
- Zynq中使用FreeRTOS的空閑鉤子函數(shù)時(shí)在SDK中的設(shè)置 3k次閱讀
下載排行
本周
- 1新一代網(wǎng)絡(luò)可視化(NPB 2.0)
- 3.40 MB | 1次下載 | 免費(fèi)
- 2冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 1次下載 | 10 積分
- 3MDD品牌三極管MMBT3906數(shù)據(jù)手冊(cè)
- 2.33 MB | 次下載 | 免費(fèi)
- 4MDD品牌三極管S9012數(shù)據(jù)手冊(cè)
- 2.62 MB | 次下載 | 免費(fèi)
- 5LAT1218 如何選擇和設(shè)置外部晶體適配 BlueNRG-X
- 0.60 MB | 次下載 | 3 積分
- 6LAT1216 Blue NRG-1/2 系列芯片 Flash 操作與 BLE 事件的互斥處理
- 0.89 MB | 次下載 | 3 積分
- 7收音環(huán)繞擴(kuò)音機(jī) AVR-1507手冊(cè)
- 2.50 MB | 次下載 | 免費(fèi)
- 8MS1000TA 超聲波測(cè)量模擬前端芯片技術(shù)手冊(cè)
- 0.60 MB | 次下載 | 免費(fèi)
本月
- 1愛(ài)華AIWA HS-J202維修手冊(cè)
- 3.34 MB | 37次下載 | 免費(fèi)
- 2PC5502負(fù)載均流控制電路數(shù)據(jù)手冊(cè)
- 1.63 MB | 23次下載 | 免費(fèi)
- 3NB-IoT芯片廠商的資料說(shuō)明
- 0.31 MB | 22次下載 | 1 積分
- 4UWB653Pro USB口測(cè)距通信定位模塊規(guī)格書(shū)
- 838.47 KB | 5次下載 | 免費(fèi)
- 5蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 6蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
- 7100W準(zhǔn)諧振反激式恒流電源電路圖資料
- 0.09 MB | 2次下載 | 1 積分
- 8FS8025B USB的PD和OC快充協(xié)議電壓誘騙控制器IC技術(shù)手冊(cè)
- 1.81 MB | 1次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問(wèn)
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論