Table des matières:

Orientation de la carte via le serveur Web : 6 étapes
Orientation de la carte via le serveur Web : 6 étapes

Vidéo: Orientation de la carte via le serveur Web : 6 étapes

Vidéo: Orientation de la carte via le serveur Web : 6 étapes
Vidéo: OpenLayers - Création de notre première carte interactive -1 2024, Novembre
Anonim
Orientation de la carte via le serveur Web
Orientation de la carte via le serveur Web

L'Internet des objets (IoT) est l'un des sujets les plus populaires sur la planète en ce moment. Et, il se développe rapidement de jour en jour avec Internet. L'Internet des objets transforme les maisons simples en maisons intelligentes, où tout, de vos lumières à vos serrures, peut être contrôlé depuis votre smartphone ou votre ordinateur de bureau. C'est le luxe que tout le monde veut posséder.

Nous jouons toujours avec les outils dont nous disposons et continuons à travailler pour passer à l'étape suivante de nos limites. Nous essayons de donner à nos clients une vision des dernières technologies et idées. Ainsi, vous pouvez transformer votre maison en maisons intelligentes et profiter du goût du luxe sans trop d'efforts.

Aujourd'hui, nous pensons travailler sur l'un des sujets les plus importants de l'IoT - l'orientation des cartes numériques.

Nous construirons un serveur Web à travers lequel nous pourrons surveiller les mouvements de tout appareil ou objet (c'est à vous, qui vous voulez espionner;)). Vous pouvez toujours penser à faire passer ce projet au niveau supérieur avec quelques modifications et n'oubliez pas de nous le dire dans les commentaires ci-dessous.

Commençons que.. !!

Étape 1: Équipement dont nous avons besoin..

Équipement dont nous avons besoin.. !!
Équipement dont nous avons besoin.. !!
Équipement dont nous avons besoin.. !!
Équipement dont nous avons besoin.. !!
Équipement dont nous avons besoin.. !!
Équipement dont nous avons besoin.. !!
Équipement dont nous avons besoin.. !!
Équipement dont nous avons besoin.. !!

1. Capteur LSM9DS0

Le capteur 3-en-1 fabriqué par STMicroelectronics, le LSM9DS0 est un système en boîtier comprenant un capteur d'accélération linéaire numérique 3D, un capteur de vitesse angulaire numérique 3D et un capteur magnétique numérique 3D. Le LSM9DS0 a une pleine échelle d'accélération linéaire de ±2g/±4g/±6g/±8g/±16g, une pleine échelle de champ magnétique de ±2/±4/±8/±12 gauss et un taux angulaire de ±245 /±500/±2000 dps.

2. Adafruit Huzzah ESP8266

Le processeur ESP8266 d'Espressif est un microcontrôleur 80 MHz avec une interface WiFi complète (à la fois comme client et point d'accès) et une pile TCP/IP avec prise en charge DNS également. L'ESP8266 est une plate-forme incroyable pour le développement d'applications IoT. L'ESP8266 fournit une plate-forme mature pour la surveillance et le contrôle des applications à l'aide du langage filaire Arduino et de l'IDE Arduino.

3. Programmeur USB ESP8266

son adaptateur hôte ESP8266 a été spécialement conçu par le Dcube Store pour la version Adafruit Huzzah de l'ESP8266, permettant l'interface I²C.

4. Câble de connexion I2C

5. Mini-câble USB

Le câble d'alimentation mini USB est un choix idéal pour alimenter l'Adafruit Huzzah ESP8266.

Étape 2: Connexions matérielles

Connexions matérielles
Connexions matérielles
Connexions matérielles
Connexions matérielles
Connexions matérielles
Connexions matérielles

En général, établir des connexions est la partie la plus simple de ce projet. Suivez les instructions et les images, et vous ne devriez avoir aucun problème.

Tout d'abord, prenez l'Adafruit Huzzah ESP8266 et placez-y le programmeur USB (avec port I²C orienté vers l'intérieur). Appuyez doucement sur le programmeur USB et nous en avons terminé avec cette étape aussi simple que bonjour (voir l'image ci-dessus).

Connexion du capteur et de l'Adafruit Huzzah ESP8266Prenez le capteur et connectez le câble I²C avec celui-ci. Pour un fonctionnement correct de ce câble, n'oubliez pas que la sortie I²C se connecte TOUJOURS à l'entrée I²C. La même chose a dû être suivie pour l'Adafruit Huzzah ESP8266 avec le programmeur USB monté dessus (voir l'image ci-dessus).

Avec l'aide du programmeur USB ESP8266, il est très facile de programmer ESP. Tout ce que vous avez à faire est de brancher le capteur dans le programmeur USB et vous êtes prêt à partir. Nous préférons utiliser cet adaptateur car il facilite beaucoup la connexion du matériel. Ne vous inquiétez pas de souder les broches de l'ESP au capteur ou de lire les schémas des broches et la fiche technique. Nous pouvons utiliser et travailler sur plusieurs capteurs simultanément, il vous suffit de faire une chaîne. Sans ces programmeurs USB plug and play, il y a beaucoup de risques de faire une mauvaise connexion. Un mauvais câblage peut tuer votre wifi ainsi que votre capteur.

Remarque: le fil marron doit toujours suivre la connexion de masse (GND) entre la sortie d'un appareil et l'entrée d'un autre appareil.

Alimentation du circuit

Branchez le câble Mini USB dans la prise d'alimentation d'Adafruit Huzzah ESP8266. Allumez-le et le tour est joué, nous sommes prêts à partir !

Étape 3: Coder

Code
Code

Le code ESP pour les capteurs Adafruit Huzzah ESP8266 et LSM9DS0 est disponible sur notre référentiel github.

Avant de passer au code, assurez-vous de lire les instructions données dans le fichier Lisez-moi et configurez votre Adafruit Huzzah ESP8266 en fonction de celui-ci. La configuration de l'ESP ne prendra que 5 minutes.

Le code est long mais il est dans la forme la plus simple que vous puissiez imaginer et vous n'aurez aucune difficulté à le comprendre.

Pour votre commodité, vous pouvez également copier le code ESP de travail pour ce capteur à partir d'ici:

// Distribué avec une licence libre-arbitre.// Utilisez-le comme vous le souhaitez, à profit ou gratuitement, à condition qu'il rentre dans les licences de ses œuvres associées. // LSM9DSO // Ce code est conçu pour fonctionner avec le mini module TCS3414_I2CS I2C disponible sur dcubestore.com.

#comprendre

#comprendre

#comprendre

#comprendre

// L'adresse I2C du gyroscope LSM9DSO est 6A (106)

#define Addr_Gyro 0x6A // L'adresse LSM9DSO Accl I2C est 1E(30) #define Addr_Accl 0x1E

const char* ssid = "votre ssid";

const char* mot de passe = "votre mot de passe"; int xGyro, yGyro, zGyro, xAccl, yAccl, zAccl, xMag, yMag, zMag;

Serveur ESP8266WebServer (80);

void handleroot()

{ données int non signées[6];

// Démarrer la transmission I2C

Wire.beginTransmission(Addr_Gyro); // Sélection du registre de contrôle 1 Wire.write(0x20); // Débit de données = 95 Hz, X, Y, axe Z activé, mise sous tension Wire.write (0x0F); // Arrêter la transmission I2C Wire.endTransmission();

// Démarrer la transmission I2C

Wire.beginTransmission(Addr_Gyro); // Sélection du registre de contrôle 4 Wire.write(0x23); // 2000 dps à grande échelle, mise à jour continue Wire.write (0x30); // Arrêter la transmission I2C Wire.endTransmission();

// Démarrer la transmission I2C

Wire.beginTransmission(Adr_Accl); // Sélection du registre de contrôle 1 Wire.write(0x20); // Taux de données d'accélération = 100 Hz, X, Y, axe Z activé, mise sous tension Wire.write (0x67); // Arrêter la transmission I2C sur le périphérique Wire.endTransmission();

// Démarrer la transmission I2C

Wire.beginTransmission(Adr_Accl); // Sélection du registre de contrôle 2 Wire.write(0x21); // Sélection pleine échelle +/- 16g Wire.write (0x20); // Arrêter la transmission I2C Wire.endTransmission();

// Démarrer la transmission I2C

Wire.beginTransmission(Adr_Accl); // Sélection du registre de contrôle 5 Wire.write(0x24); // Haute résolution magnétique, débit de données de sortie = 50 Hz Wire.write (0x70); // Arrêter la transmission I2C Wire.endTransmission();

// Démarrer la transmission I2C

Wire.beginTransmission(Adr_Accl); // Sélection du registre de contrôle 6 Wire.write(0x25); // Pleine échelle magnétique +/- 12 gauss Wire.write (0x60); // Arrêter la transmission I2C Wire.endTransmission();

// Démarrer la transmission I2C

Wire.beginTransmission(Adr_Accl); // Sélection du registre de contrôle 7 Wire.write(0x26); // Mode normal, mode de conversion magnétique continue Wire.write(0x00); // Arrêter la transmission I2C Wire.endTransmission(); retard (300);

for (int i = 0; i < 6; i++) { // Démarrer le fil de transmission I2C.beginTransmission(Addr_Gyro); // Sélection du registre de données Wire.write((40 + i)); // Arrêter la transmission I2C Wire.endTransmission();

// Demande 1 octet de données

Wire.requestFrom(Addr_Gyro, 1);

// Lecture de 6 octets de données

// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb if (Wire.available() == 1) { data = Wire.read(); } }

// Convertir les données

int xGyro = ((données[1] * 256) + données[0]); int yGyro = ((données[3] * 256) + données[2]); int zGyro = ((données[5] * 256) + données[4]);

for (int i = 0; i < 6; i++) { // Démarrer le fil de transmission I2C.beginTransmission(Addr_Accl); // Sélection du registre de données Wire.write((40 + i)); // Arrêter la transmission I2C Wire.endTransmission();

// Demande 1 octet de données

Wire.requestFrom(Addr_Accl, 1);

// Lecture de 6 octets de données

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb // zAccl lsb, zAccl msb if (Wire.available() == 1) { data = Wire.read(); } }

// Convertir les données

int xAccl = ((données[1] * 256) + données[0]); int yAccl = ((données[3] * 256) + données[2]); int zAccl = ((données[5] * 256) + données[4]);

for (int i = 0; i < 6; i++) { // Démarrer le fil de transmission I2C.beginTransmission(Addr_Accl); // Sélection du registre de données Wire.write((8 + i)); // Arrêter la transmission I2C Wire.endTransmission();

// Demande 1 octet de données

Wire.requestFrom(Addr_Accl, 1);

// Lecture de 6 octets de données

// xMag lsb, xMag msb, yMag lsb, yMag msb // zMag lsb, zMag msb if (Wire.available() == 1) { data = Wire.read(); } }

// Convertir les données

int xMag = ((données[1] * 256) + données[0]); int yMag = ((données[3] * 256) + données[2]); int zMag = ((données[5] * 256) + données[4]);

// Sortie des données vers le moniteur série

Serial.print("Axe X de rotation: "); Serial.println(xGyro); Serial.print("Axe Y de rotation: "); Serial.println(yGyro); Serial.print("Axe Z de rotation: "); Serial.println(zGyro); Serial.print("Accélération dans l'axe X: "); Serial.println(xAccl); Serial.print("Accélération dans l'axe Y: "); Serial.println(yAccl); Serial.print("Accélération dans l'axe Z: "); Serial.println(zAccl); Serial.print("Champ magnétique dans l'axe X: "); Serial.println(xMag); Serial.print("Champ magnétique dans l'axe Y: "); Serial.println(yMag); Serial.print("Magnétique déposée dans l'axe Z: "); Serial.println(zMag);

// Sortie des données vers le serveur Web

server.sendContent ("

MAGASIN DCUBE

www.dcubestore.com

"" LSM9DS0 Capteur I2C Mini Module

);

server.sendContent ("

Axe X de rotation = " + String(xGyro)); server.sendContent ("

Axe Y de rotation = " + String(yGyro)); server.sendContent ("

Axe Z de rotation = " + String(zGyro)); server.sendContent ("

Accélération dans l'axe X = " + String(xAccl)); server.sendContent ("

Accélération dans l'axe Y = " + String(yAccl)); server.sendContent ("

Accélération dans l'axe Z = " + String(zAccl)); server.sendContent ("

Magnétique déposé dans l'axe X = " + String(xMag)); server.sendContent ("

Magnétique déposé dans l'axe Y = " + String(yMag)); server.sendContent ("

Magnétique déposé dans l'axe Z = " + String(zMag)); delay(1000); }

void setup()

{ // Initialise la communication I2C en tant que MASTER Wire.begin(2, 14); // Initialiser la communication série, définir le débit en bauds = 115200 Serial.begin(115200);

// Se connecter au réseau Wi-Fi

WiFi.begin(ssid, mot de passe);

// Attendre la connexion

while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.print("Connecté à "); Serial.println(ssid);

// Obtenir l'adresse IP de ESP8266

Serial.print("Adresse IP: "); Serial.println(WiFi.localIP());

// Démarrer le serveur

server.on("/", handleroot); serveur.begin(); Serial.println("Serveur HTTP démarré"); }

boucle vide()

{ server.handleClient(); }

Étape 4: Travail du code

Fonctionnement du code
Fonctionnement du code

Maintenant, téléchargez (ou git pull) le code et ouvrez-le dans l'IDE Arduino.

Compilez et téléchargez le code et voyez la sortie sur Serial Monitor.

Remarque: Avant de télécharger, assurez-vous d'entrer votre réseau SSID et votre mot de passe dans le code.

Copiez l'adresse IP de l'ESP8266 à partir du moniteur série et collez-la dans votre navigateur Web. Vous verrez une page Web avec l'axe de rotation, l'accélération et la lecture du champ magnétique dans l'axe 3.

La sortie du capteur sur Serial Monitor et Web Server est illustrée dans l'image ci-dessus.

Étape 5: Applications et fonctionnalités

Le LSM9DS0 est un système intégré comprenant un capteur d'accélération linéaire numérique 3D, un capteur de vitesse angulaire numérique 3D et un capteur magnétique numérique 3D. En mesurant ces trois propriétés, vous pouvez acquérir beaucoup de connaissances sur le mouvement d'un objet. En mesurant la force et la direction du champ magnétique terrestre avec un magnétomètre, vous pouvez approximer votre cap. Un accéléromètre dans votre téléphone peut mesurer la direction de la force de gravité et estimer l'orientation (portrait, paysage, plat, etc.). Les quadricoptères avec gyroscopes intégrés peuvent surveiller les tonneaux ou les tangages soudains. Nous pouvons l'utiliser dans le système de positionnement global (GPS).

Certaines autres applications incluent la navigation intérieure, les interfaces utilisateur intelligentes, la reconnaissance avancée des gestes, les périphériques d'entrée de jeu et de réalité virtuelle, etc.

Avec l'aide de l'ESP8266, nous pouvons augmenter sa capacité à une plus grande longueur. Nous pouvons contrôler nos appareils et surveiller leurs performances depuis nos ordinateurs de bureau et nos appareils mobiles. Nous pouvons stocker et gérer les données en ligne et les étudier à tout moment pour des modifications. D'autres applications incluent la domotique, le réseau maillé, le contrôle sans fil industriel, les moniteurs pour bébé, les réseaux de capteurs, l'électronique portable, les dispositifs de localisation Wi-Fi, les balises de système de positionnement Wi-Fi.

Étape 6: Ressources pour aller plus loin

Pour plus d'informations sur LSM9DS0 et ESP8266, consultez les liens ci-dessous:

  • Fiche technique du capteur LSM9DS0
  • Schéma de câblage LSM9DS0
  • Fiche technique ESP8266

Conseillé: