Orodha ya maudhui:

Uelekezaji wa Ramani Kupitia Seva ya Wavuti: Hatua 6
Uelekezaji wa Ramani Kupitia Seva ya Wavuti: Hatua 6

Video: Uelekezaji wa Ramani Kupitia Seva ya Wavuti: Hatua 6

Video: Uelekezaji wa Ramani Kupitia Seva ya Wavuti: Hatua 6
Video: Cheki jama alivyo paa na ndege ya kichawi utashangaa 2024, Novemba
Anonim
Mwelekeo wa Ramani Kupitia Seva ya Wavuti
Mwelekeo wa Ramani Kupitia Seva ya Wavuti

Mtandao wa Vitu, (IoT) ni moja wapo ya mada maarufu kwenye sayari hivi sasa. Na, inakua haraka siku kwa siku na mtandao. Mtandao wa Vitu unabadilisha nyumba rahisi kuwa nyumba nzuri, ambapo kila kitu kutoka kwa taa yako hadi kufuli yako inaweza kudhibitiwa kutoka kwa smartphone yako au desktop. Hii ndio anasa ambayo kila mtu anataka kumiliki.

Sisi hucheza kila wakati na zana tulizonazo na tunaendelea kufanya kazi kwenda kwenye hatua inayofuata ya mipaka yetu. Tunajaribu kumpa mteja wetu maono ya teknolojia za kisasa na maoni. Kwa hivyo, unaweza kubadilisha nyumba yako kuwa nyumba nzuri na kufurahiya ladha ya anasa bila juhudi nyingi.

Leo, tunafikiria kufanya kazi kwa moja ya mada muhimu zaidi katika IoT - Mwelekeo wa Ramani ya Dijiti.

Tutaunda seva ya wavuti kupitia ambayo tunaweza kufuatilia mienendo ya kifaa chochote au kitu chochote (Yako juu yako, ambaye umepata kupeleleza;)). Daima unaweza kufikiria juu ya kuboresha mradi huu hadi kiwango kingine na marekebisho kadhaa na usisahau kutuambia katika maoni hapa chini.

Anza kuanza kuliko.. !!

Hatua ya 1: Vifaa Tunavyohitaji.. !

Vifaa Tunavyohitaji.. !!
Vifaa Tunavyohitaji.. !!
Vifaa Tunavyohitaji.. !!
Vifaa Tunavyohitaji.. !!
Vifaa Tunavyohitaji.. !!
Vifaa Tunavyohitaji.. !!
Vifaa Tunavyohitaji.. !!
Vifaa Tunavyohitaji.. !!

1. Sensor ya LSM9DS0

Sensor ya 3-in-1 iliyotengenezwa na STMicroelectronics, LSM9DS0 ni mfumo-katika-kifurushi kilicho na sensorer ya kuongeza kasi ya dijiti ya 3D, sensa ya kiwango cha angular ya 3D, na sensa ya sumaku ya dijiti ya 3D. LSM9DS0 ina kiwango cha kuongeza kasi kamili cha ± 2g / ± 4g / ± 6g / ± 8g / ± 16g, uwanja wa sumaku kamili ya kiwango cha ± 2 / ± 4 / ± 8 / ± 12 gauss na kiwango cha angular cha ± 245 / ± 500 / ± 2000 dps.

2. Adafruit Huzzah ESP8266

Prosesa ya ESP8266 kutoka Espressif ni microcontroller 80 MHz iliyo na mwisho kamili wa mbele ya Wifi (wote kama mteja na kituo cha ufikiaji) na stack ya TCP / IP na msaada wa DNS pia. ESP8266 ni jukwaa la kushangaza la maendeleo ya matumizi ya IoT. ESP8266 hutoa jukwaa la kukomaa la ufuatiliaji na udhibiti wa matumizi ukitumia Lugha ya waya ya Arduino na IDE ya Arduino.

3. Programu ya USB ya ESP8266

adapta yake ya mwenyeji ya ESP8266 iliundwa haswa na Duka la Dcubekwa toleo la Adafruit Huzzah la ESP8266, ikiruhusu kiolesura cha I²C.

4. I2C Kuunganisha Cable

5. Kebo ya Mini USB

Usambazaji wa kebo ndogo ya USB ni chaguo bora ya kuwezesha Adafruit Huzzah ESP8266.

Hatua ya 2: Uunganisho wa vifaa

Uunganisho wa vifaa
Uunganisho wa vifaa
Uunganisho wa vifaa
Uunganisho wa vifaa
Uunganisho wa vifaa
Uunganisho wa vifaa

Kwa ujumla, kufanya unganisho ni sehemu rahisi zaidi katika mradi huu. Fuata maagizo na picha, na haupaswi kuwa na shida.

Kwanza kabisa chukua Adafruit Huzzah ESP8266 na uweke Programu ya USB (na Inward Facing I²C Port) juu yake. Bonyeza Programu ya USB kwa upole na tumemaliza kwa hatua hii rahisi kama pai (Tazama picha hapo juu).

Uunganisho wa Sensor na Adafruit Huzzah ESP8266Chukua sensorer na Unganisha Cable ya I²C nayo. Kwa utendakazi sahihi wa kebo hii, tafadhali kumbuka Pato la I ALC Daima huunganisha kwa Ingizo la I²C. Hiyo ilibidi ifuatwe kwa Adafruit Huzzah ESP8266 na Programu ya USB imewekwa juu yake (Tazama picha hapo juu).

Kwa msaada wa Programu ya USB ya ESP8266, ni rahisi sana kupanga programu ya ESP. Unachohitaji kufanya ni kuziba sensorer katika Programu ya USB na uko vizuri kwenda. Tunapendelea kutumia adapta hii kwa sababu inafanya iwe rahisi sana kuunganisha vifaa. Hakuna wasiwasi juu ya kuuza pini za ESP kwa sensorer au kusoma michoro ya pini na hati ya data. Tunaweza kutumia na kufanya kazi kwenye sensorer nyingi wakati huo huo, unahitaji tu kutengeneza mnyororo. Bila kuziba hizi na kucheza Programu ya USB kuna hatari nyingi za kufanya unganisho lisilofaa. Wiring mbaya inaweza kuua wifi yako pamoja na sensa yako.

Kumbuka: Waya wa hudhurungi inapaswa kufuata uunganisho wa Ardhi (GND) kati ya pato la kifaa kimoja na uingizaji wa kifaa kingine.

Nguvu ya Mzunguko

Chomeka kebo ya Mini USB ndani ya jack ya nguvu ya Adafruit Huzzah ESP8266. Washa na voila, tuko vizuri kwenda!

Hatua ya 3: Kanuni

Kanuni
Kanuni

Nambari ya ESP ya Adafruit Huzzah ESP8266 na LSM9DS0 Sensor inapatikana kwenye hazina yetu ya github.

Kabla ya kuendelea na nambari, hakikisha unasoma maagizo yaliyotolewa kwenye faili ya Readme na usanidi Adafruit Huzzah ESP8266 kulingana na hiyo. Itachukua dakika 5 tu kuanzisha ESP.

Nambari ni ndefu lakini iko katika fomu rahisi zaidi ambayo unaweza kufikiria na hautakuwa na ugumu kuielewa.

Kwa urahisi wako, unaweza kunakili nambari inayofanya kazi ya sensor hii kutoka hapa pia:

// Imesambazwa na leseni ya hiari.// Itumie njia yoyote unayotaka, faida au bure, mradi inalingana na leseni za kazi zake zinazohusiana. // LSM9DSO // Nambari hii imeundwa kufanya kazi na Moduli ya Mini ya TCS3414_I2CS I2C inayopatikana kutoka dcubestore.com.

# pamoja

# pamoja

# pamoja

# pamoja

// Anwani ya LSM9DSO Gyro I2C ni 6A (106)

#fafanua Addr_Gyro 0x6A // LSM9DSO Accl I2C anwani ni 1E (30) #fafanua Addr_Accl 0x1E

const char * ssid = "ssid yako";

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

Seva ya ESP8266WebServer (80);

mpini batili ()

data ambazo hazijasainiwa [6];

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr_Gyro); // Chagua rejista ya kudhibiti 1 Waya. Andika (0x20); // Kiwango cha data = 95Hz, X, Y, Z-Axis imewezeshwa, nguvu kwenye Wire.write (0x0F); // Acha waya wa usambazaji wa I2C.endUsambazaji ();

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr_Gyro); // Chagua rejista ya kudhibiti 4 Wire. Andika (0x23); // Dps kamili ya 2000, sasisho endelevu Wire.write (0x30); // Acha waya wa usambazaji wa I2C.endUsambazaji ();

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr_Accl); // Chagua rejista ya kudhibiti 1 Waya. Andika (0x20); // Kiwango cha data ya kuongeza kasi = 100Hz, X, Y, Z-Axis imewezeshwa, nguvu kwenye Wire.write (0x67); // Acha Uhamisho wa I2C kwenye kifaa cha Wire.endTransmission ();

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr_Accl); // Chagua rejista ya kudhibiti 2 Wire.write (0x21); // Uteuzi kamili wa kiwango +/- Waya wa 16g. Andika (0x20); // Acha waya wa usambazaji wa I2C.endUsambazaji ();

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr_Accl); // Chagua rejista ya kudhibiti 5 Wire. Andika (0x24); // Azimio kubwa la sumaku, kiwango cha data ya pato = 50Hz Waya. Andika (0x70); // Acha waya wa usambazaji wa I2C.endUsambazaji ();

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr_Accl); // Chagua rejista ya kudhibiti 6 Wire.write (0x25); // Magnetic kamili wadogo +/- 12 gauss Wire. Andika (0x60); // Acha waya wa usambazaji wa I2C.endUsambazaji ();

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr_Accl); // Chagua rejista ya kudhibiti 7. Waya. Andika (0x26); // Hali ya kawaida, njia ya uongofu inayoendelea ya waya.write (0x00); // Acha waya wa usambazaji wa I2C.endUsambazaji (); kuchelewesha (300);

kwa (int i = 0; i <6; i ++) {// Anzisha I2C Transmission Wire. anzaUwasilishaji (Addr_Gyro); // Chagua rejista ya data Wire.write ((40 + i)); // Acha waya wa usambazaji wa I2C.endUsambazaji ();

// Omba 1 byte ya data

Ombi la Wire. Toka (Addr_Gyro, 1);

// Soma ka 6 za data

// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb ikiwa (Waya haipatikani () == 1) {data = Wire.read (); }}

// Badilisha data

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

kwa (int i = 0; i <6; i ++) {// Anzisha I2C Transmission Wire. anzaUwasilishaji (Addr_Accl); // Chagua rejista ya data Wire.write ((40 + i)); // Acha waya wa usambazaji wa I2C.endUsambazaji ();

// Omba 1 byte ya data

Ombi la Wire. From (Addr_Accl, 1);

// Soma ka 6 za data

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb // zAccl lsb, zAccl msb ikiwa (Waya haipatikani () == 1) {data = Wire.read (); }}

// Badilisha data

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

kwa (int i = 0; i <6; i ++) {// Anzisha I2C Transmission Wire. anzaUwasilishaji (Addr_Accl); // Chagua rejista ya data Wire.write ((8 + i)); // Acha waya wa usambazaji wa I2C.endUsambazaji ();

// Omba 1 byte ya data

Ombi la Wire. From (Addr_Accl, 1);

// Soma ka 6 za data

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

// Badilisha data

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

// data ya Pato kwa mfuatiliaji wa serial

Serial.print ("X-Axis ya mzunguko:"); Serial.println (xGyro); Serial.print ("Y-Axis ya mzunguko:"); Serial.println (yGyro); Serial.print ("Z-Axis ya mzunguko:"); Serial.println (zGyro); Serial.print ("Kuongeza kasi katika X-Axis:"); Serial.println (xAccl); Serial.print ("Kuongeza kasi katika Y-Axis:"); Serial.println (yAccl); Serial.print ("Kuongeza kasi katika Z-Axis:"); Serial.println (zAccl); Serial.print ("uwanja wa Magnetic katika X-Axis:"); Serial.println (xMag); Serial.print ("uwanja wa Magnetic katika Y-Axis:"); Serial.println (yMag); Serial.print ("Magnetic filed katika Z-Axis:"); Serial.println (zMag);

// Pato la data kwa seva ya wavuti

tumaContent (.

DUKA LA DCUBE

www.dcubestore.com

Moduli ya LSM9DS0 ya I2C Mini

);

tumaContent (.

X-Axis ya mzunguko = "+ Kamba (xGyro)); server.sendContent ("

Mzunguko wa Y-mzunguko = "+ Kamba (yGyro)); server.sendContent ("

Z-Axis ya mzunguko = "+ Kamba (zGyro)); server.sendContent ("

Kuongeza kasi katika X-Axis = "+ String (xAccl)); server.sendContent ("

Kuongeza kasi katika Y-Axis = "+ String (yAccl)); server.sendContent ("

Kuongeza kasi katika Z-Axis = "+ String (zAccl)); server.sendContent ("

Magnetic iliyowekwa katika X-Axis = "+ String (xMag)); server.sendContent ("

Magnetic iliyowekwa katika Y-Axis = "+ String (yMag)); server.sendContent ("

Magnetic iliyowekwa katika Z-Axis = "+ String (zMag)); kuchelewesha (1000);}

kuanzisha batili ()

{// Anzisha mawasiliano ya I2C kama MASTER Wire.anza (2, 14); // Anzisha mawasiliano ya serial, weka kiwango cha baud = 115200 Serial. Kuanza (115200);

// Unganisha kwenye mtandao wa WiFi

Kuanza kwa WiFi (ssid, password);

// Subiri unganisho

wakati (WiFi.status ()! = WL_CONNECTED) {kuchelewa (500); Printa ya serial ("."); } Serial.println (""); Serial.print ("Imeunganishwa na"); Serial.println (ssid);

// Pata anwani ya IP ya ESP8266

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

// Anzisha seva

seva.on ("/", handleroot); anza (); Serial.println ("Seva ya HTTP imeanza"); }

kitanzi batili ()

{server.handleClient (); }

Hatua ya 4: Kufanya kazi kwa Kanuni

Kufanya kazi kwa Kanuni
Kufanya kazi kwa Kanuni

Sasa, pakua (au git vuta) nambari na uifungue katika Arduino IDE.

Kusanya na kupakia nambari hiyo na uone pato kwenye Serial Monitor.

Kumbuka: Kabla ya kupakia, hakikisha unaingiza mtandao wako wa SSID na nywila kwenye nambari.

Nakili anwani ya IP ya ESP8266 kutoka kwa Serial Monitor na uibandike kwenye kivinjari chako cha wavuti. Utaona ukurasa wa wavuti na mhimili wa mzunguko, kuongeza kasi na usomaji wa uwanja wa sumaku kwenye mhimili 3.

Pato la sensa kwenye Serial Monitor na Seva ya Wavuti imeonyeshwa kwenye picha hapo juu.

Hatua ya 5: Maombi na Vipengele

LSM9DS0 ni mfumo-katika-kifurushi kilicho na sensorer ya kuongeza kasi ya dijiti ya 3D, sensorer ya kiwango cha angular cha 3D, na sensa ya sumaku ya dijiti ya 3D. Kwa kupima mali hizi tatu, unaweza kupata maarifa mengi juu ya harakati za kitu. Kupima nguvu na mwelekeo wa uwanja wa sumaku wa Dunia na sumaku, unaweza kukadiria kichwa chako. Kichocheo katika simu yako kinaweza kupima mwelekeo wa nguvu ya uvutano, na kukadiria mwelekeo (picha, mandhari, gorofa, n.k.). Quadcopters zilizo na gyroscopes zilizojengwa zinaweza kutazama safu au viwanja vya ghafla. Tunaweza kutumia hii katika Mfumo wa Kuweka Nafasi Ulimwenguni (GPS).

Programu zingine zaidi ni pamoja na urambazaji wa ndani, viunganisho vya watumiaji mahiri, utambuzi wa ishara ya hali ya juu, Michezo ya kubahatisha na vifaa vya kuingiza ukweli halisi, n.k.

Kwa msaada wa ESP8266, tunaweza kuongeza uwezo wake kwa urefu zaidi. Tunaweza kudhibiti vifaa vyetu na kufuatilia kuna fomu za utendaji dawati zetu na vifaa vya rununu. Tunaweza kuhifadhi na kudhibiti data mkondoni na kuzisoma wakati wowote kwa marekebisho. Matumizi zaidi ni pamoja na Automatisering ya Nyumbani, Mtandao wa Mesh, Udhibiti wa Wireless wa Viwanda, Wachunguzi wa watoto, Mitandao ya Sensorer, Elektroniki zinazoweza kuvaliwa, Vifaa vinavyojua Mahali pa Wi-Fi, Mfumo wa Nafasi za Wi-Fi.

Hatua ya 6: Rasilimali za Kuendelea Zaidi

Kwa habari zaidi kuhusu LSM9DS0 na ESP8266, angalia viungo hapa chini:

  • Hati ya LSM9DS0 ya Sensorer
  • Mchoro wa LSM9DS0 Wiring
  • Hati ya Haki ya ESP8266

Ilipendekeza: