0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

同時(shí)監(jiān)測(cè)一堆樹莓派的詳細(xì)資料說(shuō)明到底是怎么樣的體驗(yàn)

電子工程師 ? 來(lái)源:未知 ? 2019-03-09 10:17 ? 次閱讀

我們有一堆Raspberry PI,我們將其用作運(yùn)行python、gunicorn、sqlite數(shù)據(jù)庫(kù)和mqtt代理的Web服務(wù)器。我們希望有一個(gè)設(shè)備,我們可以監(jiān)測(cè)這些樹莓派的情況,比如內(nèi)存和溫度等等。為了不浪費(fèi)顯示屏干這事情,我們決定使用Nanomesher HMI做一個(gè)簡(jiǎn)單的監(jiān)控解決方案。如果內(nèi)存或存儲(chǔ)空間不足,它還會(huì)點(diǎn)亮板載LED作為警告。

NanoMesher HMI是NanoMesher開發(fā)的WiFi觸摸屏顯示器,具有易于使用的HTTP和基于MQTT的API。在這個(gè)項(xiàng)目中,Raspberry PI將通過(guò)HTTP API更新Nanomesher HMI。大概這么干吧結(jié)構(gòu)很簡(jiǎn)單。每個(gè)Raspberry PI運(yùn)行一個(gè)python腳本,它定期獲取健康信息CPU利用率、CPU溫度、空閑內(nèi)存和空閑磁盤空間),并通過(guò)HTTP更新nanomesher HMI。該怎么顯示信息?我們使用Nextion Editor在屏幕上繪制5行文本框。屏幕上的每一行就是一個(gè)PI的信息。行數(shù)的大小取決于字體和屏幕的設(shè)計(jì)?!癷plbl”用于顯示屏幕的IP地址。

▲ 用Nextion Editor做的用戶界面

獲取CPU溫度最簡(jiǎn)單方法是使用下面的命令。

/opt/vc/bin/vcgencmd measure_temp

python提供了open命令來(lái)運(yùn)行linux命令并返回結(jié)果。添加了一些字符串把輸出格式替換成我們需要的格式。

def GetTemp(): cmd = "/opt/vc/bin/vcgencmd measure_temp | sed -s 's/=/:/g'" p = Popen(cmd, shell=True, stdout=PIPE) output = p.communicate()[0] return output.replace(' ','').replace('temp:','Temp:').replace("'C","c")

獲取內(nèi)存、CPU利用率和可用磁盤空間使用psutil python庫(kù)會(huì)非常容易解決這個(gè)問(wèn)題。安裝:

sudo pip install psutil

或者使用python3

sudo pip3 install psutil

virtual_memory() 用作返回以字節(jié)為單位的值。因此,我們需要除以1024兩次才能得到兆字節(jié)值。

def GetFreeMem(): return str(psutil.virtual_memory().free/1024/1024) + "M"

CPU和空閑磁盤空間相當(dāng)直接

def GetCpuPercent(): return str(psutil.cpu_percent()) + "%"def GetFreeDisk(): return str(psutil.disk_usage('/home/pi').free/1024/1024) + "M"

IP地址最后,從eth0或wlan0接口獲取IP地址。

def GetLANIP():cmd = "ip addr show eth0 | grep inet| grep -v inet6 | awk '{print $2}' | cut -d '/' -f 1"p = Popen(cmd, shell=True, stdout=PIPE)output = p.communicate()[0]return outputdef GetWLANIP():cmd = "ip addr show wlan0 | grep inet| grep -v inet6 | awk '{print $2}' | cut -d '/' -f 1"p = Popen(cmd, shell=True, stdout=PIPE)output = p.communicate()[0]return output

更新Nanomesher HMI數(shù)據(jù)下面使用簡(jiǎn)單的HTTPGET請(qǐng)求在顯示屏上設(shè)置值和顏色。

‘p’ - 頁(yè)碼

‘n’ - UI組件的名字

‘v’ - 文本集

‘fc’ - 前景色(16位)

