Indholdsfortegnelse:

Kortretning via webserver: 6 trin
Kortretning via webserver: 6 trin

Video: Kortretning via webserver: 6 trin

Video: Kortretning via webserver: 6 trin
Video: Подробный обзор Coros Apex 2 pro 2024, November
Anonim
Kortretning via webserver
Kortretning via webserver

Internet of Things, (IoT) er et af de populære emner på planeten lige nu. Og det vokser hurtigt dag for dag med Internettet. Tingenes internet ændrer simple hjem til smarte hjem, hvor alt fra dine lys til dine låse kan styres fra din smartphone eller skrivebord. Dette er den luksus, alle ønsker at eje.

Vi leger altid med de værktøjer, vi har, og fortsætter med at gå til det næste trin i vores grænser. Vi forsøger at give vores kunde en vision om de nyeste teknologier og ideer. Så du kan gøre dit hjem til smarte hjem og nyde smagen af luksus uden store anstrengelser.

I dag tænker vi på at arbejde med et af de vigtigste emner i IoT - Digital kortorientering.

Vi opbygger en webserver, hvorigennem vi kan overvåge bevægelser på enhver enhed eller ting (Det er op til dig, hvem du vil spionere;)). Du kan altid tænke på at opgradere dette projekt til det næste niveau med nogle ændringer og glem ikke at fortælle os det i kommentarerne herunder.

Lad os starte end.. !!

Trin 1: Udstyr, vi har brug for..

Udstyr vi har brug for.. !!
Udstyr vi har brug for.. !!
Udstyr vi har brug for.. !!
Udstyr vi har brug for.. !!
Udstyr vi har brug for.. !!
Udstyr vi har brug for.. !!
Udstyr vi har brug for.. !!
Udstyr vi har brug for.. !!

1. LSM9DS0 Sensor

3-i-1 sensoren fremstillet af STMicroelectronics, LSM9DS0 er en system-i-pakke med en 3D digital lineær accelerationssensor, en 3D digital vinkelhastighedssensor og en 3D digital magnetisk sensor. LSM9DS0 har en lineær acceleration i fuld skala på ± 2g/± 4g/± 6g/± 8g/± 16g, et magnetfelt i fuld skala på ± 2/± 4/± 8/± 12 gauss og en vinkelhastighed på ± 245 /± 500/± 2000 dps.

2. Adafruit Huzzah ESP8266

ESP8266-processoren fra Espressif er en 80 MHz mikrokontroller med en fuld WiFi-front-end (både som klient og adgangspunkt) og TCP/IP-stak med DNS-understøttelse også. ESP8266 er en utrolig platform til udvikling af IoT -applikationer. ESP8266 giver en moden platform til overvågning og kontrol af applikationer ved hjælp af Arduino Wire Language og Arduino IDE.

3. ESP8266 USB -programmerer

hans ESP8266 -værtsadapter blev designet specielt af Dcube Storefor Adafruit Huzzah -versionen af ESP8266, hvilket muliggjorde I²C -grænsefladen.

4. I2C -tilslutningskabel

5. Mini USB -kabel

Mini USB -kablet Strømforsyning er et ideelt valg til strømforsyning til Adafruit Huzzah ESP8266.

Trin 2: Hardwareforbindelser

Hardwareforbindelser
Hardwareforbindelser
Hardwareforbindelser
Hardwareforbindelser
Hardwareforbindelser
Hardwareforbindelser

Generelt er forbindelser den letteste del i dette projekt. Følg instruktionerne og billederne, og du bør ikke have problemer.

Først og fremmest skal du tage Adafruit Huzzah ESP8266 og placere USB -programmereren (med indadvendt I²C -port) på den. Tryk forsigtigt på USB -programmereren, og vi er færdige med dette trin så let som en tærte (se billedet ovenfor).

Tilslutning af sensoren og Adafruit Huzzah ESP8266 Tag sensoren, og tilslut I²C -kablet med den. For korrekt funktion af dette kabel, skal du huske, at I²C Output ALTID er forbundet til I²C Input. Det samme skulle følges for Adafruit Huzzah ESP8266 med USB -programmereren monteret over den (Se billedet ovenfor).

Ved hjælp af ESP8266 USB Programmerer er det meget let at programmere ESP. Alt du skal gøre er at tilslutte sensoren til USB Programmer, og du er klar til at gå. Vi foretrækker at bruge denne adapter, fordi det gør det meget lettere at tilslutte hardwaren. Du skal ikke bekymre dig om at lodde stifterne på ESP til sensoren eller læse stiftdiagrammerne og databladet. Vi kan bruge og arbejde på flere sensorer samtidigt, du skal bare lave en kæde. Uden disse plug and play USB Programmer er der stor risiko for at lave en forkert forbindelse. En dårlig ledning kan dræbe din wifi såvel som din sensor.

Bemærk: Den brune ledning skal altid følge jordforbindelsen (GND) mellem output fra en enhed og input fra en anden enhed.

Strømforsyning af kredsløbet

Sæt Mini USB -kablet i strømstikket på Adafruit Huzzah ESP8266. Tænd det og voila, vi er godt i gang!

Trin 3: Kode

Kode
Kode

ESP -koden til Adafruit Huzzah ESP8266 og LSM9DS0 Sensor er tilgængelig på vores github -lager.

Inden du går videre til koden, skal du læse instruktionerne i Readme -filen og konfigurere din Adafruit Huzzah ESP8266 i henhold til den. Det tager kun 5 minutter at oprette ESP.

Koden er lang, men den er i den enkleste form, du kan forestille dig, og du vil ikke have svært ved at forstå den.

For nemheds skyld kan du også kopiere den fungerende ESP -kode til denne sensor herfra:

// Distribueret med en fri vilje-licens. // Brug den, som du vil, profit eller gratis, forudsat at den passer ind i licenserne til de tilhørende værker. // LSM9DSO // Denne kode er designet til at fungere med TCS3414_I2CS I2C Mini Module tilgængeligt fra dcubestore.com.

#omfatte

#omfatte

#omfatte

#omfatte

// LSM9DSO Gyro I2C -adressen er 6A (106)

#define Addr_Gyro 0x6A // LSM9DSO Accl I2C -adressen er 1E (30) #define Addr_Accl 0x1E

const char* ssid = "din ssid";

const char* password = "dit kodeord"; int xGyro, yGyro, zGyro, xAccl, yAccl, zAccl, xMag, yMag, zMag;

ESP8266WebServer -server (80);

void handleroot ()

{usignerede int -data [6];

// Start I2C -transmission

Wire.beginTransmission (Addr_Gyro); // Vælg kontrolregister 1 Wire.write (0x20); // Datahastighed = 95Hz, X, Y, Z-akse aktiveret, tænd for Wire.write (0x0F); // Stop I2C Transmission Wire.endTransmission ();

// Start I2C -transmission

Wire.beginTransmission (Addr_Gyro); // Vælg kontrolregister 4 Wire.write (0x23); // Fuldskala 2000 dps, kontinuerlig opdatering Wire.write (0x30); // Stop I2C Transmission Wire.endTransmission ();

// Start I2C -transmission

Wire.beginTransmission (Addr_Accl); // Vælg kontrolregister 1 Wire.write (0x20); // Accelerationsdatahastighed = 100Hz, X, Y, Z-akse aktiveret, tænd for Wire.write (0x67); // Stop I2C -transmission på enheden Wire.endTransmission ();

// Start I2C -transmission

Wire.beginTransmission (Addr_Accl); // Vælg kontrolregister 2 Wire.write (0x21); // Valg i fuld skala +/- 16g Wire.write (0x20); // Stop I2C Transmission Wire.endTransmission ();

// Start I2C -transmission

Wire.beginTransmission (Addr_Accl); // Vælg kontrolregister 5 Wire.write (0x24); // Magnetisk høj opløsning, output datahastighed = 50Hz Wire.write (0x70); // Stop I2C Transmission Wire.endTransmission ();

// Start I2C -transmission

Wire.beginTransmission (Addr_Accl); // Vælg kontrolregister 6 Wire.write (0x25); // Magnetisk fuldskala +/- 12 gauss Wire.write (0x60); // Stop I2C Transmission Wire.endTransmission ();

// Start I2C -transmission

Wire.beginTransmission (Addr_Accl); // Vælg kontrolregister 7 Wire.write (0x26); // Normal tilstand, magnetisk kontinuerlig konverteringstilstand Wire.write (0x00); // Stop I2C Transmission Wire.endTransmission (); forsinkelse (300);

for (int i = 0; i <6; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr_Gyro); // Vælg dataregister Wire.write ((40 + i)); // Stop I2C Transmission Wire.endTransmission ();

// Anmod om 1 byte data

Wire.requestFrom (Addr_Gyro, 1);

// Læs 6 bytes data

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

// Konverter dataene

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

for (int i = 0; i <6; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr_Accl); // Vælg dataregister Wire.write ((40 + i)); // Stop I2C Transmission Wire.endTransmission ();

// Anmod om 1 byte data

Wire.requestFrom (Addr_Accl, 1);

// Læs 6 bytes data

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

// Konverter dataene

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

for (int i = 0; i <6; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr_Accl); // Vælg dataregister Wire.write ((8 + i)); // Stop I2C Transmission Wire.endTransmission ();

// Anmod om 1 byte data

Wire.requestFrom (Addr_Accl, 1);

// Læs 6 bytes data

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

// Konverter dataene

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

// Output data til seriel skærm

Serial.print ("X-rotationsakse:"); Serial.println (xGyro); Serial.print ("Y-rotationsakse:"); Serial.println (yGyro); Serial.print ("Z-rotationsakse:"); Serial.println (zGyro); Serial.print ("Acceleration i X-akse:"); Serial.println (xAccl); Serial.print ("Acceleration i Y-akse:"); Serial.println (yAccl); Serial.print ("Acceleration i Z-akse:"); Serial.println (zAccl); Serial.print ("Magnetisk felt i X-akse:"); Serial.println (xMag); Serial.print ("Magnetisk felt i Y-akse:"); Serial.println (yMag); Serial.print ("Magnetisk arkiveret i Z-akse:"); Serial.println (zMag);

// Output data til webserver

server.sendContent ("

DCUBE BUTIK

www.dcubestore.com

"" LSM9DS0 Sensor I2C Mini -modul

);

server.sendContent ("

X-rotationsakse = " + streng (xGyro)); server.sendContent ("

Y-rotationsakse = " + streng (yGyro)); server.sendContent ("

Z-rotationsakse = " + streng (zGyro)); server.sendContent ("

Acceleration i X-Axis = " + String (xAccl)); server.sendContent ("

Acceleration i Y-akse = " + streng (yAccl)); server.sendContent ("

Acceleration i Z-akse = " + streng (zAccl)); server.sendContent ("

Magnetisk arkiveret i X-Axis = " + String (xMag)); server.sendContent ("

Magnetisk arkiveret i Y-Axis = " + String (yMag)); server.sendContent ("

Magnetisk arkiveret i Z-akse = " + streng (zMag)); forsinkelse (1000);}

ugyldig opsætning ()

{// Initialiser I2C -kommunikation som MASTER Wire.begin (2, 14); // Initialiser seriel kommunikation, indstil baudhastighed = 115200 Serial.begin (115200);

// Opret forbindelse til WiFi -netværk

WiFi.begin (ssid, adgangskode);

// Vent på forbindelsen

mens (WiFi.status ()! = WL_CONNECTED) {forsinkelse (500); Serial.print ("."); } Serial.println (""); Serial.print ("Tilsluttet"); Serial.println (ssid);

// Få IP -adressen på ESP8266

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

// Start serveren

server.on ("/", handleroot); server.begin (); Serial.println ("HTTP -server startet"); }

hulrum ()

{server.handleClient (); }

Trin 4: Kodebehandling

Kodeks arbejde
Kodeks arbejde

Download nu (eller git pull) koden og åbn den i Arduino IDE.

Kompilér og upload koden, og se output på Serial Monitor.

Bemærk: Før du uploader, skal du sørge for at indtaste dit SSID -netværk og din adgangskode i koden.

Kopier IP -adressen på ESP8266 fra Serial Monitor og indsæt den i din webbrowser. Du vil se en webside med rotationsakse, acceleration og magnetfeltaflæsning i 3-aksen.

Sensorens output på Serial Monitor og Web Server er vist på billedet ovenfor.

Trin 5: Applikationer og funktioner

LSM9DS0 er et system-i-pakke med en 3D digital lineær accelerationssensor, en 3D digital vinkelhastighedssensor og en 3D digital magnetisk sensor. Ved at måle disse tre egenskaber kan du få stor viden om et objekts bevægelse. Når du måler kraften og retningen af Jordens magnetfelt med et magnetometer, kan du tilnærme din kurs. Et accelerometer i din telefon kan måle tyngdekraftens retning og estimere retning (portræt, landskab, flad osv.). Quadcoptere med indbyggede gyroskoper kan passe på pludselige ruller eller baner. Vi kan bruge dette i Global Positioning System (GPS).

Nogle flere applikationer omfatter indendørs navigation, smarte brugergrænseflader, avanceret gestusgenkendelse, gaming- og virtual reality -inputenheder osv.

Ved hjælp af ESP8266 kan vi øge kapaciteten til en større længde. Vi kan styre vores apparater og overvåge deres ydeevne fra vores desktops og mobile enheder. Vi kan gemme og administrere dataene online og studere dem når som helst for ændringer. Flere applikationer omfatter hjemmeautomatisering, mesh-netværk, trådløs industriel kontrol, babymonitorer, sensornetværk, bærbar elektronik, Wi-Fi placeringsbevidste enheder, Wi-Fi Position System Beacons.

Trin 6: Ressourcer til at gå videre

For mere information om LSM9DS0 og ESP8266, tjek nedenstående links:

  • LSM9DS0 Sensor Datablad
  • LSM9DS0 Koblingsdiagram
  • ESP8266 Datablad

Anbefalede: