

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Tutoriel : Surveillance de l'humidité du sol avec un AWS IoT Raspberry Pi
<a name="iot-moisture-tutorial"></a>

Ce didacticiel vous explique comment utiliser un [Raspberry Pi](https://www.raspberrypi.org/), un capteur d'humidité, et comment AWS IoT surveiller le niveau d'humidité du sol pour une plante d'intérieur ou un jardin. Le Raspberry Pi exécute un code qui lit le niveau d'humidité et la température à partir du capteur, puis envoie les données à AWS IoT. Vous créez une règle AWS IoT qui envoie un e-mail à une adresse abonnée à une rubrique Amazon SNS lorsque le niveau d'humidité tombe en dessous d'un seuil.

**Note**  
Ce didacticiel n'est peut-être pas à jour. Certaines références ont peut-être été remplacées depuis la publication initiale de ce sujet.

**Contents**
+ [Conditions préalables](#iot-moisture-prereqs)
+ [Con AWS IoT figuration](iot-moisture-setup.md)
  + [Étape 1 : Création de la AWS IoT politique](iot-moisture-policy.md)
  + [Étape 2 : Création de l' AWS IoT objet, du certificat et de la clé privée](iot-moisture-create-thing.md)
  + [3e étape : Créer une rubrique Amazon SNS et s'abonner](iot-moisture-create-sns-topic.md)
  + [Étape 4 : créer une AWS IoT règle pour envoyer un e-mail](iot-moisture-create-rule.md)
+ [Configuration de votre Raspberry Pi et du capteur d'humidité](iot-moisture-raspi-setup.md)

## Conditions préalables
<a name="iot-moisture-prereqs"></a>

Pour suivre ce didacticiel, vous devez disposer des éléments suivants :
+ Un Compte AWS.
+ Utilisateur IAM possédant des autorisations de niveau administrateur.
+ Un ordinateur de développement exécutant Windows, macOS, Linux ou Unix pour accéder à la [console AWS IoT](https://console.aws.amazon.com/iot/home).
+ Un [Raspberry Pi 3B ou 4B](https://www.raspberrypi.com/products/) exécutant le dernier système d'[exploitation Raspberry Pi](https://www.raspberrypi.com/software/operating-systems/). Pour les instructions d'installation, voir [Installer un système d'exploitation](https://www.raspberrypi.com/documentation/computers/getting-started.html#installing-the-operating-system) sur le site Web du Raspberry Pi. 
+ Un écran, un clavier, une souris et un réseau Wi-Fi ou une connexion Ethernet pour votre Raspberry Pi.
+ Un capteur d'humidité compatible avec Raspberry Pi. Le capteur utilisé dans ce didacticiel est un [capteur d'humidité capacitif SteMMA I2C Adafruit](https://www.adafruit.com/product/4026) avec un [en-tête de câble à 4 broches vers connecteur femelle JST](https://www.adafruit.com/product/3950). 

# Con AWS IoT figuration
<a name="iot-moisture-setup"></a>

Pour suivre ce didacticiel, vous devez créer les ressources suivantes. Pour connecter un appareil à AWS IoT, vous devez créer un objet IoT, un certificat d'appareil et une AWS IoT politique. 
+ N' AWS IoT importe quoi.

  Un objet représente un appareil physique (dans ce cas, votre Rasberry Pi) et contient des métadonnées statiques sur l'appareil. 
+ Un certificat d'appareil.

  Tous les appareils doivent avoir un certificat d'appareil pour se connecter à AWS IoT et s'authentifier auprès de celui-ci.
+ Une AWS IoT politique.

  Une ou plusieurs AWS IoT politiques sont associées à chaque certificat d'appareil. Ces politiques déterminent les AWS IoT ressources auxquelles l'appareil peut accéder. 
+ Un certificat CA AWS IoT racine.

  Les appareils et autres clients utilisent un certificat CA AWS IoT racine pour authentifier le AWS IoT serveur avec lequel ils communiquent. Pour de plus amples informations, veuillez consulter [Authentification du serveur](server-authentication.md).
+ Une AWS IoT règle.

  Une règle contient une requête et une ou plusieurs actions de règle. La requête extrait les données des messages de l'appareil pour déterminer si les données du message doivent être traitées. L'action de règle spécifie ce qu'il faut faire si les données correspondent à la requête.
+ Une rubrique Amazon SNS et une souscription de rubrique.

  La règle écoute les données d'humidité de votre Raspberry Pi. Si la valeur est inférieure à un seuil, un message est envoyé dans la rubrique Amazon SNS. Amazon SNS envoie ce message à toutes les adresses e-mail abonnées au sujet.

 



# Étape 1 : Création de la AWS IoT politique
<a name="iot-moisture-policy"></a>

Créez une AWS IoT politique qui permet à votre Raspberry Pi de se connecter et d'envoyer des messages à AWS IoT.

1. Dans la [console AWS IoT](https://console.aws.amazon.com/iot), si un bouton **Commencer** s'affiche, appuyez dessus. Dans le panneau de navigation du service, développez **Sécurité**, puis choisissez **Politiques**.

1. Si une boîte de dialogue **Vous ne possédez pas encore de stratégie** s'affiche, choisissez **Créer une stratégie**. Sinon, cliquez sur **Create**.

1. Entrez le nom de la AWS IoT politique (par exemple,**MoistureSensorPolicy**).

1. Dans la section **Ajouter des instructions**, remplacez la stratégie existante par le code JSON suivant. Remplacez *region* et *account* par votre Compte AWS numéro Région AWS et.  
****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "iot:Connect",
               "Resource": "arn:aws:iot:us-east-1:123456789012:client/RaspberryPi"
           },
           {
               "Effect": "Allow",
               "Action": "iot:Publish",
               "Resource": [
                   "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/RaspberryPi/shadow/update",
                   "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/RaspberryPi/shadow/delete",
                   "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/RaspberryPi/shadow/get"
               ]
           },
           {
               "Effect": "Allow",
               "Action": "iot:Receive",
               "Resource": [
                   "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/RaspberryPi/shadow/update/accepted",
                   "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/RaspberryPi/shadow/delete/accepted",
                   "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/RaspberryPi/shadow/get/accepted",
                   "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/RaspberryPi/shadow/update/rejected",
                   "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/RaspberryPi/shadow/delete/rejected"
               ]
           },
           {
               "Effect": "Allow",
               "Action": "iot:Subscribe",
               "Resource": [
                   "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/RaspberryPi/shadow/update/accepted",
                   "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/RaspberryPi/shadow/delete/accepted",
                   "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/RaspberryPi/shadow/get/accepted",
                   "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/RaspberryPi/shadow/update/rejected",
                   "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/RaspberryPi/shadow/delete/rejected"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "iot:GetThingShadow",
                   "iot:UpdateThingShadow",
                   "iot:DeleteThingShadow"
               ],
               "Resource": "arn:aws:iot:us-east-1:123456789012:thing/RaspberryPi"
           }
       ]
   }
   ```

1. Choisissez **Créer**.

# Étape 2 : Création de l' AWS IoT objet, du certificat et de la clé privée
<a name="iot-moisture-create-thing"></a>

Créez un objet dans le AWS IoT registre pour représenter votre Raspberry Pi.

1. Dans la [console AWS IoT](https://console.aws.amazon.com/iot/home), dans le panneau de navigation, choisissez **Gérer**, puis **Objets**.

1. Si une boîte de dialogue **Vous n'avez pas encore d'objets** s'affiche, choisissez **Enregistrer un objet**. Sinon, cliquez sur **Create**.

1. Sur la page **Création d' AWS IoT objets**, choisissez **Créer un objet unique**.

1. Sur la page **Add your device to the device registry (Ajouter votre appareil au registre des appareils)**, entrez un nom pour votre objet IoT (par exemple, **RaspberryPi**), puis choisissez **Next (Suivant)**. Vous ne pouvez pas modifier le nom d'un objet après l'avoir créé. Pour changer le nom d'un objet, vous devez créer un objet, lui donner un nouveau nom, puis supprimer l'ancien objet.

1. Sur la page **Add a certificate for your thing (Ajouter un certificat pour votre objet)**, choisissez **Create certificate (Créer un certificat)**.

1. Choisissez les liens **Télécharger** pour télécharger le certificat, la clé privée et le certificat CA racine.
**Important**  
C'est la seule fois que vous pouvez télécharger votre certificat et votre clé privée.

1. Choisissez **Activer** pour activer votre certificat. Le certificat doit être actif pour qu'un appareil puisse se connecter à AWS IoT.

1. Choisissez **Attacher une stratégie**.

1. Pour **Ajouter une politique pour votre objet**, choisissez **MoistureSensorPolicy**, puis choisissez **Enregistrer l'objet**.

# 3e étape : Créer une rubrique Amazon SNS et s'abonner
<a name="iot-moisture-create-sns-topic"></a>

Créer une rubrique Amazon SNS et s'abonner

1. Dans la [AWS console SNS, dans le volet de navigation, choisissez ](https://console.aws.amazon.com/sns/home)Rubriques, puis **Créer un rôle**.

1. Choisissez le type **Standard** et entrez le nom du sujet (par exemple,**MoistureSensorTopic**).

1. Entrez un nom d'affichage pour la rubrique (par exemple, **Moisture Sensor Topic**). Il s'agit du nom affiché pour votre rubrique dans la console Amazon SNS.

1. Choisissez **Créer une rubrique**.

1. Sur la page des détails de la rubrique , sélectionnez **Créer un abonnement**.

1. Pour **Protocole**, choisissez **E-mail**.

1. Saisissez votre adresse e-mail dans **Endpoint (Point de terminaison)**.

1. Choisissez **Créer un abonnement**.

1. Ouvrez votre client de messagerie et recherchez un message avec l'objet **MoistureSensorTopic**. Ouvrez cet e-mail et cliquez sur le lien **Confirmer l'abonnement**.
**Important**  
Vous ne recevrez aucune alerte par e-mail de cette rubrique Amazon SNS tant que vous n'aurez pas confirmé l'abonnement.

Vous devriez recevoir un message électronique contenant le texte que vous avez saisi.

# Étape 4 : créer une AWS IoT règle pour envoyer un e-mail
<a name="iot-moisture-create-rule"></a>

Une AWS IoT règle définit une requête et une ou plusieurs actions à effectuer lorsqu'un message est reçu d'un appareil. Le moteur de AWS IoT règles écoute les messages envoyés par les appareils et utilise les données contenues dans les messages pour déterminer si des mesures doivent être prises. Pour de plus amples informations, veuillez consulter [Règles pour AWS IoT](iot-rules.md). 

Dans ce didacticiel, votre Raspberry Pi publie des messages sur `aws/things/RaspberryPi/shadow/update`. Il s'agit d'une rubrique MQTT interne utilisée par les appareils et le service Thing Shadow. Le Raspberry Pi publie des messages sous la forme suivante :

```
{
    "reported": {
        "moisture" : moisture-reading,
        "temp" : temperature-reading
    }
}
```

Vous créez une requête qui extrait les données d'humidité et de température du message entrant. Vous créez également une action Amazon SNS qui prend les données et les envoie aux abonnés de la rubrique Amazon SNS si le relevé d'humidité est inférieur à un seuil.

**Créer une rubrique Amazon SNS**

1. Dans la [AWS IoT console](https://console.aws.amazon.com/iot/home), choisissez **Routage des messages**, puis **Règles**. Si une boîte de dialogue **Vous ne possédez pas encore de règle** s'affiche, choisissez **Créer une règle**. Sinon, choisissez **Créer une règle**.

1. Dans la page **des propriétés de la règle**, entrez un **Nom de règle** tel que**MoistureSensorRule**, et fournissez une brève **description de la règle**, telle que**Sends an alert when soil moisture level readings are too low**.

1. Choisissez **Next** et configurez votre instruction SQL. Choisissez **la version SQL** **2016-03-23** et entrez l'instruction de requête AWS IoT SQL suivante :

   ```
   SELECT * FROM '$aws/things/RaspberryPi/shadow/update/accepted' WHERE state.reported.moisture < 400
   ```

   Cette instruction déclenche l'action de la règle lorsque la valeur de `moisture` est inférieure à `400`.
**Note**  
Vous devrez peut-être utiliser une valeur différente. Une fois que vous avez le code qui s'exécute sur votre Raspberry Pi, vous pouvez voir les valeurs que vous obtenez de votre capteur en touchant le capteur, en le plaçant dans l'eau ou en le plaçant dans un pot. 

1. Choisissez **Next** et associez des actions de règle. Pour **l'action 1**, choisissez **Simple Notification Service**. La description de cette action de règle est **Envoyer un message sous forme de notification push SNS**.

1. Pour le **sujet SNS**, choisissez le sujet dans [3e étape : Créer une rubrique Amazon SNS et s'abonner](iot-moisture-create-sns-topic.md) lequel vous avez créé le message et laissez le format du **message au format** **RAW**. **MoistureSensorTopic** Pour Rôle IAM, choisissez Créer un rôle.******** Entrez un nom pour le rôle par exemple, **LowMoistureTopicRole**, puis choisissez **Créer un rôle**.

1. Cliquez sur **Suivant** pour passer en revue, puis sur **Créer** pour créer la règle.

# Configuration de votre Raspberry Pi et du capteur d'humidité
<a name="iot-moisture-raspi-setup"></a>



Insérez votre carte micro SD dans le Raspberry Pi, connectez votre écran, votre clavier, votre souris et, si vous n'utilisez pas le Wi-Fi, un câble Ethernet. Ne connectez pas encore le câble d'alimentation.

Connectez le câble jumper JST au capteur d'humidité. L'autre côté du jumper a quatre câbles :
+ Vert : I2C SCL
+ Blanc : I2C SDA
+ Rouge : alimentation (3,5 V)
+ Black : terre

Maintenez la carte Raspberry Pi enfoncée avec la prise Ethernet sur la droite. Dans cette orientation, il y a deux lignes de broches GPIO en haut. Connectez les câbles du capteur d'humidité à la ligne inférieure de broches dans l'ordre suivant. À partir du connecteur le plus à gauche, connectez rouge (alimentation), blanc (SDA) et vert (SCL). Ignorez une broche, puis connectez le fil noir (terre). Pour plus d'informations, consultez [Câblage informatique Python](https://learn.adafruit.com/adafruit-stemma-soil-sensor-i2c-capacitive-moisture-sensor/python-circuitpython-test).

Attachez le câble d'alimentation au Raspberry Pi et branchez l'autre extrémité à une prise murale pour l'allumer.

**Configuration de votre Raspberry Pi**

1. Sur **Welcome to Raspberry Pi (Bienvenue dans Raspberry Pi)**, choisissez **Next (Suivant)**.

1. Choisissez votre pays, votre langue, votre fuseau horaire et votre disposition du clavier. Choisissez **Suivant**.

1. Saisissez un mot de passe pour votre Raspberry Pi, puis choisissez **Next (Suivant)**.

1. Choisissez votre réseau Wi-Fi, puis choisissez **Next (Suivant)**. Si vous n'utilisez pas de réseau Wi-Fi, choisissez **Skip (Ignorer)**.

1. Choisissez **Next (Suivant)** pour rechercher les mises à jour logicielles. Lorsque les mises à jour sont terminées, choisissez **Restart (Redémarrer)** pour redémarrer votre Raspberry Pi.

Une fois que votre Raspberry Pi a démarré, activez l'interface I2C.

1. Dans le coin supérieur gauche du bureau Raspbian, cliquez sur l'icône Raspberry, choisissez **Preferences (Préférences)**, puis **Raspberry Pi Configuration (Configuration du Raspberry Pi)**.

1. Sous l'onglet **Interfaces** pour **I2C**, choisissez **Enable (Activer)**.

1. Choisissez **OK**.

Les bibliothèques du capteur d'humidité Adafruit STEMMA ont été écrites pour. CircuitPython Pour les exécuter sur un Raspberry Pi, vous devez installer la dernière version de Python 3.

1. Exécutez les commandes suivantes à partir d'une invite de commande pour mettre à jour votre logiciel Raspberry Pi :

   `sudo apt-get update`

   `sudo apt-get upgrade`

1. Exécutez la commande suivante pour mettre à jour votre installation Python 3 :

   `sudo pip3 install --upgrade setuptools`

1. Exécutez la commande suivante pour installer les bibliothèques GPIO Raspberry Pi :

   `pip3 install RPI.GPIO`

1. Exécutez la commande suivante pour installer les bibliothèques Adafruit Blinka :

   `pip3 install adafruit-blinka`

   Pour plus d'informations, consultez [Installation de CircuitPython bibliothèques sur le Raspberry Pi](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux/installing-circuitpython-on-raspberry-pi).

1. Exécutez la commande suivante pour installer les bibliothèques Adafruit Seesaw :

   `sudo pip3 install adafruit-circuitpython-seesaw`

1. Exécutez la commande suivante pour installer le AWS IoT Device SDK pour Python :

   `pip3 install AWSIoTPythonSDK`

Votre Raspberry Pi dispose désormais de toutes les bibliothèques requises. Créez un fichier appelé **moistureSensor.py** et copiez le code Python suivant dans le fichier :

```
from adafruit_seesaw.seesaw import Seesaw
from AWSIoTPythonSDK.MQTTLib import AWSIoTMQTTShadowClient
from board import SCL, SDA

import logging
import time
import json
import argparse
import busio

# Shadow JSON schema:
#
# {
#   "state": {
#       "desired":{
#           "moisture":<INT VALUE>,
#           "temp":<INT VALUE>            
#       }
#   }
# }

# Function called when a shadow is updated
def customShadowCallback_Update(payload, responseStatus, token):

    # Display status and data from update request
    if responseStatus == "timeout":
        print("Update request " + token + " time out!")

    if responseStatus == "accepted":
        payloadDict = json.loads(payload)
        print("~~~~~~~~~~~~~~~~~~~~~~~")
        print("Update request with token: " + token + " accepted!")
        print("moisture: " + str(payloadDict["state"]["reported"]["moisture"]))
        print("temperature: " + str(payloadDict["state"]["reported"]["temp"]))
        print("~~~~~~~~~~~~~~~~~~~~~~~\n\n")

    if responseStatus == "rejected":
        print("Update request " + token + " rejected!")

# Function called when a shadow is deleted
def customShadowCallback_Delete(payload, responseStatus, token):

     # Display status and data from delete request
    if responseStatus == "timeout":
        print("Delete request " + token + " time out!")

    if responseStatus == "accepted":
        print("~~~~~~~~~~~~~~~~~~~~~~~")
        print("Delete request with token: " + token + " accepted!")
        print("~~~~~~~~~~~~~~~~~~~~~~~\n\n")

    if responseStatus == "rejected":
        print("Delete request " + token + " rejected!")


# Read in command-line parameters
def parseArgs():

    parser = argparse.ArgumentParser()
    parser.add_argument("-e", "--endpoint", action="store", required=True, dest="host", help="Your device data endpoint")
    parser.add_argument("-r", "--rootCA", action="store", required=True, dest="rootCAPath", help="Root CA file path")
    parser.add_argument("-c", "--cert", action="store", dest="certificatePath", help="Certificate file path")
    parser.add_argument("-k", "--key", action="store", dest="privateKeyPath", help="Private key file path")
    parser.add_argument("-p", "--port", action="store", dest="port", type=int, help="Port number override")
    parser.add_argument("-n", "--thingName", action="store", dest="thingName", default="Bot", help="Targeted thing name")
    parser.add_argument("-id", "--clientId", action="store", dest="clientId", default="basicShadowUpdater", help="Targeted client id")

    args = parser.parse_args()
    return args


# Configure logging
# AWSIoTMQTTShadowClient writes data to the log
def configureLogging():

    logger = logging.getLogger("AWSIoTPythonSDK.core")
    logger.setLevel(logging.DEBUG)
    streamHandler = logging.StreamHandler()
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    streamHandler.setFormatter(formatter)
    logger.addHandler(streamHandler)


# Parse command line arguments
args = parseArgs()

if not args.certificatePath or not args.privateKeyPath:
    parser.error("Missing credentials for authentication.")
    exit(2)

# If no --port argument is passed, default to 8883
if not args.port: 
    args.port = 8883


# Init AWSIoTMQTTShadowClient
myAWSIoTMQTTShadowClient = None
myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient(args.clientId)
myAWSIoTMQTTShadowClient.configureEndpoint(args.host, args.port)
myAWSIoTMQTTShadowClient.configureCredentials(args.rootCAPath, args.privateKeyPath, args.certificatePath)

# AWSIoTMQTTShadowClient connection configuration
myAWSIoTMQTTShadowClient.configureAutoReconnectBackoffTime(1, 32, 20)
myAWSIoTMQTTShadowClient.configureConnectDisconnectTimeout(10) # 10 sec
myAWSIoTMQTTShadowClient.configureMQTTOperationTimeout(5) # 5 sec

# Initialize Raspberry Pi's I2C interface
i2c_bus = busio.I2C(SCL, SDA)

# Intialize SeeSaw, Adafruit's Circuit Python library
ss = Seesaw(i2c_bus, addr=0x36)

# Connect to AWS IoT
myAWSIoTMQTTShadowClient.connect()

# Create a device shadow handler, use this to update and delete shadow document
deviceShadowHandler = myAWSIoTMQTTShadowClient.createShadowHandlerWithName(args.thingName, True)

# Delete current shadow JSON doc
deviceShadowHandler.shadowDelete(customShadowCallback_Delete, 5)

# Read data from moisture sensor and update shadow
while True:

    # read moisture level through capacitive touch pad
    moistureLevel = ss.moisture_read()

    # read temperature from the temperature sensor
    temp = ss.get_temp()

    # Display moisture and temp readings
    print("Moisture Level: {}".format(moistureLevel))
    print("Temperature: {}".format(temp))
    
    # Create message payload
    payload = {"state":{"reported":{"moisture":str(moistureLevel),"temp":str(temp)}}}

    # Update shadow
    deviceShadowHandler.shadowUpdate(json.dumps(payload), customShadowCallback_Update, 5)
    time.sleep(1)
```

Enregistrez le fichier dans un emplacement où vous le trouverez. Sur la ligne de commande, tapez `moistureSensor.py` avec les paramètres suivants :

point de terminaison  
Votre point de AWS IoT terminaison personnalisé. Pour de plus amples informations, veuillez consulter [API REST Device Shadow](device-shadow-rest-api.md).

rootCA  
Le chemin complet vers votre certificat CA AWS IoT racine.

cert  
Le chemin complet vers le certificat de votre AWS IoT appareil.

clé  
Le chemin complet vers la clé privée du certificat de votre AWS IoT appareil.

thingName  
Votre nom d'objet (dans ce cas, `RaspberryPi`).

clientId  
ID du client MQTT. Utilisez `RaspberryPi`.

La ligne de commande doit se présenter comme suit :

`python3 moistureSensor.py --endpoint your-endpoint --rootCA ~/certs/AmazonRootCA1.pem --cert ~/certs/raspberrypi-certificate.pem.crt --key ~/certs/raspberrypi-private.pem.key --thingName RaspberryPi --clientId RaspberryPi`

Essayez de toucher le capteur, de le placer dans un pot ou de le placer dans un verre d'eau pour voir comment le capteur réagit à différents niveaux d'humidité. Si nécessaire, vous pouvez modifier la valeur de seuil dans `MoistureSensorRule`. Lorsque la valeur du capteur d'humidité est inférieure à la valeur spécifiée dans l'instruction de requête SQL de votre règle, AWS IoT un message est publié dans la rubrique Amazon SNS. Vous devez recevoir un e-mail contenant les données relatives à l'humidité et à la température.

Une fois que vous avez vérifié la réception des e-mails provenant de , appuyez sur **CTRL\$1C** pour arrêter le programme Python. Il est peu probable que le programme Python envoie suffisamment de messages pour générer des frais, mais il est recommandé d'arrêter le programme une fois que vous avez terminé.