ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 8 از 8
  1. #1
    2016/08/19
    108
    81

    [آموزش] تعیین موقعیت مکانی بدون ماژول GPS فقط با ESP8266

    سلام دوستان.
    بله عنوان اشتباه نشده. هممون میدونیم که تا حالا برای بدست آوردن موقعیت مکانی باید یا از ماژولهای gps یا gsm استغاده می کردیم، یا از طریقی (با سیم و یا بیسیم) اطلاعات رو از گوشی و تبلت و لپتاپ می گرفتیم. ولی آیا راهی نیست که بتونیم بدون نیاز به موارد بالا مستقیم موقعیت رو بدست بیاریم؟؟
    خوشبختانه چرا هست
    قبل از ادامه عرض کنم که این اطلاعات برای اولین بار (البته اولین بار در بخش سخت افزاری) در ایران مطرح میشه. اینم باید بگم که بنده برای دوستانم فقط باز نشرش میدم. ایده اول از دوست عزیزی در گیت هاب هست که در ادامه لینکش رو قرار میدم.

    هممون از سرویسهای google map و مشتقاتش استفاده کردیم و راجبش اطلاعات داریم. این سرویس از چند سال پیش امکاناتی رو اضافه کرده که سایتها و اپلیکیشن ها می توانند از طریق api گوگل، باهاش کار کنند و موقعیت مکانی مخاطبان سایت و برنامه را بدست بیاورند (البته با اجازه خود کاربر)
    حالا چطوری؟؟؟
    لطفا نقل قولی از

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    رو بخونید تا متوجه بشوید:
    سیستم تخمین موقعیت بر اساس آنتنهای موبایل اطراف میباشد.. این سیستم جهت تخمین موقعیت نیازی به سیستم ماهواره ای GPS ندارد و برای مواردی کاربرد خواهد داشت که خودرو داخل تونل یا پارکینگهای مسقف قرار دارد و به دلیل مسقف بودن محل امکان موقعیت یابی ماهواره ای GPS وجود نداشته باشد..

    اما روش کار این سیستم چگونه است؟
    دکلهای مخابراتی که با نام BTS یا Base Transceiver Station شناخته میشوند را همگی دیده ایم.. هر BTS دارای مشخصات منحصر بفردی در دنیا میباشد.. این مشخصات شامل موارد زیر میباشند : MCC یا Mobile Country Code که نشان دهنده کد کشور میباشد...MNC یا Mobile Network Code که کد اپراتور سرویس دهنده میباشد... LAC یا Location Area Code نشان دهنده کد منطقه میباشد و CellID که نشاندهنده کد آن دکل BTS در منطقه میباشد.. سیستم دزدگیر و ردیاب ماهواره ای خودرو با بدست آوردن این مشخصات از روی نزدکترین دکلهای اطراف که دارای سیگنال قویتری هستند و میانگین گیری کردن از موقعیت آنها نزدیکترین موقعیت را تخمین میزند..همانطور که گفته شد این تخمین نیازی به سیستم GPS نداشته و حتی در مکانهای مسقف نیز محدوده مکانی خودرو را تخمین میزند.
    api چیست؟
    مختصرا بخوام بگم یسری دستورات و روشی هست که (در اینجا) گوگل مشخص کرده که شما با این دستورات بسادگی میتونید درخواستهاتون رو بفرستید بهش وجوابها رو هم بگیرید.
    مقدمه تمومه
    گرفتن API KEY:
    میخوایم با سرویس google geolocation کار کنیم. در ابتدا نیاز به یک api key مخصوص به خودمون داریم که پس از اینکه وارد اکانت گوگل خود شدید، میتوانید از طریق

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    اون رو برای خودتان بسازید. البته برای باز شدن صفحه به دلیل اینکه این سرویس مثل تقریبا همه سرویسهای گوگل برای آیپی ایران بسته است نیازمند راهی جهت عبور از آن می باشید.به هر نحوی که خود می توانید وارد صفحه ذکر شده شوید و روی get a key کلیک کنید:

    مرحله بعدش اگر قبلا پروژه ای ساخته باشید ازتون میخواد که یکی از اونها رو از تو لیست انتخاب کنید و یا اگر دفعه اول باشه ( یادم نیست درست فکر کنم باید یه اسم برای پروژتون انتخاب کنید:

    حال کلید داده شده را کپی و در یک جای امن ذخیره کنید.
    ویرایش توسط digi-rx : 2017/12/01 در ساعت 13:32
  2. #2
    2016/08/19
    108
    81

    پاسخ : [آموزش] تعیین موقعیت مکانی بدون ماژول GPS فقط با ESP8266

    قبل از ادامه مطلب پیشنهاد میکنم دوستان یسری اطلاعات درمورد انواع ارتباط با اینترنت و پروتکل های ارتباطیش و انواع درخواستها و ... کسب کنند که برای کار با ماژولهای esp شدیدا مورد نیاز است. یکی از این اطلاعات هم شناخت و کار با فرمت json می باشد که اگه بتونید خوب باهاش کار کنید، پروژه های مشابه این پروژه براحتی میتونید راه اندازی کنید و با api مربوطه ارتباط برقرار کنید. پروژه هایی مثل دستورات صدا و کلامی ، اطلاعات آب وهوا و دما ، ساعت ntp و...
    برای راه اندازی و برنامه نویسی esp8266 با آردوینو هم میتوانید از این لینک استفاده کنید.
    برنامه تویسی:
    برنامش چیز خاصی نداره فقط باید درخواست رو تحت همون فرمت json ارسال و اطلاعات رو هم با همون فرمت دریافت کنید. خبر خوب اینکه یه دوست عزیزی این کاررو هم برامون انجام داده و کارمون رو راحت و آسون کرده
    در صفحه

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ایشون دو فایل آردوینو هست: یکی خروجی رو روی oled نشون میده و دیگری در پنجره سریال مانیتور. چون ما معمولا طول وعرض جغرافیایی بدست آورده را نه برای نمایش بلکه برای ارسال یا دیدن در نقشه و ... نیاز دارم پس من از فایل Geolocation_without_display.ino استفاده کردم. فقط موارد زیررا بایدمتناسب با شرایط خودتان در فایل تغییر بدهید:
    - myssid و mypass » نام و پسورد مودم برای اتصال به اینترنت ماژولesp
    -
    homeMobileCountryCode » همان mcc (تعریف در پست قبل)
    - key » همان api key که از گوگل گرفتیم
    - homeMobileNetworkCode» همان mnc (تعریف در پست قبل)
    mcc و mnc رو میتونید از یکی ازاین دو لینک بگیرید:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    یا

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    که mccبرای ایران 432 هست و mnc بستگی به اپراتور اینترنتتون داره.
    /*********************************************************************
    This is the code for Fetching your location from Google Geolocation API

    This code is provided by
    techiesms
    *********************************************************************/


    #include <ESP8266HTTPClient.h>
    #include <ArduinoJson.h>
    #include "ESP8266WiFi.h"



    char myssid[] = "SSID" // your network SSID (name)
    char mypass[] = "PASS" // your network password




    //Credentials for Google GeoLocation API...
    const char* Host = "www.googleapis.com";
    String thisPage = "/geolocation/v1/geolocate?key=";
    String key = "YOUR_API_KEY";


    int status = WL_IDLE_STATUS;
    String jsonString = "{\n";


    double latitude = 0.0;
    double longitude = 0.0;
    double accuracy = 0.0;
    int more_text = 1; // set to 1 for more debug output



    void setup() {

    Serial.begin(115200);
    Serial.println("Start");
    // Set WiFi to station mode and disconnect from an AP if it was previously connected
    WiFi.mode(WIFI_STA);
    WiFi.disconnect();
    delay(100);
    Serial.println("Setup done");
    // We start by connecting to a WiFi network
    Serial.print("Connecting to ");
    Serial.println(myssid);
    WiFi.begin(myssid, mypass);


    while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    }
    Serial.println(".");

    }


    void loop() {


    char bssid[6];
    DynamicJsonBuffer jsonBuffer;
    Serial.println("scan start");
    // WiFi.scanNetworks will return the number of networks found
    int n = WiFi.scanNetworks();
    Serial.println("scan done");
    if (n == 0)
    Serial.println("no networks found");
    else
    {
    Serial.print(n);
    Serial.println(" networks found...");


    if (more_text) {
    // Print out the formatted json...
    Serial.println("{");
    Serial.println("\"homeMobileCountryCode\": 432,"); // this is a real UK MCC
    Serial.println("\"homeMobileNetworkCode\": 19,"); // and a real UK MNC
    Serial.println("\"radioType\": \"gsm\","); // for gsm
    Serial.println("\"carrier\": \"Vodafone\","); // associated with Vodafone
    //Serial.println("\"cellTowers\": ["); // I'm not reporting any cell towers
    //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));
    if (i < n - 1)
    {
    Serial.println("},");
    }
    else
    {
    Serial.println("}");
    }
    }
    Serial.println("]");
    Serial.println("}");
    }
    Serial.println(" ");
    }
    // now build the jsonString...
    jsonString = "{\n";
    jsonString += "\"homeMobileCountryCode\": 432,\n"; // this is a real UK MCC last 234
    jsonString += "\"homeMobileNetworkCode\": 19,\n"; // and a real UK MNC lasr 27
    jsonString += "\"radioType\": \"gsm\",\n"; // for gsm
    jsonString += "\"carrier\": \"Vodafone\",\n"; // associated with 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";
    if (j < n - 1)
    {
    jsonString += "},\n";
    }
    else
    {
    jsonString += "}\n";
    }
    }
    jsonString += ("]\n");
    jsonString += ("}\n");
    //--------------------------------------------------------------------


    Serial.println("");


    WiFiClientSecure client;


    //Connect to the client and make the api call
    Serial.print("Requesting URL: ");
    Serial.println("https://" + (String)Host + thisPage + "AIzaSyCYNXIYINPmTNIdusMjJloS4_BXSOff1_g");
    Serial.println(" ");
    if (client.connect(Host, 443)) {
    Serial.println("Connected");
    client.println("POST " + thisPage + key + " HTTP/1.1");
    client.println("Host: " + (String)Host);
    client.println("Connection: close");
    client.println("Content-Type: application/json");
    client.println("User-Agent: Arduino/1.0");
    client.print("Content-Length: ");
    client.println(jsonString.length());
    client.println();
    client.print(jsonString);
    delay(500);
    }


    //Read and parse all the lines of the reply from server
    while (client.available()) {
    String line = client.readStringUntil('\r');
    if (more_text) {
    Serial.print(line);
    }
    JsonObject& root = jsonBuffer.parseObject(line);
    if (root.success()) {
    latitude = root["location"]["lat"];
    longitude = root["location"]["lng"];
    accuracy = root["accuracy"];
    }
    }


    Serial.println("closing connection");
    Serial.println();
    client.stop();


    Serial.print("Latitude = ");
    Serial.println(latitude, 6);
    Serial.print("Longitude = ");
    Serial.println(longitude, 6);
    Serial.print("Accuracy = ");
    Serial.println(accuracy);

    }

    اجرا:
    پس از کامپایل و اجرا در پنجره سریال مانیتور، مقدار دو عبارت
    Latitudeو Longitude طول و عرض جغرافیایی ما هستند.
    نمایش:
    برای مشاهده میتوانید از این لینک استفاده کرده ، مقادیر بالا را درآن جایگزین کرده و در مرورگر کروم یا ... لینک مذکور رو اجرا کنید

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    18z میزان زوم تصویر می باشد.
    ممنون میشم بازخورد و نتیجه کارتان را اینجا مطرح نمایید.
    ویرایش توسط digi-rx : 2017/12/13 در ساعت 17:37
  3. #3
    2006/11/18
    2
    1
    k1

    پاسخ : [آموزش] تعیین موقعیت مکانی بدون ماژول GPS فقط با ESP8266

    با سلام
    esp8266 ارتباطش با mcc و mnc توی این برنامه چیه ؟
    اگر نیازی به ماژول gsm نیست پس mcc و mnc ; که مربوط به سیم کارت های مختلف میشه چیه پس؟؟
  4. #4
    2015/12/01
    82
    40

    پاسخ : [آموزش] تعیین موقعیت مکانی بدون ماژول GPS فقط با ESP8266

    نقل قول نوشته اصلی توسط k1

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    اگر نیازی به ماژول gsm نیست پس mcc و mnc ; که مربوط به سیم کارت های مختلف میشه چیه پس؟؟
    من هم فکر می کنم ماژول esp8266 به تنهایی کافی نیست و حتما یه ماژول GSM باید باشه! و وقتی بدرد میخوره که بخواهیم موقعیت یک گوشی رو بدست بیاریم! یعنی مثلا ESP8266 تو خونه باشه و ماژول gsm یا گوشی گم بشه و بخواهیم پیداش کنیم!
    البته در کل اطلاعاتی رو که دوستمون در اشتراک گذاشتند خیلی مفید و جالب بود
  5. #5
    2016/05/31
    376
    111

    پاسخ : [آموزش] تعیین موقعیت مکانی بدون ماژول GPS فقط با ESP8266

    سلام.
    تلاش دوستمون واقعا قابل تقدیره
    تعیین موقعییت مکانی از طریق اینترنت( توسط esp یا ماژولهای مشابه) هرچند قابل پیاده سازی هست ولی!
    ولی خطا محاسباتی در این مدل زیاده واگر صرفا هدف تععین موقییت مکانی باشد استفاده از این مدل کاری کاملا غیر حرفه ای هست
  6. #6
    2008/10/29
    2,098
    202

    پاسخ : [آموزش] تعیین موقعیت مکانی بدون ماژول GPS فقط با ESP8266

    سلام
    دقت این وضعیت بر می گرده به دیتابیس و آخرین اتصال های شما با GPS و اتصال به اینترنت با سرورهای گوگل ، که برای خیلی از کاربردهای "مکان بسته" واقعا کارایی داره ( مثلا همین که در مکان بسته آدرس شهر یا حتی منطقه شهرداری رو بر می گردونه واقعا نعمتی هست). من قدردان وقت و لطفی هستم که ایشون برای این آموزش و مطلع کردن از شیوه ای آدرس یابی با اینترنت گذاشتن
  7. #7
    2016/08/19
    108
    81

    پاسخ : [آموزش] تعیین موقعیت مکانی بدون ماژول GPS فقط با ESP8266

    نقل قول نوشته اصلی توسط k1

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    با سلام
    esp8266 ارتباطش با mcc و mnc توی این برنامه چیه ؟
    اگر نیازی به ماژول gsm نیست پس mcc و mnc ; که مربوط به سیم کارت های مختلف میشه چیه پس؟؟
    سلام. از همه دوستان ممنونم که نظراتشون رو عنوان میکنند. سپاسگذارم.
    دوست عزیز، اول باید عرض کنم که تو ماژول GSM شما از طریق امواج رادیویی موقعیت روبدست میارید اما در این روش از طریق اینترنت. کار ماژول ESP8266 هم در اینجا صرفا همین هست یعنی برقراری امکان ارتباطات اینترنتی. چطوری؟
    همانطور که در پست های قبل ذکر شد، هر دکل مخابراتی اطلاعات مکانیش در دنیا ثبت شده می باشد. (1)
    در ارتباط اینترنتی بصورت پروتکل TCP اطلاعات بصورت مجموعه ای از pocket (بسته ها) ی اطلاعاتی ارسال می شوند.که هر بسته علاوه بر دیتای اینترنتی، یسری اطلاعات دیگر هم در آن قید میشود ( در تمام بسته ها بدون استثنا) مانند آی پی های فرستنده و گیرنده و مک آدرس و زمان و اطلاعات روترهایی که در مسیر ارسال نقش داشته اند. (2)
    حال وقتی این بسته ها از هر کدام از این روترها و دکل های مخابراتی عبور میکنند اطلاعات آنها (مانند موقعیت مکانی آن دکل) هم به انتهای این بسته اطلاعاتی اضافه می شود.
    مطمئنن تو همه این سالها تو خیلی از سایتهای خارجی رفتید که اسم شهرتون رو یه گوشه سایت مشخص میکنه. یا حتی گوگل یا سایتهای بانکی از این روشها برای مسدود کردن خدماتشون بما استفاده میکنند. این از همین اطلاعات بسته ها استفاده میشه. حالا گوگل اومده چند سال قبل این سیستم رو تخصصی تر کرده و این امکانات رو با api مخصوص خودش در اختیار سایتها قرار میده. (البته بصورت دقیق تر)
    دوست عزیز من ماژول GSM واقعیتش کار نکردم اما مطمئنن فرمایش شما صحیح هست که اونها هم از mcc و mnc استفاده میکنند. (مربوط به اطلاعات همون دکلها: یکیش برای کشور اون یکی برای اپراتور خدماتی)
    اما قبل از ارسال این مطلب من خودم این برنامه را در esp اجرا کرده و تمام اون مراحل که عرض کردم رو از اجرا کردم. نتیجش این بود که :
    اولین بار که اجرا کردم خبری mnc و mcc و معناشون نداشتم و تو برنامه هم تغییر ندادم. اما پس از اجرای برنامه موقعیت مکانی خروجی از سریال مونیتور رو تو لینک گوگل مپ گذاشته و براحتی با درجه زوم 21 خانه خودمون رو مشخص کرد. حتی تونستم عکس پشت بام رو هم از کنار صفحه گوگل مپ ببینم.
    اما یه هفته بعدش همون کد همش نتیجه غلط میداد. یه جای دیگه رو تو کرج نشون میداد. این شد که تحقیق کردم و کد اون دو مورد رو تو برنامه اصلاح کرده و بعدش دوباره جواب صحیح بدست اومد.
    این نتیجه تست واقعی برنامه بود که کار کرد.

    دلیل: ادغام دو پست برای جلوگیری از اسپم

    نقل قول نوشته اصلی توسط leader.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    تعیین موقعییت مکانی از طریق اینترنت( توسط esp یا ماژولهای مشابه) هرچند قابل پیاده سازی هست ولی!
    ولی خطا محاسباتی در این مدل زیاده واگر صرفا هدف تععین موقییت مکانی باشد استفاده از این مدل کاری کاملا غیر حرفه ای هست
    در یه سایت خارجی خوندم که اطلاعات این روش دقت کمتر از 50 متر دارد. خودم تونستم همونطور که عرض شد عکس خونه خودمون رو ببینم اما این مشخص نمیکنه دقیقا که دقتش مثلا 50 متره یا 70 متر. بخاطر همین از دوستانی که این برنامه رو اجرا میکنند ممنون میشم که نتیجه و دقت حاصل شده رو تو این تاپیک به اشتراک بزارند.
    در مورد مزیتش، هر دستگاهی بدرد موارد مخصوص بخودش می خوره. مطمئنن بیشتر جاها ماژول gsm بدرد میخوره اما یسری جاها هم این ماژول مخصوصا با توجه به قیمت 10 تومنی و عدم نیاز به میکروی جداگانه.
    مثلا فرض کنید که شما با این ماژول دستگاهی ساخته و تولید انبوه کرده اید. حال برای اینکه بدانبد مثلا چند مشتری در تهران از دستگاه شما استفاده میکنند (برای کارای بازاریابی و فروش) براحتی میتونیدبدون هیچ افزایش قیمتی فقط با اضافه کردن این کد نتیجه بگیرید. (صرفا یک مثال بود)
  8. #8
    2016/08/19
    108
    81

    پاسخ : [آموزش] تعیین موقعیت مکانی بدون ماژول GPS فقط با ESP8266

    نقل قول نوشته اصلی توسط baby_1

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    دقت این وضعیت بر می گرده به دیتابیس و آخرین اتصال های شما با GPS و اتصال به اینترنت با سرورهای گوگل ، که برای خیلی از کاربردهای "مکان بسته" واقعا کارایی داره ( مثلا همین که در مکان بسته آدرس شهر یا حتی منطقه شهرداری رو بر می گردونه واقعا نعمتی هست). من قدردان وقت و لطفی هستم که ایشون برای این آموزش و مطلع کردن از شیوه ای آدرس یابی با اینترنت گذاشتن
    تشکر میکنم. ادای دینه بزرگوار.

    این رو فراموش کردم بگم. من اینترنتم adsl مخابرات هست. ( نه ایرانسل و ...) دکل مخابرات هم جایی این نزدیکی ها به چشمم نخورده. حدود یکی دو کیلومتر با فاصله از ما دکل خود مرکز مخابراتی هست. از اونجا هم که اینترنت با کابل تلفن میاد تا خونه. (هر چند ، احتمالا تا مخابرات هم با کابل میاد) در رابطه با دقتش عرض کردم.
نمایش نتایج: از 1 به 8 از 8

موضوعات مشابه

  1. پاسخ: 2
    آخرين نوشته: 2018/08/12, 17:41
  2. ردیاب موقعیت مکانی
    توسط mehdi_mo در انجمن ماژول های RFID و NFC
    پاسخ: 0
    آخرين نوشته: 2017/10/08, 21:48
  3. آموزش استفاده از ماژول ESP8266 WiFi
    توسط elman993 در انجمن ماژول های شبکه و WIFI
    پاسخ: 5
    آخرين نوشته: 2015/11/02, 09:34
  4. ارسال موقعیت مکانی با استفاده از sim908
    توسط minefield در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2015/06/17, 04:24
  5. تعیین موقعییت مکانی
    توسط Mehdi1357 در انجمن رباتيك و مكاترونيك
    پاسخ: 3
    آخرين نوشته: 2012/08/04, 10:29

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •