Satura rādītājs:

Kartes orientācija, izmantojot tīmekļa serveri: 6 soļi
Kartes orientācija, izmantojot tīmekļa serveri: 6 soļi

Video: Kartes orientācija, izmantojot tīmekļa serveri: 6 soļi

Video: Kartes orientācija, izmantojot tīmekļa serveri: 6 soļi
Video: Tech Treasures: How to Score Big with Used Servers! 2024, Novembris
Anonim
Kartes orientācija, izmantojot tīmekļa serveri
Kartes orientācija, izmantojot tīmekļa serveri

Lietu internets (IoT) šobrīd ir viena no populārākajām tēmām uz planētas. Un ar internetu tas strauji pieaug katru dienu. Lietu internets vienkāršas mājas pārvērš par gudrām mājām, kur visu, sākot no gaismām un beidzot ar slēdzenēm, var vadīt no viedtālruņa vai darbvirsmas. Šī ir greznība, ko vēlas iegūt ikviens.

Mēs vienmēr spēlējamies ar iegūtajiem rīkiem un turpinām strādāt, lai pārietu uz nākamo robežu soli. Mēs cenšamies sniegt klientam redzējumu par jaunākajām tehnoloģijām un idejām. Tātad, lai jūs bez īpašām pūlēm varētu pārvērst savas mājas par gudrām mājām un izbaudīt greznības garšu.

Šodien mēs domājam par darbu pie vienas no vissvarīgākajām IoT tēmām - digitālās kartes orientācijas.

Mēs izveidosim tīmekļa serveri, caur kuru mēs varēsim uzraudzīt jebkuras ierīces vai lietas kustības (tas ir atkarīgs no jums, kuru jūs izspiegojat;)). Jūs vienmēr varat domāt par šī projekta paaugstināšanu nākamajā līmenī ar dažām izmaiņām un neaizmirstiet mums pastāstīt tālāk sniegtajos komentāros.

Sāksim nekā.. !!

1. solis: aprīkojums, kas mums vajadzīgs..

Nepieciešamais aprīkojums.. !!
Nepieciešamais aprīkojums.. !!
Nepieciešamais aprīkojums.. !!
Nepieciešamais aprīkojums.. !!
Nepieciešamais aprīkojums.. !!
Nepieciešamais aprīkojums.. !!
Nepieciešamais aprīkojums.. !!
Nepieciešamais aprīkojums.. !!

1. LSM9DS0 sensors

Trīs vienā sensors, ko ražo STMicroelectronics, LSM9DS0 ir sistēma komplektā ar 3D digitālo lineārā paātrinājuma sensoru, 3D digitālo leņķa ātruma sensoru un 3D digitālo magnētisko sensoru. LSM9DS0 lineārā paātrinājuma pilna skala ir ± 2 g/± 4 g/± 6 g/± 8 g/± 16 g, magnētiskā lauka pilna skala ir ± 2/± 4/± 8/± 12 gauss un leņķiskais ātrums ir ± 245 /± 500/± 2000 dps.

2. Adafruit Huzzah ESP8266

Espressif ESP8266 procesors ir 80 MHz mikrokontrolleris ar pilnu WiFi priekšpusi (gan kā klientu, gan piekļuves punktu) un TCP/IP steku ar DNS atbalstu. ESP8266 ir neticama platforma IoT lietojumprogrammu izstrādei. ESP8266 nodrošina nobriedušu platformu lietojumprogrammu uzraudzībai un kontrolei, izmantojot Arduino Wire Language un Arduino IDE.

3. ESP8266 USB programmētājs

viņa ESP8266 resursdatora adapteri speciāli izstrādāja Dcube veikals ESP8266 Adafruit Huzzah versijai, nodrošinot I²C saskarni.

4. I2C savienojuma kabelis

5. Mini USB kabelis

Mini USB kabelis Barošanas avots ir ideāla izvēle Adafruit Huzzah ESP8266 barošanai.

2. darbība. Aparatūras savienojumi

Aparatūras savienojumi
Aparatūras savienojumi
Aparatūras savienojumi
Aparatūras savienojumi
Aparatūras savienojumi
Aparatūras savienojumi

Kopumā savienojuma izveide ir vienkāršākā šī projekta daļa. Izpildiet norādījumus un attēlus, un jums nevajadzētu rasties problēmām.

Vispirms paņemiet Adafruit Huzzah ESP8266 un novietojiet uz tā USB programmētāju (ar I²C portu uz iekšu). Viegli nospiediet USB programmētāju, un mēs esam paveikuši šo darbību tikpat viegli kā pīrāgs (skatiet attēlu iepriekš).

Sensora un Adafruit Huzzah ESP8266 savienojums Paņemiet sensoru un pievienojiet tam I²C kabeli. Lai šis kabelis darbotos pareizi, atcerieties, ka I²C izeja VIENMĒR tiek savienota ar I²C ieeju. Tas pats bija jāievēro attiecībā uz Adafruit Huzzah ESP8266 ar USB programmētāju (skat. Attēlu iepriekš).

Ar ESP8266 USB programmētāja palīdzību ir ļoti viegli programmēt ESP. Viss, kas jums jādara, ir pievienojiet sensoru USB programmētājam, un jums ir labi doties. Mēs dodam priekšroku šim adapterim, jo tas ievērojami atvieglo aparatūras savienošanu. Neuztraucieties par ESP tapu pielodēšanu pie sensora vai pin diagrammu un datu lapas lasīšanu. Mēs varam vienlaikus izmantot un strādāt ar vairākiem sensoriem, jums vienkārši jāizveido ķēde. Bez šiem plug and play USB programmētājiem pastāv liels risks izveidot nepareizu savienojumu. Slikta elektroinstalācija var nogalināt jūsu wifi, kā arī sensoru.

Piezīme. Brūnajam vadam vienmēr jāseko zemējuma (GND) savienojumam starp vienas ierīces izeju un citas ierīces ieeju.

Ķēdes barošana

Pievienojiet mini USB kabeli Adafruit Huzzah ESP8266 strāvas ligzdai. Iededziet to un voila, mums ir labi doties!

3. darbība: kods

Kods
Kods

Adafruit Huzzah ESP8266 un LSM9DS0 sensora ESP kods ir pieejams mūsu github krātuvē.

Pirms turpināt kodu, noteikti izlasiet Readme failā sniegtos norādījumus un atbilstoši tam iestatiet Adafruit Huzzah ESP8266. ESP iestatīšana prasīs tikai 5 minūtes.

Kods ir garš, taču tas ir visvienkāršākajā formā, kādu varat iedomāties, un jums nebūs grūtību to saprast.

Jūsu ērtībai no šejienes varat nokopēt arī šī sensora darba ESP kodu:

// Izplatīts ar brīvās gribas licenci. // LSM9DSO // Šis kods ir paredzēts darbam ar TCS3414_I2CS I2C mini moduli, kas pieejams vietnē dcubestore.com.

#iekļaut

#iekļaut

#iekļaut

#iekļaut

// LSM9DSO Gyro I2C adrese ir 6A (106)

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

const char* ssid = "tavs ssid";

const char* parole = "tava parole"; int xGyro, yGyro, zGyro, xAccl, yAccl, zAccl, xMag, yMag, zMag;

ESP8266WebServer serveris (80);

tukšs rokturis ()

{neparakstīti int dati [6];

// Sākt I2C pārraidi

Wire.beginTransmission (Addr_Gyro); // Atlasiet vadības reģistru 1 Wire.write (0x20); // Datu pārraides ātrums = 95Hz, X, Y, iespējota Z ass, ieslēdziet Wire.write (0x0F); // Stop I2C Transmission Wire.endTransmission ();

// Sākt I2C pārraidi

Wire.beginTransmission (Addr_Gyro); // Atlasiet vadības reģistru 4 Wire.write (0x23); // Pilna mēroga 2000 dps, nepārtraukta atjaunināšana Wire.write (0x30); // Stop I2C Transmission Wire.endTransmission ();

// Sākt I2C pārraidi

Wire.beginTransmission (Addr_Accl); // Atlasiet vadības reģistru 1 Wire.write (0x20); // Paātrinājuma datu pārraides ātrums = 100Hz, X, Y, iespējota Z ass, ieslēdziet Wire.write (0x67); // Apturēt I2C pārraidi ierīcē Wire.endTransmission ();

// Sākt I2C pārraidi

Wire.beginTransmission (Addr_Accl); // Izvēlieties vadības reģistru 2 Wire.write (0x21); // Pilna mēroga izvēle +/- 16g Wire.write (0x20); // Stop I2C Transmission Wire.endTransmission ();

// Sākt I2C pārraidi

Wire.beginTransmission (Addr_Accl); // Atlasiet vadības reģistru 5 Wire.write (0x24); // Magnētiska augsta izšķirtspēja, izejas datu pārraides ātrums = 50Hz Wire.write (0x70); // Stop I2C Transmission Wire.endTransmission ();

// Sākt I2C pārraidi

Wire.beginTransmission (Addr_Accl); // Atlasiet vadības reģistru 6 Wire.write (0x25); // Magnētiska pilna mēroga +/- 12 gauss Wire.write (0x60); // Stop I2C Transmission Wire.endTransmission ();

// Sākt I2C pārraidi

Wire.beginTransmission (Addr_Accl); // Atlasiet vadības reģistru 7 Wire.write (0x26); // Normālais režīms, magnētiskās nepārtrauktās konversijas režīms Wire.write (0x00); // Stop I2C Transmission Wire.endTransmission (); kavēšanās (300);

for (int i = 0; i <6; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr_Gyro); // Atlasiet datu reģistru Wire.write ((40 + i)); // Stop I2C Transmission Wire.endTransmission ();

// Pieprasīt 1 baitu datu

Wire.requestFrom (Addr_Gyro, 1);

// Lasīt 6 baitus datu

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

// Konvertēt datus

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

for (int i = 0; i <6; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr_Accl); // Atlasiet datu reģistru Wire.write ((40 + i)); // Stop I2C Transmission Wire.endTransmission ();

// Pieprasīt 1 baitu datu

Wire.requestFrom (Addr_Accl, 1);

// Lasīt 6 baitus datu

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

// Konvertēt datus

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

for (int i = 0; i <6; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr_Accl); // Atlasiet datu reģistru Wire.write ((8 + i)); // Stop I2C Transmission Wire.endTransmission ();

// Pieprasīt 1 baitu datu

Wire.requestFrom (Addr_Accl, 1);

// Lasīt 6 baitus datu

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

// Konvertēt datus

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

// Izvadiet datus uz seriālo monitoru

Serial.print ("Rotācijas X ass:"); Serial.println (xGyro); Serial.print ("Y rotācijas ass:"); Sērijas.println (yGyro); Serial.print ("Z rotācijas ass:"); Serial.println (zGyro); Serial.print ("Paātrinājums X-asī:"); Serial.println (xAccl); Serial.print ("Paātrinājums Y-asī:"); Serial.println (yAccl); Serial.print ("Paātrinājums Z-asī:"); Serial.println (zAccl); Serial.print ("Magnētiskais lauks X-asī:"); Serial.println (xMag); Serial.print ("Magnētiskais lauks Y-asī:"); Serial.println (yMag); Serial.print ("Magnētiskais iesniegts Z-ass:"); Serial.println (zMag);

// Izvadiet datus uz tīmekļa serveri

server.sendContent ("

DCUBE VEIKALS

www.dcubestore.com

"" LSM9DS0 sensora I2C mini modulis

);

server.sendContent ("

Rotācijas X ass = " + virkne (xGyro)); server.sendContent ("

Rotācijas Y ass = " + virkne (yGyro)); server.sendContent ("

Rotācijas Z ass = " + virkne (zGyro)); server.sendContent ("

Paātrinājums X-asī = " + virkne (xAccl)); server.sendContent ("

Paātrinājums Y-ass = " + virkne (yAccl)); server.sendContent ("

Paātrinājums Z-asī = " + virkne (zAccl)); server.sendContent ("

Magnētiskais fails X-ass = " + virkne (xMag)); server.sendContent ("

Magnētiskais iesniegts Y-ass = " + virkne (yMag)); server.sendContent ("

Magnētiskais iesniegts Z-ass = " + virkne (zMag)); kavēšanās (1000);}

anulēts iestatījums ()

{// Inicializēt I2C komunikāciju kā MASTER Wire.begin (2, 14); // Inicializēt seriālo komunikāciju, iestatīt pārraides ātrumu = 115200 Serial.begin (115200);

// Savienojuma izveide ar WiFi tīklu

WiFi.begin (ssid, parole);

// Pagaidiet savienojumu

while (WiFi.status ()! = WL_CONNECTED) {kavēšanās (500); Sērijas nospiedums ("."); } Serial.println (""); Serial.print ("Savienots ar"); Serial.println (ssid);

// Iegūstiet ESP8266 IP adresi

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

// Sākt serveri

server.on ("/", rokturis); server.begin (); Serial.println ("HTTP serveris ir palaists"); }

tukša cilpa ()

{server.handleClient (); }

4. darbība: koda darbība

Koda darbība
Koda darbība

Tagad lejupielādējiet (vai git pull) kodu un atveriet to Arduino IDE.

Apkopojiet un augšupielādējiet kodu un skatiet seriālā monitora rezultātu.

Piezīme. Pirms augšupielādes noteikti ievadiet kodā savu SSID tīklu un paroli.

Kopējiet ESP8266 IP adresi no sērijas monitora un ielīmējiet to savā tīmekļa pārlūkprogrammā. Jūs redzēsit tīmekļa lapu ar rotācijas asi, paātrinājumu un magnētiskā lauka nolasīšanu 3 asīs.

Sensora izvade seriālajā monitorā un tīmekļa serverī ir parādīta iepriekš redzamajā attēlā.

5. darbība: lietojumprogrammas un līdzekļi

LSM9DS0 ir komplektā iekļauta sistēma ar 3D digitālo lineārā paātrinājuma sensoru, 3D digitālo leņķa ātruma sensoru un 3D digitālo magnētisko sensoru. Izmērot šīs trīs īpašības, jūs varat iegūt daudz zināšanu par objekta kustību. Izmērot Zemes magnētiskā lauka spēku un virzienu ar magnetometru, jūs varat aptuveni noteikt savu virzienu. Akselerometrs tālrunī var izmērīt gravitācijas spēka virzienu un novērtēt orientāciju (portrets, ainava, plakana utt.). Kvadkopteri ar iebūvētiem žiroskopiem var pievērst uzmanību pēkšņiem rullīšiem vai slīpumiem. Mēs to varam izmantot globālajā pozicionēšanas sistēmā (GPS).

Vēl dažas lietojumprogrammas ietver iekštelpu navigāciju, viedās lietotāja saskarnes, uzlaboto žestu atpazīšanu, spēļu un virtuālās realitātes ievades ierīces utt.

Ar ESP8266 palīdzību mēs varam palielināt tā ietilpību līdz lielākam garumam. Mēs varam kontrolēt savas ierīces un uzraudzīt to veiktspēju no galddatoriem un mobilajām ierīcēm. Mēs varam glabāt un pārvaldīt datus tiešsaistē un jebkurā laikā tos izpētīt, lai veiktu izmaiņas. Citas lietojumprogrammas ietver mājas automatizāciju, acu tīklu, rūpniecisko bezvadu vadību, bērnu monitorus, sensoru tīklus, valkājamu elektroniku, Wi-Fi atrašanās vietas zinošas ierīces, Wi-Fi pozicionēšanas sistēmas bākas.

6. darbība. Resursi, lai dotos tālāk

Lai iegūtu papildinformāciju par LSM9DS0 un ESP8266, skatiet tālāk norādītās saites:

  • LSM9DS0 Sensora datu lapa
  • LSM9DS0 elektroinstalācijas shēma
  • ESP8266 datu lapa

Ieteicams: