INHOUDSOPGAWE:
- Stap 1: Toerusting wat ons benodig..
- Stap 2: Hardewareverbindings
- Stap 3: Kodeer
- Stap 4: Werk van kode
- Stap 5: Toepassings en funksies
- Stap 6: Hulpbronne om verder te gaan
Video: Kaartoriëntasie via die webbediener: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Internet of Things, (IoT) is tans een van die gewilde onderwerpe op die planeet. En met die internet groei dit vinnig van dag tot dag. Die Internet of Things verander eenvoudige huise in slim huise, waar alles van u ligte tot u slotte vanaf u slimfoon of lessenaar beheer kan word. Dit is die luukse wat almal wil besit.
Ons speel altyd met die gereedskap wat ons het, en ons hou aan om na die volgende stap van ons perke te gaan. Ons probeer ons kliënte 'n visie gee van die nuutste tegnologie en idees. Sodat u u huis in slim huise kan verander en sonder veel moeite die luukse smaak kan geniet.
Vandag dink ons daaraan om te werk aan een van die belangrikste onderwerpe in IoT - Digitale kaartoriëntasie.
Ons bou 'n webbediener waardeur ons die bewegings van enige toestel of ding kan monitor (dit is aan u, wie u wil bespied;)). U kan altyd daaraan dink om hierdie projek met 'n paar wysigings na die volgende vlak op te gradeer, en vergeet ons nie om dit in die kommentaar hieronder te vertel nie.
Kom ons begin as.. !!
Stap 1: Toerusting wat ons benodig..
1. LSM9DS0 Sensor
Die 3-in-1-sensor vervaardig deur STMicroelectronics, die LSM9DS0, is 'n stelsel-in-pakket met 'n 3D digitale lineêre versnellingssensor, 'n 3D digitale hoekfreksensor en 'n 3D digitale magnetiese sensor. Die LSM9DS0 het 'n lineêre versnelling volskaal van ± 2g/± 4g/± 6g/± 8g/± 16g, 'n magnetiese veld volskaal van ± 2/± 4/± 8/± 12 gauss en 'n hoeksnelheid van ± 245 /± 500/± 2000 dps.
2. Adafruit Huzzah ESP8266
Die ESP8266-verwerker van Espressif is 'n 80 MHz mikrobeheerder met 'n volledige WiFi-voorkant (beide as kliënt en toegangspunt) en ook TCP/IP-stapel met DNS-ondersteuning. Die ESP8266 is 'n ongelooflike platform vir die ontwikkeling van IoT -toepassings. Die ESP8266 bied 'n volwasse platform vir die monitering en beheer van toepassings met behulp van die Arduino Wire Language en die Arduino IDE.
3. ESP8266 USB programmeerder
sy ESP8266 -gasheeradapter is spesifiek ontwerp deur die Dcube Store vir die Adafruit Huzzah -weergawe van die ESP8266, wat die I²C -koppelvlak moontlik maak.
4. I2C -aansluitkabel
5. Mini USB -kabel
Die mini -USB -kragtoevoer is 'n ideale keuse vir die voeding van die Adafruit Huzzah ESP8266.
Stap 2: Hardewareverbindings
Oor die algemeen is die maak van verbindings die maklikste deel van hierdie projek. Volg die instruksies en beelde, en u behoort geen probleme te hê nie.
Neem eerstens die Adafruit Huzzah ESP8266 en plaas die USB -programmeerder (met inwaarts gerigte I²C -poort) daarop. Druk die USB -programmeerder saggies, en ons is klaar met hierdie stap so maklik soos 'n taart (sien die prent hierbo).
Aansluiting van die sensor en Adafruit Huzzah ESP8266 Neem die sensor en verbind die I²C -kabel daarmee. Vir 'n behoorlike werking van hierdie kabel, moet u onthou dat I²C Output ALTYD aansluit by die I²C Input. Dieselfde moes gevolg word vir die Adafruit Huzzah ESP8266 met die USB -programmeerder daaroor gemonteer (sien die prent hierbo).
Met die hulp van ESP8266 USB Programmer is dit baie maklik om ESP te programmeer. Al wat u hoef te doen is om die sensor in 'n USB -programmeerder aan te sluit, en u is gereed. Ons verkies om hierdie adapter te gebruik, want dit maak dit baie makliker om die hardeware aan te sluit. U hoef nie bekommerd te wees oor die soldeer van die ESP -penne aan die sensor of om die pen -diagramme en datablad te lees nie. Ons kan verskeie sensors gelyktydig gebruik en werk; u hoef net 'n ketting te maak. Sonder hierdie plug -and -play USB -programmeerder is daar 'n groot risiko om 'n verkeerde verbinding te maak. 'N Slegte bedrading kan jou wifi sowel as jou sensor doodmaak.
Opmerking: die bruin draad moet altyd die grondverbinding (GND) volg tussen die uitset van een toestel en die ingang van 'n ander toestel.
Die krag van die stroombaan
Steek die Mini USB -kabel in die kragaansluiting van Adafruit Huzzah ESP8266. Verlig dit en voila, ons is gereed om te gaan!
Stap 3: Kodeer
Die ESP -kode vir die Adafruit Huzzah ESP8266- en LSM9DS0 -sensor is beskikbaar op ons github -bewaarplek.
Voordat u na die kode gaan, moet u die instruksies in die Readme -lêer lees en u Adafruit Huzzah ESP8266 daarvolgens opstel. Dit sal slegs 5 minute neem om die ESP op te stel.
Die kode is lank, maar dit is in die eenvoudigste vorm wat u kan voorstel, en u sal dit nie moeilik vind om dit te verstaan nie.
Vir u gemak kan u die werkende ESP -kode vir hierdie sensor ook hier kopieer:
// Versprei met 'n vrywillige lisensie. // Gebruik dit op enige manier wat u wil, wins of gratis, mits dit in die lisensies van die gepaardgaande werke pas. // LSM9DSO // Hierdie kode is ontwerp om te werk met die TCS3414_I2CS I2C Mini Module beskikbaar by dcubestore.com.
#insluit
#insluit
#insluit
#insluit
// LSM9DSO Gyro I2C adres is 6A (106)
#define Addr_Gyro 0x6A // LSM9DSO Accl I2C adres is 1E (30) #define Addr_Accl 0x1E
const char* ssid = "jou ssid";
const char* password = "jou wagwoord"; int xGyro, yGyro, zGyro, xAccl, yAccl, zAccl, xMag, yMag, zMag;
ESP8266WebServer -bediener (80);
leë hanteerdervoet ()
{ongetekende int data [6];
// Begin I2C -oordrag
Wire.beginTransmission (Addr_Gyro); // Kies kontroleregister 1 Wire.write (0x20); // Datatempo = 95Hz, X, Y, Z-as ingeskakel, skakel Wire.write aan (0x0F); // Stop I2C Transmission Wire.endTransmission ();
// Begin I2C -oordrag
Wire.beginTransmission (Addr_Gyro); // Kies kontroleregister 4 Wire.write (0x23); // Volskaalse 2000 dps, deurlopende opdatering van Wire.write (0x30); // Stop I2C Transmission Wire.endTransmission ();
// Begin I2C -oordrag
Wire.beginTransmission (Addr_Accl); // Kies kontroleregister 1 Wire.write (0x20); // Versnellingsdatatempo = 100Hz, X, Y, Z-as aangeskakel, skakel Wire.write aan (0x67); // Stop I2C -oordrag op die toestel Wire.endTransmission ();
// Begin I2C -oordrag
Wire.beginTransmission (Addr_Accl); // Kies kontroleregister 2 Wire.write (0x21); // Volskaalse keuse +/- 16g Wire.write (0x20); // Stop I2C Transmission Wire.endTransmission ();
// Begin I2C -oordrag
Wire.beginTransmission (Addr_Accl); // Kies kontroleregister 5 Wire.write (0x24); // Magnetiese hoë resolusie, uitsetdatatempo = 50Hz Wire.write (0x70); // Stop I2C Transmission Wire.endTransmission ();
// Begin I2C -oordrag
Wire.beginTransmission (Addr_Accl); // Kies kontroleregister 6 Wire.write (0x25); // Magnetiese volgrootte +/- 12 gauss Wire.write (0x60); // Stop I2C Transmission Wire.endTransmission ();
// Begin I2C -oordrag
Wire.beginTransmission (Addr_Accl); // Kies kontroleregister 7 Wire.write (0x26); // Normale modus, magnetiese deurlopende omskakelingsmodus Wire.write (0x00); // Stop I2C Transmission Wire.endTransmission (); vertraging (300);
for (int i = 0; i <6; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr_Gyro); // Kies dataregister Wire.write ((40 + i)); // Stop I2C Transmission Wire.endTransmission ();
// Versoek 1 greep data
Wire.requestFrom (Addr_Gyro, 1);
// Lees 6 grepe data
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb if (Wire.available () == 1) {data = Wire.read (); }}
// Skakel die data om
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); // Kies dataregister Wire.write ((40 + i)); // Stop I2C Transmission Wire.endTransmission ();
// Versoek 1 greep data
Wire.requestFrom (Addr_Accl, 1);
// Lees 6 grepe data
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb // zAccl lsb, zAccl msb if (Wire.available () == 1) {data = Wire.read (); }}
// Skakel die data om
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); // Kies dataregister Wire.write ((8 + i)); // Stop I2C Transmission Wire.endTransmission ();
// Versoek 1 greep data
Wire.requestFrom (Addr_Accl, 1);
// Lees 6 grepe data
// xMag lsb, xMag msb, yMag lsb, yMag msb // zMag lsb, zMag msb if (Wire.available () == 1) {data = Wire.read (); }}
// Skakel die data om
int xMag = ((data [1] * 256) + data [0]); int yMag = ((data [3] * 256) + data [2]); int zMag = ((data [5] * 256) + data [4]);
// Uitset data na die seriële monitor
Serial.print ("X-rotasie-as:"); Serial.println (xGyro); Serial.print ("Y-rotasie-as:"); Serial.println (yGyro); Serial.print ("Z-rotasie-as:"); Serial.println (zGyro); Serial.print ("Versnelling in X-as:"); Serial.println (xAccl); Serial.print ("Versnelling in Y-as:"); Serial.println (yAccl); Serial.print ("Versnelling in Z-as:"); Serial.println (zAccl); Serial.print ("Magnetiese veld in X-as:"); Serial.println (xMag); Serial.print ("Magnetiese veld in Y-as:"); Serial.println (yMag); Serial.print ("Magneties ingedien in Z-as:"); Serial.println (zMag);
// Uitset data na die webbediener
server.sendContent ("
DCUBE WINKEL
www.dcubestore.com
"" LSM9DS0 Sensor I2C Mini Module
);
server.sendContent ("
X-rotasie-as = " + String (xGyro)); server.sendContent ("
Y-rotasie-as = " + String (yGyro)); server.sendContent ("
Z-rotasie-as = " + String (zGyro)); server.sendContent ("
Versnelling in X-as = " + String (xAccl)); server.sendContent ("
Versnelling in Y-as = " + String (yAccl)); server.sendContent ("
Versnelling in Z-as = " + String (zAccl)); server.sendContent ("
Magneties geliasseer in X-as = " + String (xMag)); server.sendContent ("
Magneties geliasseer in Y-as = " + String (yMag)); server.sendContent ("
Magneties geliasseer in Z-as = " + string (zMag)); vertraging (1000);}
leemte opstelling ()
{// Initialiseer I2C -kommunikasie as MASTER Wire.begin (2, 14); // Initialiseer seriële kommunikasie, stel baud rate = 115200 Serial.begin (115200);
// Koppel aan WiFi -netwerk
WiFi.begin (ssid, wagwoord);
// Wag vir verbinding
terwyl (WiFi.status ()! = WL_CONNECTED) {vertraging (500); Serial.print ("."); } Serial.println (""); Serial.print ("gekoppel aan"); Serial.println (ssid);
// Kry die IP -adres van ESP8266
Serial.print ("IP -adres:"); Serial.println (WiFi.localIP ());
// Begin die bediener
server.on ("/", handleroot); bediener.begin (); Serial.println ("HTTP -bediener begin"); }
leemte lus ()
{server.handleClient (); }
Stap 4: Werk van kode
Laai nou die kode af (of trek uit) en maak dit oop in die Arduino IDE.
Stel die kode op en laai dit op en sien die uitset op Serial Monitor.
Let wel: Maak seker dat u u SSID -netwerk en wagwoord in die kode invoer voordat u dit oplaai.
Kopieer die IP -adres van ESP8266 van die Serial Monitor en plak dit in u webblaaier. U sal 'n webblad met rotasie-as, versnelling en magnetiese veldlesing in die 3-as sien.
Die uitset van die sensor op Serial Monitor en Web Server word op die foto hierbo getoon.
Stap 5: Toepassings en funksies
Die LSM9DS0 is 'n stelsel-in-pakket met 'n 3D digitale lineêre versnellingssensor, 'n 3D digitale hoekfrekvensor en 'n 3D digitale magnetiese sensor. Deur hierdie drie eienskappe te meet, kan u baie kennis opdoen oor die beweging van 'n voorwerp. Deur die krag en rigting van die aarde se magnetiese veld met 'n magnetometer te meet, kan u u koers benader. 'N Versnellingsmeter in u telefoon kan die rigting van die gravitasiekrag meet en die oriëntasie skat (portret, landskap, plat, ens.). Quadcopters met ingeboude gyroskope kan op die uitkyk wees vir skielike rolle of toonhoogtes. Ons kan dit in die Global Positioning System (GPS) gebruik.
Nog 'n paar toepassings sluit in binnenshuise navigasie, slim gebruikerskoppelvlakke, gevorderde gebaarherkenning, gaming- en virtuele realiteit -invoertoestelle, ens.
Met behulp van ESP8266 kan ons die kapasiteit tot 'n groter lengte vergroot. Ons kan ons toestelle beheer en die prestasie van ons rekenaars en mobiele toestelle monitor. Ons kan die data aanlyn stoor en bestuur en dit altyd bestudeer vir wysigings. Meer toepassings sluit in tuisautomatisering, netwerknetwerk, industriële draadlose beheer, babamonitors, sensornetwerke, drabare elektronika, toestelle wat Wi-Fi-ligging bewus is, bakens vir Wi-Fi-posisiesisteem.
Stap 6: Hulpbronne om verder te gaan
Vir meer inligting oor LSM9DS0 en ESP8266, kyk na die onderstaande skakels:
- LSM9DS0 Sensorgegevensblad
- Bedradingsdiagram LSM9DS0
- ESP8266 Gegevensblad
Aanbeveel:
Konfigurasie van die AVR -mikrobeheerder. Skep en laai die LED -knipperprogram in die flitsgeheue van die mikrokontroleerder op: 5 stappe
Konfigurasie van die AVR -mikrobeheerder. Skep en laai die LED -knipperprogram in die flitsgeheue van die mikrokontroleerder: In hierdie geval sal ons 'n eenvoudige program in C -kode skep en dit in die geheue van die mikrokontroleerder verbrand. Ons sal ons eie program skryf en die hex -lêer saamstel, met behulp van die Atmel Studio as die geïntegreerde ontwikkelingsplatform. Ons sal die sekering van twee instel
Hoe om die veiligheid van die meeste blokkeerders aan die kant van die bediener te omseil: 3 stappe
Hoe om die veiligheid van die meeste webblokkers op die bediener te verlig: dit is my eerste instruksie, so hou my in gedagte: Ok, ek sal u vertel hoe u die webblokkers wat ek in skole gebruik het, kan omseil. Al wat u nodig het, is 'n flash drive en 'n paar sagteware aflaai
Hoe om probleme op te los met die afstandsbediening van die Pionner -stuurwiel - Verhoog die IR -sein en herstel die klein slot: 14 stappe
Hoe om probleme op te los met die afstandsbediening van die stuurwiel van Pionner - Verhoog die IR -sein en herstel die klein slot.: Hierdie afstandsbediening is baie mooi en gerieflik, maar soms werk dit nie behoorlik nie. projek is nie 'n voorbeeld van doeltreffendheid nie. Ek kom uit Brasilië en het hierdie wenk op Amaz gekry
Die installering van 'n nuwe virtuele gasheer in die Apache -webbediener: 3 stappe
Die installering van 'n nuwe virtuele gasheer in die Apache -webbediener: Die doel van hierdie tutoriaal is om deur die proses van konfigurasie en aanvang van 'n nuwe virtuele gasheer van die Apache -webbediener te gaan. 'N Virtuele gasheer is 'n " profiel " wat opspoor watter DNS -gasheer (bv. www.MyOtherhostname.com) gevra word vir 'n
Instruksies vir die voltooiing van die opmaak van die baanskyfontwerp vir die opheffing/verlaging van die middelste voetsteun op motorwielstoele: 9 stappe (met foto's)
Instruksies vir die voltooiing van die opmaak van die baanskyfontwerp vir die opheffing/verlaging van die middelste voetsteun op motorwielstoele: die middelste voetsteunhysers moet goed onder die sitplek geberg word en laer om te ontplooi. 'N Meganisme vir die onafhanklike werking van die opberging en ontplooiing van voetsteun is nie ingesluit by rolstoele op die mark nie, en PWC -gebruikers het die behoefte uitgespreek