資料介紹
描述
至少可以說,PiSquare附帶的原始代碼非常簡陋!愚蠢的是,我曾假設(shè)PiSquare會(huì)附帶一些允許與 HAT 交互的可配置軟件。有點(diǎn)像,但太基礎(chǔ)了。
這個(gè)項(xiàng)目的目的是調(diào)查和編寫 Raspberry Pi 和PiSquare的代碼。我選擇了我擁有的最簡單的 HAT 之一——PiHut Status 板。它由 5 個(gè)按鈕和 10 個(gè) LED(5 個(gè)紅色和 5 個(gè)綠色)組成。我選擇的任務(wù)是控制機(jī)艙中的一些燈和插頭,并查看每個(gè)燈和插頭的狀態(tài)。燈是 Philips Hue,插頭是 TP-Link——兩者都有 Python 庫(phue和kasa)。
樹莓派代碼
- 將 PiServer 文件夾復(fù)制到您的 Raspberry Pi。
- 安裝以下所需的 python 庫(通常是 pip3 install library ):
- 湯姆
- phue
- 蟒蛇卡薩
- 安裝以下所需的 python 庫(通常是 pip3 安裝庫):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 庫。
- 運(yùn)行 main.py
怎么運(yùn)行的
樹莓派服務(wù)器
服務(wù)器軟件將讀取配置文件(TOML格式)。您應(yīng)該能夠定義多個(gè) HAT 配置,因此您可以將多個(gè) PiSquares 與一個(gè) Pi 服務(wù)器(未經(jīng)測試)一起使用。
這三個(gè)值(psalias、類型和主機(jī))定義了每個(gè)按鈕的“名稱”、它控制的設(shè)備類型以及每個(gè)“處理程序”中使用的“主機(jī)”值。
每個(gè) HAT 都需要自己的庫來處理特定 HAT 的輸入/輸出。在啟動(dòng)“偵聽器”代碼之前,服務(wù)器將為每個(gè) HAT 實(shí)例化一個(gè)類對(duì)象。
“偵聽器”代碼(希望如此!)是通用的,僅用于處理來自 PiSquare 的輸入。目前,該流量始終從 PiSquare 開始,對(duì)每個(gè)請求的響應(yīng)都會(huì)發(fā)送回 PiSquare。我希望稍后擴(kuò)展它,這樣它也可以從 Pi 開始對(duì)話。
PiHutStatus 類設(shè)置并處理來自 PiSquare 的所有消息。該定義由 configuration.toml 文件提供。如果您編寫自己的 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)作的格式,它打開/關(guān)閉燈/插頭或切換狀態(tài),是:
{'action': 'changestate',
'button': 'whichbutton',
'status': 'on/off/toggle'}
“requeststatus”動(dòng)作的格式,請求燈/插頭的當(dāng)前狀態(tài)(開或關(guān))
{'action': 'requeststatus',
'button': 'whichbutton'}
對(duì)于您自己的 HAT,您可以根據(jù)需要定義有效負(fù)載!
結(jié)論
PiSquare并不完美,但經(jīng)過一些爭論,我已經(jīng)定型并能夠處理一頂簡單的帽子,并為通信端提供了一堆可重用的代碼。Comms 仍然需要一些工作(例如從 Pi 初始化對(duì)話),但希望這是一個(gè)足夠好的開始,讓大多數(shù)人開始使用大多數(shù) HAT。
- 在Arduino中使用按鈕
- 在PlatformIO中使用ESP-12K開發(fā)板Nodemcu-32-S2
- AXU2CG FPGA XLINX核心板原理圖 36次下載
- 在STM32系列MCU中使用硬件實(shí)時(shí)時(shí)鐘AN3371 1次下載
- 基于多值輸入多示例學(xué)習(xí)的頸椎健康狀態(tài)評(píng)估 4次下載
- 在MFC中使用OpenCV的教程下載 2次下載
- 鋰電池多狀態(tài)模型剩余壽命預(yù)測方法 11次下載
- 數(shù)據(jù)驅(qū)動(dòng)的建模:在水資源和環(huán)境工程學(xué)中使用MATLAB 0次下載
- 在西門子PLC中使用SCL語言編程的技巧 61次下載
- 基于分等級(jí)隨機(jī)抽樣聚類的交通運(yùn)行狀態(tài)模式分類方法 14次下載
- 在51單片機(jī)中使用ucosii有哪些優(yōu)缺點(diǎn)詳細(xì)資料分析
- AltiumDesigner PCB設(shè)計(jì)指南(AD軟件19新版+多層板設(shè)計(jì)+封裝庫) 0次下載
- 如何使用dsPIC DSC信號(hào)板作為開發(fā)工具在目標(biāo)板上仿真和調(diào)試固件
- 如何在MPLAB XC8集成開發(fā)環(huán)境中使用編譯器的詳細(xì)概述
- 小波在聲發(fā)射刀具狀態(tài)檢測應(yīng)用
- RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類檢測-迅為電子 313次閱讀
- 超級(jí)電容在工業(yè)相機(jī)中使用的好處有哪些 150次閱讀
- 如何在測試中使用ChatGPT 635次閱讀
- 如何在Linux中使用htop命令 1334次閱讀
- 什么是狀態(tài)機(jī)?狀態(tài)機(jī)的種類與實(shí)現(xiàn) 7953次閱讀
- 在Zynq裸機(jī)設(shè)計(jì)中使用視覺庫L1 remap函數(shù)的示例 568次閱讀
- 什么是TCP狀態(tài)轉(zhuǎn)移 1050次閱讀
- 在多路復(fù)用數(shù)據(jù)采集系統(tǒng)中使用精密SAR和Σ-Δ轉(zhuǎn)換器的設(shè)計(jì)權(quán)衡 759次閱讀
- 如何在bash中使用條件語句 2014次閱讀
- 狀態(tài)機(jī)到底是什么 3672次閱讀
- 基于protel 99se設(shè)計(jì)的多接口通信測試板 2816次閱讀
- 孔板流量計(jì)在某石化裝置的應(yīng)用 664次閱讀
- 淺談MEMS在狀態(tài)監(jiān)控領(lǐng)域的優(yōu)勢 673次閱讀
- 20個(gè)在Linux操作中使用到的ls用法的示例詳解 2538次閱讀
- Zynq中使用FreeRTOS的空閑鉤子函數(shù)時(shí)在SDK中的設(shè)置 2494次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多