Talaan ng mga Nilalaman:
- Hakbang 1: Kagamitan na Kailangan Namin.. !
- Hakbang 2: Mga Koneksyon sa Hardware
- Hakbang 3: Code
- Hakbang 4: Paggawa ng Code
- Hakbang 5: Mga Aplikasyon at Tampok
- Hakbang 6: Mga Mapagkukunan para sa Pagpunta sa Malayo
Video: Oryentasyon ng Mapa Sa Pamamagitan ng Web Server: 6 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
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.. !
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
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
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
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:
Gumawa ng isang Mapa ng Mapa Gamit ang Google Maps: 17 Mga Hakbang (na may Mga Larawan)
Gumawa ng isang Book ng Mapa Gamit ang Google Maps: Nitong nakaraang araw ay tumitingin ako sa bookstore para sa isang Gabay sa Kalye para sa DuPage County, IL dahil ang aking kasintahan ay naninirahan doon at nangangailangan ng isang detalyadong mapa ng kalye. Sa kasamaang palad, ang isa lamang na mayroon sila na malapit ay isa para sa Cook County (tulad nito o
Mapa ng Ilaw- Mapa-kaalaman at Medyo !: 7 Mga Hakbang
Map Lamp- Mapa-kaalaman at Medyo !: Ang lampara na ito ay ginawa mula sa isang Ginamit / Bagong mapa. Gumagamit ito ng 7-12V input, at maaaring ipasadya sa iba't ibang kulay, at ningning. Mayroon din itong USB singilin! Napakadaling gawin, ngunit nangangailangan ng ilang paghihinang
Pag-aaral ng Oryentasyon Sa Raspberry Pi at MXC6226XU Paggamit ng Python: 6 Hakbang
Pag-aaral ng Oryentasyon Sa Raspberry Pi at MXC6226XU Paggamit ng Python: Ang mga ingay ay isang bahagi lamang ng pagtatrabaho ng isang sasakyan. Ang hum ng isang napakaayos na motor ng sasakyan ay isang napakagandang tunog. Nagbubulong-bulong ang mga tread laban sa kalsada, sumisigaw ang hangin habang paikot-ikot ito sa mga salamin, plastik na piraso, at piraso sa dashboard na gumagawa ng
Disenyo at Napagtanto ng isang Sistema ng Oryentasyon ng Mga Photovoltaic Panel: 5 Mga Hakbang
Disenyo at Napagtanto ng isang Sistema ng Oryentasyon ng Mga Photovoltaic Panel: Disenyo at Napagtatanto ng isang Sistema ng Oryentasyon ng Photovoltaic Panels
ESP8266-NODEMCU $ 3 WiFi Modyul # 2 - Pagkontrol ng Mga Wireless na Pin Sa Pamamagitan ng WEB PAGE: 9 Mga Hakbang (na may Mga Larawan)
ESP8266-NODEMCU $ 3 WiFi Module # 2 - Wireless Pins Controlling Through WEB PAGE: Isang bagong mundo ng mga micro computing na ito ang dumating at ang bagay na ito ay ang ESP8266 NODEMCU. Ito ang unang bahagi na nagpapakita kung paano mo mai-install ang kapaligiran ng esp8266 sa iyong arduino IDE sa pamamagitan ng pagsisimula ng video at bilang mga bahagi sa