ESP8266 در اندروید

ارتباط با ماژول ESP8266 در اندروید بدون کدنویسی با App Inventor

محتوا

ارتباط با ماژول ESP8266 در اندروید بدون کدنویسی با App Inventor

ESP8266 در اندروید: مدت هاست گوگل سرویسی را راه اندازی کرده است که تحت وب و بدون نیاز به کد نویسی می توانید برای اندروید app بسازید که در این آموزش قصد دارم نحوه اتصال به ماژول ESP8266 در اندروید رو با پروتکل UDP آموزش بدهم در App Inventor به صورت پیش فرض برای اتصال با UDP کامپوننتی قرار نداده است پس از اینجا فایل فشرده رو دانلود کنید تا نحوه اضافه کردن اکسنشن UDP رو به شما آموزش بدهم ابتدا به آدرس //ai2.appinventor.mit.edu بروید و همانند شکل زیر از منو Import project (.aia) from my computer<Projects رو انتخاب و سپس فایل UrsAI2UDPv3_Test.aia موجود در پوشه Example رو بارگذاری کنید و منتظر بمانید تا صفحه ایی همانند شکل زیر به شما نمایش داده شود.

ESP8266 در اندروید

نصب Extension و خروجی Apk در App Inventor

در صورتی که Extension مربوط به UrsAI2UDPv3 نصب نبود در Extension بر روی Import extension کلیک کنید سپس فایل de.UllisRoboterSeite.UrsAI2UDPv3.aix رو انتخاب کنید و منتظر باشید نصب شود. برای نمایش کامل UI اپ هم کافی است تیک Display hidden components in Viewer رو بزنید و برای گرفتن خروجی Apk هم از منو گزینه Build و سپس App ( save .apk to my computer ) رو انتخاب کنید و منتظر بمانید تا پیغام ذخیره فایل به شما نمایش داده شود ، در کامپیوتر ذخیره کنید و بعد به گوشی انتقال دهید در نهایت نصب کنید نکته فراموش نشود که از گزینه App ( provide QR code for .apk ) هم می تونید استفاده کنید.

نحوه کد نویسی و تبدیل ماژول ESP8266 به اکسس پوینت

برای تنظیم ماژول ESP8266 بر روی حالت اکسس پوینت کافیه کد زیر رو در آردوینو کپی کنید و در ماژول ESP8266 آپلود کنید بعد یک اکسس پوینت در شبکه به نام Turbodigital اضاف می شود که با پسورد 12345678 می تونید متصل بشید در App اندروید بعد از اتصال به ماژول در قسمت Local Host IP آی پی گوشی شما رو مشخص می کند. قبل از ارسال باید App رو پیکربندی کنید که در فسمت To IP آی پی 192.168.4.1 رو وارد کنید و در قسمت To Port هم عدد 4000 رو وارد کنید و در نهایت برای دریافت پاسخ (Response) در قسمت From Port و Local Port عدد مثلا 5000 رو وارد کنید حالا قبل از زدن دکمه Xmit ، دکمه Start Receiver بزنید تا پاسخ ماژول رو هم دریافت کنید.

ESP8266 در اندروید

 

#include <ESP8266WiFi.h> 
#include <WiFiUDP.h> 

const char* ssid = "Turbodigital"; 
const char* pass = "12345678"; 
unsigned int localPort = 4000; 
byte packetBuffer[512]; 

WiFiUDP Udp; 

void printWifiStatus() { 
    IPAddress ip = WiFi.softAPIP();
    Serial.print("IP Address: ");
    Serial.println(ip); 
} 

void WriteString(String val){
    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort()); 
    // Udp.beginPacket({192,168,4,3}, 5000); 
    int len = val.length(); 
    for(int i=0;i<len;i++){ 
        Udp.write(val[i]);
    }
    Udp.endPacket();
 } 

void setup(){
    Serial.begin(115200); 
    WiFi.mode(WIFI_AP); 
    WiFi.softAP(ssid,pass);
    Udp.begin(localPort);
    Serial.println();
    printWifiStatus();
}

void loop(){
   int noBytes = Udp.parsePacket(); 
   String received_command = ""; 
   if ( noBytes ) { 
       Udp.read(packetBuffer,noBytes);
       for (int i=1;i<=noBytes;i++){
           received_command += char(packetBuffer[i - 1]); 
       } 
      Serial.println(received_command); 
     WriteString(received_command); 
   } 
   delay(10);
}
بخش نظرات

این پست دارای 30 نظر است

  1. میثم

    چرا فایل هایی که واسه دانلود گذاشتید صفحه دانلودش نمیاد ؟

  2. میثم

    هیچ کدوم از پروژه ها هم فایل هاش دانلود نمیشه

    1. امیر امرایی

      مشکل از هاست دانلود است
      در حال بررسیش هستم

  3. محمد

    اگر ممکنه آموزش بعد از طراحی هم بگذارید ممنونم .

    1. امیر امرایی

      متوجه نشدم کاملتر توضیح میدن
      تا نیاز ها رو متوجه بشم

      1. محمد صانعی

        من تمام این کارها رو که شما فرمودین انجام دادم و ماژول رو هم بصورت کابل یو اس بی به لپ تا پ وصل کردم ولی برای ماژول هر دستوری که میفرستم هیچ پاسخی دریافت نمی شود ولی پیغام خودو رو میبینم که برای ماژول ارسال شده است لاز مبه ذکر هست که ماژول من WEMOS D1 MINI هست ، دلیل وصل کردن ماژول به لپ تا پ هم اینه که میخوام توی محیط SERIAL MONITORING هم پیغام های خودمو ببینم .ممنونم .

      2. امیر امرایی

        پس مشکل شما فقط توی پاسخ هست که دریافت نمی کنید ، نوع ماژولی هم که استفاده می کنید مشکلی نداره یعنی به این خاطر نیست
        1. برای اپ موبایل پورت دریافت رو تعیین کردید؟
        2. آیا در کدها تغییراتی اعمال کردین؟
        3. دکمه Start Receiver رو می زنید؟

      3. محمد صانعی

        باسلام
        پورت ارسال رو 4000 و پورت دریافت رو 5000 ودر اپ نیز زمان START RECEIVER نیز یک لوکال پورت می خواهد که آن هم 4000 میزنم که هیچ پاسخی دریافت نمیگردد ولی اگر پورت دریافت رو هم 4000 بزنم همان چیزی که ارسال میکنم همان رو هم دریافت میکنم در برنامه هم هیچ چیز رو تغییر نداده ام فقط یوزرو پسورد اکسس پوینت رو تعیین کردم همین ، ممنون .

      4. امیر امرایی

        from port رو اگه 5000 انتخاب می کنی باید local port هم 5000 باشه

      5. محمد صانعی

        من الان همین کارو کردم فقط ارسال میکنه ولی هیچ جوابی نمیگیره ، ضمنا یک سوال من ماژول رو ازطریق کابل یو اس بی به کامپیوتر متصل میکنم درسته ، نیازی نیست با تبدیل یو اس بی به تی تی ال وصل کنم ؟

      6. امیر امرایی

        نه نیاز نیست
        توی سریال ترمینال اطلاعات دریافتی رو می بینید درسته؟

      7. محمد صانعی

        خیر توی سریال دریافتی هم فقط ارسالی دیده میشود .

      8. محمد صانعی

        ضمنا بود ریت هم من روی 115200 گذاشتم درسته ؟

      9. امیر امرایی

        نه مشکلی نداره

      10. محمد صانعی

        ممنونم من حتی با نرم افزار ترمینال هم چک کردم باز هم فقط ارسالی رو میبینم .

      11. محمد صانعی

        چرا زمانی که وی موس را روشن میکنیم یک لحظه در حد یک هزارم ثانیه اول روشن شدن رله ها روشن و خاموش می شود بعد میره توی حالت کنترلی کنندگی عادی ؟

      12. محمد صانعی

        من پایه کنترلی رو به پایه rx دادم یعنی اون رو به عنوان یک gpio دیدم که حالت high و low رو روی اون پین در نظر گرفتم به نظرتون مشکلی نیست ؟

      13. امیر امرایی

        نه rx مشکلی نیست
        فقط تو برنامه پورت سریال رو دیگه نباید پیکربندی کنید

      14. محمد صانعی

        متوجه نمیشم میشه بیشتر راهنمایی کنید ممنونم .

      15. محمد صانعی

        من rxرو بصورتint Protect = 1; معرفی کردم که protect همون rx هست و در قسمت دیگه برنامه هم گفتم pinMode(Protect, INPUT); الان هم داره درست کار میکنه یعنی زمانیکه پین lowهست وی موس فعال و زمانیکه high هست غیرفعال میشه ولی وقتی که کلید ریست روی وی موس رو میزنم دستگاهم هنگ میکنه زمانی که این پین رو غیر فعال میکنم مشکل حل میشه به نظرتون مشکل کجاست اگر ممکنه منو راهنمایی کنید، خیلی خیلی ممنونم از راهنماییتون .

      16. امیر امرایی

        کد رو بفرستین نگاه کنم

      17. امیر امرایی

        برای بعضی از پایه ها باید از گیت نات استفاده کنید ، یعنی خروجی رو برعکس کنه
        تا جایی که یادم هست رو بعضی پایه اینتراپت هست که این مشکل رو ایجاد می کنه
        من ترانزیستور 2N3904 یا 2N3906 استفاده می کنم

      18. محمد صانعی

        من در شرکت مپنا تهران هستم و روی یک پروژه مشغول هستم میتونم شماره تماس شمارو داشته باشم ،؟

      19. امیر امرایی

        09395367005
        اطلاعات تماس رو تو سایت گذاشتم

  4. سامان

    سلام.وقت بخیر
    بنده سرمست هستم از اصفهان.
    میخواستم بدونم آیا امکان داره از طریق APP طراحی شده SSID , pass شبکه وایفای تعریف بشه و داخل برنامه از قبل نوشته شده ESP نیاد ( منظورم اینه که هر زمان خواستیم فقط با داشتن APP hdk;hv, hk[hl fndl) ??
    ممنونم

    1. امیر امرایی

      ببخشید خیلی خیلی دیر جواب دادم
      آخرش نا مفهوم بود
      ولی در کل متوجه شدم بله میشه من همیشه از این روش استفاده می کنم

  5. ...

    برای کنترل سرعت موتور براشلس و speed control چه کدی رو باید در اردیونو بنویسیم؟ مثلا با یک دکمه سرعت موتور بالا بره و بعد از مثلا عدد پنجاه متوقف بشه و با یک دکمه سرعت به صفر برسه

    1. امیر امرایی

      سلام
      تا کجا پیش رفتین خودتون؟

دیدگاهتان را بنویسید

×
×

سبد خرید


Notice: ob_end_flush(): Failed to send buffer of zlib output compression (0) in /home/turbodig/public_html/wp-includes/functions.php on line 5471