ماژول وای فای ESP8266-01
ماژول وای فای ESP-01
ESP-01 یکی از ماژول های محبوب و قابل استفاده در اینترنت اشیاء (IoT) است که قابلیت اتصال به شبکه های وای فای را دارا می باشد. این ماژول بر اساس چیپست ESP8266 و با استفاده از زبان برنامه نویسی Lua یا Arduino IDE برنامه ریزی می شود. این ماژول دارای چندین پایه GPIO برای کاربردهای مختلف برنامه نویسی میباشد. به کمک این پایه ها، میتوانید انواع حسگرها، موتورها، نمایشگرها و دستگاههای جانبی دیگر را به ماژول ESP-01 وصل کنید و از طریق آنها با سرور یا برنامه مورد نظر خود ارتباط برقرار کنید. برای برنامهنویسی ESP-01، شما میتوانید از زبانهای برنامهنویسی Lua و Arduino IDE استفاده کنید. در این روشهای برنامهنویسی، شما به راحتی میتوانید برنامههای کاربردی را برای کنترل دستگاههای مختلف توسعه دهید و آنها را به شبکه اتصال دهید. به عنوان یک ماژول وای فای، ESP-01 از امنیت بسیار خوبی برخوردار است. این ماژول قابلیت اتصال به شبکههای وای فای WEP، WPA و WPA2 را دارا میباشد. همچنین، ESP-01 با پروتکلهای TCP/IP و UDP سازگار است و میتواند برای ارتباط با اینترنت و یا دستگاههای دیگر بهکار گرفته شود.
تفاوت ماژول ESP-01 با ESP-01S چیست؟
ماژول ESP-01 و ESP-01S هر دو از ماژول های وای فای سری ESP8266 هستند که برای کاربردهای اینترنت اشیاء و ارتباط با شبکه های بی سیم طراحی شده اند. با این حال، تفاوت هایی بین این دو ماژول وجود دارد.
- حافظه فلش: ESP-01 دارای 1 مگابایت حافظه فلش است، در حالی که ESP-01S دارای حافظه فلش 8 مگابایت است.
- آنتن: ESP-01S دارای آنتن PCB بهبود یافته است که عملکرد بهتری در محیط های نویزی ارائه می دهد.
- مصرف انرژی: ESP-01S مصرف انرژی کمتری نسبت به ESP-01 دارد.
- سرعت انتقال داده: ESP-01S از سرعت انتقال داده بالاتری نسبت به ESP-01 پشتیبانی می کند.
- پایه های GPIO: در ESP-01 پایه های GPIO0 و GPIO2 برای ارتباط با سایر دستگاه ها در دسترس هستند. در مقابل، در ESP-01S پایه های GPIO0 و GPIO2 به پایه های UART تغییر کرده اند.
- با توجه به این تفاوت ها، ESP-01S مناسب تر برای کاربردهایی است که نیاز به حافظه بیشتر، عملکرد بهتر آنتن و مصرف کمتر برق دارند، در حالی که ESP-01 برای کاربردهای ساده تر و کوچکتر مناسب است.
بررسی پایه های ماژول وای فای ESP-01
در ابتدا در نظر داشته باشید که پین های GPIO0 و GPIO2 در هنگام بوت و فلش کردن فریمور نقش مهمی دارند. برای ورود به حالت فلش کردن فریمور پین GPIO0 باید در حالت پایین قرار بگیرد و برای بوت عادی، پین GPIO2 باید در حالت بالا باشد. همچنین، ماژول ESP-01 دارای تبدیل USB-to-serial داخلی نمی باشد، لذا برای برنامه نویسی و ارتباط سریال، یک آداپتور USB-to-TTL خارجی مورد نیاز است.پینهای ماژول ESP-01 به صورت زیر است.
- VCC: ولتاژ تغذیه (3.3 ولت)
- GND: زمین
- GPIO0: پین ورودی/خروجی عمومی
- GPIO2: پین ورودی/خروجی عمومی
- CH_PD: پین خاموشی/روشنی میکروکنترلر. برای فعال کردن میکروکنترلر باید به حالت روشن شود
- RST: پین ریست
- UART TXD: پین فرستادن سریالی
- UART RXD: پین دریافت سریالی
راه اندازی ESP-01 با آردوینو
برای نوشتن کد آردوینو برای ESP-01، ابتدا باید مطمئن شوید که برد ESP8266 را در محیط آردوینو خود نصب کردهاید. در ادامه مراحل نصب این برد آمده است. محیط آردوینو Arduino IDE را باز کنید.
- به File -> Preferences بروید
- آدرس "http://arduino.esp8266.com/stable/package_esp8266com_index.json" را در فیلد Additional Board Manager URLs وارد کرده و OK کنید
- به Tools -> Board -> Boards Manager بروید
- به دنبال "esp8266" بگردید و Install کنید
- گزینه "Generic ESP8266 Module" را از منوی Tools -> Board انتخاب کنید
- پس از نصب برد، میتوانید کد آردوینو برای ESP-01 را بنویسید. در ادامه، یک کد نمونه برای اتصال به یک شبکه Wi-Fi و ارسال یک درخواست HTTP GET آمده است:
#include <ESP8266WiFi.h>
const char* ssid = "نام شبکه شما";
const char* password = "رمز عبور شبکه شما";
void setup() {
Serial.begin(9600);
delay(10);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("در حال اتصال به Wi-Fi...");
}
Serial.println("به Wi-Fi متصل شدید");
// ارسال یک درخواست HTTP
WiFiClient client;
const int httpPort = 80;
if (!client.connect("example.com", httpPort)) {
Serial.println("اتصال برقرار نشد");
return;
}
client.print("GET / HTTP/1.1\r\n");
client.print("Host: example.com\r\n");
client.print("Connection: close\r\n\r\n");
while (client.connected()) {
String line = client.readStringUntil('\n');
if (line == "\r") {
Serial.println("هدرها دریافت شد");
break;
}
}
String response = client.readString();
Serial.println(response);
}
void loop() {
// هیچ عملی انجام ندهید
}
راه اندازی ESP-01 با میکروپایتون
برای نوشتن کد MicroPython برای ESP-01، ابتدا باید MicroPython را بر روی برد نصب کنید. به طور کلی باید از مراحل زیر دنبال کنید.
- آخرین firmware را برای ESP-01 از وب سایت MicroPython دریافت کنید. https://micropython.org/download/esp8266/
- با استفاده از یک آداپتور USB to TTL، ESP-01 را به کامپیوتر خود متصل کنید.
- از ابزاری مانند esptool یا nodemcu-flasher برای فلش کردن firmware بر روی برد استفاده کنید.
- پس از فلش کردن firmware، می توانید با استفاده از یک ترمینال سریال مانند PuTTY یا screen به برد متصل شوید.
- بعد از تنظیم برد، می توانید کد MicroPython برای ESP-01 بنویسید. کد نمونه زیر، نحوه اتصال به شبکه Wi-Fi و ارسال درخواست HTTP GET را نشان می دهد.
import network
import socket
# Connect to Wi-Fi network
ssid = 'نام شبکه شما'
password = 'رمز عبور شبکه شما'
station = network.WLAN(network.STA_IF)
station.active(True)
station.connect(ssid, password)
while not station.isconnected():
pass
print('به شبکه متصل شدید')
print(station.ifconfig())
# Send an HTTP GET request
addr_info = socket.getaddrinfo("example.com", 80)
addr = addr_info[0][-1]
s = socket.socket()
s.connect(addr)
s.send(b"GET / HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n")
while True:
data = s.recv(100)
if data:
print(str(data, 'utf8'), end='')
else:
break
s.close()
بردهای ESP تا به امروز در دو مدل ESP8266 و ESP32 طراحی و تولید شدهاند. این دو مدل تراشه دارای وای فای هستند و در عین حال قابلیتهای یک میکروکنترلر را هم دارند. تراشههای ESP32 نسخهی به روز رسانی شده و دارای بلوتوث هم هستند. موارد اصلی مصرف بردهای ESP در پروژه های اینترنت اشیا هستند. با توجه به ابعاد کوچک، مصرف انرژی کم، قیمت اقتصادی و دارای بودن میکروکنترلر داخلی امکان بهره برداری از آن در پروژه های مختلفی فراهم است.
به طور کلی در هر پروژهای که نیازمندی به ارتباط بیسیم وای فای و یا بلوتوث نیاز است، میتوان از تراشه های esp استفاده کرد.
نظر دهید