Table des matières:
- Fournitures
- Étape 1: Impression du boîtier (facultatif)
- Étape 2: Câblage
- Étape 3: Créez une application sur le réseau Things Network
- Étape 4: Connecter l'Arduino au réseau Things
- Étape 5: Interprétation des données sur le réseau des objets
- Étape 6: connexion de votre application à AWS
- Étape 7: Création d'un Lambda
- Étape 8: Création d'un point de terminaison d'API
- Étape 9: Connectez votre usine au réseau social de plantes
- Étape 10: Penchez-vous en arrière et tapotez-vous dans le dos
Vidéo: Connectez votre usine au cloud : 10 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
Dans notre bureau, il y a un cactus qui n'a pas reçu l'attention qu'il méritait. Comme je travaille dans une entreprise informatique et que je voulais expérimenter LoRa, les solutions sans serveur et AWS, j'ai nommé notre cactus Steeve et l'ai connecté au cloud. Vous pouvez désormais surveiller Steeve à peu près n'importe où dans le monde en utilisant la page Web que j'ai créée pour lui: l'interface Web de Steeve.
Fournitures
1 cactus / votre plante préférée
1 Arduino MKR WAN 1300 (magasin Arduino)
Antenne 1 868 mHz/914 mHz (selon votre emplacement) (Amazon)
1 passerelle LoRa lorsqu'elle n'est pas à portée d'un (Amazon)
2 piles AA
1 capteur TMP102 (Amazon)
1 capteur d'humidité du sol (Amazon)
Câbles conducteurs (Amazon)
fer à souder
Support de batterie (Amazon)
Cas
en option: imprimante 3D (si vous pouvez utiliser une imprimante 3D, vous n'avez pas besoin d'un support de batterie ou d'un étui)
Étape 1: Impression du boîtier (facultatif)
Téléchargez ce fichier zip, décompressez-le et imprimez les fichiers. Les fichiers sont marqués avec le montant nécessaire de l'article.
N'hésitez pas à ajouter quelque chose sur le couvercle comme je l'ai fait.
Je les ai imprimés en utilisant une hauteur de couche de 0,2 mm et 15 % de remplissage.
Les crochets box peuvent être fixés à l'aide de vis m3.
Lorsque la boîte est imprimée, vous pouvez utiliser du fil pour effectuer les connexions nécessaires sur le support de batterie. Vous pouvez utiliser l'image fournie comme référence.
Étape 2: Câblage
- Avant de mettre l'arduino sous tension, assurez-vous que l'antenne est connectée, la mise sous tension de l'arduino sans l'antenne peut causer des dommages.
- Connectez le tout selon le schéma de câblage fourni.
- Si vous soudez ces fils, assurez-vous de ne ponter aucune broche sur les capteurs ou l'arduino !
Étape 3: Créez une application sur le réseau Things Network
- Allez sur https://www.thethingsnetwork.org/ et si vous n'avez pas encore de compte, créez-en un.
- Une fois que vous avez un compte et que vous êtes connecté, vous pouvez accéder à la console (coin supérieur droit, cliquez sur votre nom d'utilisateur puis sur la console).
- Cliquez sur les candidatures.
- Une fois la page chargée, vous devriez pouvoir cliquer sur « Ajouter une application ».
- Remplissez le formulaire et choisissez la bonne région en bas. Cliquez sur "ajouter une application".
- Félicitations, vous venez de créer une application sur le réseau des objets. =D
Étape 4: Connecter l'Arduino au réseau Things
Pour programmer l'arduino, je vous conseille d'utiliser l'arduino ide en ligne, cela rend le chargement dans la bibliothèque nécessaire très facile.
- Ouvrez votre application sur le réseau des objets.
- Il devrait y avoir un champ intitulé appareils, cliquez sur enregistrer l'appareil.
- vous verrez un champ appelé Device Id. c'est le nom que vous voulez donner à votre capteur. Il devrait y en avoir un autre étiqueté Device EUI, c'est la clé unique que votre arduino utilise pour s'authentifier.
- Pour obtenir cette clé, nous devons flasher l'arduino avec un croquis spécifique. Le croquis se trouve ici. Cette esquisse doit s'exécuter et sur le moniteur série doit envoyer l'eui. Copiez l'eui du moniteur série dans le champ Device EUI sur le réseau d'objets.
- Cliquez sur s'inscrire.
- Nous avons maintenant enregistré notre arduino dans le cloud. Il est temps de commencer à envoyer des messages.
- Vous devriez avoir été redirigé vers une page appelée aperçu de l'appareil. Ici, vous pouvez voir l'eui de votre appareil, l'eui de l'application et la clé de l'application.
- Pour continuer, nous devons flasher le croquis final sur l'arduino. Le croquis peut être trouvé ici.
- Lorsque vous ouvrez ce lien, vous verrez qu'il y a plusieurs onglets. Ouvrez l'onglet secret. Il y a 2 clés dont vous avez besoin pour faire face du réseau des objets au fichier secrets.
- Une fois ces clés renseignées, vous pouvez flasher l'arduino. Il commencera à envoyer des données au réseau des objets une fois par heure.
-
Si tout s'est bien passé, vous devriez pouvoir voir les messages arriver dans l'onglet Données du réseau d'objets lors de la réinitialisation de l'arduino (le seul bouton du tableau).
- Si aucune donnée n'apparaît ici, cela peut signifier que vous n'êtes pas à portée d'une passerelle LoRa correcte. Vous pouvez consulter une carte avec toutes les passerelles disponibles sur https://thethingsnetwork.org. Les passerelles LoRa à canal unique ne fonctionneront pas avec l'arduino recommandé.
- Si vous n'êtes pas à portée d'une passerelle, vous pouvez coupler votre propre passerelle au réseau des objets. Ces passerelles ont généralement d'assez bons tutoriels sur la façon de les connecter. Recherchez dans la liste des fournitures la passerelle recommandée.
Étape 5: Interprétation des données sur le réseau des objets
- Pour obtenir des données utilisables à partir des messages sur le réseau d'objets, nous devons décoder le flux d'octets.
- Sur le réseau des objets, accédez à votre application.
- Il devrait y avoir un onglet intitulé "Formats de charge utile", cliquez sur cet onglet.
- Il y a 4 boutons côte à côte: "décodeur", "convertisseur", "validateur", "encodeur".
- Cliquez sur décodeur.
- Collez-y le code suivant.
function Decoder(bytes, port) { // Décode un message de liaison montante d'un tampon // (tableau) d'octets vers un objet de champs. var stringToDecode=bin2String(bytes); var res=stringToDecode.split(" "); var temp=res[1]; var humide= res[3]; var bat= res[5]; var decoded = {"temperature":temp, "moisture":humide, "battery":bat}; retour décodé; } function bin2String(array) { var result = ""; for(var i = 0; i < array.length; ++i){ result+= (String.fromCharCode(array)); } renvoie le résultat;}
- Cliquez sur enregistrer.
- Lorsque vous réinitialisez l'arduino et affichez votre onglet de données, vous devriez voir un objet json bien formaté que vous pouvez facilement lire.
Étape 6: connexion de votre application à AWS
Nous allons utiliser AWS pour stocker et utiliser les données du réseau des objets. Toutes les ressources que nous allons utiliser sont couvertes par le niveau gratuit d'AWS.
- Accédez à AWS
- Identifiez-vous ou créez un compte.
- Pour connecter votre application sur le réseau des objets à AWS, je vous recommande de suivre ce tutoriel:
- Une fois que vous avez terminé ce didacticiel, accédez dans la console aws au segment IoT-Core.
- Dans la barre de menu de gauche, il y a une étiquette "Gérer", cliquez dessus.
- Vous devriez maintenant voir une carte avec le nom de votre capteur.
- Encore une fois dans la barre de menu de gauche, cliquez sur "Act"
- S'il existe une carte intitulée Store, vous êtes prêt à partir.
- Sinon, cliquez sur "Créer".
- Remplissez le nom "Magasin".
- Vous pouvez ajouter une description si vous le souhaitez.
- En tant qu'instruction de requête, remplissez le code suivant: SELECT dev_id, metadata.time, payload_fields.temperature, payload_fields.moisture, payload_fields.battery FROM 'cactus_network/devices/+/up'.
- Sous "Définir une ou plusieurs actions", cliquez sur Ajouter une action.
- Sélectionnez "Diviser le message en plusieurs colonnes d'une table DynamoDb (DynamoDBv2)".
- Cliquez sur configurer l'action
- Cliquez sur créer une nouvelle ressource.
- Cliquez sur créer une table et donnez un nom à votre table.
- Sous la clé primaire, remplissez "dev_id".
- Cliquez sur ajouter une clé de tri
- Remplissez "temps".
- Cliquez sur créer.
- Si tout s'est bien passé, vous devriez être de retour sur la page de configuration de l'action.
- Il y a une zone légèrement grisée sous "Choisir ou créer un rôle pour accorder l'accès AWS IoT pour effectuer cette action".
- Cliquez sur créer un rôle et donnez un nom à ce rôle.
- Cliquez sur créer un rôle.
- Cliquez sur Ajouter une action.
- Cliquez sur créer une règle.
- Vous devriez maintenant avoir une règle qui stocke automatiquement tous les messages entrants du réseau d'objets dans DynamoDb.
- Vous pouvez vérifier si cela fonctionne en réinitialisant l'arduino et aller regarder dans la table DynamoDb que vous venez de créer.
- Il devrait y avoir un enregistrement avec le message.
Étape 7: Création d'un Lambda
Pour lire les données de DynamoDB, nous allons écrire un lambda AWS.
- Dans la console de gestion AWS sous services, il y a un lien intitulé "Lambda", cliquez sur celui-ci.
- Cliquez sur créer une fonction.
- Choisissez un nom.
- Définissez l'environnement d'exécution sur python 3.7.
- Cliquez sur créer une fonction.
- Collez ce code dans l'IDE intégré.
importer json
import boto3 import time from datetime import datetime, timedelta from boto3.dynamodb.conditions import Key, Attr def lambda_handler(event, context): return retreive_data() def retreive_data(): # Obtient la ressource du service. dynamodb = boto3.resource('dynamodb') table = dynamodb. Table('TABLE NAME HERE') now = datetime.now() hier = maintenant - timedelta(hours=24) fe = Key('time').between(hier.isoformat(), now.isoformat()) fed =Key('time').lt(hier.isoformat()) response = table.scan(FilterExpression=fe) recordsToDelete=table.scan(FilterExpression=fed) pour f dans recordsToDelete['Items']: #print(f) table.delete_item(Key={'dev_id':f['dev_id'], 'time':f['time']}) data = réponse['Items '] renvoie les données
- Remplacez le nom de la table par celui que vous choisissez.
- Faites défiler jusqu'au rôle d'exécution.
- Cliquez sur créer un nouveau rôle à partir des modèles de stratégie aws.
- Choisissez un nom.
- Sous les modèles de stratégie, sélectionnez « Autorisations de faisceau de test » et « Autorisations de microservice simples ».
- Cliquez sur enregistrer.
- Cliquez sur tester.
- Une fenêtre contextuelle peut apparaître, choisissez simplement un nom et enregistrez.
- Cliquez à nouveau sur tester.
- En haut, il devrait y avoir une bannière verte indiquant « Résultat de l'exécution: réussi ».
- Lorsque vous cliquez sur cette bannière, vous devriez voir la sortie de cette fonction, cela devrait être une liste de sensordata.
- Veuillez noter que ce script supprime toutes les données datant de plus de 24 heures.
- Si votre bannière n'est pas verte mais rouge, vous avez manqué quelque chose et cliquer sur cette bannière vous donnera le message d'erreur complet. Dans ce cas, Google est votre meilleur ami.
Étape 8: Création d'un point de terminaison d'API
- Dans la console de gestion AWS sous services, il y a un lien intitulé "api-gateway", cliquez sur celui-ci.
- Cliquez sur créer une API.
- Assurez-vous que "REST" et "Nouvelle API" sont tous les deux sélectionnés.
- Choisissez un nom pour votre API.
- Cliquez sur créer une API.
- Il devrait y avoir un bouton intitulé actions à l'écran maintenant, cliquez dessus.
- Cliquez ensuite sur créer une ressource.
- Comme nom de ressource, vous devriez prendre quelque chose de simple comme "plant" ou "plant-data".
- Cliquez sur créer une ressource.
- Sur la gauche, il devrait maintenant y avoir le nom que vous venez d'entrer. cliquez sur ce nom.
- Maintenant, cliquez à nouveau sur actions et cliquez maintenant sur ajouter une méthode.
- Sélectionnez OBTENIR.
- Cliquez sur la coche.
- Il devrait y avoir une zone de texte intitulée Lambda Function.
- Entrez ici le nom que vous avez donné à la fonction lambda.
- Cliquez sur enregistrer.
- Une fenêtre contextuelle peut vous avertir qu'elle crée des autorisations supplémentaires.
- Acceptez cette fenêtre contextuelle.
- Maintenant, sous actions, cliquez sur activer les cors.
- Cliquez sur "activer CORS et remplacer les en-têtes CORS existants".
- Cliquez sur « oui, … ».
- Cliquez à nouveau sur actions, puis sur Déployer l'API.
- Sous l'étape de déploiement, sélectionnez [Nouvelle étape].
- Choisissez un nom.
- Cliquez sur déployer.
- Vous avez maintenant publié votre API en ligne dans le monde.
- Sur l'écran où vous êtes arrivé, cliquez maintenant sur "GET" et sur la ressource que vous venez de créer.
- Il devrait y avoir un lien en haut intitulé "URL d'appel".
- Copiez ce lien.
- Collez-le dans un navigateur et appuyez sur Entrée.
- Vous devriez voir les données qui se trouvent dans la base de données.
Étape 9: Connectez votre usine au réseau social de plantes
- Allez sur
- Cliquez sur "Connexion".
- Cliquez sur créer un compte.
- Remplissez le formulaire pour créer votre compte.
- Veuillez noter que le nom d'utilisateur doit également être votre e-mail.
- Cliquez sur créer un compte.
- Vous devrez peut-être vérifier votre adresse e-mail avant de pouvoir continuer.
- Vérifiez que vous êtes connecté.
- Ga retour à la page d'accueil (cliquez sur le logo en haut à gauche).
- Cliquez sur le bouton Paramètres.
- Remplissez le formulaire, vous devez remplir tous les champs.
- Le lien vers l'API est le lien que vous avez enregistré après avoir créé le point de terminaison de l'API.
- Lorsque tout est rempli, cliquez sur le bouton Enregistrer l'installation. le système va maintenant vérifier le lien API que vous avez entré et s'il est correct, il enregistrera votre installation dans le réseau.
- Retournez à la page d'accueil.
- Vous pouvez maintenant cliquer sur toutes les plantes, vous devriez pouvoir voir toutes les plantes enregistrées. votre plante devrait également être là-dedans. cliquez sur la carte et vous serez redirigé vers une page d'aperçu de votre installation, elle affichera également des conseils basés sur les valeurs que vous avez définies dans les paramètres.
Étape 10: Penchez-vous en arrière et tapotez-vous dans le dos
Vous venez de connecter une installation à Internet. Assez impressionnant, non?
Conseillé:
Connectez votre Magicbit à Thingsboard : 3 étapes
Connectez votre Magicbit à Thingsboard : dans ce projet, nous allons envoyer des données à partir de capteurs connectés à magicbit que nous pouvons afficher visuellement sur Thingsboard
Comment installer un subwoofer de rechange dans votre voiture avec une chaîne stéréo d'usine : 8 étapes
Comment installer un subwoofer de rechange dans votre voiture avec une chaîne stéréo d'usine : Avec ces instructions, vous pourrez installer un subwoofer de rechange dans presque n'importe quelle voiture avec une chaîne stéréo d'usine
Connectez votre RevPi Core + RevPi DIO à Ubidots : 8 étapes
Connectez votre RevPi Core + RevPi DIO à Ubidots : Revolution Pi est un PC industriel ouvert, modulaire et durable basé sur le Raspberry Pi établi tout en répondant à la norme EN61131-2. Équipée du module de calcul Raspberry Pi, la base RevPi Core peut être étendue de manière transparente en utilisant l'appropria
Connectez votre RevPi Core à Ubidots : 5 étapes
Connectez votre RevPi Core à Ubidots : Revolution Pi est un PC industriel ouvert, modulaire et durable basé sur le Raspberry Pi établi tout en répondant à la norme EN61131-2. Équipée du module de calcul Raspberry Pi, la base RevPi Core peut être étendue de manière transparente en utilisant l'appropria
Surveillance d'usine et alertes avec ESP8266 et AskSensors IoT Cloud : 6 étapes
Surveillance des plantes et alertes avec ESP8266 et AskSensors IoT Cloud : ce projet vise à créer un système de surveillance des plantes intelligent utilisant ESP8266 et la plate-forme AskSensors IoT. Ce système peut être utilisé pour suivre le niveau d'humidité du sol afin de fournir des critères objectifs pour les décisions d'irrigation. qui aident à assurer l'irrig