اینترنت اشیا، فناوری نوینی که قادر به اتصال اشیا محیط به اینترنت است، می تواند موضوع بسیاری از پروژه ها باشد. به کمک این فناوری بدون هیچ محدودیت فاصله ای، داده ها در اینترنت به گردش در خواهند آمد. این داده ها می توانند از ساده ترین موارد ممکن، مانند اطلاعات یک گلدان تا موارد پیچیده و حساس، نظیر اطلاعات اتاق سرور در شبکه اینرتنت اشیا قرار گیرند. در این شبکه داده ها از طریق اینترنت، به سرورها ارسال می شوند. سپس کاربران از راه دور دور و بدون هیچ محدودیتی، می توانند به این داده ها دسترسی داشته باشند. در این شبکه تبادل داده تنها بین انسان و ماشین نیست! بلکه این داده ها می توانند بین دستگاه های مختلف نیز رد و بدل شوند.
جهت تبادل داده در این شبکه عظیم، نیاز به پردازنده امری ضروری است. پیشتر در سلسله آموزشی که با کلیک بر روی این لینک قابل دسترسی است، به معرفی و کار با ماژول ESP8266 پرداختیم. ماژول ESP8266 یک ماژول فوق العاده کاربردی جهت اتصال به اینترنت است. این ماژول علاوه بر قابلیت اتصال به اینترنت داریا پردازنده قدرتمند بوده که می تواند برنامه های آردوینو را اجرا نماید. نسل جدید این سری از پردازنده ها، ماژول های ESP32 با توان پردازشی بسیار بالاتری نسبت به ESP8266 هستند. در این سلسله آموزش به کار با برد ESP32، امکانات، نحوه تعامل و برنامه نویسی با آن می پردازیم. در ادامه آموزش راه اندازی esp32 با مرجع تخصصی ESP32 به زبان فارسی، دیجی اسپارک همراه باشید.
مشخصات سخت افزاری پردازنده ESP32
اولین قدم در راه اندازی esp32 شناخت آن است. همانطور که پیشتر گفته شد، ماژول ESP32 در حقیقت نسخه ارتقا یافته ماژول ESP8266 است. این پردازنده از دو هسته تشکیل شده که می تواند تا ۲۴۰ مگاهرتز سرعت پردازشی داشته باشد. در کنار این، این ماژول از پردازنده ۳۲ بیتی XTENSA برای اجرای برنامه ها بهره می برد. در مدلهای مختلفی هم تولید میشود. در تصویر زیر برد ESP32 مدل Nodemcu را مشاهده میکنید. برای راه اندازی esp32 بایستی نسبت به اینکه تراشه است یا برد توسعه دقت داشته باشید. همچنین نسخههای مختلفی از آن از جمله ESP32D و ESP32U و… طراحی و تولید شده است.
به طور کلی مشخصات فنی پردازنده ESP32 دو هسته ای را می توان به صورت زیر، لیست بندی نمود.
- دارای دو هسته پردازنده
- دارای فرکانس کلاک بین ۱۶۰ و ۲۴۰ مگاهرتز
- دارای ۳۴ پایه ورودی/خروجی GPIO
- دارای ۱۸ کانال ADC 12 بیتی
- دارای ۲ کانال ۸ بیتی DAC
- دارای ۱۰ تاچ سنسور جهت دریافت ورودی در GPIO
- دارای ۴ کانال SPI سخت افزاری
- دارای ۲ کانال I2C
- دارای ۲ کانال I2S
- دارای ۳ UART
- دارای سنسور اثر هال
- دارای رابط داخلی جهت ارتباط با SD،ATA،MMC و…
- دارای پورت CAN ورژن ۲٫۰
علاوه بر این، این پردازنده قادر به اجرای برنامه های آردوینو است. به عبارت دیگر شما با دستورات آردوینو می توانید برای این برد برنامه نویسی کنید. برای برنامه نویسی با آردوینو، آموزش های کاملی طی چندین مرحله منتشر شده که با کلیک بر روی این لینک قابل دسترسی است. علاوه بر این، پردازنده ESP32 دارای قابلیت های ارتباطی بی سیم بوده که در قسمت بعد به این موضوع می پردازیم.
قابلیت های ارتباطی ماژول ESP32
همانطور که در ابتدای مطلب گفته شد، ماژول ESP32 قادر به اتصال به اینترنت است. در این ماژول امکانات وای فای بسیاری تعبیه شده است. این ماژول می تواند در دو مد نقطه دسترسی(AP) و ایستگاهی(STA) فعالیت کند. در حالت نقطه دسترسی، این ماژول همانند یک مودم فعالیت می کند. در این حالت با تعیین نام SSID و رمز عبور، دستگاه های مختلف نظیر رایانه، تلفن همراه و سایر ماژول های ESP می توانند متصل شوند. در حالتی دیگر، این ماژول می تواند در مد STA به مودم های اینترنتی و یا تلفن های همراه در حالت هات اسپات متصل شود. در این حالت ماژول قادر به تبادل داده در بستر اینترنت خواهد بود.
علاوه بر این، ماژول ESP32 از فناوری BLE بهره می برد. فناوری BLE که همان بلوتوث با توان مصرفی پایین است، سبب می شود تا داد هها علاوه بر وای فای، از طریق بلوتوث نیز منتقل شوند.
بردهای مختلف ماژول ESP32
ماژول ESP32 دارای بردهای توسعه مختلف با امکانات متفاوتی است. البته نکته مشترک بین این بردها پردازنده ESP32 بوده که در همه آن ها این پردازنده یکسان است. یکی از بردهای پرکاربرد، برد ESP32 با سوکت شارژ باتری های لیتیمی است. به کمک این برد شما به پایه های GPIO دسترسی دارید. علاوه بر این روی این برد آنتن جهت تقویت سیگنال های واحد مخابراتی ماژول تعبیه شده است. همچنین این ماژول دارای پورت USB جهت تسریع و تسهیل کار با ماژول است.
مدل دیگری از برد ESP32، توسعه یافته با طرح برد NODEMCU است. این برد راه اندازی و کار با برد ESP32 را راحت می کند. همانند برد NODEMCU روی این برد پورت USB تعبیه شده است.
در کنار این، یکی از پرکاربردترین برد توسعه یافته، برد ESP32-CAM است. این برد دارای امکانات بیشمار زیادی است. بر روی این برد یک دوربین جهت عکس برداری و تهییه فیلم تعبیه شده است. از آنجاییکه این ماژول قادر به اتصال به اینترنت است، شما می توانید به سادگی و از راه دور استریم آنلاین داشته باشید. علاوه بر این، روی این برد یک سوکت کارت SD جهت ذخیره داده های مختلف مانند عکس و فیلم تعبیه شده که از آن می توان در پروژه های مختلف استفاده نمود.
پس از معرفی و شناخت برد ESP32، در قسمت بعدی به بررسی پروژه های اجرا شده با این ماژول می پردازیم.
پروژهای اجرا شده با برد ESP32
در وب سایت دیجی اسپارک پروژه های بسیاری با ماژول ESP32، به خصوص ESP32CAM طراحی و توسعه یافته است. به عنوان مثال در آموزشی که در این لینک شرح یافته، به کمک ماژول ESP32CAM و ماژول SIM800L یک دوربین آنلاین سیم کارتی طراحی و پیاده سازی شده است.
در ادامه نیز، در پروژه دیگری با همین برد، اقدام به طراحی و پیاده سازی یک دوربین دنده عقب خودرو با قابلیت نمایش تصاویر روی نمایشگر TFT پرداختیم. با کلیک بر روی این لینک، این آموزش در دسترس است.
جمع بندی
در سلسله آموزش های ماژول ESP32، قسمت خست به معرفی امکانات و ویژگی های این پردازنده قدرتمند پرداختیم. ماژول ESP32 با بهره گیری از دو هسته پردازشی، اتصال به اینترنت و بلوتوث کم مصرف، تاچ پد و…. به یک انتخاب بی نظیر در پروژه های اینترنت اشیا تبدیل شده است. علاوه بر این، امکان برنامه نویسی این ماژول به کمک دستورات آردوینو، این برد را به بردی بی رقیب در حوزه اینترنت اشیا بدل ساخته است. پیشتر در سلسله آموزش های ماژول ESP8266، به معرفی این برد جادویی پرداخته ایم. در سلسله آموزش های ماژول ESP32 به صورت صفر تا صد به راه اندازی، کار و برنامه نویسی این ماژول می پردازیم.
چنانچه مطالب این آموزش را گنک یافتید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در مطالب درج شده وجود دارد میتوانید از همین طریق اطلاع رسانی کنید.
ادامه مطالب این آموزش
راه اندازی و کار با برد ESP32 بخش دوم: نصب هسته و راه اندازی اولیه
راه اندازی و کار با برد ESP32 بخش سوم: معرفی پایه ها و بررسی سخت افزاری
راه اندازی و کار برد ESP32 قسمت چهارم: مد ایستگاهی STATION دریافت IP
راه اندازی و کار با برد ESP32 بخش پنجم: مد نقطه دسترسی AP
راه اندازی و کار با برد ESP32 بخش ششم: مد سرور Server
راه اندازی و کار با ESP32 بخش هفتم: لایه انتقال و ارتباط با موبایل توسط مودم
راه اندازی و کار با برد ESP32 بخش هشتم: اجرای متد GET
راه اندازی و کار با برد ESP32 قسمت نهم: اجرای متد POST
راه اندازی و کاری با ماژول ESP32 قسمت دهم: شناخت و راه اندازی MDNS
راه اندازی و کار با ماژول ESP32 قسمت یازدهم: ESP-Cam دوربین و کارت SD
راه اندازی و کار با برد ESP32 قسمت دوازدهم: راه اندازی بلوتوث Bluetooth
سلام و خسته نباشید
اگر امکان داره ، ساخت مودم همراه هم در سایت قرار دهید
ممنون
سلام و متشکرم قبلا این آموزش را کار کرده ایم:
لینک آموزش مودم سیم کارتی، کلیک کنید
سلام
جناب مهندس من یک نمونه کد وب سرور روی DOIT ESP32 DEV KIT v1 آپلود میکنم، وقتی کامل و با موفقیت آپلود میشه، سریال مانیتور رو باز میکنم و یکبار دکمه EN رو از روی ماژول فشار میدم. سریال مانیتور برام دیتاهای زیر رو چاپ میکنه:
https://s4.uupload.ir/files/1_lg51.jpg
اما همونطور که ملاحظه میفرمایین، دائما در حالت کانکت به شبکه وای فای که قراره ساخته بشه میمونه و همینجا گیر میکنه. به نظر شما علتش چی میتونه باشه؟ قسمت اولیه کدی که نوشته ام، به صورت زیر است:
………………………………………………………………………………….
#include
// Replace with your network credentials
const char* ssid = “Smart_Remote”;
const char* password = “123456789”;
// Set web server port number to 80
WiFiServer server(80);
// Variable to store the HTTP request
String header;
// Auxiliar variables to store the current output state
String output26State = “off”;
String output27State = “off”;
// Assign output variables to GPIO pins
const int output26 = 26;
const int output27 = 27;
// Set your Static IP address
IPAddress local_IP(192, 168, 1, 184);
// Set your Gateway IP address
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 0, 0);
IPAddress primaryDNS(8, 8, 8, 8); //optional
IPAddress secondaryDNS(8, 8, 4, 4); //optional
void setup() {
Serial.begin(115200);
// Initialize the output variables as outputs
pinMode(output26, OUTPUT);
pinMode(output27, OUTPUT);
// Set outputs to LOW
digitalWrite(output26, LOW);
digitalWrite(output27, LOW);
// Configures static IP address
if (!WiFi.config(local_IP, gateway, subnet, primaryDNS, secondaryDNS)) {
Serial.println(“STA Failed to configure”);
}
// Connect to Wi-Fi network with SSID and password
Serial.print(“Connecting to “);
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(“.”);
}
// Print local IP address and start web server
Serial.println(“”);
Serial.println(“WiFi connected.”);
Serial.println(“IP address: “);
Serial.println(WiFi.localIP());
server.begin();
}
………………………………………………………………………………….
و بعدشم void loop() شروع میشه و ادامه داستان…
به خط Serial.print(“.”); که رسید، گیر میکنه و توی سریال مانیتور دائما نقطه چاپ میکنه و به خطوط بعدی نمیره که پیغام WiFi connected. رو نشون بده.
سلام
بررسی کنید ببینید که ایا نام SSID و یا پسورد را به درستی وارد کرده اید؟ کاراکترها را حتما چک کنید. دستور زیر را هم محص اطمینان در ابتدای تابع SETUP قرار دهید:
WiFi.setmode(WIFI_STA)
بله، نام های SSID و پسورد رو درست انتخاب کرده ام، اما همچنان مشکل وجود داره.
در ضمن، با اضافه کردن دستوری که فرمودید، ارور زیر موقع کامپایل برنامه نمایش داده شد:
https://s4.uupload.ir/files/1_(2)_h50t.jpg
احیانا این دستور برای ESP8266 نبود ؟
چون ماژول فعلی ما ESP32 هستش…
سلام
از دستور زیر استفاده کنید:
WiFi.mode(WIFI_STA);
سلام
چجوری میتونم اترنت به esp32s وصل کنم؟
ممنون
سلام
باید از ماژول های اترنت استفاده کنید. لینک زیر را بررسی کنید:
https://daneshjookit.com/305-%D8%A7%D8%AA%D8%B1%D9%86%D8%AA-%D9%88-%D8%B4%D8%A8%DA%A9%D9%87
با سلام و وقت بخیر
من یک ماژول esp32-wroom-32 دارم
و با برنامه IDE برنامه نویسیش می کنم
مشکلی که دارم اینه که این ماژول من هنگام اپلود برنامه حتما باید دکمه boot نگه داشته بشه
درصورتی که ماژول های قبلم هرگز این چنین نبودند
و نیازی به نگه داشتن boot نبود
میخواستم بپرسم آیا دلیل خاصی داره که این ارور موقع اپلود روی esp32 نمایان میشه
و این که آیا راه حلی براش وجود داره که این باگ حل بشود یا نه
ممنونم از شما
سلام و خواهش می کنم
لطفا از گزینه های برد، بفرمایید چه بردی را انتخاب کرده اید؟
سلام
درصورتی که ماژولی که میخواهیم به esp32 ( توسعه یافته با طرح برد NODEMCU ) وصل کنیم، به تغذیه ی ۵v نیاز داشته باشد، از کدام پایه باید استفاده کرد؟ چون esp32 مثل اردوینوuno پایه ی ۵v نداره.
سلام
از طریق usb تغذیه می شود. بر روی برد رگولاتور وجود دارد.
سلام من کد رو گرفتم و اپلود کردم ولی ارور زیر را دریافت کردم
In file included from C:\Users\VahidCF\AppData\Local\Temp\.arduinoIDE-unsaved20221023-5772-92aq56.40y8o\sketch_nov23a\sketch_nov23a.ino:5:0:
c:\Users\VahidCF\Documents\Arduino\libraries\TJpg_Decoder\src/TJpg_Decoder.h:23:26: fatal error: LittleFS.h: No such file or directory
compilation terminated.
exit status 1
Compilation error: exit status 1
لطفا راهنمایی کنید
سلام
این کتابخانه نصب نشده، لطفا آن را نصب کنید:
LittleFS.h
سلام اگ بخوام کیبرد کامپیوتر با اردوینو و hc05بلوتوثی کنم و خورجی کار رو گوشی که به بلوتوث وصل میشه روی نرم افزار های ترمینال hc05 تایپ ها نشون داده بشه کسی بلده راه نمایی کنه ؟؟؟
پیشاپیش ممنون
سلام
من بلد نیستم اکر دیگر دوستان بلد هستند در بحث شرکت کنند.
با سلام و وقت بخیر
من یک ماژول esp32-wroom-32 دارم
و با برنامه IDE برنامه نویسیش می کنم
مشکلی که دارم اینه که این ماژول من هنگام اپلود برنامه حتما باید دکمه boot نگه داشته بشه
درصورتی که ماژول های قبلم هرگز این چنین نبودند
و نیازی به نگه داشتن boot نبود
میخواستم بپرسم آیا دلیل خاصی داره که این ارور موقع اپلود روی esp32 نمایان میشه
و این که آیا راه حلی براش وجود داره که این باگ حل بشود یا نه
ممنونم از شما
در این زمینه متاسفانه اطلاعی ندارم چون کلا من همه ماژول ها را با همین روش پروگرام میکنم!