def PublishToDisplay(text,label_prefix): try: data = {} data['p'] = '0' data['n'] = label_prefix + sys.argv[2] data['v'] = text data['fc'] = '23555' url_values = urllib.urlencode(data) url = "http://" + sys.argv[1] + "/TextSetText?" + url_values response = urllib2.urlopen(url) html = response.read() except: pass

['n']表示作為命令行參數(shù)傳入的組件名稱。行數(shù)取決于如何設(shè)計(jì)屏幕布局。在本例中,有4行分別命名為line1、line2、line3和line4。警告我們認(rèn)為給出PI健康問(wèn)題(如內(nèi)存或磁盤空間不足)的視覺指示是有用的,因此我們?cè)谙旅嫣砑恿舜祟悪z查,以紅色顯示信息并點(diǎn)亮LED。

freemem = GetFreeMem() if(freemem > 100): PublishToDisplay(str(freemem) + "M","mem","23555") LedOff() else: PublishToDisplay(str(freemem) + "M","mem","61455") LedOn() freedisk = GetFreeDisk() if(freedisk > 500): PublishToDisplay(str(freedisk) + "M","disk","23555") LedOff() else: PublishToDisplay(str(freedisk) + "M","disk","61455") LedOn() if(freemem > 100 and freedisk > 500): LedOff() else: LedOn()

▲ 低內(nèi)存警報(bào)

運(yùn)行起來(lái)從Github下載pimonitor.py。安裝PIP,如果沒有:

sudo apt-get install python-pip

安裝psutil

sudo pip install psutil

或者用python3:

sudo pip3 install psutil

運(yùn)行使用

python PiMonitor.py 192.168.11.116 1

192.168.11.116是Nanomesher HMI的IP地址(顯示在屏幕上),最后的1是指要更新顯示中的哪一行,因此不同的PI將更新不同的行(1-4)。打完收工,希望你喜歡這個(gè)項(xiàng)目。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    240

    文章

    22905

    瀏覽量

    650085
  • 數(shù)據(jù)庫(kù)
    +關(guān)注

    關(guān)注

    7

    文章

    3711

    瀏覽量

    64023
  • 樹莓派
    +關(guān)注

    關(guān)注

    116

    文章

    1679

    瀏覽量

    105252

原文標(biāo)題:同時(shí)監(jiān)測(cè)一堆樹莓派是怎么樣的體驗(yàn)?

文章出處:【微信號(hào):cirmall,微信公眾號(hào):電路設(shè)計(jì)技能】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    吐槽樹莓

    樹莓的無(wú)線網(wǎng)卡就是坨屎各種亂七八糟的問(wèn)題 反正就是你連上了 幾分鐘之后會(huì)掉然后就在也連不上了通過(guò)ssh登錄樹莓也是
    發(fā)表于 05-23 17:48

    樹莓簡(jiǎn)介

    已經(jīng)是位Linux系統(tǒng)的愛好者,但卻不知道如何用Python進(jìn)行編程,而且正準(zhǔn)備好好學(xué)學(xué);也許你根本就不了解計(jì)算機(jī),僅僅停留在點(diǎn)擊“開始”菜單,轉(zhuǎn)發(fā)電子郵件,上網(wǎng)等操作,但是聽說(shuō)過(guò)“樹莓
    發(fā)表于 08-06 08:05

    樹莓和單片機(jī)的區(qū)別_樹莓能干什么

    本文主要講樹莓和單片機(jī)之間有什么區(qū)別以及詳細(xì)介紹了一下樹莓到底是干什么的。
    發(fā)表于 11-27 21:06 ?7.3w次閱讀

    樹莓入門教程之新手使用樹莓做系統(tǒng)的教程資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是樹莓入門教程之新手使用樹莓做系統(tǒng)的教程資料
    發(fā)表于 03-22 08:00 ?10次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>入門教程之新手使用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>做系統(tǒng)的教程<b class='flag-5'>資料</b><b class='flag-5'>說(shuō)明</b>

    無(wú)線電監(jiān)測(cè)及干擾查找的詳細(xì)資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的生活無(wú)線電監(jiān)測(cè)及干擾查找的詳細(xì)資料說(shuō)明
    發(fā)表于 04-08 08:00 ?0次下載
    無(wú)線電<b class='flag-5'>監(jiān)測(cè)</b>及干擾查找的<b class='flag-5'>詳細(xì)資料</b><b class='flag-5'>說(shuō)明</b>

    Raspberry Pi樹莓使用說(shuō)明總結(jié)資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是Raspberry Pi樹莓使用說(shuō)明總結(jié)資料免費(fèi)下載。
    發(fā)表于 05-31 17:54 ?15次下載
    Raspberry Pi<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>使用<b class='flag-5'>說(shuō)明</b>總結(jié)<b class='flag-5'>資料</b>免費(fèi)下載

    樹莓是什么樹莓基本知識(shí)介紹詳細(xì)資料說(shuō)明

    樹莓硬件、接口及其連接設(shè)備如圖1-5所示。下面就讓我們按圖索驥,同來(lái)探索樹莓的“身體構(gòu)造”吧!在人身體結(jié)構(gòu)中,最重要的部位應(yīng)該就是心臟
    發(fā)表于 05-22 18:01 ?24次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>是什么<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>基本知識(shí)介紹<b class='flag-5'>詳細(xì)資料</b><b class='flag-5'>說(shuō)明</b>

    使用樹莓設(shè)計(jì)智能小車教程之樹莓超聲波避障實(shí)驗(yàn)的詳細(xì)資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用樹莓設(shè)計(jì)智能小車教程之樹莓超聲波避障實(shí)驗(yàn)的詳細(xì)資料
    發(fā)表于 06-25 08:00 ?30次下載
    使用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>設(shè)計(jì)智能小車教程之<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>超聲波避障實(shí)驗(yàn)的<b class='flag-5'>詳細(xì)資料</b><b class='flag-5'>說(shuō)明</b>

    使用樹莓設(shè)計(jì)智能小車教程之黑線循跡實(shí)驗(yàn)的詳細(xì)資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用樹莓設(shè)計(jì)智能小車教程之黑線循跡實(shí)驗(yàn)的詳細(xì)資料說(shuō)明。
    發(fā)表于 06-25 08:00 ?44次下載

    使用樹莓設(shè)計(jì)智能小車教程之樹莓智能車系統(tǒng)啟動(dòng)的詳細(xì)資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用樹莓設(shè)計(jì)智能小車教程之樹莓智能車系統(tǒng)啟動(dòng)的詳細(xì)資料
    發(fā)表于 06-24 08:00 ?18次下載

    樹莓的功能詳細(xì)資料講解

    樹莓個(gè)神奇的小電腦? 樹莓GPIO編號(hào)方式? 功能物理引腳: 從左到右,從上到下:左邊基數(shù),右邊偶數(shù):1- 40? BCM: 編號(hào)側(cè)
    發(fā)表于 06-24 08:00 ?20次下載

    使用樹莓設(shè)計(jì)智能小車教程之如何進(jìn)行樹莓模塊安裝資料免費(fèi)下載

      本文檔的主要內(nèi)容詳細(xì)介紹的是使用樹莓設(shè)計(jì)智能小車教程之如何進(jìn)行樹莓模塊安裝資料免費(fèi)下載。
    發(fā)表于 06-24 08:00 ?21次下載

    樹莓的使用說(shuō)明詳細(xì)概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是樹莓的使用說(shuō)明詳細(xì)概述
    發(fā)表于 11-21 16:17 ?9次下載

    ESD和EFT與Surge到底是什么詳細(xì)資料介紹

    本文檔的主要內(nèi)容詳細(xì)介紹的是ESD和EFT與Surge到底是什么詳細(xì)資料介紹。
    發(fā)表于 11-25 08:00 ?46次下載
    ESD和EFT與Surge<b class='flag-5'>到底是</b>什么<b class='flag-5'>詳細(xì)資料</b>介紹

    基于樹莓的環(huán)境監(jiān)測(cè)系統(tǒng)

    樹莓(Raspberry Pi)是種小型而功能強(qiáng)大的計(jì)算機(jī),其性能和功能足以支持許多應(yīng)用領(lǐng)域。在環(huán)境監(jiān)測(cè)系統(tǒng)中,樹莓
    的頭像 發(fā)表于 01-04 15:15 ?1033次閱讀