Sau khi mua ESP8266 về cũng như đã thử qua một số lệnh cơ bản kiểm tra hoạt động và kết nối với mạng wifi ở nhà trong bài viết ESP8266 cho người không biết gì thì hôm nay mình xin giới thiệu cách lập trình cho ESP8266 sử dụng công cụ lập trình cho Arduino là Arduino IDE. Có nhiều cách khác nhau để lập trình cho ESP8266 nhưng mình chọn cách này vì nó đơn giản cũng như quen thuộc với các bạn nếu đã từng sử dụng qua Arduino.

Ở đây mình cũng xin nói luôn là chúng ta sẽ can thiệp trực tiếp vào ESP8266 nghĩa là flash trắng toàn bộ chip và viết chương trình mới hoàn toàn, có nghĩa là sẽ mất hết firmware ai-thinker và tập lệnh AT ở bài trước. Do đó cách làm giao tiếp với ESP8266 dùng tập lệnh AT mình xin hẹn các bạn ở một bài khác.

Phiên bản ESP8266 mình sử dụng là v7, cùng với USB2Serial PL2303.

Lưu ý là mọi kết nối đều như cũ, để nạp được chương trình xuống ESP8266 thì cần nối chân GPIO0 với GND.

Cài đặt

Cài đặt với Boards Manager

  • Cài phiên bản mới nhất của Arduino từ website Arduino.
  • Khởi động Arduino sau đó chọn File > Preferences.
  • Trong cửa sổ hiện ra ta thêm http://arduino.esp8266.com/stable/package_esp8266com_index.json vào mục Additional Board Manager URLs. Sau đó chọn OK.
  • Sau đó mở Boards Manager bằng cách chọn Tools > Board từ menu và cài đặt esp8266 platform
  • Cuối cùng là chọn board ESP8266 phù hợp với cái mình có sẵn cũng thông qua Tools > Board.

Nếu có vấn đề không cài được thì bạn có thể hỏi tại đây hoặc chắc chắn nhất là tại http://www.esp8266.com/arduino.

Viết chương trình kết nối wifi

Sau khi đã cài đặt thành công và hiển thị được hình như trên thì chúng ta sẽ bắt đầu viết chương trình đầu tiên, sau đó upload xuống ESP8266 để kết nối với mạng wifi ở nhà của mình.

Lập trình

Chương trình khá đơn giản, chỉ là kết nối với Wifi, in ra địa chỉ IP, nếu không kết nối được thì in ra dấu . (bạn thấy …….. hoài có nghĩa là sai tên wifi/password rồi nhé). Mình giải thích bằng comment trên code luôn cho các bạn dễ quan sát

// Them thu vien
#include <ESP8266WiFi.h>
// Thong so WiFi
const char* ssid = "ten_wifi";	//Thay  ten_wifi bang ten wifi nha ban
const char* password = "mat_khau_wifi";	//Thay mat_khau_wifi bang mat khau cua ban
void setup(void)
{
// Khoi dong serial de debug
	Serial.begin(115200);
// Ket noi voi WiFi
	WiFi.begin(ssid, password);
	while (WiFi.status() != WL_CONNECTED) {	//Kiem tra xem trang thai da ket noi chua neu chua thi in ra dau .
		delay(500);
		Serial.print(".");
	}
	Serial.println("");
	Serial.println("WiFi connected");
// Neu da ket noi duoc voi wifi se in ra dia chi IP
	Serial.println(WiFi.localIP());
}
void loop() {
}

Quan trọng nhất là dòng 4,5 ví dụ wifi nhà bạn là HocARM pass 12345678 thì sẽ thay như sau

const char* ssid = "HocARM"; //Thay ten_wifi bang ten wifi nha ban
const char* password = "12345678"; //Thay mat_khau_wifi bang mat khau cua ban

Nạp chương trình

Coi như phần chương trình đã xong, giờ là nạp xuống ESP8266

  • Trước hết là phải chọn board cho chính xác bằng cách vào menu chọn Tool > Boards
  • Nếu dùng board ESP8266V1 thì chọn Generic ESP8266 Module
  • Nếu dùng board ESP8266V7 hoặc ESP8266V12, NodeMCU 0.9 thì chọn NodeMCU 0.9
  • Nếu dùng Wemos hay các board khác thì chọn theo danh sách.
  • Sau là chọn cổng COM (Tool > Port), ở đây của mình là COM2

Cuối cùng là biên dịch và nạp chương trình xuống,nếu có thông báo Done uploading như hình là thành công

Kết quả

Sau khi thực hiện theo các bước 1 mở terminal, bước 2 chọn baud (ở đây là 115200) thì sẽ có kết quả là thông báo kết nối và địa chỉ IP là 192.168.1.103. Cái dòng chữ rlrl… ở trên cùng là do tự ESP8266 sinh ra, chúng ta có thể bỏ qua không cần quan tâm tới nó làm gì.

Bạn có thể tải code tại  Code Connect Wifi

hocarm/ESP8266-Arduino
Contribute to hocarm/ESP8266-Arduino development by creating an account on GitHub.

Kết

Vậy là chúng ta đã sử dụng được Arduino IDE để lập trình cho ESP82266, kết nối wifi rất nhẹ nhàng đơn giản, quá trình làm với ESP8266v7 hoặc v12 sẽ hơi khó khăn hơn ở đoạn kết nối dây, chỉnh reset,.. nhưng lại thú vị và giúp ta hiểu rõ hơn về NodeMCU người ta đã khắc phục những điều ấy như thế nào. Còn nếu bạn đã có NodeMCU hoặc Wemos thì cứ mạnh dạn làm thôi, không việc gì phải sợ cả.