首頁 >後端開發 >Python教學 >使用 AWS Lambda 作為任何 IoT 專案的資料處理。

使用 AWS Lambda 作為任何 IoT 專案的資料處理。

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-21 04:13:10929瀏覽

Using AWS Lambda as data processing for any IoT project.

要開始某件事,需要適當的計畫和準備。當我選修一門叫做物聯網的選修課時,我想到了這個想法。沒教好?但這給了我這個想法。當您需要給植物澆水時,一個簡單的濕度檢查器可以為您提供最新資訊。使用 Aws Lambda,我們可以使用他們的伺服器,而不是使用筆記型電腦,並在可以用於其他用途時保持其長時間運行。

為什麼選擇 AWS Lambda?

  1. 成本:相當便宜,並且可以選擇首次互動免費。因此,對於想要入門但資金緊張的人來說,AWS Lambda 是一個不錯的選擇。

  2. 即時處理:透過始終開啟的伺服器,它可以即時處理數據,根據接收到的數據執行操作,並發送通知。

  3. 可擴充性:隨著時間的推移,如果您想增加這個項目,AWS Lambda 可以很好地擴展到您需要的任何內容。

  4. 與其他 AWS 服務整合:由於 AWS 提供了大量服務,因此它可以作為滿足您需求的一站式商店。如果您正在尋找的服務已經在這裡,則無需尋找其他地方。

物聯網用例:溫度監控? ️

讓我們想像一個濕度監測系統。感測器會定期將資料傳送到 AWS IoT Core,這會觸發設定的 AWS Lambda 函數來處理資料並將其儲存在 DynamoDB 中。 Lambda 函數也會向使用者發送通知。

部署 IoT 專案的逐步指南?

1) 設定 AWS IoT Core ?️

  • 建立 IoT 事物:導覽至 AWS IoT Core 主控台並定義您的 IoT 裝置。
  • 產生憑證:下載裝置憑證和金鑰以進行安全通訊。
  • 附加策略:授予您的 IoT 裝置發佈和訂閱主題的權限。

2) 寫 Lambda 函數?
建立一個 Python 函數來處理傳入的 IoT 資料:

import json
import boto3

def lambda_handler(event, context):
    # Parse the incoming event
    payload = json.loads(event['body'])
    temperature = payload['temperature']
    device_id = payload['device_id']

    # Store in DynamoDB
    dynamodb = boto3.client('dynamodb')
    dynamodb.put_item(
        TableName='TemperatureReadings',
        Item={
            'DeviceID': {'S': device_id},
            'Temperature': {'N': str(temperature)},
        }
    )

    # Send an alert if temperature exceeds threshold
    if temperature > 30:
        print(f"ALERT! High temperature: {temperature}°C")

    return {
        'statusCode': 200,
        'body': json.dumps('Data processed successfully!')
    }

3) 將 IoT Core 連接到 Lambda ?

  • 建立規則:在 AWS IoT Core 中,建立一條規則來觸發您的 Lambda 函數。
  • 定義主題:指定您的裝置發佈到的 MQTT 主題(例如感測器/溫度)。
  • 新增操作:將規則連結到您的 Lambda 函數。

4) 部署 Lambda 函數?

  • 將程式碼上傳為 .zip 檔案或使用 AWS 管理主控台中的內嵌程式碼編輯器。
  • 設定必要的環境變數並從 IoT Core 設定觸發器。

5) 測試您的設定?
從 IoT 裝置向 MQTT 主題發布測試訊息:

import json
import boto3

def lambda_handler(event, context):
    # Parse the incoming event
    payload = json.loads(event['body'])
    temperature = payload['temperature']
    device_id = payload['device_id']

    # Store in DynamoDB
    dynamodb = boto3.client('dynamodb')
    dynamodb.put_item(
        TableName='TemperatureReadings',
        Item={
            'DeviceID': {'S': device_id},
            'Temperature': {'N': str(temperature)},
        }
    )

    # Send an alert if temperature exceeds threshold
    if temperature > 30:
        print(f"ALERT! High temperature: {temperature}°C")

    return {
        'statusCode': 200,
        'body': json.dumps('Data processed successfully!')
    }

最後的想法?

使用 AWS Lambda 部署 IoT 專案對於開發人員來說是一個遊戲規則改變者,提供可擴展性、成本效益和無伺服器體驗。透過結合 IoT Core 和 Lambda,您可以建立隨您的需求而成長的響應式智慧系統。

節日快樂! ☃︎??❄️☃️??

以上是使用 AWS Lambda 作為任何 IoT 專案的資料處理。的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn