Taula de continguts:

Orientació del mapa a través del servidor web: 6 passos
Orientació del mapa a través del servidor web: 6 passos

Vídeo: Orientació del mapa a través del servidor web: 6 passos

Vídeo: Orientació del mapa a través del servidor web: 6 passos
Vídeo: Беслан. Помни / Beslan. Remember (english & español subs) 2024, Juliol
Anonim
Orientació del mapa a través del servidor web
Orientació del mapa a través del servidor web

Internet de les coses (IoT) és un dels temes populars al planeta ara mateix. I creix ràpidament dia a dia amb Internet. L’Internet de les coses està canviant les cases simples en cases intel·ligents, on es pot controlar des de les llums fins als panys des del telèfon intel·ligent o l’escriptori. Aquest és el luxe que tothom vol tenir.

Sempre juguem amb les eines que tenim i seguim treballant per anar al següent pas dels nostres límits. Intentem oferir als nostres clients una visió de les darreres tecnologies i idees. Per tant, podeu convertir la vostra llar en cases intel·ligents i gaudir del gust del luxe sense grans esforços.

Avui pensem en treballar un dels temes més importants de l’IoT: l’orientació de mapes digitals.

Construirem un servidor web a través del qual podrem controlar els moviments de qualsevol dispositiu o cosa (depèn de vosaltres, a qui voleu espiar;)). Sempre podeu pensar a actualitzar aquest projecte al següent nivell amb algunes modificacions i no us oblideu de dir-nos-ho als comentaris següents.

Comencem que.. !!

Pas 1: Equip que necessitem..

Equip que necessitem.. !!
Equip que necessitem.. !!
Equip que necessitem.. !!
Equip que necessitem.. !!
Equip que necessitem.. !!
Equip que necessitem.. !!
Equip que necessitem.. !!
Equip que necessitem.. !!

1. Sensor LSM9DS0

El sensor 3-en-1 fabricat per STMicroelectronics, el LSM9DS0 és un sistema que inclou un sensor d’acceleració lineal digital 3D, un sensor de velocitat angular digital 3D i un sensor magnètic digital 3D. El LSM9DS0 té una escala completa d’acceleració lineal de ± 2g / ± 4g / ± 6g / ± 8g / ± 16g, un camp magnètic a escala completa de ± 2 / ± 4 / ± 8 / ± 12 gauss i una velocitat angular de ± 245 / ± 500 / ± 2000 dps.

2. Adafruit Huzzah ESP8266

El processador ESP8266 d’Espressif és un microcontrolador de 80 MHz amb una interfície WiFi completa (tant com a client com a punt d’accés) i una pila TCP / IP amb suport DNS. L'ESP8266 és una plataforma increïble per al desenvolupament d'aplicacions IoT. L'ESP8266 proporciona una plataforma madura per controlar i controlar aplicacions mitjançant el llenguatge de fil Arduino i l'IDE Arduino.

3. Programador USB ESP8266

el seu adaptador d'amfitrió ESP8266 va ser dissenyat específicament per Dcube Store per a la versió Adafruit Huzzah de l'ESP8266, permetent la interfície I²C.

4. Cable de connexió I2C

5. Mini cable USB

El cable d'alimentació mini USB és una opció ideal per alimentar l'Adafruit Huzzah ESP8266.

Pas 2: connexions de maquinari

Connexions de maquinari
Connexions de maquinari
Connexions de maquinari
Connexions de maquinari
Connexions de maquinari
Connexions de maquinari

En general, fer connexions és la part més fàcil d’aquest projecte. Seguiu les instruccions i les imatges i no hauríeu de tenir problemes.

Primer de tot, agafeu l'Adafruit Huzzah ESP8266 i col·loqueu-hi el programador USB (amb port I²C cap a l'interior). Premeu el programador USB suaument i ja hem acabat amb aquest pas tan senzill com el pastís (vegeu la imatge superior).

Connexió del sensor i Adafruit Huzzah ESP8266 Agafeu el sensor i connecteu-hi el cable I²C. Per al bon funcionament d'aquest cable, recordeu que la sortida I²C SEMPRE es connecta a l'entrada I²C. Es va haver de seguir el mateix per a l'Adafruit Huzzah ESP8266 amb el programador USB muntat damunt (vegeu la imatge superior).

Amb l'ajuda del programador USB ESP8266, és molt fàcil programar ESP. Tot el que heu de fer és connectar el sensor al programador USB i ja esteu a punt. Preferim utilitzar aquest adaptador perquè facilita molt la connexió del maquinari. No us preocupeu per soldar els pins de l’ESP al sensor ni llegir els diagrames i el full de dades de pins. Podem utilitzar i treballar amb diversos sensors simultàniament, només cal fer una cadena. Sense aquests programadors USB plug and play, hi ha un gran risc de fer una connexió incorrecta. Un mal cablejat pot matar el vostre wifi, així com el vostre sensor.

Nota: el cable marró sempre ha de seguir la connexió de terra (GND) entre la sortida d’un dispositiu i l’entrada d’un altre dispositiu.

Alimentació del circuit

