Სარჩევი:

ვებ -სერვერის რუქაზე ორიენტაცია: 6 ნაბიჯი
ვებ -სერვერის რუქაზე ორიენტაცია: 6 ნაბიჯი

ვიდეო: ვებ -სერვერის რუქაზე ორიენტაცია: 6 ნაბიჯი

ვიდეო: ვებ -სერვერის რუქაზე ორიენტაცია: 6 ნაბიჯი
ვიდეო: რუსული ენა დამაბნეველია ხოლმე? 2024, ივლისი
Anonim
ვებ -სერვერის რუქაზე ორიენტაცია
ვებ -სერვერის რუქაზე ორიენტაცია

ნივთების ინტერნეტი (IoT) არის ერთ – ერთი პოპულარული თემა პლანეტაზე ახლა. და ის სწრაფად იზრდება დღითი დღე ინტერნეტით. ნივთების ინტერნეტი ცვლის უბრალო სახლებს ჭკვიან სახლებად, სადაც თქვენი შუქებიდან დაწყებული ჩამკეტებით თქვენი სმარტფონიდან ან დესკტოპიდან ყველაფერი კონტროლდება. ეს არის ფუფუნება, რომლის ფლობაც ყველას სურს.

ჩვენ ყოველთვის ვთამაშობთ იმ ინსტრუმენტებით, რაც გვაქვს და ვაგრძელებთ მუშაობას ჩვენი ლიმიტების შემდგომ საფეხურზე. ჩვენ ვცდილობთ ჩვენს მომხმარებელს მივცეთ ხედვა უახლესი ტექნოლოგიებისა და იდეების შესახებ. ასე რომ, თქვენ შეგიძლიათ გადააქციოთ თქვენი სახლი ჭკვიან სახლებად და ისიამოვნოთ ფუფუნების გემოთი დიდი ძალისხმევის გარეშე.

დღეს ჩვენ ვმუშაობთ IoT– ის ერთ – ერთ ყველაზე მნიშვნელოვან თემაზე - ციფრული რუქის ორიენტაციაზე.

ჩვენ შევქმნით ვებ სერვერს, რომლის მეშვეობითაც ჩვენ შეგვიძლია თვალყური ვადევნოთ ნებისმიერი მოწყობილობის ან საგნის მოძრაობას (ეს თქვენზეა დამოკიდებული, ვის ჯაშუშობას აპირებთ;)). თქვენ ყოველთვის შეგიძლიათ იფიქროთ ამ პროექტის მომდევნო დონეზე განახლებაზე გარკვეული ცვლილებებით და არ დაგავიწყდეთ ამის თქმა ქვემოთ მოცემულ კომენტარებში.

დავიწყოთ ვიდრე.. !!

ნაბიჯი 1: ჩვენ გვჭირდება აღჭურვილობა..

ჩვენ გვჭირდება ტექნიკა.. !!
ჩვენ გვჭირდება ტექნიკა.. !!
ჩვენ გვჭირდება ტექნიკა.. !!
ჩვენ გვჭირდება ტექნიკა.. !!
ჩვენ გვჭირდება ტექნიკა.. !!
ჩვენ გვჭირდება ტექნიკა.. !!
ჩვენ გვჭირდება ტექნიკა.. !!
ჩვენ გვჭირდება ტექნიკა.. !!

1. LSM9DS0 სენსორი

3-in-1 სენსორი STMicroelectronics– ის მიერ წარმოებული, LSM9DS0 არის სისტემაში შეფუთული სისტემა, რომელშიც წარმოდგენილია 3D ციფრული ხაზოვანი აჩქარების სენსორი, 3D ციფრული კუთხის სიჩქარის სენსორი და 3D ციფრული მაგნიტური სენსორი. LSM9DS0– ს აქვს ხაზოვანი აჩქარების სრული მასშტაბი ± 2 გ/± 4 გ/± 6 გ/± 8 გ/g 16 გ, მაგნიტური ველის სრული მასშტაბი ± 2/± 4/± 8/± 12 გაუსი და კუთხოვანი სიხშირე ± 245 /± 500/± 2000 dps.

2. Adafruit Huzzah ESP8266

ESP8266 პროცესორი Espressif– დან არის 80 მეგაჰერციანი მიკროკონტროლერი სრული WiFi წინა ხაზით (როგორც კლიენტი, ასევე წვდომის წერტილი) და TCP/IP სტეკი DNS მხარდაჭერით. ESP8266 არის წარმოუდგენელი პლატფორმა IoT პროგრამის განვითარებისათვის. ESP8266 უზრუნველყოფს სრულყოფილ პლატფორმას პროგრამების მონიტორინგისა და კონტროლისათვის Arduino Wire Language და Arduino IDE გამოყენებით.

3. ESP8266 USB პროგრამისტი

მისი ESP8266 მასპინძელი ადაპტერი შემუშავებულია სპეციალურად Dcube Store– ის მიერ ESP8266– ის Adafruit Huzzah ვერსიისთვის, რაც I allowingC ინტერფეისის საშუალებას იძლევა.

4. I2C დამაკავშირებელი კაბელი

5. მინი USB კაბელი

მინი USB კაბელი ელექტროენერგიის მიწოდება იდეალური არჩევანია Adafruit Huzzah ESP8266– ის კვებისათვის.

ნაბიჯი 2: აპარატურის კავშირები

აპარატურის კავშირები
აპარატურის კავშირები
აპარატურის კავშირები
აპარატურის კავშირები
აპარატურის კავშირები
აპარატურის კავშირები

ზოგადად, კავშირების დამყარება ყველაზე მარტივი ნაწილია ამ პროექტში. მიჰყევით ინსტრუქციას და სურათებს და არანაირი პრობლემა არ შეგექმნებათ.

უპირველეს ყოვლისა აიღეთ Adafruit Huzzah ESP8266 და მოათავსეთ მასზე USB პროგრამისტი (Inward Facing I²C პორტით). ნაზად დააჭირეთ USB პროგრამისტს და ჩვენ დავასრულებთ ამ ნაბიჯს ისევე მარტივად, როგორც ტორტი (იხილეთ სურათი ზემოთ).

სენსორისა და Adafruit Huzzah ESP8266- ის კავშირი მიიღეთ სენსორი და შეაერთეთ I²C კაბელი მასთან. ამ კაბელის სათანადო მუშაობისთვის, გახსოვდეთ I²C გამომავალი ყოველთვის აკავშირებს I²C შეყვანისას. იგივე უნდა გაკეთებულიყო Adafruit Huzzah ESP8266– ზე, მასზე დამონტაჟებული USB პროგრამისტი (იხილეთ სურათი ზემოთ).

ESP8266 USB პროგრამისტის დახმარებით ძალიან ადვილია ESP პროგრამირება. ყველაფერი რაც თქვენ გჭირდებათ რომ გააკეთოთ არის შეაერთოთ სენსორი USB პროგრამისტთან და კარგად ხართ წასული. ჩვენ გვირჩევნია გამოვიყენოთ ეს ადაპტერი, რადგან ეს აადვილებს ტექნიკის დაკავშირებას. არ ინერვიულოთ ESP- ის ქინძისთავების სენსორზე შეკვრაზე ან პინ დიაგრამებისა და მონაცემთა ფურცლის წაკითხვაზე. ჩვენ შეგვიძლია გამოვიყენოთ და ვიმუშაოთ რამდენიმე სენსორზე ერთდროულად, თქვენ უბრალოდ უნდა გააკეთოთ ჯაჭვი. ამ plug and play USB პროგრამისტის გარეშე ბევრი რისკია არასწორი კავშირის დამყარებისა. ცუდმა გაყვანილობამ შეიძლება გაანადგუროს თქვენი WiFi ასევე სენსორი.

შენიშვნა: ყავისფერი მავთული ყოველთვის უნდა დაიცვას Ground (GND) კავშირი ერთი მოწყობილობის გამომავალსა და სხვა მოწყობილობის შეყვანას შორის.

ჩართვა ჩართვა

შეაერთეთ მინი USB კაბელი Adafruit Huzzah ESP8266 კვების ბლოკში. აანთეთ და ვაილა, კარგად ვართ წასასვლელი!

ნაბიჯი 3: კოდი

კოდი
კოდი

ESP კოდი Adafruit Huzzah ESP8266 და LSM9DS0 სენსორისთვის არის ხელმისაწვდომი ჩვენს github საცავში.

სანამ კოდზე გადახვალთ, დარწმუნდით, რომ წაიკითხეთ Readme ფაილში მოცემული ინსტრუქციები და ამის მიხედვით დააყენეთ თქვენი Adafruit Huzzah ESP8266. ESP– ის დაყენებას სულ რაღაც 5 წუთი დასჭირდება.

კოდი გრძელია, მაგრამ ის უმარტივესი ფორმაა, რომლის წარმოდგენაც შეგიძლიათ და მისი გაგება არ გაგიჭირდებათ.

მოხერხებულობისთვის, თქვენ შეგიძლიათ დააკოპიროთ ამ სენსორის სამუშაო ESP კოდი ასევე აქედან:

// განაწილებულია თავისუფალი ნების ლიცენზიით.// გამოიყენეთ როგორც გინდათ, მოგებით თუ უფასოდ, იმ პირობით, რომ იგი ჯდება მისი ასოცირებული ნაწარმოებების ლიცენზიებში. // LSM9DSO // ეს კოდი შექმნილია TCS3414_I2CS I2C მინი მოდულთან მუშაობისთვის, რომელიც ხელმისაწვდომია dcubestore.com– დან.

#ჩართეთ

#ჩართეთ

#ჩართეთ

#ჩართეთ

// LSM9DSO Gyro I2C მისამართი არის 6A (106)

#განსაზღვრეთ Addr_Gyro 0x6A // LSM9DSO Accl I2C მისამართი არის 1E (30) #განსაზღვრეთ Addr_Accl 0x1E

const char* ssid = "შენი ssid";

const char* პაროლი = "შენი პაროლი"; int xGyro, yGyro, zGyro, xAccl, yAccl, zAccl, xMag, yMag, zMag;

ESP8266WebServer სერვერი (80);

void handleroot ()

{ხელმოუწერელი int მონაცემები [6];

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr_Gyro); // აირჩიეთ საკონტროლო რეგისტრი 1 Wire.write (0x20); // მონაცემთა სიჩქარე = 95Hz, X, Y, Z-Axis ჩართულია, ჩართულია Wire.write (0x0F); // შეაჩერე I2C გადამცემი Wire.endTransmission ();

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr_Gyro); // აირჩიეთ საკონტროლო რეგისტრი 4 Wire.write (0x23); // სრულმასშტაბიანი 2000 dps, უწყვეტი განახლება Wire.write (0x30); // შეაჩერე I2C გადამცემი Wire.endTransmission ();

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr_Accl); // აირჩიეთ საკონტროლო რეგისტრი 1 Wire.write (0x20); // დაჩქარების მონაცემთა სიჩქარე = 100Hz, X, Y, Z-Axis ჩართულია, ჩართულია Wire.write (0x67); // შეაჩერე I2C გადაცემა მოწყობილობაზე Wire.endTransmission ();

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr_Accl); // აირჩიეთ საკონტროლო რეგისტრი 2 Wire.write (0x21); // სრულმასშტაბიანი შერჩევა +/- 16 გ Wire.write (0x20); // შეაჩერე I2C გადამცემი Wire.endTransmission ();

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr_Accl); // აირჩიეთ საკონტროლო რეგისტრი 5 Wire.write (0x24); // მაგნიტური მაღალი გარჩევადობა, გამომავალი მონაცემთა სიჩქარე = 50Hz Wire.write (0x70); // შეაჩერე I2C გადამცემი Wire.endTransmission ();

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr_Accl); // აირჩიეთ კონტროლის რეგისტრატორი 6 Wire.write (0x25); // მაგნიტური სრულმასშტაბიანი +/- 12 gauss Wire.write (0x60); // შეაჩერე I2C გადამცემი Wire.endTransmission ();

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr_Accl); // აირჩიეთ საკონტროლო რეგისტრი 7 Wire.write (0x26); // ნორმალური რეჟიმი, მაგნიტური უწყვეტი კონვერტაციის რეჟიმი Wire.write (0x00); // შეაჩერე I2C გადამცემი Wire.endTransmission (); დაგვიანება (300);

for (int i = 0; i <6; i ++) {// დაწყება I2C გადამცემი მავთული. beginTransmission (Addr_Gyro); // მონაცემთა რეგისტრაციის არჩევა Wire.write ((40 + i)); // შეაჩერე I2C გადამცემი Wire.endTransmission ();

// მოითხოვეთ მონაცემების 1 ბაიტი

მავთული. მოთხოვნა (Addr_Gyro, 1);

// წაიკითხეთ მონაცემების 6 ბაიტი

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

// მონაცემების კონვერტაცია

int xGyro = ((მონაცემები [1] * 256) + მონაცემები [0]); int yGyro = ((მონაცემები [3] * 256) + მონაცემები [2]); int zGyro = ((მონაცემები [5] * 256) + მონაცემები [4]);

for (int i = 0; i <6; i ++) {// დაწყება I2C გადამცემი მავთული. beginTransmission (Addr_Accl); // მონაცემთა რეგისტრაციის არჩევა Wire.write ((40 + i)); // შეაჩერე I2C გადამცემი Wire.endTransmission ();

// მოითხოვეთ მონაცემების 1 ბაიტი

მავთული. მოთხოვნა (Addr_Accl, 1);

// წაიკითხეთ მონაცემების 6 ბაიტი

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

// მონაცემების კონვერტაცია

int xAccl = ((მონაცემები [1] * 256) + მონაცემები [0]); int yAccl = ((მონაცემები [3] * 256) + მონაცემები [2]); int zAccl = ((მონაცემები [5] * 256) + მონაცემები [4]);

for (int i = 0; i <6; i ++) {// დაწყება I2C გადამცემი მავთული. beginTransmission (Addr_Accl); // მონაცემთა რეგისტრაციის არჩევა Wire.write ((8 + i)); // შეაჩერე I2C გადამცემი Wire.endTransmission ();

// მოითხოვეთ მონაცემების 1 ბაიტი

მავთული. მოთხოვნა (Addr_Accl, 1);

// წაიკითხეთ მონაცემების 6 ბაიტი

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

// მონაცემების კონვერტაცია

int xMag = ((მონაცემები [1] * 256) + მონაცემები [0]); int yMag = ((მონაცემები [3] * 256) + მონაცემები [2]); int zMag = ((მონაცემები [5] * 256) + მონაცემები [4]);

// სერიული მონიტორის მონაცემების გამოტანა

Serial.print ("ბრუნვის X- ღერძი:"); Serial.println (xGyro); Serial.print ("ბრუნვის Y- ღერძი:"); Serial.println (yGyro); Serial.print ("ბრუნვის Z- ღერძი:"); Serial.println (zGyro); Serial.print ("აჩქარება X- ღერძში:"); Serial.println (xAccl); Serial.print ("აჩქარება Y- ღერძში:"); Serial.println (yAccl); Serial.print ("აჩქარება Z- ღერძში:"); Serial.println (zAccl); Serial.print ("მაგნიტური ველი X- ღერძში:"); Serial.println (xMag); Serial.print ("მაგნიტური ველი Y- ღერძში:"); Serial.println (yMag); Serial.print ("მაგნიტური შეტანილი Z- ღერძში:"); Serial.println (zMag);

// მონაცემების გამოტანა ვებ სერვერზე

server.sendContent ("

DCUBE მაღაზია

www.dcubestore.com

"" LSM9DS0 სენსორი I2C მინი მოდული

);

server.sendContent ("

ბრუნვის X- ღერძი = " + სიმებიანი (xGyro)); server.sendContent ("

Y- ბრუნვის ღერძი = " + სიმებიანი (yGyro)); server.sendContent ("

ბრუნვის Z- ღერძი = " + სიმებიანი (zGyro)); server.sendContent ("

დაჩქარება X-Axis = " + სიმებიანი (xAccl)); server.sendContent ("

აჩქარება Y-Axis = " + სიმებიანი (yAccl)); server.sendContent ("

აჩქარება Z-Axis = " + სიმებიანი (zAccl)); server.sendContent ("

მაგნიტური შეტანილი X-Axis = " + სიმებიანი (xMag)); server.sendContent ("

მაგნიტური შეტანილი Y-Axis = " + სიმებიანი (yMag)); server.sendContent ("

მაგნიტური შეტანილი Z-Axis = " + სიმებიანი (zMag)); დაყოვნება (1000);}

ბათილად დაყენება ()

{// ინიციალიზაცია I2C კომუნიკაცია როგორც MASTER Wire.begin (2, 14); // სერიული კომუნიკაციის ინიციალიზაცია, დაყენებული baud rate = 115200 Serial.begin (115200);

// დაკავშირება WiFi ქსელთან

WiFi.begin (ssid, პაროლი);

// დაელოდეთ კავშირს

while (WiFi.status ()! = WL_CONNECTED) {დაგვიანებით (500); Serial.print ("."); } Serial.println (""); Serial.print ("დაკავშირებულია"); Serial.println (ssid);

// მიიღეთ ESP8266– ის IP მისამართი

Serial.print ("IP მისამართი:"); Serial.println (WiFi.localIP ());

// სერვერის დაწყება

server.on ("/", handleroot); server.begin (); Serial.println ("დაიწყო HTTP სერვერი"); }

ბათილი მარყუჟი ()

{server.handleClient (); }

ნაბიჯი 4: კოდექსის მუშაობა

კოდექსის მუშაობა
კოდექსის მუშაობა

ახლა გადმოწერეთ (ან git pull) კოდი და გახსენით Arduino IDE– ში.

შეადგინეთ და ატვირთეთ კოდი და იხილეთ გამომავალი სერიულ მონიტორზე.

შენიშვნა: ატვირთვის წინ, დარწმუნდით, რომ შეიყვანეთ თქვენი SSID ქსელი და პაროლი კოდში.

დააკოპირეთ ESP8266– ის IP მისამართი სერიული მონიტორიდან და ჩასვით თქვენს ბრაუზერში. თქვენ ნახავთ ვებ გვერდს ბრუნვის, აჩქარების და მაგნიტური ველის კითხვით 3 ღერძიდან.

სენსორის გამომავალი სერიულ მონიტორზე და ვებ სერვერზე ნაჩვენებია ზემოთ მოცემულ სურათზე.

ნაბიჯი 5: პროგრამები და მახასიათებლები

LSM9DS0 არის სისტემის პაკეტი, რომელშიც არის 3D ციფრული ხაზოვანი აჩქარების სენსორი, 3D ციფრული კუთხის სიჩქარის სენსორი და 3D ციფრული მაგნიტური სენსორი. ამ სამი თვისების გაზომვით თქვენ შეგიძლიათ მიიღოთ დიდი ცოდნა ობიექტის მოძრაობის შესახებ. დედამიწის მაგნიტური ველის ძალისა და მიმართულების გაზომვა მაგნეტომეტრით, შეგიძლიათ მიახლოებით თქვენი სათაური. თქვენს ტელეფონში ამაჩქარებელს შეუძლია შეაფასოს სიმძიმის ძალის მიმართულება და შეაფასოს ორიენტაცია (პორტრეტი, პეიზაჟი, ბრტყელი და ა. Quadcopters ერთად ჩაშენებული gyroscopes შეიძლება გამოიყურებოდეს მოულოდნელი რულონები ან მოედანი. ჩვენ შეგვიძლია გამოვიყენოთ ეს გლობალური პოზიციონირების სისტემაში (GPS).

კიდევ რამდენიმე პროგრამა მოიცავს შიდა ნავიგაციას, ჭკვიან მომხმარებლის ინტერფეისს, ჟესტების გაფართოებულ ამოცნობას, სათამაშო და ვირტუალური რეალობის შეყვანის მოწყობილობებს და ა.

ESP8266- ის დახმარებით ჩვენ შეგვიძლია გავზარდოთ მისი ტევადობა უფრო დიდ სიგრძეზე. ჩვენ შეგვიძლია გავაკონტროლოთ ჩვენი ტექნიკა და დავაკვირდეთ ჩვენს კომპიუტერს და მობილურ მოწყობილობებს. ჩვენ შეგვიძლია მონაცემების შენახვა და მართვა ინტერნეტით და შევისწავლოთ ისინი ნებისმიერ დროს ცვლილებებისთვის. სხვა პროგრამები მოიცავს სახლის ავტომატიზაციას, ქსელის ქსელს, სამრეწველო უკაბელო კონტროლს, ბავშვის მონიტორებს, სენსორულ ქსელებს, ტარებადი ელექტრონიკას, Wi-Fi ადგილმდებარეობის შესახებ მოწყობილობებს, Wi-Fi პოზიციის სისტემის შუქურებს.

ნაბიჯი 6: რესურსები შემდგომი წინსვლისთვის

დამატებითი ინფორმაციისთვის LSM9DS0 და ESP8266 შესახებ, გადახედეთ ქვემოთ მოცემულ ბმულებს:

  • LSM9DS0 სენსორების მონაცემთა ცხრილი
  • LSM9DS0 გაყვანილობის დიაგრამა
  • ESP8266 მონაცემთა ცხრილი

გირჩევთ: