Maison >développement back-end >Tutoriel Python >Utiliser AWS Lambda comme traitement de données pour tout projet IoT.

Utiliser AWS Lambda comme traitement de données pour tout projet IoT.

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-21 04:13:10863parcourir

Using AWS Lambda as data processing for any IoT project.

Pour commencer quelque chose, une planification et une préparation appropriées sont nécessaires. Cette idée m'est venue lorsque j'ai suivi un cours au choix intitulé Internet des objets. Cela n'a pas été bien enseigné ? mais ça m'a donné cette idée. Un simple vérificateur d'humidité peut vous informer lorsque vous devez arroser vos plantes. Grâce à AWS Lambda, nous pourrions utiliser leur serveur au lieu d'utiliser des ordinateurs portables et le garder allumé longtemps alors qu'il pourrait être utilisé pour autre chose.

Pourquoi AWS Lambda ?

  1. Coûts : C'est assez bon marché et il propose une option où les premières interactions sont gratuites. Ainsi, pour quelqu'un qui souhaite commencer mais qui manque d'argent, AWS Lambda est une bonne option.

  2. Traitement en temps réel : avec des serveurs toujours allumés, il peut traiter les données en temps réel, effectuer des actions en fonction des données reçues et envoyer des notifications.

  3. Évolutivité : avec le temps, si vous souhaitez étendre ce projet, AWS Lambda peut s'adapter à tout ce dont vous avez besoin.

  4. Intégration avec d'autres services AWS : étant donné qu'AWS fournit de nombreux services, il agit comme un guichet unique pour vos besoins. Pas besoin de chercher ailleurs si les services que vous recherchez sont déjà là.

Le cas d'utilisation de l'IoT : surveillance de la température ?️

Imaginons un système de surveillance de l’humidité. Les capteurs envoient périodiquement des données à AWS IoT Core, ce qui déclenche une fonction AWS Lambda de configuration pour traiter et stocker les données dans DynamoDB. La fonction Lambda envoie également des notifications aux utilisateurs.

Guide étape par étape pour déployer votre projet IoT ?

1) Configurer AWS IoT Core ?️

  • Créez un objet IoT : accédez à la console AWS IoT Core et définissez votre appareil IoT.
  • Générer des certificats : téléchargez le certificat de l'appareil et les clés pour une communication sécurisée.
  • Joindre des politiques : accordez à votre appareil IoT l'autorisation de publier et de vous abonner à des sujets.

2) Écrire la fonction Lambda ?
Créez une fonction Python pour traiter les données IoT entrantes :

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) Connecter IoT Core à Lambda ?

  • Créer une règle : dans AWS IoT Core, créez une règle pour déclencher votre fonction Lambda.
  • Définissez le sujet : spécifiez le sujet MQTT sur lequel votre appareil publie (par exemple, capteurs/température).
  • Ajoutez l'action : liez la règle à votre fonction Lambda.

4) Déployer la fonction Lambda ?

  • Téléchargez votre code sous forme de fichier .zip ou utilisez l'éditeur de code en ligne dans AWS Management Console.
  • Définissez les variables d'environnement nécessaires et configurez un déclencheur depuis IoT Core.

5) Testez votre configuration ?
Publiez un message de test sur le sujet MQTT depuis votre appareil 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!')
    }

Pensées finales ?

Le déploiement d'un projet IoT avec AWS Lambda change la donne pour les développeurs, offrant évolutivité, rentabilité et une expérience sans serveur. En combinant IoT Core et Lambda, vous pouvez créer des systèmes réactifs et intelligents qui évoluent avec vos besoins.

Joyeuses fêtes ! ☃︎??❄️☃️??

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn