Სარჩევი:

გეოლოკაცია: 5 ნაბიჯი
გეოლოკაცია: 5 ნაბიჯი

ვიდეო: გეოლოკაცია: 5 ნაბიჯი

ვიდეო: გეოლოკაცია: 5 ნაბიჯი
ვიდეო: GPS აპლიკაციები 2024, ივლისი
Anonim
გეოლოკაცია
გეოლოკაცია

ეს არის ჩემი საზაფხულო სტაჟირების პროექტი. მე ნამდვილად მიკვირს, როდესაც მესმის, რომ ჩვენ შეგვიძლია მოვძებნოთ ნებისმიერი მოწყობილობის ადგილმდებარეობა GPS მოდულის გამოყენების გარეშე მხოლოდ NodeMCU– ს გამოყენებით. ამის საშუალებით ჩვენ შეგვიძლია მივაკვლიოთ ნებისმიერ მოწყობილობას.თქვენ ასევე გაგიკვირდებათ როგორ შეგვიძლია მოწყობილობის კვალი მხოლოდ WiFi- ს გამოყენებით. აქ არის სახის აღწერილობა მის გასაგებად.

  • · ეს არის თქვენი თითქმის ყველა WiFi სკანირება.
  • · ამ მოწყობილობის მდებარეობის გაგზავნა Google- ში Google API გამოყენებით
  • · ამის თანახმად, იპოვეთ თქვენი მოწყობილობის ადგილმდებარეობა
  • · თქვენ გაქვთ ძლიერი ქსელური კავშირი ამ პროექტისთვის.

ნაბიჯი 1: ნაწილები და ინსტრუმენტი

ნაწილები

  • NodeMCU (ESP8266 1.0 12E)
  • USB კაბელი

ინსტრუმენტები

Arduino IDE NodeMcu 1.0 12E დაფით

Google API

ნაბიჯი 2: იპოვეთ Google API

იპოვნეთ Google API
იპოვნეთ Google API
იპოვნეთ Google API
იპოვნეთ Google API
იპოვნეთ Google API
იპოვნეთ Google API
  • გახსენით თქვენი ბრაუზერი და ჩაწერეთ: console.developer.google.com
  • შექმენით ახალი პროექტი
  • ახალი პროექტის შექმნის შემდეგ დააჭირეთ რწმუნებათა სიგელს
  • დააჭირეთ API ღილაკს
  • თქვენი API გასაღები გენერირებულია

    ადვილად გასაგებად იხილეთ შემდეგი სურათი |>

ნაბიჯი 3: დააინსტალირეთ NodeMCu Arduino IDE– ზე

დააინსტალირეთ NodeMCu Arduino IDE– ზე
დააინსტალირეთ NodeMCu Arduino IDE– ზე
დააინსტალირეთ NodeMCu Arduino IDE– ზე
დააინსტალირეთ NodeMCu Arduino IDE– ზე
დააინსტალირეთ NodeMCu Arduino IDE– ზე
დააინსტალირეთ NodeMCu Arduino IDE– ზე
  • ჩამოტვირთეთ Arduino IDE შემდეგი ბმულიდან:- https:// www. მთავარი/პროგრამული უზრუნველყოფა arduino.cc/en/
  • დაამატეთ Node MCu დაფა Arduino IDE– ზე
  • NodeMCU– ზე კოდის ასატვირთად თქვენ უნდა დაამატოთ NodeMCu დაფა ARDUINO IDE– ზე.

    • გადადით ფაილზე და პარამეტრებზე Arduino IDE– ში
    • და დამატებითი საბჭოს მენეჯმენტის განყოფილებაში დააკოპირეთ შემდეგი ბმული
    • arduino.esp8266.com/stable/package_esp8266c…
    • და დააწკაპუნეთ Ok
    • დაფა გადმოწერილია
    • გადადით ინსტრუმენტებსა და დაფაზე და აირჩიეთ NodeMCU 1.0 12E
    • იხილეთ ავობეს სურათი ადვილად გასაგები

ნაბიჯი 4: ჩამოტვირთეთ ArduinoJson ბიბლიოთეკა

ჩამოტვირთეთ ArduinoJson ბიბლიოთეკა
ჩამოტვირთეთ ArduinoJson ბიბლიოთეკა
  • გადადით
  • ესკიზი მოიცავს ბიბლიოთეკას მართვა ბიბლიოთეკა

    ჩაწერეთ Arduino Json საძიებო ველში

    ჩამოტვირთეთ ArduinoJson ბიბლიოთეკის უახლესი ვერსია

    ბიბლიოთეკის გადმოტვირთვის შემდეგ დააჭირეთ დახურვას

    ბიბლიოთეკის დამატება აქედან

    ესკიზი მოიცავს ბიბლიოთეკასარდინო ჯსონი

ნაბიჯი 5: პროგრამა

ატვირთეთ შემდეგი პროგრამა NodeMCU დაფაზე. და ნახეთ თქვენი მოწყობილობის (NodeMCU 1.0 12E დაფა) მდებარეობა სერიულ მონიტორზე.

#ჩართეთ

#ჩართეთ

#ჩართეთ

char myssid = "შენი SSID"; // თქვენი ქსელის SSID (სახელი)

char mypass = "შენი პაროლი"; // თქვენი ქსელის პაროლი

// რწმუნებათა სიგელები Google GeoLocation API– სთვის…

const char* მასპინძელი = "www.googleapis.com";

სიმებიანი thisPage = "/geolocation/v1/geolocate? Key =";

// --- მიიღეთ google maps ap გასაღები აქ:

developers.google.com/maps/documentation/geolocation/intro

სიმებიანი გასაღები = "თქვენი Google API გასაღები"; // იპოვეთ ნაბიჯი 2 -დან

ინსტრუქცია

int სტატუსი = WL_IDLE_STATUS;

სიმებიანი jsonString = "{ n";

ორმაგი გრძედი = 0.0;

ორმაგი გრძედი = 0.0;

ორმაგი სიზუსტე = 0.0;

int more_text = 1; // დააყენეთ 1 -ზე მეტი გამართვის გამომუშავებისთვის

void setup () {

სერიული.დაწყება (9600);

Serial.println ("დაწყება");

// დააყენეთ WiFi სადგურის რეჟიმში და

გათიშეთ AP– დან, თუ ის ადრე იყო დაკავშირებული

WiFi.mode (WIFI_STA);

WiFi. გათიშვა ();

დაგვიანება (100);

Serial.println ( დაყენება

შესრულებულია );

// ვიწყებთ a– სთან დაკავშირებით

WiFi ქსელი

Serial.print ( დაკავშირება

);

Serial.println (myssid);

WiFi. დასაწყისი (myssid, mypass);

ხოლო (WiFi.status ()! = WL_CONNECTED) {

დაგვიანება (500);

Serial.print (".");

}

Serial.println (".");

}

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

char bssid [6];

DynamicJsonBuffer jsonBuffer;

Serial.println ("სკანირების დაწყება");

// WiFi.scanNetworks დაბრუნდება

ნაპოვნი ქსელების რაოდენობა

int n = WiFi.scanNetworks ();

Serial.println ("სკანდონი");

თუ (n == 0)

Serial.println ("ქსელები ვერ მოიძებნა");

სხვა

{

სერიული. ბეჭდვა (n);

Serial.println ("ქსელები აღმოაჩინეს …");

თუ (მეტი_ტექსტი) {

// დაბეჭდე ფორმატირებული json…

Serial.println ("{");

Serial.println ("\" homeMobileCountryCode / ": 234,"); // ეს არის ნამდვილი გაერთიანებული სამეფოს MCC

Serial.println ("\" homeMobileNetworkCode / ": 27,"); // და ნამდვილი გაერთიანებული სამეფოს MNC

Serial.println ("\" რადიოტიპი / ": \" gsm / ","); // gsm– ისთვის

Serial.println ("\" გადამზიდავი / ": \" ვოდაფონი / ","); // ასოცირდება Vodafone– თან

Serial.println ("\" cellTowers / ": ["); // მე არ ვაცნობებ საკნის კოშკებს

Serial.println ("],");

Serial.println ("\" wifiAccessPoints / ": [");

for (int i = 0; i <n; ++ i)

{

Serial.println ("{");

Serial.print ("\" macAddress / ": \" ");

Serial.print (WiFi. BSSIDstr (i));

Serial.println ("\", ");

Serial.print ("\" signalStrength / ":");

Serial.println (WiFi. RSSI (i));

თუ (i <n - 1)

{

Serial.println ("},");

}

სხვა

{

Serial.println ("}");

}

}

Serial.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// ახლა ააშენე jsonString…

jsonString = "{ n";

jsonString += "\" homeMobileCountryCode / ": 234, / n"; // ეს არის ნამდვილი გაერთიანებული სამეფოს MCC

jsonString += "\" homeMobileNetworkCode / ": 27, / n"; // და ნამდვილი გაერთიანებული სამეფოს MNC

jsonString += "\" რადიოტიპი / ": \" gsm / ", / n"; // gsm– ისთვის

jsonString += "\" გადამზიდავი / ": \" Vodafone / ", / n"; // ასოცირდება Vodafone– თან

jsonString += "\" wifiAccessPoints / ": [n";

for (int j = 0; j <n; ++ j)

{

jsonString += "{ n";

jsonString += "\" macAddress / ": \" ";

jsonString += (WiFi. BSSIDstr (j));

jsonString += "\", / n ";

jsonString += "\" signalStrength / ":";

jsonString += WiFi. RSSI (j);

jsonString += "\ n";

თუ (j <n - 1)

{

jsonString += "}, / n";

}

სხვა

{

jsonString += "} n";

}

}

jsonString += ("] n");

jsonString += ("} n");

//--------------------------------------------------------------------

Serial.println ("");

WiFiClientSecure კლიენტი;

// დაუკავშირდით კლიენტს და განახორციელეთ api ზარი

Serial.print ("მოთხოვნის URL:");

// ---- მიიღეთ Google Maps Api Key აქ, ბმული:

Serial.println ("https://" + (სიმებიანი) მასპინძელი + ეს გვერდი + "განათავსე-შენი-GOOGLE-MAPS-API-KEY-HERE");

Serial.println ("");

if (client.connect (მასპინძელი, 443)) {

Serial.println ("დაკავშირებულია");

client.println ("POST" + thisPage + key + "HTTP/1.1");

client.println ("მასპინძელი:" + (სიმებიანი) მასპინძელი);

client.println ("კავშირი: დახურვა");

client.println ("შინაარსი-ტიპი: პროგრამა/json");

client.println ("მომხმარებელი-აგენტი: Arduino/1.0");

client.print ("შინაარსი-სიგრძე:");

client.println (jsonString.length ());

client.println ();

client.print (jsonString);

დაგვიანება (500);

}

// წაიკითხეთ და გაანალიზეთ ყველა სტრიქონი

პასუხი სერვერზე

while (client.available ()) {

სიმებიანი ხაზი = client.readStringUntil ('\ r');

თუ (მეტი_ტექსტი) {

სერიული. ბეჭდვა (სტრიქონი);

}

JsonObject & root = jsonBuffer.parseObject (ხაზი);

თუ (root.success ()) {

გრძედი = ფესვი ["მდებარეობა"] ["ლათ"];

გრძედი = ფესვი ["მდებარეობა"] ["lng"];

სიზუსტე = ფესვი ["სიზუსტე"];

}

}

Serial.println ("კავშირის დახურვა");

Serial.println ();

client.stop ();

Serial.print ("გრძედი =");

Serial.println (გრძედი, 6);

Serial.print ("განედი =");

Serial.println (გრძედი, 6);

Serial.print ("სიზუსტე =");

Serial.println (სიზუსტე);

დაგვიანება (10000);

Serial.println ();

Serial.println ("გადატვირთვა …");

Serial.println ();

დაგვიანება (2000);

}

გირჩევთ: