Mục lục:
- Bước 1: Bộ phận & Công cụ
- Bước 2: Tìm API Google
- Bước 3: Thiết lập NodeMCu trên Arduino IDE
- Bước 4: Tải xuống Thư viện ArduinoJson
- Bước 5: Chương trình
Video: ĐỊA LÍ: 5 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Đó 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
- 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
- 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
- Đ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:
Cách khắc phục sự cố pin 3.3V trong đĩa nhãn trắng bị rút khỏi ổ đĩa Easystore 8TB của Western Digital: 6 bước
Cách khắc phục sự cố pin 3.3V trong ổ đĩa nhãn trắng bị ngắt khỏi ổ đĩa Easystore 8TB Western Digital: Nếu bạn thấy hướng dẫn này hữu ích, vui lòng xem xét đăng ký kênh Youtube của tôi để xem các hướng dẫn tự làm sắp tới liên quan đến công nghệ. Cảm ơn bạn
Giải phóng dung lượng ổ đĩa trong Windows 10 bằng tính năng Dọn dẹp ổ đĩa: 7 bước
Giải phóng dung lượng ổ đĩa trong Windows 10 bằng tính năng Dọn dẹp ổ đĩa: Việc dọn dẹp ổ đĩa cứng không yêu cầu sử dụng các công cụ của bên thứ ba. Việc này có thể được thực hiện nhanh chóng bằng cách sử dụng ứng dụng cài sẵn trong windows 10 có tên “ Disk Cleanup ” và miễn phí. Bạn sẽ cần các mục sau trước khi bắt đầu: 1) Deskop hoặc Laptop2) Windows 10 i
Loa có giá đĩa DVD ẩn & đầu đĩa DVD: 11 bước (có hình ảnh)
Loa có Giá đỡ DVD & Đầu đĩa DVD Ẩn: Tôi thích những chiếc loa lớn vì chúng trông thật bắt mắt. Tuy nhiên, với sự ra đời của các loa vệ tinh nhỏ, bạn không thực sự thấy nhiều loa tháp lớn nữa. Gần đây tôi đã bắt gặp một cặp loa tháp đã bị cháy, nhưng khác với
Giá đỡ đĩa CD từ đĩa CD cũ: 6 bước (có hình ảnh)
Giá đỡ đĩa CD từ đĩa CD cũ: Giá đĩa CD này trông thực sự tốt (nếu hơi kitsch) và không phải là khoa học tên lửa để chế tạo. Bạn chỉ cần đo lường công cụ đúng cách và cẩn thận trong khi làm việc, hoặc, giống như tôi, bạn sẽ phải bắt đầu lại ba lần
Ổ đĩa flash cuộn giấy vệ sinh "Ổ đĩa xả": 6 bước
Ổ đĩa flash cuộn giấy vệ sinh "The Flush Drive": Ồ không! Tôi hết giấy vệ sinh! Nhưng … thay vì ném cuộn rỗng đi, tại sao không sử dụng lại nó?