性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

封控在家,帶大家建設(shè)一個(gè)物聯(lián)網(wǎng)平臺(tái)吧!

一,服務(wù)器

雖然這個(gè)沒什么要求,實(shí)驗(yàn)的話虛擬機(jī)就可以;什么淘汰筆記本,臺(tái)式機(jī)也可以。由于我是狂熱份子,就買了臺(tái)巴掌大的小電腦做為我的實(shí)驗(yàn)服務(wù)器。只是個(gè)電腦,內(nèi)存沒有ECC功能。不過夠我做實(shí)驗(yàn)的了。

巴掌大,可以裝一塊2.5英寸機(jī)械硬盤和一塊NVME固態(tài)硬盤。8G內(nèi)存,CPU是I5-6500t,當(dāng)時(shí)價(jià)格1800元。里面裝的是Ubuntu 21.04服務(wù)器系統(tǒng),我的Gcc編譯和服務(wù)器實(shí)驗(yàn)都是上面進(jìn)行。

怎么裝Ubuntu我就不詳細(xì)說了,網(wǎng)上教程很多,最好裝服務(wù)器版本的系統(tǒng),這種系統(tǒng)沒有界面純命令行,穩(wěn)定性非常高。

二,物聯(lián)網(wǎng)接入平臺(tái)

我選擇的是開源的EMQX,百萬級(jí)連接。比著商業(yè)版缺少數(shù)據(jù)固化功能,需要自己開發(fā)一套訂閱系統(tǒng)用于存儲(chǔ)數(shù)據(jù)。

網(wǎng)址是:https://www.emqx.com/zh/downloads?product=broker,記得選擇開源版的Ubuntu版本,企業(yè)版只可免費(fèi)試用幾個(gè)月。

安裝也很簡(jiǎn)單,官方給了說明,只需3行代碼。

從http://你的服務(wù)器IP:18083/進(jìn)入管理界面,18083是WEB管理頁(yè)面端口。運(yùn)行后的界面是這樣的。

占用的接口是下面這些,我們常使用的是1883端口,既是mqtt:tcp接口。如果使用coap協(xié)議就是5683端口。

三,傳感器模擬(物聯(lián)網(wǎng)設(shè)備1)

傳感器模擬我使用的是樹莓派,把樹莓派的CPU溫度用python上傳到物聯(lián)網(wǎng)平臺(tái)。也可以訂閱自己感興趣的主題,用于控制個(gè)燈,風(fēng)扇啥的。代碼如下:

# subscriber.py
import paho.mqtt.client as mqtt
import time

# 0: 連接成功
# 1: 連接失敗-不正確的協(xié)議版本
# 2: 連接失敗-無效的客戶端標(biāo)識(shí)符
# 3: 連接失敗-服務(wù)器不可用
# 4: 連接失敗-錯(cuò)誤的用戶名或密碼
# 5: 連接失敗-未授權(quán)
# 6-255: 未定義
# 如果是其它問題,可以檢查網(wǎng)絡(luò)情況,或者確認(rèn)是否安裝了 `paho-mqtt`。
def on_connect(client, userdata, flags, rc):
    if rc == 0:
        print("\n連接成功!\n")
    elif rc==1:
        print(f"\n接失敗-不正確的協(xié)議版本\n")
    elif rc==2:
        print(f"\n連接失敗-無效的客戶端標(biāo)識(shí)符\n")
    elif rc==3:
        print(f"\n連接失敗-服務(wù)器不可用\n")
    elif rc==4:
        print(f"\n連接失敗-錯(cuò)誤的用戶名或密碼\n")
    elif rc==5:
        print(f"\n連接失敗-未授權(quán)\n")
    else:
        print(f"\n連接失敗-未定義\n")
    # 訂閱,需要放在 on_connect 里
    # 如果與 broker 失去連接后重連,仍然會(huì)繼續(xù)訂閱 raspberry/topic 主題
    client.subscribe("raspberry/topic")

# 回調(diào)函數(shù),當(dāng)收到消息時(shí),觸發(fā)該函數(shù)
def on_message(client, userdata, msg):
    print(f"{msg.topic} {msg.payload}")
    
def get_cpu_temp():
    tempFile = open( "/sys/class/thermal/thermal_zone0/temp" )
    cpu_temp = tempFile.read()
    tempFile.close()
    return float(cpu_temp)/1000

client = mqtt.Client("數(shù)梅派終端")
client.username_pw_set("你的用戶名","你的密碼")
client.on_connect = on_connect
client.on_message = on_message

# 設(shè)置遺囑消息,當(dāng)樹莓派斷電,或者網(wǎng)絡(luò)出現(xiàn)異常中斷時(shí),發(fā)送遺囑消息給其他客戶端
client.will_set('raspberry/status',  b'{"status": "offline!"}')

# 創(chuàng)建連接,三個(gè)參數(shù)分別為 broker 地址,broker 端口號(hào),?;顣r(shí)間
client.connect("10.195.136.221", 1883, 60)

# 設(shè)置網(wǎng)絡(luò)循環(huán)堵塞,在調(diào)用 disconnect() 或程序崩潰前,不會(huì)主動(dòng)結(jié)束程序
client.loop_start()

while True:
    # 四個(gè)參數(shù)分別為:主題,發(fā)送內(nèi)容,QoS, 是否保留消息
    client.publish('raspberry/topic', payload=str(get_cpu_temp()), qos=0, retain=False)
    print(f"send cpu temp to raspberry/topic")
    time.sleep(5)

這段代碼每5秒鐘向服務(wù)器發(fā)送一條溫度信息。同時(shí)訂閱了一條raspberry/topic的主題。

四,訂閱設(shè)備模擬(物聯(lián)網(wǎng)設(shè)備2)

如果沒有樹莓派,也可以用軟件模擬,軟件叫MQTTX,免費(fèi)的,和服務(wù)器平臺(tái)是一家,不用寫任何代碼,也是新手比較推薦的玩法。

和樹莓派一樣,可以發(fā)送消息和訂閱消息,從圖中可以看到訂閱了樹莓派所有過來的主題,當(dāng)前溫度不到44度。

從上次升級(jí)到現(xiàn)在,服務(wù)器已經(jīng)運(yùn)行3天接收到5萬多條信息。

全部回復(fù)(5)
正序查看
倒序查看
魯珀特
LV.4
2
2021-08-15 17:44

后續(xù)在搞點(diǎn)傳感器,執(zhí)行器,做個(gè)智慧家玩玩

0
回復(fù)
iszjt
LV.5
3
2021-08-20 08:44

21世紀(jì),什么最重要?數(shù)據(jù)。有了大量的物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)后,針對(duì)數(shù)據(jù),人類可以去挖掘里面的規(guī)律,挖掘里面的商業(yè)價(jià)值,對(duì)設(shè)備未來的狀態(tài)進(jìn)行預(yù)測(cè)等等。樓主,物聯(lián)網(wǎng)的未來就交給你了?。?!加油?。?!

0
回復(fù)
2021-08-20 11:01

我們這邊也一樣,閉關(guān)一個(gè)月了。

0
回復(fù)
aisi999
LV.1
5
2021-11-25 13:08

物聯(lián)網(wǎng)是通過云和傳感器執(zhí)行器等 抽象出的物理世界數(shù)據(jù)化,世界從此變得更觸手可及,同時(shí)數(shù)據(jù)也產(chǎn)生商業(yè)社會(huì)價(jià)值,就像有衛(wèi)星后的世界,在大數(shù)據(jù)和超算的加持下,預(yù)測(cè)天氣,軍事策略等 都是算法可及,預(yù)言準(zhǔn)確度大大提高!

0
回復(fù)
2021-11-25 18:52

學(xué)習(xí)一下,后續(xù)在家也能辦公了~

0
回復(fù)
發(fā)