Connecteu el cable Mini USB a la presa d’alimentació de l’Adafruit Huzzah ESP8266. Enceneu-lo i voilà, ja estem bé!

Pas 3: Codi

Codi
Codi

El codi ESP del sensor Adafruit Huzzah ESP8266 i LSM9DS0 està disponible al nostre dipòsit github.

Abans d’accedir al codi, assegureu-vos de llegir les instruccions del fitxer Llegeix-me i configurar el vostre Adafruit Huzzah ESP8266 segons el mateix. La configuració de l’ESP trigarà només 5 minuts.

El codi és llarg, però es pot imaginar de la forma més senzilla i no tindreu cap dificultat per entendre-ho.

Per a la vostra comoditat, també podeu copiar el codi ESP que funciona per a aquest sensor:

// Distribuïda amb una llicència de lliure voluntat.// Utilitzeu-la de la manera que vulgueu, de forma gratuïta o gratuïta, sempre que encaixi en les llicències de les seves obres associades. // LSM9DSO // Aquest codi està dissenyat per funcionar amb el mini mòdul TCS3414_I2CS I2C disponible a dcubestore.com.

#incloure

#incloure

#incloure

#incloure

// L’adreça LSM9DSO Gyro I2C és 6A (106)

#define Addr_Gyro 0x6A // LSM9DSO Accl I2C address is 1E (30) #define Addr_Accl 0x1E

const char * ssid = "el vostre ssid";

const char * password = "la vostra contrasenya"; int xGyro, yGyro, zGyro, xAccl, yAccl, zAccl, xMag, yMag, zMag;

Servidor ESP8266WebServer (80);

void handleroot ()

{dades int sense signatura [6];

// Inicieu la transmissió I2C

Wire.beginTransmission (Addr_Gyro); // Seleccioneu registre de control 1 Wire.write (0x20); // Velocitat de dades = 95Hz, X, Y, eix Z activat, encendre Wire.write (0x0F); // Atura la transmissió I2C Wire.endTransmission ();

// Inicieu la transmissió I2C

Wire.beginTransmission (Addr_Gyro); // Seleccioneu registre de control 4 Wire.write (0x23); // 2000 dps a escala completa, actualització contínua Wire.write (0x30); // Atura la transmissió I2C Wire.endTransmission ();

// Inicieu la transmissió I2C

Wire.beginTransmission (Addr_Accl); // Seleccioneu registre de control 1 Wire.write (0x20); // Velocitat de dades d’acceleració = 100Hz, X, Y, eix Z activat, encendre Wire.write (0x67); // Atura la transmissió I2C al dispositiu Wire.endTransmission ();

// Inicieu la transmissió I2C

Wire.beginTransmission (Addr_Accl); // Seleccioneu registre de control 2 Wire.write (0x21); // Selecció a escala completa +/- 16g Wire.write (0x20); // Atura la transmissió I2C Wire.endTransmission ();

// Inicieu la transmissió I2C

Wire.beginTransmission (Addr_Accl); // Seleccioneu registre de control 5 Wire.write (0x24); // Alta resolució magnètica, velocitat de dades de sortida = 50Hz Wire.write (0x70); // Atura la transmissió I2C Wire.endTransmission ();

// Inicieu la transmissió I2C

Wire.beginTransmission (Addr_Accl); // Seleccioneu registre de control 6 Wire.write (0x25); // Full magnètic magnètic +/- 12 gauss Wire.write (0x60); // Atura la transmissió I2C Wire.endTransmission ();

// Inicieu la transmissió I2C

Wire.beginTransmission (Addr_Accl); // Seleccioneu registre de control 7 Wire.write (0x26); // Mode normal, mode de conversió magnètica contínua Wire.write (0x00); // Atura la transmissió I2C Wire.endTransmission (); retard (300);

for (int i = 0; i <6; i ++) {// Inicia la transmissió I2C Wire.beginTransmission (Addr_Gyro); // Seleccioneu registre de dades Wire.write ((40 + i)); // Atura la transmissió I2C Wire.endTransmission ();

// Sol·liciteu 1 byte de dades

Wire.requestFrom (Addr_Gyro, 1);

// Llegiu 6 bytes de dades

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

// Converteix les dades

int xGyro = ((data [1] * 256) + data [0]); int yGyro = ((dades [3] * 256) + dades [2]); int zGyro = ((dades [5] * 256) + dades [4]);

for (int i = 0; i <6; i ++) {// Inicia la transmissió I2C Wire.beginTransmission (Addr_Accl); // Seleccioneu registre de dades Wire.write ((40 + i)); // Atura la transmissió I2C Wire.endTransmission ();

// Sol·liciteu 1 byte de dades

Wire.requestFrom (Addr_Accl, 1);

// Llegiu 6 bytes de dades

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

// Converteix les dades

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

for (int i = 0; i <6; i ++) {// Inicia la transmissió I2C Wire.beginTransmission (Addr_Accl); // Seleccioneu registre de dades Wire.write ((8 + i)); // Atura la transmissió I2C Wire.endTransmission ();

// Sol·liciteu 1 byte de dades

Wire.requestFrom (Addr_Accl, 1);

// Llegiu 6 bytes de dades

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

// Converteix les dades

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

// Sortida de dades al monitor sèrie

Serial.print ("Eix X de rotació:"); Serial.println (xGyro); Serial.print ("Eix Y de rotació:"); Serial.println (yGyro); Serial.print ("Eix Z de rotació:"); Serial.println (zGyro); Serial.print ("Acceleració a l'eix X:"); Serial.println (xAccl); Serial.print ("Acceleració a l'eix Y:"); Serial.println (yAccl); Serial.print ("Acceleració a l'eix Z:"); Serial.println (zAccl); Serial.print ("Camp magnètic a l'eix X:"); Serial.println (xMag); Serial.print ("Camp magnètic a l'eix Y:"); Serial.println (yMag); Serial.print ("Arxiu magnètic a l'eix Z:"); Serial.println (zMag);

// Data de sortida al servidor web

server.sendContent ("

BOTIGA DCUBE

www.dcubestore.com

"" Mini mòdul del sensor LSM9DS0 I2C

);

server.sendContent ("

Eix X de rotació = "+ Cadena (xGyro)); server.sendContent ("

Eix Y de rotació = "+ Cadena (yGyro)); server.sendContent ("

Eix Z de rotació = "+ Cadena (zGyro)); server.sendContent ("

Acceleració a l'eix X = "+ cadena (xAccl)); server.sendContent ("

Acceleració a l'eix Y = "+ cadena (yAccl)); server.sendContent ("

Acceleració a l'eix Z = "+ cadena (zAccl)); server.sendContent ("

Arxiu magnètic a l'eix X = "+ cadena (xMag)); server.sendContent ("

Arxiu magnètic a l'eix Y = "+ cadena (yMag)); server.sendContent ("

Arxiu magnètic a l'eix Z = "+ cadena (zMag)); retard (1000);}

configuració nul·la ()

{// Inicialitzar la comunicació I2C com a MASTER Wire.begin (2, 14); // Inicialitzar la comunicació serial, establir la velocitat de transmissió = 115200 Serial.begin (115200);

// Connecteu-vos a la xarxa WiFi

WiFi.begin (ssid, contrasenya);

// Espereu la connexió

while (WiFi.status ()! = WL_CONNECTED) {demora (500); Serial.print ("."); } Serial.println (""); Serial.print ("Connectat a"); Serial.println (ssid);

// Obteniu l'adreça IP d'ESP8266

Serial.print ("adreça IP:"); Serial.println (WiFi.localIP ());

// Inicieu el servidor

server.on ("/", handleroot); server.begin (); Serial.println ("S'ha iniciat el servidor HTTP"); }

bucle buit ()

{server.handleClient (); }

Pas 4: Funcionament del codi

Funcionament del codi
Funcionament del codi

Ara, descarregueu (o git pull) el codi i obriu-lo a l'IDE Arduino.

Compileu i pengeu el codi i consulteu la sortida a Serial Monitor.

Nota: Abans de carregar-lo, assegureu-vos d'introduir la vostra xarxa SSID i la vostra contrasenya al codi.

Copieu l'adreça IP de l'ESP8266 des del monitor serial i enganxeu-la al navegador web. Veureu una pàgina web amb eixos de rotació, acceleració i lectura del camp magnètic als 3 eixos.

La sortida del sensor a Serial Monitor i al servidor web es mostra a la imatge superior.

Pas 5: Aplicacions i funcions

El LSM9DS0 és un sistema que inclou un sensor d’acceleració lineal digital 3D, un sensor de velocitat angular digital 3D i un sensor magnètic digital 3D. Mesurant aquestes tres propietats, podeu obtenir un gran coneixement sobre el moviment d’un objecte. Mesurant la força i la direcció del camp magnètic terrestre amb un magnetòmetre, podeu aproximar la vostra partida. Un acceleròmetre del telèfon pot mesurar la direcció de la força de gravetat i estimar l’orientació (retrat, paisatge, pla, etc.). Els quadcòpters amb giroscopis incorporats poden tenir en compte que hi hagi rotllos o llançaments sobtats. Ho podem fer servir al sistema de posicionament global (GPS).

Algunes aplicacions més inclouen navegació interior, interfícies d’usuari intel·ligents, reconeixement avançat de gestos, dispositius d’entrada de realitat virtual i de jocs, etc.

Amb l’ajuda de l’ESP8266, podem augmentar la seva capacitat a una longitud més gran. Podem controlar els nostres electrodomèstics i controlar-ne el rendiment des dels nostres escriptoris i dispositius mòbils. Podem emmagatzemar i gestionar les dades en línia i estudiar-les en qualsevol moment per a modificacions. Més aplicacions inclouen domòtica, xarxa de malla, control industrial sense fils, monitors per a nadons, xarxes de sensors, electrònica portable, dispositius amb connexió Wi-Fi, balises del sistema de posició Wi-Fi.

Pas 6: recursos per anar més enllà

Per obtenir més informació sobre LSM9DS0 i ESP8266, consulteu els enllaços següents:

  • Full de dades del sensor LSM9DS0
  • Esquema de cablejat LSM9DS0
  • ESP8266 Full de dades

Recomanat: