بررسی 21 AT Command مهم در بردهای ESP
بردهای ESP در مدلهای و نسخههای مختلفی طراحی و تولید میشوند. این بردها به علت اینکه هم میکروکنترلر هستند و هم قابلیت تبادل بیسیم دارند، بسیار حائز اهمیت هستند. از اینرو ابعاد کوچک، قیمت اقتصادی و در دسترس بودن آنها باعث شده است که یکی از انتخابهای تولید کنندگان در حوزه خانه هوشمند باشد. در کنار تمامی این موارد جامعه کاربری بسیار فعال و گسترده در زمینه بردهای ESP هم خالی از لطف برای این تقاضا و طرفداری نیست. در این پست تلاش میکنیم که دستورات مهم و کاربردی برای فرمان دادن به بردهای ESP را بررسی کنیم. دقت داشته باشید که برای کنترل بردهای ESP دو راه کار وجود دارد. یکی استفاده از کتابخانههای توسعه داده شده و دیگری به کار بردن دستورات AT Command هستند. پس چنانچه بردهای ESP را از دانشجو کیت خریداری میکنید و یا هر فروشگاه دیگری و یا حتی به صورت حضوری از بازار خرید کردهاید. امیداوریم بتوانیم در این متن به سوالات مهم شما در خصوص راه اندازی پاسخ بدهیم. در ادامه دستورات AT Command برای سه مدل ESP8266 و ESP32 و ESP-Cam را بررسی میکنیم.
دستورات AT Command چه هستند؟
دستورات AT Command (تعبیر درست: AT commands) یک مجموعه از دستورهای استاندارد هستند که برای کنترل و مدیریت تجهیزات الکترونیکی استفاده میشوند. عبارت AT اصطلاحی است که به تعبیر "ATtention" میپردازد و در ابتدای هر دستور برای جلب توجه تجهیزات استفاده میشود. دستورات AT Command در اصل برای ارتباط با مودمهای تلفنی بکار گرفته میشدند، اما امروزه در بسیاری از دستگاههای الکترونیکی مورد استفاده قرار میگیرند، از جمله ماژولهای ارتباطی مانند ESP8266-01، سیستمهای امبدد embedded systems، ماژولهای GSM و GPRS، ماژولهای بلوتوث، ماژولهای GPS و... با استفاده از دستورهای AT Command، میتوانید از طریق رابط سریال (Serial) با دستگاه ارتباط برقرار کرده و دستورات مختلف را برای ارسال و دریافت دادهها، تنظیمات سیستم، کنترل عملکرد و انجام وظایف مرتبط با دستگاه صادر کنید. دستورات AT Command معمولاً شامل یک سری کاراکترها، حروف و اعداد هستند که دستور خاصی را مشخص میکنند. پاسخی که از دستگاه دریافت میشود نیز معمولاً شامل پیامهایی مانند "OK" (عملیات موفق)، "ERROR" (خطا) یا دادههای دیگر است که نتیجه عملکرد دستور مورد نظر را نشان میدهد. استفاده از دستورات AT Command در کنترل و مدیریت تجهیزات الکترونیکی باعث سهولت و قابلیت پیادهسازی برنامههای کاربردی مختلف میشود. راه اندازی esp8266 با at command اصول خاصی دارد.
در کل اتصال با تجهیزات الکترونیکی با استفاده از دستورات AT Command دارای مزایا و کاربردهای متنوعی است.
1- سهولت استفاده: دستورهای AT Command با استفاده از ساختار ساده و قابل فهم، روشی آسان و قابل استفاده برای تعامل با تجهیزات الکترونیکی فراهم میکنند. این دستورات با استفاده از کاراکترها و کدوم های قابل فهم قابل استفاده و ارسال میشوند.
2- پایداری و سازگاری: دستورات AT Command برای تعامل با تجهیزات الکترونیکی استاندارد شدهاند. به عبارتی، تجهیزاتی که از دستورات AT Command پشتیبانی میکنند، قادر به درک و پاسخگویی به این دستورات هستند. این سازگاری باعث پایداری و قابلیت اطمینان در ارتباط با تجهیزات مختلف میشود.
3- قابلیت حمل پذیری: استفاده از دستورات AT Command میتواند باعث قابلیت پورتابلیتی (قابل حمل بودن) برنامهها و سیستمها باشد. زیرا با استفاده از این دستورات، میتوانید برنامهها و سیستمهای خود را بر روی تجهیزات مختلفی اجرا کنید که از دستورهای AT Command پشتیبانی میکنند.
4- کاربردهای متعدد: دستورات AT Command در کنترل و مدیریت مجموعهای از تجهیزات الکترونیکی استفاده میشوند. از جمله کاربردهای رایج آنها میتوان به کنترل مودمها، ماژولهای ارتباطی، دستگاههای دستی (Handheld devices)، ماژولهای بلوتوث، دستگاههای IoT و سایر دستگاههای الکترونیکی اشاره کرد.
دستورات AT Command به عنوان یک روش استاندارد برای تعامل با تجهیزات الکترونیکی در صنعت ارتباطات و اینترنت اشیا (IoT) استفاده میشوند. با توجه به سادگی و قابلیت استفاده آنها، توسعه دهندگان قادر به ساخت برنامهها و سیستمهای پیچیدهتر برای کنترل و مدیریت تجهیزات الکترونیکی میشوند.
اتصال بردهای ESP به مبدل سریال برای برنامه ریزی از طریق AT Command
برای راه اندازی esp8266 با at command بایستی ارتباط سریال برقرار کنید. تمامی بردها و تراشههای ESP دارای رابط سریال هستند. توسط رابط سریال یا همان UART میتوانید فرمانهای لازم را به برد ارسال کنید. در تصویر زیر اتصالات برد ESP-01 به یک مبدل USB به سریال را مشاهده میکنید. مطابق این تصویر میتوانید اتصالات را برقرار کنید. در خصوص دیگر نسخههای ESP و مدلهای متنوع آن کافیست پایههای PinOut مدل مربوطه را بررسی کنید و اتصالات را برقرار کنید.
راه اندازی ESP8266 از طریق AT Commands
برای تغییر مد کاری ماژول ESP8266 به حالت AT Command، مراحل زیر را دنبال کنید.
اتصال سریال: ماژول ESP8266-01 را به پورت سریال (Serial Port) روی یک میکروکنترلر یا کامپیوتر متصل کنید. شما باید از سطح منطقی 3.3 ولت برای اتصال ماژول استفاده کنید، زیرا ولتاژ 5 ولت میتواند به ماژول آسیب برساند.
تنظیمات سریال: تنظیمات سریال باید با نرخ انتقال 115200 بیت بر ثانیه (bps)، بیتهای داده 8 و بیتهای توقف 1 تنظیم شود.
راهاندازی مود AT Command: برای ورود به مود AT Command، باید ماژول ESP8266 را دستوراتی از طریق سریال بفرستید. برای این منظور، ابتدا دستگاه را ریست کنید و سپس دستورات زیر را به ترتیب ارسال کنید:
ارسال "AT" و دریافت پاسخ "OK" برای تأیید ارتباط با ماژول
ارسال "AT+RST" و دریافت پاسخ ریست ماژول
ارسال "AT+CWMODE=1" و دریافت پاسخ تنظیم ماژول در حالت استفاده از AT Command
ارسال "AT+UART_CUR=115200,8,1,0,0" و دریافت پاسخ تنظیم نرخ انتقال سریال به 115200 بیت بر ثانیه
تأیید ورود به مود AT Command: پس از ارسال دستورهای فوق، ماژول ESP8266 باید وارد مود AT Command شود. شما میتوانید دستور "AT" را ارسال کنید و دریافت پاسخ "OK" برای تأیید ورود به این مود را بررسی کنید. اکنون ماژول ESP8266-01 در حالت AT Command قرار دارد و شما میتوانید دستورهای AT Command را ارسال و با ماژول تعامل کنید. برای مثال، میتوانید دستور "AT+GMR" را برای دریافت نسخه نرمافزار ماژول ارسال کنید و پاسخ را دریافت کنید. توجه داشته باشید که تغییر مود کاری ماژول ESP8266 به حالت AT Command به شما امکان میدهد با ماژول از طریق دستورهای AT Command ارتباط برقرار کنید. با این حال، برای استفاده بهینهتر از این ماژول و انجام عملیات پیچیدهتر، ممکن است نیاز به برنامه نویسی مستقیم با استفاده از زبانها و کتابخانههای برنامهنویسی مختلف داشته باشید.
دستورهای مهم AT Command بردهای ESP
ESP8266-01 از دستورهای AT Command پشتیبانی میکند که به کمک آنها میتوانید با ماژول ارتباط برقرار کنید و عملکردهای مختلف را کنترل کنید. برخی از دستورهای AT Command مهم برای ESP8266-01 را در ادامه بررسی میکنیم.
- AT: این دستور برای تعیین وجود ارتباط با ماژول استفاده میشود و پاسخ OK را برمیگرداند.
- AT+RST: این دستور برای ریستارت کردن ماژول استفاده میشود.
- AT+GMR: این دستور نسخه فریمور ماژول ESP8266-01 را نمایش میدهد.
- AT+CWMODE: این دستور برای تنظیم حالت شبکه ماژول (مثلاً حالت مشتری، حالت AP یا حالت AP + مشتری) استفاده میشود.
- AT+CWJAP: این دستور برای اتصال به یک شبکه وای فای مشخص با استفاده از نام کاربری و رمزعبور استفاده میشود.
- AT+CIFSR: این دستور آدرس IP و MAC ماژول را نمایش میدهد.
- AT+CIPSTART: این دستور برای ایجاد اتصال TCP یا UDP با یک آدرس و پورت مشخص استفاده میشود.
- AT+CIPSEND: این دستور برای ارسال دادهها به طرف مقابل در یک اتصال TCP یا UDP استفاده میشود.
- AT+CIPCLOSE: این دستور برای بستن اتصال TCP یا UDP استفاده میشود.
- AT+CWLAP: این دستور لیست شبکههای موجود در محدوده را نمایش میدهد.
- AT+CIPMUX: این دستور برای تنظیم حالت چنداتصالی (Multiple Connections) ماژول استفاده میشود.
- AT+CIPSERVER: این دستور برای تنظیم ماژول به عنوان یک سرور استفاده میشود.
- AT+CIPSTO: این دستور برای تنظیم زمان انتظار برای بستن اتصال در صورت عدم فعالیت استفاده میشود.
- AT+CIPDINFO: این دستور برای نمایش اطلاعات مربوط به اتصال فعلی استفاده میشود.
- AT+CWSAP: این دستور برای تنظیم مشخصات یک شبکه Wi-Fi داخلی (Access Point) استفاده میشود.
- AT+CIPMODE: تنظیم حالت انتقال داده (Data Transmission Mode). شما میتوانید این حالت را برای انتقال دادهها به صورت تک پکت (Single Packet Mode) یا انتقال دادهها به صورت پیوسته (Unvarnished Transmission Mode) تنظیم کنید.
- AT+CIPSTO: تنظیم زمان Time-out برای اتصال TCP/UDP. این دستور به شما امکان میدهد زمان مجاز برای برقراری ارتباط TCP/UDP را تنظیم کنید.
- AT+CIPMUX: تنظیم حالت چنداتصالی (Multiple Connections). با استفاده از این دستور، میتوانید ESP8266 را در حالتی قرار دهید که قابلیت برقراری اتصال همزمان به چندین کلاینت TCP/UDP را داشته باشد.
- AT+CIPSERVERMAXCONN: تنظیم تعداد حداکثر اتصالات مجاز برای سرور TCP. با استفاده از این دستور، میتوانید تعداد حداکثر اتصالاتی که میتوانند به سرور TCP ماژول متصل شوند را تنظیم کنید.
- AT+CWLIF: دریافت لیست آدرسهای IP مرتبط با دستگاههایی که به ماژول ESP8266 متصل هستند.
- AT+CIPDINFO: دریافت اطلاعات جزئی درباره بستههای دریافتی. این دستور به شما اطلاعاتی مانند طول بسته و زمان دریافت بسته را ارائه میدهد.
این فقط چند نمونه از دستورهای AT Command است که میتوانید برای تنظیمات و کنترل ماژول ESP8266-01 استفاده کنید. دستورات AT Command متعددی وجود دارند که هر کدام قابلیتها و کاربردهای خاصی را فراهم میکنند. مطالعه دقیق مستندات ESP8266-01 و دستورالعملهای AT Command آن به شما اطلاعات کاملتری درباره استفاده از ماژول و دستورات آن را خواهد داد.
دستورهای AT Command بردهای ESP32 و ESP8266 چه تفاوتی دارند؟
دستورات AT برای بردهای ESP32 و ESP8266 تفاوتهایی دارند. این تفاوتها به دلیل تفاوت در سختافزار و قابلیتهای موجود در هر برد میباشند. در ادامه تفاوتهای اصلی را بررسی خواهیم کرد.
مودم Wi-Fi: یکی از تفاوتهای اساسی بین ESP32 و ESP8266، قابلیتهای مودم Wi-Fi آنهاست. ESP32 دارای قابلیتهای Wi-Fi پیشرفتهتری است، از جمله پشتیبانی از حالت استفاده همزمان از Wi-Fi Station و Wi-Fi Access Point، دسترسی به شبکههای Mesh و برقراری ارتباطات BLE (Bluetooth Low Energy). در حالی که ESP8266 به صورت اصلی برای استفاده در حالت Wi-Fi Station طراحی شده است.
GPIO: تعداد و قابلیت GPIO هر برد نیز ممکن است متفاوت باشد. ESP32 با داشتن تعداد GPIO بیشتر و قابلیتهای بیشتر در این زمینه، امکانات وسیعتری را به برنامه نویسان ارائه میدهد.
پردازنده: ESP32 دارای پردازنده قویتری است که میتواند باعث اجرای سریعتر و عملکرد بهتر برنامهها شود. این تفاوت در سطح سختافزاری تأثیری بر دستورهای AT ندارد، اما ممکن است تفاوتهایی در پشتیبانی از عملکردهای خاص داشته باشد.
حافظه: ESP32 دارای حافظه بیشتری است که به برنامه نویسان امکان اجرای برنامههای پیچیدهتر و ذخیره دادههای بیشتر را میدهد.
در کل، اگرچه برخی از دستورهای AT مشابه در هر دو برد وجود دارند، اما برای استفاده کامل و بهینه از قابلیتهای هر برد، ممکن است نیاز به دستورات تخصصی همان تراشه داشته باشید.
چند دستور کاربردی ESP32 برای مدیریت واحد بلوتوث
بردهای ESP32 دارای قابلیت بلوتوث نیز هستند. در زیر، چند نمونه از دستورهای AT Command مربوط به بلوتوث ESP32 را بررسی میکنیم.
- AT+BTPOWER: روشن و خاموش کردن بلوتوث ESP32
- AT+BTNAME: تنظیم نام دستگاه بلوتوث ESP32
- AT+BTSCAN: شروع اسکن برای پیدا کردن دستگاههای بلوتوث در دسترس
- AT+BTPAIR: جفتشدن با یک دستگاه بلوتوث
- AT+BTCONNECT: برقراری اتصال با دستگاه بلوتوث
- AT+BTDISCONNECT: قطع اتصال با دستگاه بلوتوث
- AT+BTGETADDR: دریافت آدرس بلوتوث دستگاه ESP32
- AT+BTGETNAME: دریافت نام بلوتوث دستگاه ESP32
- AT+BTPIN: تنظیم پین جفتشدن برای دستگاه بلوتوث
- AT+BTINQ: پرس و جوی برای دستگاههای بلوتوث در دسترس
- AT+BTGETPROF: دریافت پروفایلهای بلوتوث پشتیبانی شده
- AT+BTGETLINK: دریافت لیست اتصالات بلوتوث برقرار شده
این تنها چند نمونه از دستورهای AT Command بلوتوث ESP32 هستند. با استفاده از این دستورات، میتوانید قابلیتهای بلوتوث ESP32 را کنترل و مدیریت کنید، از جمله برقراری اتصال با دستگاههای دیگر، دریافت اطلاعات بلوتوث، تنظیمات پارامترها و غیره.
چند دستور کاربردی برای برد ESP32-Cam
ESP32-CAM یک نسخه خاص از برد ESP32 است که دارای واحد دوربین است. در زیر، چند نمونه از دستورات AT Command مربوط به دوربین ESP32-CAM را بررسی میکنیم.
- AT+CWMODE: تنظیم حالت Wi-Fi ماژول. شما میتوانید حالت استفاده از AT Command و یا حالت استفاده از Wi-Fi Station را انتخاب کنید.
- AT+CWJAP: اتصال به شبکه Wi-Fi با استفاده از نام SSID و رمز عبور
- AT+CIFSR: دریافت IP آدرس ماژول ESP32-CAM
- AT+CIPSTART: شروع اتصال TCP یا UDP
- AT+CIPSEND: ارسال دادهها در حالت TCP یا UDP
- AT+CIPCLOSE: بستن اتصال TCP یا UDP
- AT+CAMERA: کنترل دوربین ESP32-CAM، شامل عملکردهایی مانند گرفتن عکس، ضبط ویدیو و تنظیمات دوربین
- AT+CAMINIT: مقداردهی اولیه دوربین با تنظیمات پیشفرض
- AT+CAMERA_FRAME: تنظیم رزولوشن و نرخ فریم دوربین
- AT+CAMERA_FOCUS: تنظیم فوکوس دوربین
- AT+CAMERA_SATURATION: تنظیم اشباع رنگ دوربین
- AT+CAMERA_BRIGHTNESS: تنظیم روشنایی دوربین
این تنها چند نمونه از دستورات AT Command برای دوربین ESP32-CAM هستند. با استفاده از این دستورات، شما میتوانید قابلیتها و تنظیمات دوربین را کنترل و مدیریت کنید، از جمله گرفتن عکسها، ضبط ویدیو، تنظیمات تصویر و غیره.
جمع بندی
در آخر دقت داشته باشید که تمامی بردهای خانواده ESP توسط دستورات AT قابل مدیریت هستند. کافیست طبق دیتاشیت هر کدام دستورات مربوطه را بررسی کنید. سپس براساس نیازمندی که دارید، روی برد کد بزنید. در کدهایی که روی برد آپلود میکنید تمامی AT Commandها را میتوانید یک به یک اجرا کنید. کافیست براساس سناریوی پروژهای که میخواهید اجرا کنید، اقدام به مشخص کردن دستورات AT کرده و سپس روی برد آپلود کنید. همچنین فراموش نکنید که تمامی بردهای خانواده ESP دارای حافظه داخلی هستند و به نوعی میکروکنترلر هم حساب میشوند. بنابراین میتوانید بدون نیاز به یک برد مجزا اقدام به راه اندازی آنها کنید.