ماژول وای فای بلوتوث ESP32-WROOM-32U ورژن ESP32_Devkitc_V4
ماژول وای فای بلوتوث ESP32-WROOM-32U ورژن ESP32_Devkitc_V4
ماژول ESP32-WROOM-32U یک سیستم-بر-تراشه (SoC) بیسیم تولید شده توسط شرکت Espressif Systems است. این ماژول بر اساس میکروکنترلر ESP32 ساخته شده است که ویژگیهای Wi-Fi و Bluetooth را یکپارچه کرده است. واژه "WROOM" در نام به معنای "ماژول Wi-Fi" است. ماژول ESP32-WROOM-32U ابعاد کوچکی دارد و از اینرو برای برنامههای مختلف اینترنت اشیاء (IoT) مناسب است.
ESP32-WROOM-32U از دو CPU Tensilica LX6 پشتیبانی میکند که با فرکانس تا 240 مگاهرتز عمل میکنند. این ماژول قدرت پردازشی بالاتری نسبت به نسل قبلی خود، یعنی ESP8266، ارائه میدهد.این ماژول از Wi-Fi با استاندارد 802.11 b/g/n پشتیبانی میکند که به اجهزه امکان اتصال به شبکههای محلی و اینترنت را میدهد. میتوان آن را به عنوان نقطه دسترسی Wi-Fi یا ایستگاه (station) استفاده کرد.ESP32-WROOM-32U شامل پشتیبانی از بلوتوث 4.2 و بلوتوث کم مصرف (BLE) است.
مشخصات فنی ماژول وای فای بلوتوث ESP32-WROOM-32U
- میکروکنترلر: پردازنده دو هستهای Tensilica LX6 با فرکانس ساعت تا 240 مگاهرتز
- Wi-Fi: 802.11 b/g/n (2.4 گیگاهرتز) با پشتیبانی از Wi-Fi Direct (P2P)، حالت soft-AP و امنیت WPA/WPA2
- بلوتوث: پشتیبانی از بلوتوث 4.2 و بلوتوث کم مصرف (BLE)
- حافظه:
- 520 کیلوبایت SRAM
- انتخابهای حافظه فلش خارجی QSPI (تا 16 مگابایت) برای ذخیرهسازی برنامه
- پینها و رابطها:
- پینهای GPIO متعدد برای اتصال به واسطها و دیجیتال و آنالوگ
- رابطهای ارتباطی مانند UART، SPI، I2C، I2S، ADC و DAC
- امنیت: ویژگیهای امنیتی مبتنی بر سختافزار از جمله Secure Boot،
- ولتاژ تغذیه: دامنه ولتاژ کاری 2.2V تا 3.6V
- دمای کاری: -40°C تا +85°C
- FCC، CE، IC، TELEC، SRRC، KCC و Wi-Fi Alliance
- میکروکنترلر: ماژول ESP32-WROOM-32U
- رابط USB: میکرو USB برای تامین برق و برنامهنویسی
- دکمه ریست: برای ریست کردن ماژول ESP32
- دکمه فلش: برای برنامهنویسی ماژول ESP32
- دکمه کاربر: دکمهای قابل برنامهریزی برای انجام عملکردهای تعریفشده توسط کاربر
- LEDها: LEDهای وضعیت برای نمایش وضعیتهای مختلف (مانند برق، Wi-Fi، بلوتوث)
- ولتاژ کاری: 3.3 ولت
بررسی پایه های ماژول وای فای بلوتوث ESP32-WROOM-32U ورژن ESP32_Devkitc_V4
USB
5V EN
| |
+---+---+
|
(EN | VIN)
| |
+ +
|
|
V
1| 2
GPIO36 (IO36) o | o VIN
GPIO39 (IO39) o | o GND
GPIO34 (IO34) o | o GND
GPIO35 (IO35) o | o GND
GPIO32 (IO4) o | o U0RXD
GPIO33 (IO5) o | o U0TXD
GPIO25 (IO2) o | o VBAT
GPIO26 (IO3) o | o GND
GPIO27 (IO15) o | o V3V3
GPIO14 (IO13) o | o GND
GPIO12 (IO12) o | o GPIO23 (IO23)
GPIO13 (IO14) o | o GPIO22 (IO22)
GPIO15 (IO15) o | o GPIO21 (IO21)
GPIO2 (IO16) o | o GPIO17 (IO17)
GPIO0 (IO16) o | o GPIO18 (IO18)
o | o GPIO19 (IO19)
o | o GPIO5 (IO5)
o | o GPIO4 (IO4)
o | o GPIO0 (IO0)
o | o GND
o | o GND
o | o GND
o | o VDD_SDIO
o | o GND
o | o GPIO12 (IO12)
o | o GPIO13 (IO13)
o | o GPIO15 (IO15)
o | o GPIO2 (IO2)
o | o GPIO4 (IO4)
o | o GPIO18 (IO18)
o | o GPIO5 (IO5)
o | o GPIO19 (IO19)
o | o GPIO21 (IO21)
o | o GPIO22 (IO22)
o | o GPIO23 (IO23)
o | o GND
o | o VDD_SDIO
o | o GND
o | o GPIO16 (IO16)
o | o GPIO17 (IO17)
o | o GPIO25 (IO25)
o | o GPIO26 (IO26)
o | o GND
o | o GPIO27 (IO27)
o | o GND
o | o GPIO32 (IO32)
o | o GPIO33 (IO33)
o | o GND
o | o GPIO34 (IO34)
o | o GPIO35 (IO35)
o | o GND
o | o GPIO39 (IO39)
o | o GPIO36 (IO36)
o | o GND
o | o GND
o | o GND
(34)|35
o o
به همراه برد ESP32-WROOM-32U چه اقلامی باید خریداری شود؟
- کابل Micro usb to usb
- برد بورد
- کابل فلت
- نمایشگر LCD, OLED
- باتری لیتیوم ین
- شارژر باتری
راه اندازی برد ESP32-WROOM-32U با آردوینو
در ادامه یک کد آردوینو برای ماژول ESP32-WROOM-32U آمده است. این کد یک نقطه دسترسی Wi-Fi را تنظیم میکند و هنگامی که یک کلاینت به این نقطه دسترسی متصل میشود، یک پیام "hi,client!" به آن ارسال میشود.برای این کد، شما باید کتابخانه "WiFi" را نصب کنید. برای نصب آن، به "Sketch" > "Include Library" > "Manage Libraries" در محیط آردوینو بروید و عبارت "WiFi" را جستجو کنید، سپس بر روی "Install" کلیک کنید.
مقدار "نام_شبکه_WiFi_شما" و "رمز_عبور_WiFi_شما" را با نام و رمز عبور واقعی شبکه Wi-Fi خود جایگزین کنید.این کد یک سرور HTTP را بر روی پورت 80 راهاندازی میکند. وقتی که یک کلاینت به نقطه دسترسی ESP32 متصل میشود، پیام "سلام، کلاینت!" به عنوان پاسخ HTTP به آن ارسال میشود. شما میتوانید با وارد کردن آدرس IP ESP32 (که در مانیتور سریال چاپ میشود) در یک مرورگر وب روی یک دستگاه متصل به همان شبکه Wi-Fi، پیام "hi,client!" را مشاهده کنید.
#include <WiFi.h>
const char* ssid = "نام_شبکه_WiFi_شما"; // جایگزین کنید با نام شبکه Wi-Fi (SSID) خود
const char* password = "رمز_عبور_WiFi_شما"; // جایگزین کنید با رمز عبور شبکه Wi-Fi خود
void setup() {
Serial.begin(115200);
delay(1000);
// اتصال به Wi-Fi
WiFi.begin(ssid, password);
Serial.print("در حال اتصال به Wi-Fi");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println();
Serial.print("به Wi-Fi متصل شد. آدرس IP: ");
Serial.println(WiFi.localIP());
// تنظیم یک سرور TCP
WiFiServer server(80);
server.begin();
Serial.println("سرور TCP راهاندازی شد");
}
void loop() {
WiFiClient client = server.available();
if (client) {
Serial.println("کلاینت جدید متصل شد.");
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println();
client.println("<html><body><h1>سلام، کلاینت!</h1></body></html>");
delay(10);
client.stop();
Serial.println("کلاینت قطع اتصال کرد.");
}
}
راه اندازی برد ESP32-WROOM-32U با میکروپایتون
البته! در زیر کد سادهای از مایکروپایتون برای اجرای همان کاری که کد آردوینو ارائه شدهاست، آمده است. این کد یک نقطه دسترسی Wi-Fi را تنظیم میکند و هنگامی که یک کلاینت به این نقطه دسترسی متصل میشود، یک پیام "hi client!" به آن ارسال میشود.شما میتوانید از ابزارهایی مانند esptool یا uPyCraft برای فلشکردن فریمور MicroPython بر روی ESP32 استفاده کنید.
مقدار "نام_شبکه_WiFi_شما" و "رمز_عبور_WiFi_شما" را با نام و رمز عبور واقعی شبکه Wi-Fi خود جایگزین کنید.این کد یک سرور HTTP را بر روی پورت 80 راهاندازی میکند. وقتی که یک کلاینت به نقطه دسترسی ESP32 متصل میشود، پیام "سلام، کلاینت!" به عنوان پاسخ HTTP به آن ارسال میشود. شما میتوانید با وارد کردن آدرس IP ESP32 (که در کنسول چاپ میشود) در یک مرورگر وب روی یک دستگاه متصل به همان شبکه Wi-Fi، پیام "hi,client!" را مشاهده کنید.
import network
import socket
ssid = "نام_شبکه_WiFi_شما" # جایگزین کنید با نام شبکه Wi-Fi (SSID) خود
password = "رمز_عبور_WiFi_شما" # جایگزین کنید با رمز عبور شبکه Wi-Fi خود
ap = network.WLAN(network.AP_IF)
ap.active(True)
ap.config(essid=ssid, password=password)
ip_address = ap.ifconfig()[0]
print("نقطه دسترسی ایجاد شد. آدرس IP:", ip_address)
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((ip_address, 80))
server.listen(5)
print("سرور TCP راهاندازی شد")
while True:
client, addr = server.accept()
print("کلاینت جدید از طریق:", addr, "متصل شد.")
client.send('HTTP/1.1 200 OK\r\n')
client.send('Content-type: text/html\r\n\r\n')
client.send('<html><body><h1>سلام، کلاینت!</h1></body></html>')
client.close()
print("کلاینت قطع اتصال کرد.")
منظور از U در ESP32-WROOM-32U چیست؟
منظور از "U" در نام ESP32-WROOM-32U، به صورت غیر رسمی به معنای "Ultra-small" یا "بسیار کوچک" است. نشان میدهد که این نسخه از ماژول ESP32 دارای اندازهی بسیار کوچکتری نسبت به سایر نسخههای ESP32 است. این ماژولها اغلب از نظر اندازه و حجم به عنوان گزینههایی جهت استفاده در برنامهها و پروژههایی با محدودیت فضایی مناسب هستند.
مشخصات
- ارتباط UART
- دارد
- پردازنده
- ESP32
- فرکانس آی سی
- 240 مگاهرتز
- Wifi
- دارد
- Bluetooth
- دارد
// تعریف تابع
void myFunction() {
// بدنه تابع (کد اجرایی)
}
void setup() {
// کد تنظیمات...
}
void loop() {
// کد اجرایی...
myFunction(); // فراخوانی تابع
}
بردهای ESP تا به امروز در دو مدل ESP8266 و ESP32 طراحی و تولید شدهاند. این دو مدل تراشه دارای وای فای هستند و در عین حال قابلیتهای یک میکروکنترلر را هم دارند. تراشههای ESP32 نسخهی به روز رسانی شده و دارای بلوتوث هم هستند. موارد اصلی مصرف بردهای ESP در پروژه های اینترنت اشیا هستند. با توجه به ابعاد کوچک، مصرف انرژی کم، قیمت اقتصادی و دارای بودن میکروکنترلر داخلی امکان بهره برداری از آن در پروژه های مختلفی فراهم است.
به طور کلی در هر پروژهای که نیازمندی به ارتباط بیسیم وای فای و یا بلوتوث نیاز است، میتوان از تراشه های esp استفاده کرد.
کیتهای آردوینو نوعی از کیت الکترونیکی پیشرفته هستند. کیت الکترونیکی پرورش دهندهی خلاقیت و سرگرمی فوق العادهای است. کیت های آردوینو عموما دارای آموزش راه اندازی و سورس برنامه نویسی هستند. در دانشجو کیت انواع کیت آردوینو را میتوانید بررسی و خرید کنید. کلیه این کیتها توسط دانشجو کیت طراحی و تولید میشوند. جهت خرید و بررسی کیت آردوینو از شاخههای اصلی در نوار آبی رنگ بالای سایت قسمت بردهای توسعه را انتخاب کنید. (کافیست نشانگر موس را بر روی برد های توسعه قرار دهید.) سپس گزینه کیت آردوینو را انتخاب نمایید.
جهت سهولت در انتخاب کیت و کابرد مورد نظر در نوار سمت راست سایت امکان جستجو و فیلتر در دسترس کاربران قرار گرفته است. اولین گزینه انتخاب نوع کیت است، که کیت ها بر اساس بردهای مصرفی و همچنین مونتاژ دسته بندی شده اند. به تصویر زیر دقت کنید.
فیلتر بعدی رنج سنی است که با این فیلتر میتوان کیت آردوینو متناسب با رنج سنی کاربر تهیه کرد. رنج سنی یک شاخص کلی برای محدود کردن انتخابها برای خرید کیت آردوینو است.
فیلتر بعدی خرید بر اساس نوع نمایشگر مورد استفاده است. نمایشگر در کیت آردوینو کمک میکند تا اطلاعات مورد نظر را روی آن نمایش دهید. از اینجا میتوانید کیت های آردوینو براساس نوع نمایشگر را فیلتر کنید.
فیلتر بعدی خرید کیت آردوینو بر اساس برد آردوینو مورد استفاده است. بردهای آردوینو انواع مختلفی دارند، میتوانید از این بخش گزینه مورد نظر را فیلتر کنید.
فیلتر آموزش راه اندازی در جهت سهولت دسترسی کاربر به کیت های همراه یا فاقد آموزش(خود آموز) قرار گرفته است. دارا بودن آموزش برای یک کیت آردوینو گزینهی مهمی است. بنابراین اگر تمایل به خرید کیت آردوینو دارای آموزش را دارید، از این بخش استفاده کنید. به تصویر زیر دقت کنید.
با استفاده از فرمت آموزش میتوان نوع آموزش مورد نظر خود را به راحتی انتخاب کرد که به دو صورت تصویری و کتبی در دسترس قرار میگیرد.
فیلتر بعدی بر اساس میزان فرکانس RFID است. اگر کیت مورد نظر براساس نوع RFID باشد میتوانید فرکانس آنرا از این بخش انتخاب کنید.
با استفاده از فیلتر سنسور میتوان کیت آردوینو مورد نظر خود را بر اساس نوع سنسور به کار رفته انتخاب کرد.
فیلتر بعدی معماری پردازنده است که با استفاده از این فیلتر میتوان نوع پردازنده کیت را انتخاب کرد. شاید بخواهید کیت مورد نظرتان براساس تراشهای خاص باشد که از اینجا میتوانید انتخاب کنید.
با استفاده از این فیلتر میتوان پهنای باند اینترنت را انتخاب کرد. اگر کیت آردوینو مورد نظر دارای ماژول سیم کارتی باشد، میتوانید پهنای باند آنرا مشخص کنید. کیتهای ارزان قیمت معمولا دارای پهنای باند 2g هستند.
با استفاده از این فیلتر میتوان کیت های آردوینو را بر اساس نوع باتری مورد استفاده انتخاب کرد.
با این گزینه میتوان کیت مورد نظر و مصرفی خود را بر اساس برند مورد استفاده انتخاب کرد. ما در فروشگاه دانشجو کیت علاوه براینکه کالاهای تولیدی خودمان را به فروش میرسانیم کالاهای دیگر تولید کنندگان ایرانی را هم به فروش میرسانیم. بنابراین از این بخش میتوانید از برندهای معتبر تولید داخل استفاده کنید.
گزینه بعدی محدوده قیمتی است که با این گزینه میتوان به راحتی کیت آردوینو با بودجه مورد نظر را تهیه کرد.
روند ثبت سفارش کیت آردوینو از فروشگاه دانشجو کیت با موبایل
برای ثبت سفارش از طریق تلفن همراه برای دسترسی به شاخه محصولات باید در صفحه اصلی در قسمت بالا صفحه از سه خط افقی استفاده کرد. در ادامه کلیه روند خرید کیت آردوینو با موبایل را شرح دادهایم.
در فهرست شاخههای اصلی اولین گزینه بردهای توسعه است که برای باز کردن آن روی قسمت پلاس میزنیم.
در زیر مجموعه بردهای توسعه اولین گزینه آردوینو است که دوباره برای دیدن زیر مجموعه آن باید روی گزینه پلاس کلیک کرد.
سپس اولین گزینه کیت آردوینو را انتخاب کنید.
در تلفن همراه برای فیلتر محصولات ابتدا باید روی گزینه خرید سریع رفته تا فیلتر محصولات نمایش داده شود.
جهت سهولت در انتخاب کیت و کابرد مورد نظر در نوار سمت راست سایت امکان جستجو و فیلتر در دسترس کاربران قرار گرفته است. اولین گزینه انتخاب نوع کیت است، که کیت ها بر اساس بردهای مصرفی و همچنین مونتاژ دسته بندی شده اند.
فیلتر بعدی رنج سنی است که با این فیلتر میتوان کیت آردوینو متناسب با رنج سنی کاربر تهیه کرد.
گزینه بعدی نسخه رزبری پای و خرید کیت بر اساس برد رزبری پای است. اگر کیت مورد نظر براساس بردهای میکروکنترلر رزبری پای باشد، میتوانید از اینجا نوع برد را انتخاب کنید.
فیلتر بعدی خرید بر اساس نوع نمایشگر مورد استفاده است.
فیلتر بعدی خرید کیت آردوینو بر اساس برد آردوینو مورد استفاده است.
فیلتر آموزش راه اندازی در جهت سهولت دسترسی کاربر به کیت های همراه یا فاقد آموزش(خود آموز) قرار گرفته است.
با استفاده از فرمت آموزش میتوان نوع آموزش مورد نظر خود را به راحتی انتخاب کرد که به دو صورت تصویری و کتبی در دسترس قرار میگیرد.
فیلتر بعدی بر اساس میزان فرکانس RFID است.
با استفاده از فیلتر سنسور میتوان کیت آردوینو مورد نظر خود را بر اساس نوع سنسور به کار رفته انتخاب کرد.
فیلتر بعدی معماری پردازنده است که با استفاده از این فیلتر میتوان نوع پردازنده کیت را انتخاب کرد.
با استفاده از این فیلتر میتوان کیت های آردوینو را بر اساس نوع باتری مورد استفاده انتخاب کرد.
نوع فرکانس مصرفی در کیت را میتوان با این فیلتر تعیین کرد.
با این گزینه میتوان کیت مورد نظر و مصرفی خود را بر اساس برند مورد استفاده انتخاب کرد.
گزینه بعدی محدوده قیمتی است که با این گزینه میتوان به راحتی کیت آردوینو با بودجه مورد نظر را تهیه کرد.
گزینه آخر نوع کانکتور و جامپر و پین هر مصرفی است.
برای اتصال به شبکه وای فای دستورات زیر را وارد کنید.
import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("نام_شبکه_Wi-Fi", "رمز_عبور")
while not wlan.isconnected():
pass
برای کنترل یک پایه GPIO، ابتدا یک شیء از کلاس Pin بسازید و به عنوان ورودی شماره پایه GPIO را بدهید. به عنوان مثال برای پایه GPIO 5:
from machine import Pin
gpio_pin = Pin(5, Pin.OUT) # شماره پایه و حالت خروجی (OUT) را تعیین کنید
gpio_pin.value(1) # تنظیم پایه به حالت HIGH (برق)
gpio_pin.value(0) # تنظیم پایه به حالت LOW (عدم برق)
current_state = gpio_pin.value() # دریافت وضعیت فعلی پایه
print(current_state)
MicroPython برای اجرا بر روی میکروکنترلرهای مختلف از جمله ESP8266، ESP32، STM32 و غیره طراحی شده است. وبسایت رسمی MicroPython یک لیست از پلتفرمهای پشتیبانیشده را ارائه میدهد.
برای تعریف یک تابع در MicroPython، از کلیدواژه def استفاده کنید. به عنوان مثال:
def greet(name):
print("Hello, " + name + "!")
بله، MicroPython از توابع با تعداد متغیرهای از آرگومانها پشتیبانی میکند. شما میتوانید تعداد دلخواهی از آرگومانها به یک تابع ارسال کنید
بله، MicroPython از توابع داخلی معمول Python مانند print(), len(), و range() پشتیبانی میکند. این توابع به صورت پیشفرض در MicroPython فراهم شدهاند.
میتوانید یک فایل متنی جدید ایجاد کرده و توابع را در آنجا تعریف کنید. سپس با استفاده از دستور import، آن فایل را به کد اصلیتان وارد کنید.
برای صدا زدن یک تابع از یک ماژول دیگر در MicroPython، ابتدا ماژول را با استفاده از دستور import وارد کنید، سپس نام تابع را با نام ماژول مرتبط فراخوانی کنید.
# در فایل ماژول مثلاً به نام mymodule.py
def my_function():
print("Hello from my_module!")
# در فایل اصلی
import mymodule
mymodule.my_function()
برای فراخوانی یک تابع یک تابع از یک کلاس در MicroPython، ابتدا یک نمونه از کلاس بسازید و سپس تابع را از طریق آن نمونه فراخوانی کنید.
class MyClass:
def my_method(self):
print("Hello from my method!")
my_instance = MyClass()
my_instance.my_method()
بله، MicroPython از برخی از ماژولهای تصویری پشتیبانی میکند. برای استفاده از دوربینها یا ماژولهای تصویری دیگر، شما نیاز به فلش کردن کتابخانهها و ماژولهای مربوطه دارید.
نظر دهید