ESP8266 là gì?, ESP Wifi là gì? và ESP8266 dùng để làm gì? là những câu hỏi được rất nhiều bạn mới tiếp cận với ESP8266 hỏi mình, để giải thích cho những câu hỏi trên. Trong bài viết ngày hôm nay, hãy cùng tìm mình hiểu về ESP8266 và hướng dẫn cách lập trình bằng Arduino IDE. Nếu bạn đang quan tâm đến việc phát triển các ứng dụng IoT, đây chắc chắn là một bài viết bạn không nên bỏ qua!
ESP8266 là gì?
ESP8266 là một module Wi-Fi với khả năng kết nối Internet và được tích hợp sẵn trên một số board nhúng như NodeMCU, Wemos, và ESP-01. ESP8266 có thể hoạt động như một điểm truy cập (access point), một client kết nối đến một điểm truy cập khác, hoặc cả hai đều được. Nó được sử dụng rộng rãi trong các ứng dụng IoT (Internet of Things) như cảm biến thông minh, hệ thống kiểm soát thiết bị, hoặc các ứng dụng điều khiển từ xa. Module này có giá thành rẻ và rất dễ sử dụng, cùng với đó là khả năng tương thích với nhiều loại vi điều khiển khác nhau.
Các phiên bản phổ biến của ESP8266 trên thị trường
Board Mua hàng ESP-01 Shopee ESP-12E Shopee ESP8266 NodeMCU Shopee Wemos D1 Mini Shopee NodeMCU ESP32 Shopee
ESP8266 WIFI ESP-01
ESP8266 ESP-01 là một module IoT được thiết kế dựa trên vi điều khiển ESP8266 của công ty Espressif Systems. Đây là phiên bản module nhỏ gọn nhất trong các phiên bản của ESP8266 với kích thước chỉ 24mm x 14mm.
ESP-01 có tích hợp sẵn một bộ phát WiFi, đủ để kết nối với mạng internet và truyền dữ liệu. Module này còn được tích hợp một cổng giao tiếp chuẩn UART, cho phép truyền dữ liệu giữa ESP8266 và các thiết bị khác như Arduino, Raspberry Pi, hoặc máy tính thông qua cổng COM. ESP8266 01 cũng có khả năng lập trình và nạp firmware thông qua cổng UART, giúp cho việc phát triển ứng dụng IoT trở nên đơn giản hơn.
Thông số kỹ thuật của Module Wifi ESP8266 ESP-01:
- Chip Wi-Fi: ESP8266EX
- Nguồn cấp: 3.0V ~ 3.6V DC
- Tiêu thụ dòng điện:
- Chế độ hoạt động: 80mA ~ 170mA
- Chế độ chờ: < 1.0mA
- Chuẩn giao tiếp: Wi-Fi 802.11 b/g/n
- Tốc độ truyền dữ liệu: 110 ~ 460800bps (tùy chọn)
- Điện áp: 3.3V DC
- Kích thước: 24mm x 14mm x 3mm
- Anten: PCB Anten hoặc IPEX anten ngoài (tùy chọn)
Sơ đồ chân ESP8266 ESP-01
ESP8266 WIFI ESP-12E
ESP-12E là một trong những phiên bản nâng cấp của ESP8266, có tích hợp thêm bộ khuếch đại công suất (PA) và bộ lọc tín hiệu RF (LNA), giúp tăng cường khả năng thu phát sóng Wi-Fi. Ngoài ra, ESP-12E còn tích hợp nhiều chân IO (Input/Output) và hỗ trợ giao tiếp SPI, I2C, UART, ADC, PWM và các tính năng GPIO. Với các tính năng này, ESP8266 12E rất phổ biến trong các ứng dụng IoT và các dự án điện tử thông minh.
Thông số kỹ thuật của Module Wifi ESP-12E
- SoC: ESP8266EX
- CPU: Tensilica L106 32-bit RISC
- Tần số hoạt động: 80 MHz
- Điện áp hoạt động: 3.0 – 3.6 V
- Flash: 4 MB
- SRAM: 80 KB
- WiFi: 802.11 b/g/n 2.4 GHz, hỗ trợ WPA/WPA2
- Anten: PCB anten tích hợp
- GPIO: 16 GPIO được gán số, hỗ trợ chức năng GPIO, PWM, I2C, SPI, ADC
- Kích thước: 24.8 x 14.3 x 3mm
Sơ đồ chân Module Wifi ESP8266-12E
ESP8266 WIFI NodeMCU
ESP8266 NodeMCU là một nền tảng IoT mã nguồn mở, được phát triển bởi một nhóm kỹ sư tại Trung Quốc. Nền tảng này được xây dựng trên ESP8266, một vi điều khiển Wi-Fi SoC (System on a Chip) được sản xuất bởi Espressif Systems. NodeMCU cung cấp một bộ SDK để lập trình cho ESP8266 bằng ngôn ngữ Lua hoặc C++. Với các tính năng như Wi-Fi, GPIO, ADC, I2C, SPI, PWM và một số tính năng khác, NodeMCU ESP 8266 được sử dụng rộng rãi trong các ứng dụng IoT như kiểm soát thiết bị, thu thập dữ liệu và giao tiếp với các thiết bị khác.
Thông số kỹ thuật của NodeMCU
- Microcontroller: ESP8266EX
- Điện áp hoạt động: 3.3V DC
- Số chân I/O: 17 chân GPIO
- Kết nối mạng: WiFi 802.11 b/g/n
- Giao diện mạng: TCP/IP
- Đồng hồ thời gian thực (RTC): không tích hợp
- Bộ nhớ trong: 4MB
- RAM: 80KB
- Cổng nạp: Micro-USB
- Hỗ trợ các giao thức: MQTT, CoAP, HTTP/HTTPS
- Kích thước: 49 x 24.5 x 13mm
Sơ đồ chân ESP8266 NodeMCU
Xem ngay: Sơ đồ chân ESP8266 NodeMCU
Wemos D1 Mini
Wemos D1 Mini là một board phát triển IoT nhỏ gọn, dựa trên module wifi ESP8266EX. Nó được thiết kế để dễ dàng sử dụng và lập trình thông qua cổng micro USB và trình biên dịch Arduino IDE. Wemos D1 Mini có đầy đủ các tính năng cần thiết cho các ứng dụng IoT, bao gồm kết nối wifi, GPIO, ADC, SPI, I2C…, và rất thích hợp cho các dự án DIY IoT.
Thông số kỹ thuật của Wemos D1 Mini:
- MCU: ESP8266EX
- Kích thước: 34.2mm x 25.6mm
- Điện áp hoạt động: 3.3V
- Pin đầu vào tối đa: 3.3V
- Điện áp USB: 5V DC
- Pin đầu ra tối đa: 3.3V/1A
- GPIO: 11 GPIO (đều hỗ trợ PWM, I2C, 1-Wire)
- ADC: 1 (10 bit)
- Tốc độ xung nhịp: 80MHz/160MHz
- Bộ nhớ trong: 4MB
- Wi-Fi: IEEE 802.11 b/g/n
- Kết nối USB: Micro-USB
- Hỗ trợ OTA (Over The Air) để nạp chương trình không cần dây cáp.
Sơ đồ chân Wemos D1 Mini
NodeMCU ESP32
NodeMCU ESP32 là một module IoT (Internet of Things) với khả năng kết nối Wi-Fi và Bluetooth. Nó là phiên bản nâng cấp của ESP8266 với nhiều tính năng mới và cải tiến, bao gồm hai nhân xử lý Tensilica Xtensa LX6, bộ nhớ Flash lên đến 4MB, RAM lên đến 520KB, tốc độ xử lý lên đến 240 MHz và hỗ trợ nhiều giao tiếp như SPI, I2C, UART, CAN và Ethernet. ESP32 được sử dụng rộng rãi trong các ứng dụng IoT, bao gồm điều khiển thiết bị, cảm biến, hệ thống đo lường và giám sát.
Thông số kỹ thuật của NodeMCU ESP32:
- Vi xử lý: Tensilica Xtensa LX6, hai nhân, lên đến 240 MHz
- Bộ nhớ trong: 520 KB SRAM
- Bộ nhớ ngoài: 4MB Flash Memory
- Wi-Fi: 802.11 b/g/n/e/i (2,4 GHz)
- Bluetooth: v4.2 BR/EDR và BLE
- GPIO: 36
- UART, SPI, I2C, I2S, DAC, ADC, PWM, GPIO
- Cổng kết nối: micro USB
- Nguồn điện: 2.2V – 3.6V DC
- Kích thước: 18 x 25.5 mm
Sơ đồ chân của NodeMCU ESP32
Hướng dẫn nạp code cho ESP8266 NodeMCU
Để có thể nạp code cho ESP8266 NodeMCU bạn cần tải phần mềm Arduino IDE về. Thông thường phần mềm mới tải về thì chưa có board esp822 nên các bạn cần làm theo các bước dưới đây.
Bước 1: Mở Arduino IDE lên, click vào File trên thanh công cụ chọn Preferences(Ctrl+Comma).
Bước 2: Copy đường Link bên dưới bỏ vào ô tô màu vàng và nhấn OK là xong.
- Copy Link tại đây: //arduino.esp8266.com/stable/package_esp8266com_index.json
Bước 3: Vào Tools > Board > Boards Manager
Bước 4: Cửa sổ mở lên ta Seach “Esp8266” để tải danh mục của các Board về. Nhấn Install để tiến hành cài đặt.
Như vậy, là mình vừa xong phần thiết lập cho board, bây giờ các bạn chỉ cần viết code và nhấn Upload chương trình xuống là xong.
Lưu ý: Chọn đúng PORT và Board nhé, ở đây mình dùng ESP822 NodeMCU 1.0 (ESP-12E Module)
Thư viện ESP8266
ESP8266 arduino là một vi điều khiển phổ biến trong các ứng dụng IoT, nó hỗ trợ Wi-Fi và có thể được lập trình để kết nối với các thiết bị trên internet. Các thư viện ESP8266 cung cấp các hàm để thực hiện các chức năng liên quan đến Wi-Fi, TCP/IP, MQTT và nhiều chức năng khác.
Dưới đây là các thư viện phổ biến cho ESP8266 bao gồm:
- ESP8266WiFi: Thư viện này cung cấp các chức năng để kết nối với mạng Wi-Fi và thực hiện các hoạt động như phát hiện mạng, kết nối đến mạng, ngắt kết nối và kiểm tra kết nối.
- ESP8266HTTPClient: Thư viện này cung cấp các chức năng để thực hiện các yêu cầu HTTP, bao gồm cả GET, POST, PUT, DELETE và PATCH.
- PubSubClient: Thư viện này cung cấp các chức năng để kết nối và giao tiếp với một máy chủ MQTT, cho phép truyền tải dữ liệu giữa ESP8266 và máy chủ.
- ESPAsyncWebServer: Thư viện này cung cấp các chức năng để tạo và quản lý một máy chủ web, cho phép truy cập và điều khiển ESP8266 thông qua trình duyệt web.
- ArduinoJson: Thư viện này cung cấp các chức năng để xử lý JSON, cho phép ESP8266 đọc và ghi dữ liệu dưới định dạng JSON.
- Adafruit MQTT Library: Thư viện này cung cấp các chức năng để kết nối và giao tiếp với một máy chủ MQTT, cho phép truyền tải dữ liệu giữa ESP8266 và máy chủ.
Câu hỏi thường gặp
ESP8266 là gì?
ESP8266 là một module WiFi siêu nhỏ được sản xuất bởi Espressif Systems, cho phép kết nối Internet thông qua mạng WiFi và sử dụng các giao thức mạng như HTTP, MQTT, TCP/IP, UDP.
Làm thế nào để lập trình ESP8266 bằng Arduino IDE?
Để lập trình ESP8266 bằng Arduino IDE, trước tiên bạn cần cài đặt các driver, thư viện cho ESP8266 trên Arduino IDE. Sau đó, bạn có thể lập trình ESP8266 như một board Arduino thông thường.
Làm thế nào để kết nối ESP8266 với mạng WiFi?
Để kết nối ESP8266 với mạng WiFi, bạn cần cung cấp cho ESP8266 tên mạng (SSID) và mật khẩu của mạng đó thông qua code của bạn. Bạn có thể sử dụng thư viện ESP8266WiFi để thực hiện việc này. Trong code của bạn, bạn cần thiết lập chế độ kết nối mạng cho ESP8266, tạo một đối tượng WiFiClient để thực hiện kết nối, sau đó gọi hàm connect() để kết nối với mạng WiFi.
Làm thế nào để kiểm tra kết nối WiFi của ESP8266?
Bạn có thể sử dụng hàm WiFi.status() để kiểm tra trạng thái kết nối WiFi của ESP8266. Hàm này trả về các giá trị sau: – WL_CONNECTED: Đã kết nối thành công với mạng WiFi. – WL_NO_SHIELD: Không tìm thấy module. – WL_IDLE_STATUS: Đang trong trạng thái chờ đợi. – WL_NO_SSID_AVAIL: Không thể tìm thấy mạng WiFi có tên đã cung cấp. – WL_CONNECT_FAILED: Không thể kết nối đến mạng WiFi. – WL_DISCONNECTED: Đã bị ngắt kết nối từ mạng WiFi.
Kết luận
Như vậy, thông qua bài viết trên, các bạn đã hiểu rõ hơn ESP8266 là gì? và esp8266 dùng để làm gì? – nó một module esp8266 mạnh mẽ và được sử dụng rộng rãi trong các ứng dụng IoT. Bên cạnh đó, chúng ta cũng đã được hướng dẫn chi tiết về cách lập trình ESP8266 bằng Arduino IDE, từ cách cài đặt thư viện, đến cách kết nối và nạp code esp8266 nodemcu. Hy vọng những thông tin này sẽ giúp các bạn có thể bắt đầu tìm hiểu và sử dụng ESP8266 cho các dự án của mình một cách dễ dàng và hiệu quả.