رفتن به مطلب
انجمن الکترولب

جستجو در تالارهای گفتگو

در حال نمایش نتایج برای برچسب های 'esp8266'.



تنظیمات بیشتر جستجو

  • جستجو بر اساس برچسب

    برچسب ها را با , از یکدیگر جدا نمایید.
  • جستجو بر اساس نویسنده

نوع محتوا


تالارهای گفتگو

  • انجمن الکترولب
    • رزبری پای - رسپبری پای
    • آردوینو
    • اینرنت اشیا IOT - ماژول ESP8266
    • میکروکنترلر ها
    • نرم افزارهای الکترونیک
    • متفرقه
  • بورس و بازار های مالی
    • بورس

جستجو در ...

نمایش نتایجی که شامل ...


تاریخ ایجاد

  • شروع

    پایان


آخرین بروزرسانی

  • شروع

    پایان


فیلتر بر اساس تعداد ...

تاریخ عضویت

  • شروع

    پایان


گروه


5 نتیجه پیدا شد

  1. صرفا در حال جمع آوری اطلاعات در مورد xmpp راه اندازی سرور و ارسال و دریافت پیام با esp8266 هستم. در صورت رسیدن به نتیجه آموزش کامل رو به سبک خودم می‌نویسم اولین لینک https://www.google.com/amp/fablab.ruc.dk/get-xmpp-protocol-on-arduino/amp/
  2. تا حالا برای بدست آوردن موقعیت مکانی باید یا از ماژولهای 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 کلیک کنید: مرحله بعدش اگر قبلا پروژه ای ساخته باشید ازتون میخواد که یکی از اونها رو از تو لیست انتخاب کنید و یا اگر دفعه اول باشه باید یه اسم برای پروژتون انتخاب کنید: حال کلید داده شده را کپی و در یک جای امن ذخیره کنید. قبل از ادامه مطلب پیشنهاد میکنم دوستان یسری اطلاعات درمورد انواع ارتباط با اینترنت و پروتکل های ارتباطیش و انواع درخواستها و … کسب کنند که برای کار با ماژولهای esp شدیدا مورد نیاز است. یکی از این اطلاعات هم شناخت و کار با فرمت json می باشد که اگه بتونید خوب باهاش کار کنید، پروژه های مشابه این پروژه براحتی میتونید راه اندازی کنید و با api مربوطه ارتباط برقرار کنید. پروژه هایی مثل دستورات صدا و کلامی ، اطلاعات آب وهوا و دما ، ساعت ntp و… برای راه اندازی و برنامه نویسی esp8266 از آردوینواستفاده شده است. برنامه نویسی: برنامش چیز خاصی نداره فقط باید درخواست رو تحت همون فرمت json ارسال و اطلاعات رو هم با همون فرمت دریافت کنید. خبر خوب اینکه یه دوست عزیزی این کاررو هم برامون انجام داده و کارمون رو راحت و آسون کرده در صفحه گیت هاب ایشون دو فایل آردوینو هست: یکی خروجی رو روی oled نشون میده و دیگری در پنجره سریال مانیتور. چون ما معمولا طول وعرض جغرافیایی بدست آورده را نه برای نمایش بلکه برای ارسال یا دیدن در نقشه و … نیاز دارم پس من از فایل Geolocation_without_display.ino استفاده کردم. https://github.com/techiesms/Geolocation فقط موارد زیررا بایدمتناسب با شرایط خودتان در فایل تغییر بدهید: – myssid و mypass » نام و پسورد مودم برای اتصال به اینترنت ماژولesp – homeMobileCountryCode همان mcc – key همان api key که از گوگل گرفتیم – homeMobileNetworkCode» همان mnc mcc و mnc رو میتونید از یکی ازاین دو لینک بگیرید: این لینک یا این لینک که mccبرای ایران 432 هست و mnc بستگی به اپراتور اینترنتتون داره. برنامه تعیین موقعیت مکانی با ماژول ESP8266: This code is provided by techiesms *********************************************************************/ [URL=https://www.eca.ir/forums/usertag.php?do=list&action=hash&hash=include]#include[/URL] <ESP8266HTTPClient.h> [URL=https://www.eca.ir/forums/usertag.php?do=list&action=hash&hash=include]#include[/URL] <ArduinoJson.h> [URL=https://www.eca.ir/forums/usertag.php?do=list&action=hash&hash=include]#include[/URL] "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); } https://www.eca.ir/forums/thread78943.html
  3. MQTT یک پروتکل ماشین به ماشین (M2M) برای اتصالات اینترنت اشیاء (LOT) است در قسمت اول این نوشته به بررسی پروتکل MQTT برای ارتباط مابین رزبری پای و ESP8266 می پردازیم. برای ایجاد تعامل میان دستگاه‌های اینترنت اشیا به پروتکل‌هایی با overhead کمتر (بار اضافی کمتر) از قبیل MQTT نیاز است.در دنیای اینترنت اشیا ؛ چیزی که بسیار با آن سروکار داریم، جدا از خود اشیا، پیام‌های ردوبدل شده میان آن‌ها است. دستگاه‌های اینترنت اشیا IoT هنگام ایجاد پیام، اطلاعاتی از قبیل گزارش وضعیت و ارزیابی محیط را ارسال کرده و هنگام دریافت اطلاعات، از آن‌ها خواسته می‌شود تا کاری را انجام دهند یا اطلاعات سایر دستگاه‌ها را ذخیره کنند و یا موارد کاربردی بی‌شمار دیگر. سرعت افزایش تعداد دستگاه‌های اینترنت اشیا مدام به نسبت روز قبل بیشتر شده و به‌تبع آن تجمع ترافیک پیام‌ها نیز با سرعتی باورنکردنی در حال رشد است. با بسط و توسعه اینترنت اشیا، اپلیکیشن هایی نیز روی گوشی‌های هوشمند، تبلت ها و کامپیوترها اجرا می‌شوند که همه نیازمند سرویس پیام‌رسان مشابهی هستند. روش‌های متعددی برای مدیریت پیام‌ها در اینترنت اشیا وجود دارد که یک از اثرگذارترین و جالب‌ترین تکنولوژی‌ها، بروکرهای پیام (message brokers) هستند. ویکی‌پدیا بروکرهای پیام را این‌چنین تعریف می‌کند: بروکر پیام (message brokers) یک ماژول برنامه واسط است که پیام را از پروتکل انتقال پیام ارسال‌کننده به پروتکل انتقال پیام گیرنده ترجمه می‌کند. بروکرهای پیام، اجزایی در شبکه‌های ارتباطات یا کامپیوتر هستند که اپلیکیشن های نرم‌افزاری در آنجا از طریق تبادل پیام‌های تعریف‌شده ارتباط برقرار می‌کنند. بروکرهای پیام یک بلوک سازنده پیام میان‌افزار به شمار می‌رود. بروکر یک الگوی معماری برای ارزیابی، انتقال و مسیریابی پیام به شمار می‌رود. بروکر به‌عنوان یک واسط با به حداقل رساندن آگاهی دوطرفه‌ای که اپلیکیشن ها برای تبادل پیام باید از وضعیت ارتباطی یکدیگر داشته باشند ارتباط میان اپلیکیشن ها را ممکن ساخته و از تکرار جلوگیری می‌کند. بروکرها از الگوی publish-subscribe استفاده می‌کنند. در این الگو subscriber (کلاینتی که پیام‌های مربوط به موضوع خاصی را دریافت می‌کنند) برای دریافت پیام‌هایی که publisher ها (ارسال‌کننده پیام بدون آنکه گیرنده خاصی برای دریافت آن پیام در نظر داشته باشد) به بروکر ارسال می‌کنند، با یک یا چند بروکر ارتباط برقرار می‌کنند. یک subscriber نیز تا حدودی می‌تواند هم‌زمان به‌عنوان یک publisher عمل کند. تئوری دیگر کافیست! اکنون به یکی از رایج‌ترین و تأثیرگذارترین پروتکل‌های بروکر یعنی MQ Telemetry Transport یا MQTT می‌پردازیم. توجه داشته باشید که نام اصلی این پروتکل در حال حاضر کمتر استفاده می‌شود و نام اختصاری آن یعنی MQTT به‌عنوان نام پروتکل بکار می‌رود. نام‌های قدیمی پروتکل MQTT عبارت‌اند از SCADA Device (MQIsdp) و WebSphere MQTT” (WMQTT) بر اساس توضیحات mqtt.org: MQTT، یک پروتکل انتقال پیام کاملاً ساده و بسیار سبک و مبتنی بر الگوی publish/subscribe (ثبت/انتشار) (ارسال/دریافت) است که برای دستگاه‌هایی که دارای محدودیت پردازش و ذخیره‌سازی (مانند دستگاه‌های اینترنت اشیا) هستند یا شبکه‌هایی که پهنای باند کم، تأخیر زمانی بالا و عدم ثبات دارند، طراحی گردیده است. اصول طراحی پروتکل MQTT به‌گونه‌ای است که پهنای باند و منابع موردنیاز دستگاه‌ها را به حداقل رسانده و درعین‌حال اعتماد و اطمینان برای دریافت پیام‌ها را نیز تضمین می‌کند. بعلاوه این اصول، پروتکل MQTT را برای ارتباط ماشین به ماشین (M2M) و یا دستگاه‌های متصل در دنیای اینترنت اشیا (IoT) و همچنین اپلیکیشن های موبایل که از مصرف باتری و پهنای باند کم برخوردار هستند، ایدئال می‌سازد. به‌عبارت‌دیگر، پیاده‌سازی MQTT، انتخابی است ایدئال برای دستگاه‌هایی از قبیل کامپیوتر Raspberry Pi، Arduino، تلفن‌های هوشمند OSes و هر پلتفرمی که می‌خواهد از انتقال پیام ساده با overhead کم بهره‌مند شود. تاکنون، پروتکل MQTT با نسخه ۳٫۱٫۱ و بر اساس استاندارد OASIS بوده است اگرچه در بازار این پروتکل با نسخه ۳٫۱٫۰ ارائه می‌شود. جدیدترین نسخه نسبت به نسخه قبلی به‌طور قابل‌ملاحظه‌ای توسعه یافته است و از این پس بروکرهای MQTT را با عنوان سرورهای MQTT نام برده خواهند شد. انجمن آیانا (IANA)، پورت ۱۸۸۳ از TCP/IP را جهت استفاده توسط بروکرهای MQTT و همچنین پورت ۸۸۸۳ را برای استفاده از MQTT بر روی SSL رزرو کرده است (باید توجه داشت که استفاده از SSL، overhead بیشتری در ارتباطات ایجاد می‌کند.) اغلب پیاده‌سازی‌های سرور نحت پروتکل MQTT از WebSockets پشتیبانی می‌کنند. پروتکل MQTT از ۵ ویژگی مهم برخورداراست: مسیریابی مبتنی بر Topic (موضوع): در پیاده‌سازی MQTT پیام‌ها بر اساس رتبه‌بندی موضوعی طبقه‌بندی می‌شوند مانند شهر، ساختمان، اتاق، دستگاه، سنسور. در پیام‌های ارسالی می‌توان از wildcard نیز استفاده کرد. به‌طور مثال کلیه اطلاعات مربوط به سنسورهای موجود در تمامی آزمایشگاه‌های واقع در کلیه ساختمان‌های کالیفرنیا را می‌توان به‌صورت california/+/laboratory/# ثبت کرد. علامت +، وایلد کارد در یک سطح و وایلد کارد # کلیه سطوح پایین‌تر را که در متعاقباً آمده است، شامل می‌شود. پشتیبانی از Clean Sessions(حذف session ها): زمانی که دستگاه endpoint برای اولین بار به سرور MQTT متصل می‌شود، session جدید MQTT ایجاد و توسط سرور و کلاینت ذخیره می‌شود. ذخیره session، این امکان را برای بروکر فراهم می‌کند تا پس از برقراری مجدد ارتباط نیز دریافت پیام‌ها را از سر بگیرد. بطوریکه پیام‌هایی که به علت قطع ارتباط، دریافت یا ارسال نشده‌اند، دریافت می‌شوند. Clean Sessions(حذف session ها) یک گزینه انتخابی است. کیفیت سرویس: پشتیبانی MQTT از QoS، این امکان را در اختیار subscriber ها و publisher ها قرار می‌دهد تا یکی از سه سطوح سرویس زیرا انتخاب کنند: QoS 0: این سطح از کیفیت خدمات نیاز به تائید از جانب گیرنده پیام ندارد. در این حالت، کیفیت و اطمینان خدمات، قربانی سرعت انتقال می‌شوند (احتمال از دست رفتن پیام‌ها وجود دارد). QoS 1 : از ارسال‌کننده می‌خواهد تا در صورت عدم دریافت پیام تائید در مهلت زمانی تعین شده، مجدداً پیام را ارسال کند. در اتصال اینترنتی ضعیف، تلاش مجدد QoS 1 در ارسال پیام ممکن است، در عملکرد انتقال پیام‌ها تأثیر گذاشته و احتمال ارسال پیام‌های تکراری وجود دارد. QoS 2 : مشابه عملکرد QoS 1 است با این تفاوت که برای اطمینان از عدم ارسال تکراری پیام‌ها، پی‌درپی وضعیت خود را تغییر می‌دهد. ذخیره پیام‌ها: زمانی که Publisher پیامی را با عنوان “ذخیره شود” علامت‌گذاری می‌کند، آن پیام پیش از سایر پیام‌ها به endpoint ای که برای آن تاپیک Subscribe کرده است می‌رسد. در هر تاپیک فقط یک پیام را می‌توان ذخیره کرد. پیام‌هایLWT: ا Publisher یا subscriber هنگام اتصال به سرور می‌توانند برای Topic خود یک پیام LWT تنظیم کنند، در این حالت در صورت قطع ناخواسته ارتباط endpoint، کلیه کاربرانی که آن topic را دنبال می‌کنند، پیام را دریافت خواهند کرد. در صورت قطع ارتباط عمدی، پیام‌های LWT ارسال نخواهند شد. در قسمت بعدی آموزش با نصب و تست MQTT روی رزبری پای آشنا میشویم. برای بحث های بیشتر در مورد اینرنت اشیا با رزبری پای و ESP8266 به تاپیک مربوطه در انجمن الکترولب مراجعه کنید. اگر به میکروکنترلر ها و آردوینو علاقه دارید وبلاگ دیگر من الکترولب را دنبال کنید. منبع: iott .ir
  4. راه های مختلفی برای استفاده از ماژول ESP8266 وجود داره که در این پست معرفی ماژول WiFi – وای فای ESP8266 همشون رو به جز میکروپایتون معرفی کردم یک دلیل برای معرفی نکردنش هم کامل نبودن میکروپایتون برای ESP9266 بود در ادامه این تاپیک نحوه راه اندازی میکروپایتون روی esp8266 بررسی میکنیم و به ترتیب دستور هایی رو که پشتیانی میکنه رو بررسی میکنم
  5. در قسمت اول با نحوه ایجاد و استفاده از ربات تلگرام مورد بررسی قرار گرفت. در قست پایانی آموزش اتصال esp6266 به ربات تلگرام نحوه اضافه کردن بردهای esp8266 به نرم افزار آردوینو را خواهیم داشت در ادامه نحوه اضافه کردن کتابخانه های لازم برای برنامه ارتباط esp8266 با تلگرام را توضیح خواهم داد و در آخر توضیح و راه اندازی پروژه شرح داده خواهد شد با الکترولب همراه باشید. اضافه کردن بردهای مبتنی بر ESP8266 به نرم افزار آردوینو برای آن که بتوانید بر روی این ماژول توسط IDE آردوینو برنامه نویسی کنید باید درایورها و بورد آن را بر روی نرم افزار آردوینو نصب کنید.برای این منظور وارد نرم افزار آردوینو شوید. سپس از قسمت File وارد Preferences شوید. سپس لینک زیر را کپی کنید و در پنجره Preferences در قسمت Additional Boards Manager URLs ، لینک را paste کنید و OK را بزنید. http://arduino.esp8266.com/stable/package_esp8266com_index.json سپس از قسمت Tools وارد Boards Manager… شوید. سپس در لیست نمایش داده شده به دنبال esp8266 by ESP8266 Community بگردید و آن را نصب کنید. م نتظر بمانید تا عملیات نصب تکمیل شود. برای استفاده از ماژول وای فای ESP8266 باید در لیست برد ها برد متناسب با ماژول خود را انتخاب کنید. اضافه کردن کتابخانه های مورد نیاز ارتباط با تلگرام و اینترنت: برای کامپایل کردن برنامه اتصال ESP8266 به ربات تلگرام نیاز به سه کتابخانه ArduinoJson , WiFiclientSecure , UniversalTelegramBot دارید که به دو روش می توانید این کتابخانه ها را به برنامه آردوینو خود اضافه کنید: روش اول استفاده از قسمت manage library برنامه آردوینو: در این روش می توانید با جست و جو کردن نام کتابخانه کتابخانه مورد نظر را پیدا کرده و نصب کنید. روش دوم کپی کردن فایل کتابخانه ها به پوشه آردوینو در این روش فایل کتابخانه ها را دانلود کرده و در مسیر کتابخانه های آردوینو قرار میدهید. دانلود کتابخانه های مورد نیاز اتصال ESP8266 به تلگرام فایل های دانلود شده را به مسیر زیر کپی کنید. C:\Users\ezzati\Documents\Arduino\libraries برنامه آردوینو اتصال ESP8266 به ربات تلگرام #include <ESP8266WiFi.h> #include <WiFiClientSecure.h> #include <UniversalTelegramBot.h> // Initialize Wifi connection to the router char ssid[] = "***"; // نام روتر وایفای char password[] = "123456789"; // پسورد وایفای // Initialize Telegram BOT #define BOTtoken "441099696:AAE**************nBb9Qp4NnqpH2XvuE" // توکن ربات تلگرام WiFiClientSecure client; UniversalTelegramBot bot(BOTtoken, client); int Bot_mtbs = 1000; //mean time between scan messages long Bot_lasttime; //last time messages' scan has been done bool Start = false; const int ledPin = D2; int ledStatus = 0; void handleNewMessages(int numNewMessages) { Serial.println("handleNewMessages"); Serial.println(String(numNewMessages)); for (int i=0; i<numNewMessages; i++) { String chat_id = String(bot.messages[i].chat_id); String text = bot.messages[i].text; String from_name = bot.messages[i].from_name; if (from_name == "") from_name = "Guest"; if (text == "/ledon") { digitalWrite(ledPin, HIGH); // turn the LED on (HIGH is the voltage level) ledStatus = 1; bot.sendMessage(chat_id, "Led is ON", ""); } if (text == "/ledoff") { ledStatus = 0; digitalWrite(ledPin, LOW); // turn the LED off (LOW is the voltage level) bot.sendMessage(chat_id, "Led is OFF", ""); } if (text == "/status") { if(ledStatus){ bot.sendMessage(chat_id, "Led is ON", ""); } else { bot.sendMessage(chat_id, "Led is OFF", ""); } } if (text == "/start") { String welcome = "به برنامه ارتباط اینترنت اشیاء با ربات تلگرام خوش آمدید" + from_name + ".\n"; welcome += "برنامه نمونه برای مدیریت ال ای دی.\n\n"; welcome += "/ledon : جهت روشن کردن ال ای دی از این دستور استفاده کنید.\n"; welcome += "/ledoff : جهت خاموش کردن ال ای دی از این دستور استفاده کنید.\n"; welcome += "/status : چنانچه نمیدانید ال ای دی در چه وضعیتی است از این دستور استفاده کنید.\n"; bot.sendMessage(chat_id, welcome, "Markdown"); } } } void setup() { Serial.begin(115200); // Set WiFi to station mode and disconnect from an AP if it was Previously // connected WiFi.mode(WIFI_STA); WiFi.disconnect(); delay(100); // attempt to connect to Wifi network: Serial.print("Connecting Wifi: "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(500); } Serial.println(""); Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); pinMode(ledPin, OUTPUT); // initialize digital ledPin as an output. delay(10); digitalWrite(ledPin, LOW); // initialize pin as off } void loop() { if (millis() > Bot_lasttime + Bot_mtbs) { int numNewMessages = bot.getUpdates(bot.last_message_received + 1); while(numNewMessages) { Serial.println("got response"); handleNewMessages(numNewMessages); numNewMessages = bot.getUpdates(bot.last_message_received + 1); } Bot_lasttime = millis(); } } کد زیر برنامه ارتباط برای انواع برد آردوینو با ربات تلگرام میباشد. در این برنامه کامندهای ربات تلگرام تعریف شده‌اند. دو کامند /ledon و /ledoff که به پین متصل شده در برد فرمان میدهد. این کامندها به کامندهای مورد نیاز شما قابل تغییر است. یوزنیم و پسور وای فای + توکن ربات تلگرام را در کدها وارد کنید. سپس روی برد آپلود کنید. پس از آن همانند تصویر زیر وارد ربات تلگرام که ساخته‌اید بشوید و Start را بزنید. سپس ۳ دستور که در کدهای بالا تعریف شده است برای شما برگردانده میشود. بعد از اتصال به مودم IP اختصاص یافته به برد ESP8266 در ترمینال سریال برنامه آردوینو نمایش داده میشود. بعد از این مرحله کافیست نام رباتی که ایجاد کردید را در تلگرام جست و جو کنید و strat را بزنید. با زدن هر یک از دستور ها عمل متناظر با دستور روی ماژول وای فای اجرا میشود برای سوال در این مورد می توانید به انجمن الکترولب مراجعه کنید.
×