תוכן עניינים:
- שלב 1: חלקים וכלי
- שלב 2: מצא את Google API
- שלב 3: הגדר את NodeMCu ב- Arduino IDE
- שלב 4: הורד את ספריית ArduinoJson
- שלב 5: תכנית
וִידֵאוֹ: גיאולוגציה: 5 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
זה פרויקט ההתמחות הקיצית שלי. אני באמת מפתיע כשאני שומע שאנחנו יכולים לאתר מיקום כל מכשיר בלי להשתמש במודול GPS רק באמצעות NodeMCU. באמצעות זה אנו יכולים לעקוב אחר כל מכשיר. אתה גם מפתיע כיצד נוכל לאתר מכשיר באמצעות WiFi בלבד. להלן תיאור המיון כדי להבין אותו.
- · זה סרוק את כמעט כל ה- WiFi שלך.
- · שלח את מיקום המכשיר הזה ל- Google באמצעות Google API
- · על פי זה זה אתר את מיקום המכשיר שלך
- · יש לך חיבור רשת חזק לפרויקט זה.
שלב 1: חלקים וכלי
חלקים
- NodeMCU (ESP8266 1.0 12E)
- כבל יו אס בי
כלים
Arduino IDE עם לוח NodeMcu 1.0 12E
ממשק API של Google
שלב 2: מצא את Google API
- פתח את הדפדפן שלך והקלד: console.developer.google.com
- צור פרויקט חדש
- לאחר יצירת פרוייקט חדש לחץ על אישורים
- לחץ על מפתח API
-
מפתח ה- API שלך נוצר
להבנה קלה ראו את התמונה הבאה |>
שלב 3: הגדר את NodeMCu ב- Arduino IDE
- הורד את Arduino IDE מהקישור הבא:- https:// www. ראשי/תוכנה arduino.cc/iw/
- הוסף לוח Node MCu ב- Arduino IDE
-
להעלאת קוד ב- NodeMCU עליך להוסיף את לוח NodeMCu ב- ARDUINO IDE.
- עבור לקובץ והעדפות ב- Arduino IDE
- ובסעיף ניהול מועצת המנהלים הנוספת העתק את הקישור הבא
- arduino.esp8266.com/stable/package_esp8266c…
- ולחץ על אישור
- הלוח מוריד
- עבור אל הכלים והלוח ובחר NodeMCU 1.0 12E
- עיין בתמונת avobe להבנה קלה
שלב 4: הורד את ספריית ArduinoJson
- עבור אל
סקיצה כלול ספרייה נהל ספריה
הקלד Arduino Json בתיבת החיפוש
הורד את הגירסה העדכנית ביותר של ספריית ArduinoJson
לאחר הורדת הספרייה לחץ על סגור
הוסף ספרייה מ
SketchincludeLibraryArduinoJson
שלב 5: תכנית
העלה את התוכנית הבאה ללוח NodeMCU. וראה את מיקום המכשיר שלך (לוח NodeMCU 1.0 12E) במסך סידורי.
#לִכלוֹל
#לִכלוֹל
#לִכלוֹל
char myssid = "ה- SSID שלך"; // SSID הרשת שלך (שם)
char mypass = "הסיסמה שלך"; // סיסמת הרשת שלך
// אישורים לממשק API GeoLocation של Google …
const char* Host = "www.googleapis.com";
String thisPage = "/geolocation/v1/geolocate? Key =";
// --- קבל כאן מפתח ap של google maps:
developers.google.com/maps/documentation/geolocation/intro
String key = "מפתח ה- API של Google שלך"; // מצא משלב 2
הוראה
int int = WL_IDLE_STATUS;
מחרוזת jsonString = "{ n";
קו רוחב כפול = 0.0;
אורך כפול = 0.0;
דיוק כפול = 0.0;
int more_text = 1; // מוגדר ל -1 עבור פלט באגים נוסף
הגדרת בטל () {
Serial.begin (9600);
Serial.println ("התחל");
// הגדר את WiFi למצב תחנה ו
נתק מ- AP אם הוא היה מחובר בעבר
WiFi.mode (WIFI_STA);
WiFi.disconnect ();
עיכוב (100);
Serial.println ( התקנה
בוצע );
// אנו מתחילים בחיבור לא
רשת WiFi
Serial.print ( מתחבר אל
);
Serial.println (myssid);
WiFi.begin (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 ("scandone");
אם (n == 0)
Serial.println ("לא נמצאו רשתות");
אַחֵר
{
Serial.print (n);
Serial.println ("רשתות נמצאו …");
אם (more_text) {
// הדפס את ה- json המעוצב …
Serial.println ("{");
Serial.println ("\" homeMobileCountryCode / ": 234,"); // זהו MCC אמיתי בבריטניה
Serial.println ("\" homeMobileNetworkCode / ": 27,"); // ו- MNC בריטי אמיתי
Serial.println ("\" radioType / ": \" gsm / ","); // עבור gsm
Serial.println ("\" ספק / ": \" Vodafone / ","); // קשור ל- Vodafone
Serial.println ("\" cellTowers / ": ["); // אני לא מדווח על מגדלי סלולר
Serial.println ("],");
Serial.println ("\" wifiAccessPoints / ": [");
עבור (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 += "\" radioType / ": \" gsm / ", / n"; // עבור gsm
jsonString += "\" ספק / ": \" Vodafone / ", / n"; // קשור ל- Vodafone
jsonString += "\" wifiAccessPoints / ": [n";
עבור (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 מבקשת:");
// ---- קבל כאן את מפתח ה- Api של מפות Google, קישור:
Serial.println ("https://" + (String) Host + thisPage + "PUT-YOUR-GOOGLE-MAPS-API-KEY-HERE");
Serial.println ("");
if (client.connect (Host, 443)) {
Serial.println ("מחובר");
client.println ("POST" + thisPage + מפתח + "HTTP/1.1");
client.println ("Host:" + (String) Host);
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');
אם (more_text) {
Serial.print (שורה);
}
JsonObject & root = jsonBuffer.parseObject (line);
if (root.success ()) {
latitude = root ["מיקום"] ["lat"];
longitude = root ["מיקום"] ["lng"];
דיוק = שורש ["דיוק"];
}
}
Serial.println ("סגירת חיבור");
Serial.println ();
client.stop ();
Serial.print ("Latitude =");
Serial.println (קו הרוחב, 6);
Serial.print ("אורך =");
Serial.println (אורך, 6);
Serial.print ("דיוק =");
Serial.println (דיוק);
עיכוב (10000);
Serial.println ();
Serial.println ("הפעלה מחדש …");
Serial.println ();
עיכוב (2000);
}
מוּמלָץ:
כיצד לבצע אנטנת BiQuade כפולה 4G LTE שלבים פשוטים: 3 שלבים
כיצד להפוך אנטנת 4G LTE BiQuade כפולה לשלבים קלים: לרוב לא עמדתי בפני, אין לי עוצמת אות טובה לעבודות היום-יומיות שלי. לכן. אני מחפש ומנסה סוגים שונים של אנטנות אבל לא עובד. לאחר בזבוז זמן מצאתי אנטנה שאני מקווה לייצר ולבדוק, כי זה עקרון הבנייה לא
עיצוב משחק בקפיצה ב -5 שלבים: 5 שלבים
עיצוב משחק בקפיצה ב -5 שלבים: פליק הוא דרך פשוטה מאוד ליצור משחק, במיוחד משהו כמו פאזל, רומן חזותי או משחק הרפתקאות
זיהוי פנים ב- Raspberry Pi 4B בשלושה שלבים: 3 שלבים
זיהוי פנים ב- Raspberry Pi 4B בשלושה שלבים: במדריך זה אנו הולכים לבצע זיהוי פנים ב- Raspberry Pi 4 עם Shunya O/S באמצעות ספריית Shunyaface. Shunyaface היא ספריית זיהוי/זיהוי פנים. הפרויקט שואף להשיג את מהירות הזיהוי והזיהוי המהירה ביותר עם
מהדורת ליל כל הקדושים של Arduino - מסך קופץ זומבים (שלבים עם תמונות): 6 שלבים
מהדורת ליל כל הקדושים של Arduino - מסך פופ -אאוט של זומבים (צעדים עם תמונות): רוצה להפחיד את החברים שלך ולעשות רעש צורח בהלווין? או סתם רוצה לעשות מתיחה טובה? המסך הקופץ הזה של זומבים יכול לעשות זאת! במדריך זה אלמד אותך כיצד ליצור זומבים קופצים בקלות באמצעות Arduino. ה- HC-SR0
כיצד להתקין תוספים בוורדפרס בשלושה שלבים: 3 שלבים
כיצד להתקין תוספים בוורדפרס בשלושה שלבים: במדריך זה אראה לך את השלבים החיוניים להתקנת תוסף וורדפרס לאתר שלך. בעיקרון אתה יכול להתקין תוספים בשתי דרכים שונות. השיטה הראשונה היא באמצעות ftp או דרך cpanel. אבל אני לא אפרט את זה כיוון שזה באמת משלים