ارتباط با ماژول 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 رو بارگذاری کنید و منتظر بمانید تا صفحه ایی همانند شکل زیر به شما نمایش داده شود.
نصب 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 بزنید تا پاسخ ماژول رو هم دریافت کنید.
#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); }
چرا فایل هایی که واسه دانلود گذاشتید صفحه دانلودش نمیاد ؟
هیچ کدوم از پروژه ها هم فایل هاش دانلود نمیشه
مشکل از هاست دانلود است
در حال بررسیش هستم
اگر ممکنه آموزش بعد از طراحی هم بگذارید ممنونم .
متوجه نشدم کاملتر توضیح میدن
تا نیاز ها رو متوجه بشم
من تمام این کارها رو که شما فرمودین انجام دادم و ماژول رو هم بصورت کابل یو اس بی به لپ تا پ وصل کردم ولی برای ماژول هر دستوری که میفرستم هیچ پاسخی دریافت نمی شود ولی پیغام خودو رو میبینم که برای ماژول ارسال شده است لاز مبه ذکر هست که ماژول من WEMOS D1 MINI هست ، دلیل وصل کردن ماژول به لپ تا پ هم اینه که میخوام توی محیط SERIAL MONITORING هم پیغام های خودمو ببینم .ممنونم .
پس مشکل شما فقط توی پاسخ هست که دریافت نمی کنید ، نوع ماژولی هم که استفاده می کنید مشکلی نداره یعنی به این خاطر نیست
1. برای اپ موبایل پورت دریافت رو تعیین کردید؟
2. آیا در کدها تغییراتی اعمال کردین؟
3. دکمه Start Receiver رو می زنید؟
باسلام
پورت ارسال رو 4000 و پورت دریافت رو 5000 ودر اپ نیز زمان START RECEIVER نیز یک لوکال پورت می خواهد که آن هم 4000 میزنم که هیچ پاسخی دریافت نمیگردد ولی اگر پورت دریافت رو هم 4000 بزنم همان چیزی که ارسال میکنم همان رو هم دریافت میکنم در برنامه هم هیچ چیز رو تغییر نداده ام فقط یوزرو پسورد اکسس پوینت رو تعیین کردم همین ، ممنون .
from port رو اگه 5000 انتخاب می کنی باید local port هم 5000 باشه
من الان همین کارو کردم فقط ارسال میکنه ولی هیچ جوابی نمیگیره ، ضمنا یک سوال من ماژول رو ازطریق کابل یو اس بی به کامپیوتر متصل میکنم درسته ، نیازی نیست با تبدیل یو اس بی به تی تی ال وصل کنم ؟
نه نیاز نیست
توی سریال ترمینال اطلاعات دریافتی رو می بینید درسته؟
خیر توی سریال دریافتی هم فقط ارسالی دیده میشود .
ضمنا بود ریت هم من روی 115200 گذاشتم درسته ؟
نه مشکلی نداره
ممنونم من حتی با نرم افزار ترمینال هم چک کردم باز هم فقط ارسالی رو میبینم .
برای اینکه مطمئن بشید مشکل از کجاست با لب تاپ به وای فای ماژول وصل بشید بعد از نرم افزار Packet Sender استفاده کنید
لینک گروه تلگرامی:
https://t.me/joinchat/B2oyXER9Oa4WrN3Ju7414g
لینک گروه سروش:
https://sapp.ir/joingroup/rW0SKnfqJvMuHVsap3R4zk28
چرا زمانی که وی موس را روشن میکنیم یک لحظه در حد یک هزارم ثانیه اول روشن شدن رله ها روشن و خاموش می شود بعد میره توی حالت کنترلی کنندگی عادی ؟
من پایه کنترلی رو به پایه rx دادم یعنی اون رو به عنوان یک gpio دیدم که حالت high و low رو روی اون پین در نظر گرفتم به نظرتون مشکلی نیست ؟
نه rx مشکلی نیست
فقط تو برنامه پورت سریال رو دیگه نباید پیکربندی کنید
متوجه نمیشم میشه بیشتر راهنمایی کنید ممنونم .
من rxرو بصورتint Protect = 1; معرفی کردم که protect همون rx هست و در قسمت دیگه برنامه هم گفتم pinMode(Protect, INPUT); الان هم داره درست کار میکنه یعنی زمانیکه پین lowهست وی موس فعال و زمانیکه high هست غیرفعال میشه ولی وقتی که کلید ریست روی وی موس رو میزنم دستگاهم هنگ میکنه زمانی که این پین رو غیر فعال میکنم مشکل حل میشه به نظرتون مشکل کجاست اگر ممکنه منو راهنمایی کنید، خیلی خیلی ممنونم از راهنماییتون .
کد رو بفرستین نگاه کنم
http://dl.turbodigital.ir/index.php?share/file&user=1&sid=pMgXc53D
http://dl.turbodigital.ir/index.php?share/file&user=1&sid=FpWxtN82
برای بعضی از پایه ها باید از گیت نات استفاده کنید ، یعنی خروجی رو برعکس کنه
تا جایی که یادم هست رو بعضی پایه اینتراپت هست که این مشکل رو ایجاد می کنه
من ترانزیستور 2N3904 یا 2N3906 استفاده می کنم
من در شرکت مپنا تهران هستم و روی یک پروژه مشغول هستم میتونم شماره تماس شمارو داشته باشم ،؟
09395367005
اطلاعات تماس رو تو سایت گذاشتم
سلام.وقت بخیر
بنده سرمست هستم از اصفهان.
میخواستم بدونم آیا امکان داره از طریق APP طراحی شده SSID , pass شبکه وایفای تعریف بشه و داخل برنامه از قبل نوشته شده ESP نیاد ( منظورم اینه که هر زمان خواستیم فقط با داشتن APP hdk;hv, hk[hl fndl) ??
ممنونم
ببخشید خیلی خیلی دیر جواب دادم
آخرش نا مفهوم بود
ولی در کل متوجه شدم بله میشه من همیشه از این روش استفاده می کنم
برای کنترل سرعت موتور براشلس و speed control چه کدی رو باید در اردیونو بنویسیم؟ مثلا با یک دکمه سرعت موتور بالا بره و بعد از مثلا عدد پنجاه متوقف بشه و با یک دکمه سرعت به صفر برسه
سلام
تا کجا پیش رفتین خودتون؟