آموزش الکترونیکپروژه های ARMپروژه های Espپروژه های STM32

آموزش اتصال ESP8266 به STM32 (ایجاد وب سرور با ARM)

سلام. آموزش اتصال ESP8266 به STM32 (ایجاد وب سرور با ARM) را آماده کردیم.

پیکربندی STM32 برای اتصال به اینترنت و وای فای

اگر در مورد فن آوری های آینده فکر می کنید ، آن دو نام که بلافاصله به ذهن شما می رسد عبارتند از: هوش مصنوعی AI و اینترنت اشیاء IoT. هوش مصنوعی هنوز در مرحله اولیه خود است و خیلی مسائل آن نیاز به توسعه دارند. اما IoT در مرحله رشد است و بسیاری از محصولات مبتنی بر IoT در حال حاضر در بازار وجود دارند. همچنین ابزارها و سخت افزارهای بسیاری در بازار موجود است تا پروژه شما در اینترنت با “اشیا” ارتباط برقرار کند. در میان آنها ESP8266 محبوب ترین ، ارزان و پر کاربرد ماژول است که می تواند سخت افزار شما را به اینترنت متصل کند.

ما پروژه های IoT زیادی را با استفاده از ESP8266 توسعه داده ایم، که نه تنها شامل ارتباط با میکروکنترلرهای دیگر مانند Arduino ، PIC ، AVR می شود بلکه شامل بسیاری از پروژه های هوشمند مانند مانیتورینگ آلودگی هوای مبتنی بر IOT ، ردیابی وسایل نقلیه در Google Maps ، خانه هوشمند کنترل شده صوتی مبتنی بر IOT می باشد. امروز در این آموزش از ESP8266 برای اتصال STM32 به اینترنت استفاده می کنیم. در اینجا ما ماژول Wi-Fi ESP8266 را به برد Blue Pill STM32F103C8 متصل خواهیم کرد و داده ها را به یک صفحه وب میزبان در وب سرور ESP8266 ارسال می کنیم.

مدار اتصال STM32 به Esp8266

نحوه اتصال STM32 به ESP8266 در تصویر زیر نشان داده شده است.

مدار اتصال STM32 به Esp8266

برای اتصال پین های ESP8266 به پین های STM32 از جدول زیر استفاده کنید.

ESP8266 STM32
VCC 3.3V
GND G
CH_PD 3.3V
TX PA3
RX PA2

SMT32F103C8 دارای سه مجموعه ارتباط سریال UART است. در تصویر زیر می توانید پین های زیر را برای همین موارد مشاهده کنید:

پورت سریال پین ها تحمل
Serial1 (TX1,RX1) PA9,PA10 PB6,PB7 5V
Serial2 (TX2,RX2) PA2,PA3 3.3V
Serial3 (TX3,RX3) PB10,PB11 5V

ESP8266 از ارتباط سریال برای تعامل با میکروکنترلر استفاده می کند. بنابراین در اینجا TX و RX  از ماژول ESP8266 به درگاه serial2 یعنی پین PA3 و PA2 برد STM32 وصل شده اند.

قطعات مورد نیاز

  1. STM32 – برد توسعه (BluePill) (STM32F103C8T6)
  2. ماژول Wi-Fi ESP8266

توضیحات ماژول وای فای ESP8266

بیشتر افراد ESP8266 را به عنوان یک ماژول WIFI می دانند ، اما در واقع یک میکروکنترلر است. ESP8266 نام یک میکروکنترلر است که توسط شرکت Espressif Systems ساخته شده است و یک شرکت مستقر در شانگهای است. این میکروکنترلر توانایی انجام فعالیتهای مرتبط با WIFI را دارد از این رو به صورت گسترده به عنوان یک ماژول WIFI مورد استفاده قرار می گیرد.

ماژول وایفای ESP8266

اگر میخواهید آردوینو را به صورت اصولی و پروژه محور (ساخت ربات، ارتباط با اندروید، اینترنت اشیا، برنامه نویسی حرفه ای) یاد بگیرید، حتما دوره آموزش آردوینو را مشاهده کنید.

انواع مختلفی از ماژول های ESP8266 وجود دارد ( از ESP8266-01 تا ESP8266-12 ). ما در این پروژه PIC از ESP8266-01 استفاده میکنیم. زیرا ارزان ترین آن است و در دسترس است. این ماژول با ولتاژ 3.3 تغذیه میشود و مصرف آن حدود 10uA-170mA است. ماژول ESP8266 دارای یک مبدل ADC است.

مشاهده همه پروژه های با ماژول وای فای ESP8266 : کلیک کنید !

دستورات AT برای برقراری ارتباط با ESP8266 استفاده می شوند. جدول زیر برخی از دستورات AT مفید را نشان می دهد.

دستور AT کاربرد
AT اگر همه چیز خوب باشد OK دریافت میشود
AT+RST راه اندازی مجدد ماژول
AT+GMR نمایش اطلاعات
AT+CWMODE=1 یا 2 یا 3 حالت وایفای :  1 = ایستگاه ، 2= AP و 3= هردو
AT+CWLAP لیست AP
AT+CWJAP=”SSID”,”PASSWORD” پیوستن AP
AT+CWQAP خروج AP
AT+CIFSR دریافت آدرس IP
AT+CIPMUX= 0 , 1 تنظیم تعداد اتصالات : 0 = یگانه ، 1 = چند گانه
AT+CIPSTART AT+CIPSTART=<type>,<address>,<port> AT+CIPSTART=<id>,<type>,<address>,<port> تنظیم ارتباط TCP/UDP  :

addres = آدرس آی پی – Port = پورت – در اتصال یگانه = Type = TCP, UDP

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

در اتصال چند گانه id = میتواند بین 0 تا 4 باشد

<AT+CIPSEND AT+CIPSEND=<length

<AT+CIPSEND=<id>,<length

ارسال اطلاعات در اتصال یگانه :

Length = طول داده ها در اتصال چندگانه

id = از 0 تا 4 میتواند باشد

AT+CIPSTATUS دریافت اطلاعات اتصال
AT+CIPSERVER=<mode>,<port> Set as Server 0-Server close, 1-Open port

تنظیم سرور 1= بسته – 2= باز

AT+CIPCLOSE بستن اتصال TCP یا UDP

کد پروژه ارتباط Esp8266 و STM32

کار با ESP8266 و STM32 بسیار ساده است.  ما از آردوینو IDE برای نوشتن و بارگذاری کد در STM32 استفاده می کنیم. ابتدا باید اتصالات مدار را مطابق شماتیک مدار انجام دهیم. پس از بارگذاری کد ، مانیتور سریال (Tools> Serial Monitor) را باز کنید تا آنچه اتفاق می افتد را ببینید. آدرس IP را در مانیتور سریال مشاهده خواهید کرد ، آدرس IP را از مانیتور سریال کپی کرده و آن را در مرورگر جایگذاری کرده و برای دیدن صفحه وب کلیک کنید. به یاد داشته باشید که کامپیوتر و ماژول ESP8266 خود را در یک شبکه Wi-Fi متصل کنید.

کد کامل پروژه در انتهای صفحه قرار داده شده است. در اینجا بعضی از قسمت های کد را توضیح میدهیم.

ابتدا ارتباط سریال را برای مانیتور سریال و ESP8266 با استفاده از دو جمله زیر شروع می کنیم:

Serial.println(cmd);
Serial2.println(cmd);

من از پین های (PA2 ، PA3) درگاه Serial2 STM32 استفاده کرده ام زیرا تحمل آن 3.3 ولت است. سپس باید با ترک مجدد آن و تنظیم حالت Wi-Fi به عنوان AP & STA ، ESP8266 را آماده کنیم.

connect_wifi("AT",100);  //ارسال دستورات AT
connect_wifi("AT+CWMODE=3",100);   //ارسال دستورات AT
connect_wifi("AT+CWQAP",100);  //ارسال دستورات AT
connect_wifi("AT+RST",5000);   //ارسال دستورات AT

سپس ESP8266 را به شبکه Wi-Fi وصل کنید. شما باید جزئیات Wi-Fi خود را مطابق با کد زیر نشان دهید:

connect_wifi("AT+CWJAP=\"Pramo\",\"pokemon08\"",7000); 

سپس آدرس IP ماژول ESP8266 را دریافت می کنیم و با استفاده از کد زیر آن را در مانیتور سریال نشان می دهیم.

Serial2.println("AT+CIFSR");           //دستور AT دریافت آیپی
if(Serial2.find("STAIP,"))                 //پیدا کردن آدرس آیپی
Serial.print(IP);     // نمایش آدرس آیپی در سریال مانیتور

بعد کد HTML را برای صفحه وب می نویسیم.

webpage = "<h1>Welcome to Irenx</h1><body bgcolor=f0f0f0>";
String name="<p>Circuit Digest</p><p>A community of electrical and electronics students, engineers and makers</p>";
String data="<p>Data Received Successfully.....</p>";   
webpage = "<a href=\"https://irenx.ir/\"";
webpage+="\">irenx</a>";

سپس در void send() ما HTML را با استفاده از عملکرد sendwebdata چاپ کرده ایم و اتصال سرور را با استفاده از AT + CIPCLOSE = 0 بسته ایم.

void Send(  //ارسال اطلاعات به سرور محلی
{
      webpage = "<h1>Welcome to IRenx</h1><body bgcolor=f0f0f0>";
      sendwebdata(webpage);
      webpage=name;
      sendwebdata(webpage);
      delay(1000);
      webpage = "<a href=\"https://irenx.ir/\"";
      webpage+="\">Click Here to get into irenx</a>";
      webpage+=data;
      sendwebdata(webpage);
      Serial2.println("AT+CIPCLOSE=0");  //بستن اتصال سرور
}

بعد از تمام کارها ، می توانید با باز کردن IP برد ESP8266 در هر مرورگر وب، صفحه خود را بررسی کنید.

فیلم عملکرد پروژه

فیلم زیر به شما در درک نحوه کار این پروژه کمک میکند.

دانلود فیلم عملکرد esp8266 با STM32

موارد موجود در فایل : شماتیک کامل مدار ، سورس کامل

دانلود فایل های آموزش

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید
امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید
محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. مالکیتی بر مطالب ارائه شده ندارم. اکثر فعالیت بنده در زمینه ترجمه است. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

6 نظر

  1. سلام
    میشه تمام تنظیمات مربوط به ماژول وای فای esp8266-01 رو به ترتیب بگید
    من قطعات مربوطه رو خریدم و الانم مشکل اتصال ماژول وای فای هست
    لطفا راهنمایی کنید

    1. سلام جناب. اول باید در حالت دستورات AT، با AT+CWJAP=”SSID”,”PASSWORD” ماژول رو به وایفای خودتون متصل کنید. بعد کد رو آپلود کنید و در سریال مانیتور یک آدرس آیپی مشاهده میکنید که با وارد کردن اون در مرورگر صفحه مورد نظر باز میشه.

      1. همین کارو کردم ولی پیغام error رو برمیگردونه!!
        ماژول وای فای ESP8266-01 خیلی بدقلق هست
        بعد اینکه من میخام هم لپ تاپ و هم ماژول وای فای به اینترنت گوشیم وصل باشن.
        اول باید ماژول وای فای رو به گوشیم وصل کنم(از طریق دستورات AT) «اما دقیقاً چطوری»؟
        بعد کد رو روی برد بلوپیل آپلود کنم؟
        بعد ماژول وای فای رو طبق شماتیک گفته شده به برد بلوپیل وصل کنم؟
        بعد از وصل وارد سریال مانیتور بشم؟
        بعد IP نشان داده شده داخل سریال مانیتور رو داخل مرورگر بنویسم و بازش کنم؟
        لطفا راهنمایی کنید

        1. در تمامی مراحل درست فرمودید فقط دستورات AT رو از طریق سریال مانیتور ارسال کنید. اول بر طبق برنامه نویسی ماژول وایفای ESP8266 با نرم افزار آردوینو + آموزش جامع دستورات AT رو در سریال مانیتور وارد کنید. هم میتونید با دستور
          sendData("AT...); دستورات رو ارسال کنید.

          1. یعنی پایه GPIO0 ماژول وای فای رو به GND وصل کنم و بعدش دستورات AT رو از طریق سریال مانیتور ارسال کنم؟؟

          2. نه چه ربطی داره. باید با ارتباط سریال دستورات AT رو ارسال کنید.

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *