日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

上傳溫濕度數據

更新時間:

本文介紹通過為樹莓派主板增加一個溫濕度傳感器,實現Raspberry Pi 4計算機在服務器機房中搜集環境數據。

前提條件

已完成物模型定義。詳細內容請參見為溫濕度傳感器定義物模型

硬件連接

  1. 準備DHT11傳感器設備。

    傳感器
  2. 將傳感器接入到樹莓派的主板。

    傳感器擁有四個引腳,從左往右依次是VCC供電、數據、空、GND負極。由于數據腳需要上拉電平支持,所以我們需要使用一個額外的10 KΩ電阻連接VCC與數據管腳,具體連接如下圖。線路展示

    接入后的效果圖如下所示。效果展示

安裝依賴程序

傳感器的數據傳遞功能需要安裝依賴程序開啟。

  1. 在命令窗口執行以下命令,完成程序安裝。

    cd /home/pi/Desktop
    sudo apt update
    sudo apt install git
    git clone https://github.com/adafruit/Adafruit_Python_DHT.git
    cd Adafruit_Python_DHT
    sudo python3 setup.py install
    cd /
  2. 繼續執行以下命令,測試傳感器是否已經工作正常。

    python3
    import Adafruit_DHT
    humidity, temperature = Adafruit_DHT.read_retry(11, 4)
    humidity,temperature

    如果傳感器連接并且工作正常,會返回正確的溫度與濕度數據。返回數據

修改和驗證源碼程序

您需要修改樹莓派計算機的源碼程序文件,將新屬性(機房溫度、機房濕度)數據添加到協議字段中。

  1. 修改源碼程序文件run.py

    程序文件run.py的修改方法請參見將樹莓派接入物聯網平臺

    說明

    不需要重新下載源碼壓縮包,直接修改已下載解壓的程序文件即可。

    請對比以下內容修改run.py文件并保存。

    #!/usr/bin/python3
    
    import aliLink,mqttd,rpi
    import time,json
    import Adafruit_DHT
    
    
    # 三元素(iot后臺獲取)
    ProductKey = '***'
    DeviceName = 'raspberrypi4-******'
    DeviceSecret = "assef***"
    # topic (iot后臺獲取)
    POST = '/sys/***/raspberrypi4-***/thing/event/property/post'  # 上報消息到云
    POST_REPLY = '/sys/***/raspberrypi4-***/thing/event/property/post_reply'
    SET = '/sys/***/raspberrypi4-***/thing/service/property/set'  # 訂閱云端指令
    
    
    # 消息回調(云端下發消息的回調函數)
    def on_message(client, userdata, msg):
        # print(msg.payload)
        Msg = json.loads(msg.payload)
        switch = Msg['params']['PowerLed']
        rpi.powerLed(switch)
        print(msg.payload)  # 開關值
    
    # 連接回調(與阿里云建立鏈接后的回調函數)
    def on_connect(client, userdata, flags, rc):
        pass
    
    # 鏈接信息
    Server, ClientId, userNmae, Password = aliLink.linkiot(DeviceName, ProductKey, DeviceSecret)
    
    # mqtt鏈接
    mqtt = mqttd.MQTT(Server, ClientId, userNmae, Password)
    mqtt.subscribe(SET)   # 訂閱服務器下發消息topic
    mqtt.begin(on_message, on_connect)
    
    
    # 信息獲取上報,每10秒鐘上報一次系統參數
    while True:
        time.sleep(10)
        # 獲取指示燈狀態
        power_stats = int(rpi.getLed())
        if(power_stats == 0):
            power_LED = 0
        else:
            power_LED = 1
    
        # CPU 信息
        CPU_temp = float(rpi.getCPUtemperature())  # 溫度   ℃
        CPU_usage = float(rpi.getCPUuse())         # 占用率 %
    
        # RAM 信息
        RAM_stats = rpi.getRAMinfo()
        RAM_total = round(int(RAM_stats[0]) / 1000, 1)
        RAM_used = round(int(RAM_stats[1]) / 1000, 1)
        RAM_free = round(int(RAM_stats[2]) / 1000, 1)
    
        # Disk 信息
        DISK_stats = rpi.getDiskSpace()
        DISK_total = float(DISK_stats[0][:-1])
        DISK_used = float(DISK_stats[1][:-1])
        DISK_perc = float(DISK_stats[3][:-1])
    
        # 獲取傳感器信息
        humidity, temperature = Adafruit_DHT.read_retry(11, 4)
        # 構建與云端模型一致的消息結構
        updateMsn = {
            'cpu_temperature': CPU_temp,
            'cpu_usage': CPU_usage,
            'RAM_total': RAM_total,
            'RAM_used': RAM_used,
            'RAM_free': RAM_free,
            'DISK_total': DISK_total,
            'DISK_used_space': DISK_used,
            'DISK_used_percentage': DISK_perc,
            'PowerLed': power_LED,
            'temperature': temperature,
            'humidity': humidity
        }
        JsonUpdataMsn = aliLink.Alink(updateMsn)
        print(JsonUpdataMsn)
    
        mqtt.push(POST, JsonUpdataMsn)   # 定時向阿里云IOT推送我們構建好的Alink協議數據
    
  2. 重啟服務。

    在命令行窗口執行以下命令。

    cd /home/pi/Desktop/code/
    python3 run.py

    數據結果如圖所示。數據

  3. 在IoT平臺查詢上報的數據。

    前往設備詳情頁,單擊物模型數據 > 運行狀態,查看新增的機房溫度和濕度數據。運行狀態

后續步驟

開發數據服務API