![Premiers pas avec AWS IoT avec capteur de température sans fil utilisant MQTT : 8 étapes Premiers pas avec AWS IoT avec capteur de température sans fil utilisant MQTT : 8 étapes](https://i.howwhatproduce.com/images/006/image-15175-10-j.webp)
Table des matières:
- Étape 1: configuration du compte AWS
- Étape 2: Spécifications matérielles et logicielles
- Étape 3: Capteurs de vibrations et de température sans fil
- Étape 4: micrologiciel ESP32 AWS
- Étape 5: Obtention des données du capteur à partir du capteur de vibration et de température sans fil
- Étape 6: connexion à AWS
- Étape 7: Visualisation des données dans AWS
- Étape 8: Code général
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-23 14:46
![Premiers pas avec AWS IoT avec capteur de température sans fil utilisant MQTT Premiers pas avec AWS IoT avec capteur de température sans fil utilisant MQTT](https://i.howwhatproduce.com/images/006/image-15175-11-j.webp)
Dans les précédents Instructables, nous avons parcouru différentes plates-formes cloud comme Azure, Ubidots, ThingSpeak, Losant, etc. Nous avons utilisé le protocole MQTT pour envoyer les données des capteurs au cloud dans presque toutes les plateformes cloud. Pour plus d'informations sur MQTT, ses avantages et avantages par rapport au protocole HTTP, vous pouvez vous référer à cette instructable.
Dans cette instructable, nous allons zoomer sur une autre plate-forme cloud Amazon Web Services la plus familière. Beaucoup d'entre vous connaissent peut-être AWS, alias Amazon Web Services, et les fonctionnalités cloud fournies par AWS. Il est au cœur du développement Web depuis de nombreuses années. Avec l'échelle croissante des applications IoT, AWS a mis au point la solution AWSIoT. AWSIoT est une solution fiable pour héberger nos applications IoT.
En suivant cette instructable:
- Vous pourrez configurer un compte AWS pour votre application IoT
- Vous pourrez connecter l'ESP32 au noyau AWS IoT
- Envoyer et recevoir des messages à l'aide du protocole MQTT et
- Visualisez les données envoyées dans AWS
Étape 1: configuration du compte AWS
La configuration d'un compte AWS est assez simple. Il vous suffit de télécharger quelques certificats, d'y attacher des politiques, d'enregistrer l'appareil et de commencer à recevoir les messages de données des capteurs dans AWS.
Pour configurer le compte AWS, suivez ce tutoriel.
Étape 2: Spécifications matérielles et logicielles
![Spécifications matérielles et logicielles Spécifications matérielles et logicielles](https://i.howwhatproduce.com/images/006/image-15175-12-j.webp)
Spécification du logiciel
Un compte AWS
Spécification matérielle
- ESP32
- Capteur de température et de vibration sans fil
- Récepteur Zigmo Gateway
Étape 3: Capteurs de vibrations et de température sans fil
![Capteurs de vibrations et de température sans fil Capteurs de vibrations et de température sans fil](https://i.howwhatproduce.com/images/006/image-15175-13-j.webp)
Il s'agit d'un capteur de vibration et de température sans fil IoT industriel à longue portée, offrant une portée allant jusqu'à 2 milles à l'aide d'une architecture de réseau maillé sans fil. Intégrant un capteur de vibration et de température 16 bits, ce capteur transmet des données de vibration très précises à des intervalles définis par l'utilisateur. Il a les caractéristiques suivantes:
- Capteur de vibrations 3 axes de qualité industrielle avec plage de ±32g
- Calcule les vibrations RMS, MAX et MIN g
- Suppression du bruit à l'aide d'un filtre passe-bas
- Gamme de fréquences (bande passante) jusqu'à 12, 800 Hz
- Taux d'échantillonnage jusqu'à 25, 600 Hz
- Communication cryptée avec une portée sans fil de 2 milles
- Plage de température de fonctionnement -40 à +85 °C
- Boîtier IP65 fixé au mur ou monté sur aimantExemple de logiciel pour Visual Studio et LabVIEW
- Capteur de vibrations avec option de sonde externe
- Jusqu'à 500 000 transmissions à partir de 4 piles AA De nombreuses options de passerelle et de modem disponibles
Étape 4: micrologiciel ESP32 AWS
Pour vous connecter à AWS et commencer à envoyer les données, suivez les étapes suivantes
- Téléchargez la bibliothèque AWS à partir du référentiel Github suivant
- clonez le référentiel et placez le fichier AWS_IOT dans le dossier bibliothèque du répertoire Arduino
git clone
Passons maintenant en revue le code:
- Dans cette application, nous avons utilisé un portail captif pour enregistrer les informations d'identification WiFi et survoler les paramètres IP. Pour l'introduction détaillée sur le portail captif, vous pouvez passer par l'instructable suivant.
- Le portail captif nous donne la possibilité de choisir entre les paramètres statiques et DHCP. Entrez simplement les informations d'identification telles que l'IP statique, le masque de sous-réseau, la passerelle et la passerelle de capteur sans fil sera configurée sur cette IP.
- Une page Web est hébergée où une liste montrant les réseaux WiFi disponibles et là RSSI. Sélectionnez le réseau WiFi et le mot de passe et entrez soumettre. Les informations d'identification seront enregistrées dans l'EEPROM et le paramètre IP sera enregistré dans le SPIFFS. Vous trouverez plus d'informations à ce sujet dans cette instructable.
Étape 5: Obtention des données du capteur à partir du capteur de vibration et de température sans fil
![Obtention des données du capteur à partir du capteur de vibration et de température sans fil Obtention des données du capteur à partir du capteur de vibration et de température sans fil](https://i.howwhatproduce.com/images/006/image-15175-14-j.webp)
![Obtention des données du capteur à partir du capteur de vibration et de température sans fil Obtention des données du capteur à partir du capteur de vibration et de température sans fil](https://i.howwhatproduce.com/images/006/image-15175-15-j.webp)
Nous obtenons une trame de 54 octets des capteurs de température et de vibration sans fil. Ce cadre est manipulé pour obtenir les données réelles de température et de vibration.
ESP32 a trois UART disponibles pour l'utilisation en série
- RX0 GPIO 3, TX0 GPIO 1
- RX1 GPIO9, TX1 GPIO10
- RX2 GPIO 16, TX2 GPIO 17
et 3 ports série matériels
- En série
- Série1
- Série2
Tout d'abord, initialisez le fichier d'en-tête Hardware Serial. Ici, nous utiliserons RX2 et TX2 aka. Broches GPIO 16 et GPIO 17 de la carte ESP32 pour obtenir les données série.
#comprendre
# définir RXD2 16 # définir TXD2 17
Serial2.begin (115200, SERIAL_8N1, RXD2, TXD2); // broches 16 rx2, 17 tx2, 19200 bps, 8 bits sans parité 1 bit d'arrêt
Les étapes suivantes vous mèneront plus loin pour obtenir les valeurs réelles du capteur
- Créez des variables pour stocker la température, l'humidité, la batterie et d'autres valeurs de capteur
- Définissez le Rx, la broche tx, le débit en bauds et les bits de parité pour la série matérielle
- Tout d'abord, vérifiez qu'il y a quelque chose à lire en utilisant Serial1.available()
- Nous obtiendrons la trame de 54 octets.
- Recherchez 0x7E qui est l'octet de début.
- Les données de vibration se composent de la valeur RMS pour les 3 axes, des valeurs minimales pour les 3 axes, des valeurs maximales pour les 3 axes.
- les valeurs de température et de batterie contiendront 2 octets de données
- obtenir le nom du capteur, le type, la version du capteur contiendra 1 octet de données et peut être obtenu à partir de l'adresse respective
if (Serial2.available()) { Serial.println("Lire la série"); data[0] = Serial2.read(); retard(k); if(data[0]==0x7E) { Serial.println("Got Packet"); while (!Serial2.available()); pour (i = 1; i< 55; i++) { data = Serial2.read(); retard(1); } if(data[15]==0x7F) /////// pour vérifier si les données reçues sont correctes { if(data[22]==0x08) //////// assurez-vous que le type de capteur est correct { rms_x = ((uint16_t)(((data[24])<<16) + ((data[25])<<8) + (data[26]))/100); rms_y = ((uint16_t)(((données[27])<<16) + ((données[28])<<8) + (données[29]))/100); rms_z = ((uint16_t)(((données[30])<<16) + ((données[31])<<8) + (données[32])))/100); int16_t max_x = ((uint16_t)(((données[33])<<16) + ((données[34])<<8) + (données[35]))/100); int16_t max_y = ((uint16_t)(((données[36])<<16) + ((données[37])<<8) + (données[38]))/100); int16_t max_z = ((uint16_t)(((données[39])<<16) + ((données[40])<<8) + (données[41]))/100);
int16_t min_x = ((uint16_t)(((données[42])<<16) + ((données[43])<<8) + (données[44]))/100); int16_t min_y = ((uint16_t)(((données[45])<<16) + ((données[46])<<8) + (données[47]))/100); int16_t min_z = ((uint16_t)(((données[48])<<16) + ((données[49])<<8) + (données[50]))/100);
cTemp = ((((données[51]) * 256) + données[52])); batterie flottante = ((données[18] * 256) + données[19]); tension = 0,00322 * batterie; Serial.print("Numéro de capteur "); Serial.println(data[16]); senseNumber = data[16]; Serial.print("Type de capteur "); Serial.println(data[22]); Serial.print("Version du micrologiciel "); Serial.println(data[17]); Serial.print("Température en Celsius:"); Serial.print(cTemp); Serial.println("C"); Serial.print("Vibration RMS sur l'axe X:"); Serial.print(rms_x); Serial.println(" mg"); Serial.print("Vibration RMS dans l'axe Y:"); Serial.print(rms_y); Serial.println(" mg"); Serial.print("Vibration RMS dans l'axe Z:"); Serial.print(rms_z); Serial.println(" mg");
Serial.print("Vibration min dans l'axe X:");
Serial.print(min_x); Serial.println(" mg"); Serial.print("Vibration min dans l'axe Y:"); Serial.print(min_y); Serial.println(" mg"); Serial.print("Vibration min dans l'axe Z:"); Serial.print(min_z); Serial.println(" mg");
Serial.print("Valeur ADC:");
Serial.println(batterie); Serial.print("Tension de la batterie:"); Serial.print(tension); Serial.println("\n"); if (tension < 1) { Serial.println ("Il est temps de remplacer la batterie"); } } } else { pour (i = 0; i< 54; i++) { Serial.print(data); Serial.print(", "); retard(1); } } } }
Étape 6: connexion à AWS
![Connexion à AWS Connexion à AWS](https://i.howwhatproduce.com/images/006/image-15175-16-j.webp)
- Incluez les fichiers d'en-tête AWS_IOT.h, WiFi.h pour configurer une connexion avec le hub AWSIoT
- Entrez votre adresse d'hôte, votre identifiant client qui sera le nom de la politique et le nom du sujet qui sera le nom de l'objet
//*********Identifiants AWS*************//char HOST_ADDRESS="a2smbp7clzm5uw-ats.iot.us-east-1.amazonaws.com"; char CLIENT_ID= "ncdGatewayPolicy"; char TOPIC_NAME= "ncdGatewayThing";
Créez une variable char pour stocker votre JSON, dans ce cas, nous avons créé un format pour stocker JSON
const char *format = "{"SensorId\":\"%d\", \"messageId\":%d, \"rmsX\":%d, \"rmsY\":%d, \"rmsZ \":%d, \"cTemp\":%d, \"tension\":%.2f}";
Créer une instance de la classe AWS_IOT
AWS_IOT esp; //Instance de la classe AWS_IOT
Connectez-vous maintenant au hub AWSIoT à l'aide de la méthode suivante
void reconnectMQTT(){ if(hornbill.connect(HOST_ADDRESS, CLIENT_ID)== 0) { Serial.println("Connecté à AWS"); retard(1000);
if(0==hornbill.subscribe(TOPIC_NAME, mySubCallBackHandler))
{ Serial.println("Inscription réussie"); } else { Serial.println("L'abonnement a échoué, vérifiez le nom de la chose et les certificats"); tandis que(1); } } else { Serial.println("La connexion AWS a échoué, vérifiez l'adresse HOST"); tandis que(1); }
retard (2000);
}
publier les données du capteur toutes les 1 minute
if(tick >= 60) // publier dans le sujet toutes les 5 secondes { tick=0; charge utile char[PAYLOAD_MAX_LEN]; snprintf(charge utile, PAYLOAD_MAX_LEN, format, senseNumber, msgCount++, rms_x, rms_y, rms_z, cTemp, tension); Serial.println (charge utile); if(hornbill.publish(TOPIC_NAME, charge utile) == 0) { Serial.print("Publier le message:"); Serial.println (charge utile); } else { Serial.println("La publication a échoué"); } } vTaskDelay(1000 / portTICK_RATE_MS); coche++;
Étape 7: Visualisation des données dans AWS
![Visualisation des données dans AWS Visualisation des données dans AWS](https://i.howwhatproduce.com/images/006/image-15175-17-j.webp)
![Visualisation des données dans AWS Visualisation des données dans AWS](https://i.howwhatproduce.com/images/006/image-15175-18-j.webp)
![Visualisation des données dans AWS Visualisation des données dans AWS](https://i.howwhatproduce.com/images/006/image-15175-19-j.webp)
- Connectez-vous à votre compte AWS.
- dans le coin gauche de la barre d'outils, vous trouverez l'onglet Services
- Cliquez sur cet onglet et sous l'en-tête Internet des objets, sélectionnez IoT Core.
- Sélectionnez la QoS et non. de messages aux abonnés. Saisissez le nom du sujet.
Étape 8: Code général
Vous pouvez trouver le code global sur ce référentiel Github.
Crédits
- Arduino Json
- Capteurs de température et d'humidité sans fil
- ESP32
- PubSubClient
Conseillé:
Premiers pas avec les capteurs de température et de vibrations sans fil longue portée : 7 étapes
![Premiers pas avec les capteurs de température et de vibrations sans fil longue portée : 7 étapes Premiers pas avec les capteurs de température et de vibrations sans fil longue portée : 7 étapes](https://i.howwhatproduce.com/images/001/image-149-j.webp)
Premiers pas avec les capteurs de température et de vibration sans fil à longue portée : Parfois, les vibrations sont la cause de graves problèmes dans de nombreuses applications. Des arbres et roulements de la machine aux performances des disques durs, les vibrations provoquent des dommages à la machine, un remplacement précoce, de faibles performances et affectent considérablement la précision. Surveillance
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur ! : 6 étapes
![Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur ! : 6 étapes Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur ! : 6 étapes](https://i.howwhatproduce.com/images/002/image-4196-13-j.webp)
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur ! : Dans ce rapide Instructable, nous allons faire un simple contrôleur de moteur pas à pas à l'aide d'un moteur pas à pas. Ce projet ne nécessite aucun circuit complexe ni microcontrôleur. Alors sans plus tarder, commençons
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur (V2) : 9 étapes (avec photos)
![Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur (V2) : 9 étapes (avec photos) Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur (V2) : 9 étapes (avec photos)](https://i.howwhatproduce.com/images/002/image-5311-28-j.webp)
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur (V2) : Dans l'un de mes précédents Instructables, je vous ai montré comment contrôler un moteur pas à pas à l'aide d'un moteur pas à pas sans microcontrôleur. C'était un projet rapide et amusant, mais il est venu avec deux problèmes qui seront résolus dans ce Instructable. Alors, esprit
Moteur pas à pas contrôlé par moteur pas à pas - Moteur pas à pas en tant qu'encodeur rotatif : 11 étapes (avec photos)
![Moteur pas à pas contrôlé par moteur pas à pas - Moteur pas à pas en tant qu'encodeur rotatif : 11 étapes (avec photos) Moteur pas à pas contrôlé par moteur pas à pas - Moteur pas à pas en tant qu'encodeur rotatif : 11 étapes (avec photos)](https://i.howwhatproduce.com/images/007/image-20303-j.webp)
Moteur pas à pas contrôlé par moteur pas à pas | Moteur pas à pas en tant qu'encodeur rotatif : Vous avez quelques moteurs pas à pas qui traînent et vous voulez faire quelque chose ? Dans ce Instructable, utilisons un moteur pas à pas comme encodeur rotatif pour contrôler la position d'un autre moteur pas à pas à l'aide d'un microcontrôleur Arduino. Alors sans plus tarder, allons-y
Robot Arduino sans fil utilisant le module sans fil HC12 : 7 étapes
![Robot Arduino sans fil utilisant le module sans fil HC12 : 7 étapes Robot Arduino sans fil utilisant le module sans fil HC12 : 7 étapes](https://i.howwhatproduce.com/images/011/image-32306-j.webp)
Robot Arduino sans fil utilisant le module sans fil HC12 : Salut les gars, bon retour. Dans mon article précédent, j'ai expliqué ce qu'est un circuit de pont en H, un circuit intégré de pilote de moteur L293D, un circuit de pilote de moteur L293D superposé pour piloter des pilotes de moteur à courant élevé et comment vous pouvez concevoir et fabriquer votre propre carte de pilote de moteur L293D