Lập trình ESP8266 V1 bằng Arduino IDE

Bởi nguyenthanhphi (28/10/2017) 1 Bình luận

Ở bài viết trước mình cũng đã trình bày cách lập trình điều khiển module ESP8266V1 với arduino uno và trong bài viết này mình sẽ trình bày cách Lập trình ESP8266 V1 bằng Arduino IDE. ESP8266 là một chip tích hợp cao - System on Chip (SoC), có khả năng xử lý và lưu trữ tốt, cung cấp khả năng vượt trội để trang bị thêm tính năng wifi cho các hệ thống khác hoặc đóng vai trò như một giải pháp độc lập. ESP8266 cung cấp khả năng kết nối mạng wifi đầy đủ và khép kín, bạn có thể sử dụng nó để tạo một web server đơn giản hoặc sử dụng như một access point.

Giới thiệu Module Wifi ESP8266 V1

ESP8266 là một chip tích hợp cao - System on Chip (SoC), có khả năng xử lý và lưu trữ tốt, cung cấp khả năng vượt trội để trang bị thêm tính năng wifi cho các hệ thống khác hoặc đóng vai trò như một giải pháp độc lập.

Module wifi ESP8266 v1 cung cấp khả năng kết nối mạng wifi đầy đủ và khép kín, bạn có thể sử dụng nó để tạo một web server đơn giản hoặc sử dụng như một access point.

Chuẩn bị:

  • 1 x ESP8266 v1
  • 1 x USB TTL (ví dụ CP2102,…)
  • 1 x phần mền Arduino IDE ( các bạn có thể tải tại đây)

Thông số kỹ thuật Module Wifi ESP8266 V1

  • Wifi 802.11 b/g/n
  • Wifi 2.4 GHz, hỗ trợ WPA/WPA2
  • Chuẩn điện áp hoạt động 3.3V
  • Chuẩn giao tiếp nối tiếp UART với tốc độ Baud lên đến 115200
  • Có 3 chế độ hoạt động: Client, Access Point, Both Client and Access Point
  • Hỗ trợ các chuẩn bảo mật như: OPEN, WEP, WPA_PSK, WPA2_PSK, WPA_WPA2_PSK
  • Hỗ trợ cả 2 giao tiếp TCP và UDP
  • Tích hợp công suất thấp 32-bit CPU có thể được sử dụng như là bộ vi xử lý ứng dụng
  • SDIO 1.1 / 2.0, SPI, UART
  • Làm việc như các máy chủ có thể kết nối với 5 máy con

Sơ đồ chân và các chức năng Module Wifi ESP8266 V1

lập trình esp8266

  • URXD(RX) — dùng để nhận tín hiệu trong giao tiếp UART với vi điều khiển
  • VCC — đầu vào 3.3V
  • GPIO 0 — kéo xuống thấp cho chế độ upload bootloader
  • RST — chân reset cứng của module, kéo xuống mass để reset
  • GPIO 2 — thường được dùng như một cổng TX trong giao tiếp UART để debug lỗi
  • CH_PD — kích hoạt chip, sử dụng cho Flash Boot và updating lại module, nối với mức cao
  • GND — nối với mass
  • UTXD (TX) — dùng để truyền tín hiệu trong giao tiếp UART với vi điều khiển

Những kiến thức cơ bản đã xong bây giờ chúng tiến hành từng bước như sau:

Sau khi download phần mền Arduino IDE, các bạn tiến hành cài đặt như bình thường và mở chương trình ra nhé.

lập trình điều khiển cho esp8266v1

Để tiến hành  chức năng nạp code từ IDE cho esp8266  các bạn làm như sau:

Vào File→ Preferences, vào textbox Additional Board Manager URLs thêm đường link sau  http://arduino.esp8266.com/stable/package_esp8266com_index.json

lập trình điều khiển esp8266

Chọn OK để chấp nhận.

Tiếp theo vào ToolBoardBoards Manager

lập trình điều khiển esp8266

Đợi một lát để chương trình tìm kiếm. Ta kéo xuống và click vào ESP8266 by ESP8266 Community, click vào Install. Chờ phần mềm tự động download và cài đặt.

lập trình điều khiển esp8266

Sau khi cài đặt xong chúng ta bắt đầu lập trình cho ESP8266:

Sơ đồ nối dây giữa UART vs ESP8266

lập trình điều khiển esp8266

lập trình điều khiển esp8266

Sau khi nối dây xong ta bắt đầu kết nối mudule USB-to-UART vào máy tính. Vào ToolBoardGeneric ESP8266 Module, chọn cổng COM tương ứng với module USB-to-UART tương ứng.

lập trình điều khiển esp8266

Chọn chế độ nạp Arduino as ISP. Vậy là ta đã có thêm một môi trường lập trình cho esp8266.

 Sau khi kết nối UART vs ESP8266 xong. Các bạn có thể test code ESP8266 ở đây:

Link tải code: https://drive.google.com/open?id=0BwJmY0TV86JwYy1kV2pGYmswdFE

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

MDNSResponder mdns;

ESP8266WebServer server(80);

String webPage = "";

int gpio0_pin = 0;
int gpio2_pin = 2;

void setup(){
  webPage += "<h1>BAT TAT THIET BI DIEN BANG WIFI</h1><h2>THIETBIA #1 <a href=\"THIETBIAOn\"><button>ON</button></a>&nbsp;<a href=\"THIETBIAOff\"><button>OFF</button></a></h2>";
  webPage += "<h2>THIETBIB #2 <a href=\"THIETBIBOn\"><button>ON</button></a>&nbsp;<a href=\"THIETBIBOff\"><button>OFF</button></a></h2>";
  //webPage += " width:10em;height:6em; font-size: 32px;\" type=\"submit\">\
  // preparing GPIOs
  pinMode(gpio0_pin, OUTPUT);
  digitalWrite(gpio0_pin, LOW);
  pinMode(gpio2_pin, OUTPUT);
  digitalWrite(gpio2_pin, LOW);
  
  delay(1000);
  Serial.begin(115200);         // Serielle schnittstelle initialisieren
  Serial.println("");           // Lehere Zeile ausgeben
  Serial.println("Starte WLAN-Hotspot \"astral\"");
  WiFi.mode(WIFI_AP);           // access point modus
  WiFi.softAP("tdhshop.com.vn", "12345678");    // Name des Wi-Fi netzes
  delay(500);                   //Abwarten 0,5s
  Serial.print("IP Adresse ");  //Ausgabe aktueller IP des Servers
  Serial.println(WiFi.softAPIP());
   if (mdns.begin("esp8266", WiFi.localIP())) {
    Serial.println("MDNS responder started");
  }
  
  server.on("/", [](){
    server.send(200, "text/html", webPage);
  });
  server.on("/THIETBIAOn", [](){
    server.send(200, "text/html", webPage);
    digitalWrite(gpio0_pin, HIGH);
    delay(1000);
  });
  server.on("/THIETBIAOff", [](){
    server.send(200, "text/html", webPage);
    digitalWrite(gpio0_pin, LOW);
    delay(1000); 
  });
  server.on("/THIETBIBOn", [](){
    server.send(200, "text/html", webPage);
    digitalWrite(gpio2_pin, HIGH);
    delay(1000);
  });
  server.on("/THIETBIBOff", [](){
    server.send(200, "text/html", webPage);
    digitalWrite(gpio2_pin, LOW);
    delay(1000); 
  });
  server.begin();
  Serial.println("HTTP server started");
}
 
void loop(){
  server.handleClient();

lập trình điều khiển esp8266

Như hình ở trên là chương trình đã được nạp xong cho esp8266

Sau khi nạp code xong các bạn nhớ tháo dây GPIO0  ra khỏi chân GND nhé….

Và module ESP8266V1 sẽ phát wifi tên:" tdhshop.com.vn " và mật khẩu : " 12345678" cái này các bạn có thể thay đổi tùy ý mình nhé.

Hai chân GPIO0 và GPIO2 sử dụng để điều khiển 2 led như hình ở dưới.

lập trình điều khiển esp8266

Và địa chỉ IP mặc định của ESP8266V1 là: 192.168.4.1

Ta dùng điện thoại hay máy tính truy cập vào wifi của ESP8266V1 rồi nhập địa chỉ IP vào các trình duyệt như sau:

lập trình điều khiển esp8266v1

CHÚC CÁC BẠN THÀNH CÔNG NHÉ!!!

Một số bài viết có thể bạn quan tâm: 5 Lý Do Tại Sao Ai Cũng Nên Tìm Hiểu Về Arduino || Arduino UNO R3 là gì || Bộ Tự Học Arduino Dể Hiểu Nhất || Cài Đặt Phần Mền Arduino IDE || Cấu trúc chương trình Arduino || Hướng Dẫn Nạp Chương Trình Cho Arduino Uno R3 ||  Hướng dẫn cài thư viện vào arduino IDE || Điều Khiển Đèn LED Sáng Nhấp Nháy.

Đóng góp ý kiến

Bình luận(1)

  • Bình luận bởi Tùng
    Đoạn code em đã thấy hướng dẫn nhiều e đã thực hiện và thành công. Nhưng nói về hiểu thì e k thấy hướng dẫn nào giải thích về đoạn code và nếu dùng ứng dụng để làm thêm các ứng dụng khác thì e hoàn toàn không biết phải thêm cái gì vì ở đây chỉ la copy & paste code . Mong ad có thể giải thích hay có thêm những tài liệu để hiểu và mở rộng ứng dụng cho ng học có thể tự viết 1 đoạn code theo ý muốn chứ k chỉ la copy nguyên si.