Talaan ng mga Nilalaman:

Oryentasyon ng Mapa Sa Pamamagitan ng Web Server: 6 Mga Hakbang
Oryentasyon ng Mapa Sa Pamamagitan ng Web Server: 6 Mga Hakbang

Video: Oryentasyon ng Mapa Sa Pamamagitan ng Web Server: 6 Mga Hakbang

Video: Oryentasyon ng Mapa Sa Pamamagitan ng Web Server: 6 Mga Hakbang
Video: PAANO MAKITA LAHAT NG PASSWORDS NG MGA ACCOUNT MO 2024, Nobyembre
Anonim
Oryentasyon ng Mapa Sa Pamamagitan ng Web Server
Oryentasyon ng Mapa Sa Pamamagitan ng Web Server

Ang Internet of Things, (IoT) ay isa sa mga tanyag na paksa sa planeta ngayon. At, mabilis itong lumalaki araw-araw sa Internet. Ang Internet of Things ay binabago ang mga simpleng bahay sa mga matalinong bahay, kung saan ang lahat mula sa iyong mga ilaw hanggang sa iyong mga kandado ay maaaring makontrol mula sa iyong smartphone o desktop. Ito ang karangyaan na nais pagmamay-ari ng lahat.

Palagi kaming naglalaro ng mga tool na nakuha namin at patuloy na nagtatrabaho sa pagpunta sa susunod na hakbang ng aming mga limitasyon. Sinusubukan naming bigyan ang aming customer ng isang pangitain ng pinakabagong mga teknolohiya at ideya. Kaya, na maaari mong gawing matalinong bahay ang iyong bahay at masiyahan sa lasa ng luho nang walang labis na pagsisikap.

Ngayon, naiisip namin na magtrabaho sa isa sa pinakamahalagang paksa sa IoT - Digital Map Orientation.

Bumubuo kami ng isang web server kung saan masusubaybayan namin ang mga paggalaw ng anumang aparato o bagay (Nasa sa iyo, kung kanino mo nais isubaybay;)). Palagi mong maiisip ang tungkol sa pag-upgrade sa proyektong ito sa susunod na antas na may ilang mga pagbabago at huwag kalimutang sabihin sa amin sa mga komento sa ibaba.

Hinahayaan nating magsimula kaysa.. !!

Hakbang 1: Kagamitan na Kailangan Namin.. !

Kagamitan na Kailangan Namin.. !!
Kagamitan na Kailangan Namin.. !!
Kagamitan na Kailangan Namin.. !!
Kagamitan na Kailangan Namin.. !!
Kagamitan na Kailangan Namin.. !!
Kagamitan na Kailangan Namin.. !!
Kagamitan na Kailangan Namin.. !!
Kagamitan na Kailangan Namin.. !!

1. Sensor ng LSM9DS0

Ang 3-in-1 sensor na gawa ng STMicroelectronics, ang LSM9DS0 ay isang system-in-package na nagtatampok ng isang 3D digital linear linear sensor, isang 3D digital angular rate sensor, at isang 3D digital magnetic sensor. Ang LSM9DS0 ay may isang linear acceleration buong sukat na ± 2g / ± 4g / ± 6g / ± 8g / ± 16g, isang magnetic field na buong sukat na ± 2 / ± 4 / ± 8 / ± 12 gauss at isang anggular rate ng ± 245 / ± 500 / ± 2000 dps.

2. Adafruit Huzzah ESP8266

Ang processor ng ESP8266 mula sa Espressif ay isang 80 MHz microcontroller na may isang buong WiFi front-end (kapwa client at access point) at TCP / IP stack na may suporta din ng DNS. Ang ESP8266 ay isang hindi kapani-paniwala platform para sa pag-unlad ng IoT application. Nagbibigay ang ESP8266 ng isang mature platform para sa pagsubaybay at pagkontrol ng mga application gamit ang Arduino Wire Language at ang Arduino IDE.

3. ESP8266 USB Programmer

ang kanyang host adapter ng ESP8266 ay partikular na idinisenyo ng Dcube Storepara sa bersyon ng Adafruit Huzzah ng ESP8266, na pinapayagan ang interface ng I²C.

4. I2C Pagkonekta Cable

5. Mini USB Cable

Ang mini USB cable Power supply ay isang mainam na pagpipilian para sa pagpapatakbo ng Adafruit Huzzah ESP8266.

Hakbang 2: Mga Koneksyon sa Hardware

Mga Koneksyon sa Hardware
Mga Koneksyon sa Hardware
Mga Koneksyon sa Hardware
Mga Koneksyon sa Hardware
Mga Koneksyon sa Hardware
Mga Koneksyon sa Hardware

Sa pangkalahatan, ang paggawa ng mga koneksyon ay ang pinakamadaling bahagi sa proyektong ito. Sundin ang mga tagubilin at imahe, at dapat ay wala kang mga problema.

Una sa lahat kunin ang Adafruit Huzzah ESP8266 at ilagay ang USB Programmer (na may Inward Facing I CC Port) dito. Pindutin nang malumanay ang USB Programmer at tapos na kami sa hakbang na ito na kasing dali ng pie (Tingnan ang larawan sa itaas).

Koneksyon ng Sensor at Adafruit Huzzah ESP8266Kumuha ng sensor at ikonekta ang I²C Cable dito. Para sa wastong pagpapatakbo ng cable na ito, mangyaring tandaan ang I²C Output ALWAYS kumokonekta sa I²C Input. Ang pareho ay kailangang sundin para sa Adafruit Huzzah ESP8266 na may naka-mount sa ibabaw nito ang USB Programmer (Tingnan ang larawan sa itaas).

Sa tulong ng ESP8266 USB Programmer, napakadaling i-program ang ESP. Ang kailangan mo lang gawin ay isaksak ang sensor sa USB Programmer at mahusay kang pumunta. Mas gusto naming gamitin ang adapter na ito sapagkat mas napapadali nitong ikonekta ang hardware. Walang nag-aalala tungkol sa paghihinang ng mga pin ng ESP sa sensor o pagbabasa ng mga diagram ng pin at datasheet. Maaari naming gamitin at gumana sa maraming mga sensor nang sabay-sabay, kailangan mo lamang gumawa ng isang kadena. Nang walang mga plug and play na USB Programmer na ito ay maraming panganib na makagawa ng maling koneksyon. Ang isang masamang mga kable ay maaaring pumatay ng iyong wifi pati na rin ang iyong sensor.

Tandaan: Dapat laging sundin ng brown wire ang koneksyon ng Ground (GND) sa pagitan ng output ng isang aparato at ng pag-input ng ibang aparato.

Pagpapatakbo ng Circuit

I-plug ang Mini USB cable sa power jack ng Adafruit Huzzah ESP8266. I-ilaw ito at voila, mahusay kaming pumunta!

Hakbang 3: Code

Code
Code

Ang ESP Code para sa Adafruit Huzzah ESP8266 at LSM9DS0 Sensor ay magagamit sa aming repository ng github.

Bago magpatuloy sa code, tiyaking nabasa mo ang mga tagubiling ibinigay sa Readme file at i-setup ang iyong Adafruit Huzzah ESP8266 alinsunod dito. 5 minuto lang ang tatagal upang mai-set up ang ESP.

Mahaba ang code ngunit nasa pinakasimpleng form na maaari mong maisip at hindi ka mahihirapan na maunawaan ito.

Para sa iyong kaginhawaan, maaari mong kopyahin ang gumaganang code ng ESP para sa sensor na ito mula dito din:

// Ipinamamahagi ng isang lisensyang malaya ang kalooban. // LSM9DSO // Ang code na ito ay dinisenyo upang gumana sa TCS3414_I2CS I2C Mini Module na magagamit mula sa dcubestore.com.

# isama

# isama

# isama

# isama

// LSM9DSO Gyro I2C address ay 6A (106)

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

const char * ssid = "iyong ssid";

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

Ang server ng ESP8266WebServer (80);

walang bisa ang handleroot ()

{unsigned int data [6];

// Start I2C Transmission

Wire.beginTransmission (Addr_Gyro); // Piliin ang control register 1 Wire.write (0x20); // Data rate = 95Hz, X, Y, Z-Axis pinagana, kapangyarihan sa Wire.write (0x0F); // Stop I2C Transmission Wire.endTransmission ();

// Start I2C Transmission

Wire.beginTransmission (Addr_Gyro); // Piliin ang control register 4 Wire.write (0x23); // Full-scale 2000 dps, tuluy-tuloy na pag-update Wire.write (0x30); // Stop I2C Transmission Wire.endTransmission ();

// Start I2C Transmission

Wire.beginTransmission (Addr_Accl); // Piliin ang control register 1 Wire.write (0x20); // Acceleration data rate = 100Hz, X, Y, Z-Axis pinagana, kapangyarihan sa Wire.write (0x67); // Stop I2C Transmission sa aparato Wire.endTransmission ();

// Start I2C Transmission

Wire.beginTransmission (Addr_Accl); // Piliin ang control register 2 Wire.write (0x21); // Full scale scale +/- 16g Wire.write (0x20); // Stop I2C Transmission Wire.endTransmission ();

// Start I2C Transmission

Wire.beginTransmission (Addr_Accl); // Piliin ang control register 5 Wire.write (0x24); // Magnetic high resolution, rate data output = 50Hz Wire.write (0x70); // Stop I2C Transmission Wire.endTransmission ();

// Start I2C Transmission

Wire.beginTransmission (Addr_Accl); // Piliin ang control register 6 Wire.write (0x25); // Magnetic full-scale +/- 12 gauss Wire.write (0x60); // Stop I2C Transmission Wire.endTransmission ();

// Start I2C Transmission

Wire.beginTransmission (Addr_Accl); // Piliin ang control register 7 Wire.write (0x26); // Normal mode, magnetic tuloy-tuloy na mode ng pag-convert Wire.write (0x00); // Stop I2C Transmission Wire.endTransmission (); pagkaantala (300);

para sa (int i = 0; i <6; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr_Gyro); // Select data register Wire.write ((40 + i)); // Stop I2C Transmission Wire.endTransmission ();

// Humiling ng 1 byte ng data

Wire.requestFrom (Addr_Gyro, 1);

// Basahin ang 6 bytes ng data

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

// I-convert ang data

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

para sa (int i = 0; i <6; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr_Accl); // Select data register Wire.write ((40 + i)); // Stop I2C Transmission Wire.endTransmission ();

// Humiling ng 1 byte ng data

Wire.requestFrom (Addr_Accl, 1);

// Basahin ang 6 bytes ng data

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

// I-convert ang data

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

para sa (int i = 0; i <6; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr_Accl); // Select data register Wire.write ((8 + i)); // Stop I2C Transmission Wire.endTransmission ();

// Humiling ng 1 byte ng data

Wire.requestFrom (Addr_Accl, 1);

// Basahin ang 6 bytes ng data

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

// I-convert ang data

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

// Output data sa serial monitor

Serial.print ("X-Axis of rotation:"); Serial.println (xGyro); Serial.print ("Y-Axis of rotation:"); Serial.println (yGyro); Serial.print ("Z-Axis of rotation:"); Serial.println (zGyro); Serial.print ("Pagpapabilis sa X-Axis:"); Serial.println (xAccl); Serial.print ("Pagpapabilis sa Y-Axis:"); Serial.println (yAccl); Serial.print ("Pagpapabilis sa Z-Axis:"); Serial.println (zAccl); Serial.print ("Magnetic field sa X-Axis:"); Serial.println (xMag); Serial.print ("Magnetic field sa Y-Axis:"); Serial.println (yMag); Serial.print ("Magnetic na isinampa sa Z-Axis:"); Serial.println (zMag);

// Output data sa web server

server.sendContent ("

Tindahan ng DCUBE

www.dcubestore.com

"" LSM9DS0 Sensor I2C Mini Module

);

server.sendContent ("

X-Axis of rotation = "+ String (xGyro)); server.sendContent ("

Y-Axis of rotation = "+ String (yGyro)); server.sendContent ("

Z-Axis of rotation = "+ String (zGyro)); server.sendContent ("

Pagpapabilis sa X-Axis = "+ String (xAccl)); server.sendContent ("

Pagpapabilis sa Y-Axis = "+ String (yAccl)); server.sendContent ("

Pagpapabilis sa Z-Axis = "+ String (zAccl)); server.sendContent ("

Inihain ng magnetik sa X-Axis = "+ String (xMag)); server.sendContent ("

Inihain ng magnetik sa Y-Axis = "+ String (yMag)); server.sendContent ("

Naihain ang magnetik sa Z-Axis = "+ String (zMag)); pagkaantala (1000);}

walang bisa ang pag-setup ()

{// Initialise I2C na komunikasyon bilang MASTER Wire.begin (2, 14); // Initialise serial komunikasyon, itakda ang baud rate = 115200 Serial.begin (115200);

// Kumonekta sa WiFi network

WiFi.begin (ssid, password);

// Maghintay para sa koneksyon

habang (WiFi.status ()! = WL_CONNected) {pagkaantala (500); Serial.print ("."); } Serial.println (""); Serial.print ("Nakakonekta sa"); Serial.println (ssid);

// Kunin ang IP address ng ESP8266

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

// Simulan ang server

server.on ("/", handleroot); server.begin (); Serial.println ("nagsimula ang HTTP server"); }

walang bisa loop ()

{server.handleClient (); }

Hakbang 4: Paggawa ng Code

Paggawa ng Code
Paggawa ng Code

Ngayon, i-download (o git pull) ang code at buksan ito sa Arduino IDE.

Compile at i-upload ang code at makita ang output sa Serial Monitor.

Tandaan: Bago mag-upload, tiyaking ipinasok mo ang iyong SSID network at password sa code.

Kopyahin ang IP address ng ESP8266 mula sa Serial Monitor at i-paste ito sa iyong web browser. Makakakita ka ng isang web page na may axis ng pag-ikot, pagbilis at pagbabasa ng magnetic field sa 3-axis.

Ang output ng sensor sa Serial Monitor at Web Server ay ipinapakita sa larawan sa itaas.

Hakbang 5: Mga Aplikasyon at Tampok

Ang LSM9DS0 ay isang system-in-package na nagtatampok ng isang 3D digital linear acceleration sensor, isang 3D digital angular rate sensor, at isang 3D digital magnetic sensor. Sa pamamagitan ng pagsukat sa tatlong mga pag-aari na ito, maaari kang makakuha ng maraming kaalaman tungkol sa paggalaw ng isang bagay. Pagsukat sa lakas at direksyon ng magnetic field ng Earth na may isang magnetometer, maaari mong tantyahin ang iyong heading. Maaaring sukatin ng isang accelerometer sa iyong telepono ang direksyon ng lakas ng grabidad, at tantyahin ang oryentasyon (larawan, tanawin, patag, atbp.). Ang mga quadcopter na may built-in na gyroscope ay maaaring tumingin para sa biglaang mga rolyo o pitches. Maaari natin itong magamit sa Global Positioning System (GPS).

Ang ilan pang mga application ay may kasamang Panloob na nabigasyon, mga interface ng Smart user, pagkilala sa advanced na kilos, Mga gaming at virtual reality input device, atbp.

Sa tulong ng ESP8266, maaari nating taasan ang kakayahan nito sa isang mas malaking haba. Maaari naming makontrol ang aming mga kasangkapan at subaybayan doon ang form ng pagganap ng aming mga desktop at mobile device. Maaari naming iimbak at pamahalaan ang data sa online at pag-aralan ang mga ito anumang oras para sa mga pagbabago. Mas maraming mga application ang kasama sa Home Automation, Mesh Network, Industrial Wireless Control, Baby Monitor, Sensor Networks, Wearable Electronics, Wi-Fi Location-sadar Devices, Wi-Fi Position System Beacons.

Hakbang 6: Mga Mapagkukunan para sa Pagpunta sa Malayo

Para sa karagdagang impormasyon tungkol sa LSM9DS0 at ESP8266, tingnan ang mga link sa ibaba:

  • LSM9DS0 Sensor Datasheet
  • LSM9DS0 Diagram ng Mga Kable
  • ESP8266 Datasheet

Inirerekumendang: