Mục lục:

ĐỊA LÍ: 5 bước
ĐỊA LÍ: 5 bước

Video: ĐỊA LÍ: 5 bước

Video: ĐỊA LÍ: 5 bước
Video: Địa lí 5 - Bài 1 : Việt Nam - Đất nước chúng ta 2024, Tháng bảy
Anonim
ĐỊA ĐIỂM
ĐỊA ĐIỂM

Đó là Dự án Thực tập Mùa hè của tôi. Tôi thực sự ngạc nhiên khi nghe nói rằng chúng tôi có thể theo dõi vị trí của bất kỳ thiết bị nào mà không cần sử dụng mô-đun GPS chỉ sử dụng NodeMCU. Thông qua đó, chúng tôi có thể theo dõi bất kỳ thiết bị nào. Bạn cũng ngạc nhiên làm thế nào chúng tôi có thể theo dõi thiết bị chỉ bằng cách sử dụng WiFi. Dưới đây là mô tả sắp xếp để hiểu nó.

  • · Nó quét gần như tất cả WiFi của bạn.
  • · Gửi vị trí thiết bị này tới Google bằng API Google
  • · Theo điều này Nó định vị vị trí thiết bị của bạn
  • · Bạn có kết nối mạng mạnh cho Dự án này.

Bước 1: Bộ phận & Công cụ

Các bộ phận

  • NodeMCU (ESP8266 1.0 12E)
  • Cáp USB

Công cụ

Arduino IDE với NodeMcu 1.0 12E Board

API Google

Bước 2: Tìm API Google

Tìm API Google
Tìm API Google
Tìm API Google
Tìm API Google
Tìm API Google
Tìm API Google
  • Mở Trình duyệt của bạn và nhập: console.developer.google.com
  • Tạo một dự án mới
  • Sau khi Tạo dự án mới, hãy nhấp vào thông tin đăng nhập
  • Nhấp vào Khóa API
  • Khóa API của bạn đã được tạo

    Để dễ hiểu, hãy xem hình sau |>

Bước 3: Thiết lập NodeMCu trên Arduino IDE

Thiết lập NodeMCu trên Arduino IDE
Thiết lập NodeMCu trên Arduino IDE
Thiết lập NodeMCu trên Arduino IDE
Thiết lập NodeMCu trên Arduino IDE
Thiết lập NodeMCu trên Arduino IDE
Thiết lập NodeMCu trên Arduino IDE
  • Tải xuống Arduino IDE từ Liên kết sau: - https:// www. Main / Software arduino.cc/en/
  • Thêm bảng Node MCu trên Arduino IDE
  • Để tải lên mã trên NodeMCU, bạn phải thêm bảng NodeMCu trên ARDUINO IDE.

    • ĐI tới tệp và tùy chọn trong Arduino IDE
    • Và trong phần quản lý Ban bổ sung, hãy sao chép liên kết sau
    • arduino.esp8266.com/stable/package_esp8266c…
    • và nhấp vào Ok
    • Ban được tải xuống
    • Đi tới công cụ và bảng và chọn NodeMCU 1.0 12E
    • Xem hình avobe để dễ hiểu

Bước 4: Tải xuống Thư viện ArduinoJson

Tải xuống Thư viện ArduinoJson
Tải xuống Thư viện ArduinoJson
  • Đi đến
  • Thư viện Sketch Bao gồm Thư viện Quản lý Thư viện

    Nhập Arduino Json vào hộp tìm kiếm

    Tải xuống phiên bản mới nhất của thư viện ArduinoJson

    sau khi tải xuống thư viện bấm đóng

    Thêm thư viện từ

    SketchincludeLibraryArduinoJson

Bước 5: Chương trình

Tải lên chương trình sau trên bảng NodeMCU. và xem vị trí thiết bị của bạn (bo mạch NodeMCU 1.0 12E) trên Màn hình nối tiếp.

#bao gồm

#bao gồm

#bao gồm

char myssid = "SSID của bạn"; // SSID mạng của bạn (tên)

char mypass = "Mật khẩu của bạn"; // mật khẩu mạng của bạn

// Thông tin đăng nhập cho API Google GeoLocation…

const char * Host = "www.googleapis.com";

String thisPage = "/ geolocation / v1 / geolocate? Key =";

// --- Nhận khóa ap google maps tại đây:

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

String key = "Khóa API Google của bạn"; // Tìm từ bước 2

Hướng dẫn

int status = WL_IDLE_STATUS;

Chuỗi jsonString = "{ n";

vĩ độ kép = 0,0;

kinh độ kép = 0,0;

độ chính xác kép = 0,0;

int more_text = 1; // đặt thành 1 để có nhiều đầu ra gỡ lỗi hơn

void setup () {

Serial.begin (9600);

Serial.println ("Bắt đầu");

// Đặt WiFi thành chế độ trạm và

ngắt kết nối khỏi một AP nếu nó đã được kết nối trước đó

WiFi.mode (WIFI_STA);

WiFi.disconnect ();

chậm trễ (100);

Serial.println ( Thiết lập

xong );

// Chúng tôi bắt đầu bằng cách kết nối với

Mạng wifi

Serial.print ( Đang kết nối với

);

Serial.println (myssid);

WiFi.begin (myssid, mypass);

trong khi (WiFi.status ()! = WL_CONNECTED) {

chậm trễ (500);

Serial.print (".");

}

Serial.println (".");

}

void loop () {

char bssid [6];

DynamicJsonBuffer jsonBuffer;

Serial.println ("bắt đầu quét");

// WiFi.scanNetworks sẽ trở lại

số lượng mạng được tìm thấy

int n = WiFi.scanNetworks ();

Serial.println ("scandone");

nếu (n == 0)

Serial.println ("không tìm thấy mạng nào");

khác

{

Serial.print (n);

Serial.println ("mạng tìm thấy…");

if (more_text) {

// In ra json đã định dạng…

Serial.println ("{");

Serial.println ("\" homeMobileCountryCode / ": 234,"); // đây là MCC thực của Vương quốc Anh

Serial.println ("\" homeMobileNetworkCode / ": 27,"); // và một MNC thực của Vương quốc Anh

Serial.println ("\" radioType / ": \" gsm / ","); // cho gsm

Serial.println ("\" nhà cung cấp dịch vụ / ": \" Vodafone / ","); // liên kết với Vodafone

Serial.println ("\" cellTowers / ": ["); // Tôi không báo cáo bất kỳ tháp di động nào

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));

nếu (i <n - 1)

{

Serial.println ("},");

}

khác

{

Serial.println ("}");

}

}

Serial.println ("]");

Serial.println ("}");

}

Serial.println ("");

}

// bây giờ xây dựng jsonString…

jsonString = "{ n";

jsonString + = "\" homeMobileCountryCode / ": 234, / n"; // đây là MCC thực của Vương quốc Anh

jsonString + = "\" homeMobileNetworkCode / ": 27, / n"; // và một MNC thực của Vương quốc Anh

jsonString + = "\" radioType / ": \" gsm / ", / n"; // cho gsm

jsonString + = "\" nhà cung cấp dịch vụ / ": \" Vodafone / ", / n"; // liên kết với 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";

nếu (j <n - 1)

{

jsonString + = "}, / n";

}

khác

{

jsonString + = "} n";

}

}

jsonString + = ("] n");

jsonString + = ("} n");

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

Serial.println ("");

Máy khách WiFiClientSecure;

// Kết nối với máy khách và thực hiện cuộc gọi api

Serial.print ("URL yêu cầu:");

// ---- Nhận Khóa Api của Google Maps tại đây, Liên kết:

Serial.println ("https://" + (Chuỗi) Máy chủ + thisPage + "PUT-YOUR-GOOGLE-MAPS-API-KEY-HERE");

Serial.println ("");

if (client.connect (Host, 443)) {

Serial.println ("Đã kết nối");

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

client.println ("Máy chủ:" + (Chuỗi) Máy chủ);

client.println ("Kết nối: đóng");

client.println ("Loại-Nội dung: ứng dụng / json");

client.println ("Tác nhân người dùng: Arduino / 1.0");

client.print ("Nội dung-Độ dài:");

client.println (jsonString.length ());

client.println ();

client.print (jsonString);

chậm trễ (500);

}

// Đọc và phân tích cú pháp tất cả các dòng của

câu trả lời từ máy chủ

while (client.available ()) {

String line = client.readStringUntil ('\ r');

if (more_text) {

Serial.print (dòng);

}

JsonObject & root = jsonBuffer.parseObject (dòng);

if (root.success ()) {

latitude = root ["vị trí"] ["lat"];

longitude = root ["location"] ["lng"];

độ chính xác = root ["độ chính xác"];

}

}

Serial.println ("đóng kết nối");

Serial.println ();

client.stop ();

Serial.print ("Latitude =");

Serial.println (vĩ độ, 6);

Serial.print ("Kinh độ =");

Serial.println (kinh độ, 6);

Serial.print ("Độ chính xác =");

Serial.println (độ chính xác);

trì hoãn (10000);

Serial.println ();

Serial.println ("Đang khởi động lại…");

Serial.println ();

chậm trễ (2000);

}

Đề xuất: