Мазмуну:
- 1 -кадам: Бөлүктөр жана курал
- 2 -кадам: Google API табыңыз
- 3 -кадам: Arduino IDEде NodeMCu орнотуңуз
- 4 -кадам: ArduinoJson китепканасын жүктөп алыңыз
- 5 -кадам: Программа
Video: GEOLOACATION: 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Бул менин жайкы практика долбоорум. Мен GPS модулун колдонбостон, каалаган түзмөктүн жайгашкан жерин NodeMCU аркылуу гана байкоого болорун укканымда таң калам. Бул аркылуу биз каалаган түзмөктү байкоого болот. Сиз ошондой эле Wi -Fi аркылуу түзмөктү кантип издей аларыбызга таң каласыз. Бул жерде аны түшүнүү үчүн сорттун сүрөттөлүшү.
- · Бул дээрлик бардык WiFiңызды сканерлейт.
- · Бул түзмөктүн жайгашкан жерин Google API аркылуу Googleга жөнөтүңүз
- · Буга ылайык, бул сиздин түзмөгүңүздүн жайгашкан жерин табат
- · Сизде бул долбоор үчүн күчтүү тармактык байланыш бар.
1 -кадам: Бөлүктөр жана курал
Бөлүктөр
- NodeMCU (ESP8266 1.0 12E)
- USB кабели
Куралдар
NodeMcu 1.0 12E тактасы менен Arduino IDE
Google API
2 -кадам: Google API табыңыз
- Браузериңизди ачыңыз жана териңиз: console.developer.google.com
- Жаңы долбоор түзүү
- Жаңы долбоорду түзгөндөн кийин ишеним грамотасын чыкылдатыңыз
- API ачкычын чыкылдатыңыз
-
Сиздин API ачкычы түзүлдү
Оңой түшүнүү үчүн төмөнкү сүрөттү караңыз |>
3 -кадам: Arduino IDEде NodeMCu орнотуңуз
- Төмөнкү шилтемеден Arduino IDE жүктөп алыңыз:- https:// www. Негизги/Программалык камсыздоо arduino.cc/en/
- Arduino IDEге Node MCu тактасын кошуу
-
NodeMCUго кодду жүктөө үчүн ARDUINO IDEге NodeMCu тактасын кошушуңуз керек.
- Arduino IDEдеги файлга жана артыкчылыкка өтүңүз
- Жана кошумча башкармалыктын бөлүмүндө төмөнкү шилтемени көчүрүңүз
- arduino.esp8266.com/stable/package_esp8266c…
- жана чыкылдатыңыз Ok
- Такта жүктөлүп алынды
- Куралдарга жана такталарга өтүңүз жана NodeMCU 1.0 12E тандаңыз
- Оңой түшүнүү үчүн avobe сүрөтүн караңыз
4 -кадам: ArduinoJson китепканасын жүктөп алыңыз
- Баруу
Эскизге китепкананы кошуу Китепкананы башкаруу
Издөө кутучасына Arduino Json териңиз
ArduinoJson китепканасынын акыркы версиясын жүктөп алыңыз
китепкананы жүктөп алгандан кийин жабууну басыңыз
Бул жерден китепкана кошуу
SketchincludeLibraryArduinoJson
5 -кадам: Программа
Төмөнкү программаны NodeMCU тактасына жүктөңүз. жана түзмөгүңүздү (NodeMCU 1.0 12E тактасы) Сериялык монитордон көрүңүз.
#кошуу
#кошуу
#кошуу
char myssid = "Сиздин SSID"; // сиздин тармак SSID (аты)
char mypass = "Сиздин сырсөзүңүз"; // сиздин тармак сырсөзүңүз
// Google GeoLocation API үчүн ишеним грамоталары…
const char* Host = "www.googleapis.com";
String thisPage = "/geolocation/v1/geolocate? Key =";
// --- Google карталарынын ап ачкычын бул жерден алыңыз:
developers.google.com/maps/documentation/geolocation/intro
String key = "Сиздин Google API ачкычыңыз"; // 2 -кадамдан табуу
Нускама
int абалы = WL_IDLE_STATUS;
String jsonString = "{ n";
кош кеңдик = 0.0;
кош бойлуулук = 0.0;
кош тактык = 0.0;
int more_text = 1; // мүчүлүштүктөрдү оңдоо үчүн 1ге коюңуз
жараксыз орнотуу () {
Serial.begin (9600);
Serial.println ("Баштоо");
// WiFi'ди станция режимине коюңуз жана
ал мурда туташкан болсо, АРдан ажыратыңыз
WiFi.mode (WIFI_STA);
WiFi.disconnect ();
кечиктирүү (100);
Serial.println ( Орнотуу
бүттү );
// Биз а туташуудан баштайбыз
WiFi тармагы
Serial.print ( Кошулуу
);
Serial.println (myssid);
WiFi.begin (myssid, mypass);
while (WiFi.status ()! = WL_CONNECTED) {
кечигүү (500);
Serial.print (".");
}
Serial.println (".");
}
void loop () {
char bssid [6];
DynamicJsonBuffer jsonBuffer;
Serial.println ("скандоону баштоо");
// WiFi.scanNetworks кайтып келет
табылган тармактардын саны
int n = WiFi.scanNetworks ();
Serial.println ("скандон");
эгер (n == 0)
Serial.println ("тармактар табылган жок");
башка
{
Serial.print (n);
Serial.println ("тармактар табылды …");
if (more_text) {
// Форматталган json басып чыгарыңыз…
Serial.println ("{");
Serial.println ("\" homeMobileCountryCode / ": 234,"); // бул чыныгы Улуу Британиянын МККсы
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));
эгер (мен <n - 1)
{
Serial.println ("},");
}
башка
{
Serial.println ("}");
}
}
Serial.println ("]");
Serial.println ("}");
}
Serial.println ("");
}
// азыр jsonStringди куруңуз …
jsonString = "{ n";
jsonString += "\" homeMobileCountryCode / ": 234, / n"; // бул чыныгы Улуу Британиянын МККсы
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 суралууда:");
// ---- Бул жерде Google Карталардын Api Ачкычын алыңыз, Шилтеме:
Serial.println ("https://" + (String) Host + thisPage + "GOOGLE-СИЗДИН КАРТАЛАРЫҢЫЗДЫ-API-АЧЫК-БУЛ ЖЕРДЕ");
Serial.println ("");
if (client.connect (Host, 443)) {
Serial.println ("Туташты");
client.println ("POST" + thisPage + key + "HTTP/1.1");
client.println ("Host:" + (String) Host);
client.println ("Байланыш: жабуу");
client.println ("Content-Type: application/json");
client.println ("Колдонуучу-Агент: Arduino/1.0");
client.print ("Content-Length:");
client.println (jsonString.length ());
client.println ();
client.print (jsonString);
кечигүү (500);
}
// Бардык саптарын окуп жана талдаңыз
серверден жооп
while (client.available ()) {
Сап сабы = client.readStringUntil ('\ r');
if (more_text) {
Serial.print (сап);
}
JsonObject & root = jsonBuffer.parseObject (сап);
if (root.success ()) {
latitude = root ["location"] ["lat"];
узундук = тамыр ["жайгашуу"] ["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);
}
Сунушталууда:
Кантип кадам эсептегич жасоо керек?: 3 кадам (сүрөттөр менен)
Step Counter кантип жасалат ?: Мен көптөгөн спортто жакшы аткарчумун: жөө басуу, чуркоо, велосипед тебүү, бадминтон ойноо ж.б. Мейли, менин ичимди карачы ……. Ооба, баары бир мен машыгуу үчүн кайра баштоону чечтим. Мен кандай жабдыктарды даярдашым керек?
IPodдо Doomду 5 жеңил кадам менен ойноңуз !: 5 кадам
Doom'ду IPodдо 5 жеңил кадам менен ойноңуз!: Doom жана башка ондогон оюндарды ойноо үчүн iPod'уңузда Rockboxту кантип кош жүктөө керектиги боюнча этап-этабы менен көрсөтмө. Бул чындыгында оңой нерсе, бирок менин iPodдо кыйроо ойноп жатканымды көргөндөрдүн көбү дагы эле таң калышат жана көрсөтмө менен чаташып кетишет
WordPressке плагиндерди 3 кадам менен кантип орнотсо болот: 3 кадам
WordPressке плагиндерди 3 этапта кантип орнотуу керек: Бул үйрөткүчтө мен сизге веб -сайтыңызга WordPress плагинин орнотуу үчүн эң маанилүү кадамдарды көрсөтөм. Негизи плагиндерди эки башка жол менен орнотсоңуз болот. Биринчи ыкма ftp же cpanel аркылуу болот. Бирок мен аны тизмектебейм, анткени бул чындыгында нааразы
Кадам моторун айдоо үчүн 556 таймерди колдонуу: 5 кадам
Step моторун айдоо үчүн 556 таймерди колдонуу: Бул инструкция 556 таймердин кантип тепкичтүү моторду айдай аларын түшүндүрүп берет
Акустикалык левитация Arduino Uno менен кадам-кадам (8-кадам): 8 кадам
Акустикалык левитация менен Arduino Uno Step-by-Step (8-кадам): ультрадыбыштуу үн өткөргүчтөр L298N Dc аял адаптеринин электр энергиясы менен камсыздоосу эркек токту Arduino UNOBreadboard Бул кантип иштейт: Биринчиден, сиз Arduino Uno кодун жүктөп бересиз (бул санарип менен жабдылган микроконтроллер) жана аналогдук порттор кодду айландыруу үчүн (C ++)