Hướng dẫn nạp file binary (.bin) cho ESP8266

Mô tả dự án: 

Đôi khi chúng ta có file nạp cho chip .hex, hoặc các bạn làm xong một dự án trên board Arduino, các bạn không cần bootloader (nhất là chíp Atmega8), và các bạn muốn phát triển trên một bảng mạch riêng thì lúc đó ta sẻ nạp trực tiếp file .hex cho chip, và hôm nay mình sẻ hướng dẩn các bạn nào chưa biết một cách nạp file .hex (firmware) đơn giản và an toàn. Có rất nhiều cách nạp firmware các bạn có thể tìm hiểu trên Internet.

Chuẩn bị phần mềm

Bạn cần tải về phần mềm ESP8266 Flasher. Như vậy là đủ phần mềm để nạp firmware rồi.

  • Đối với Windows x86 (32 bit), bạn tải về tại đây.
  • Đối với Windows x64 (64 bit), bạn tải về tại đây.

Mirror cho hai phiên bản nếu các đường dẫn trên không hoạt động. https://drive.google.com/open?id=1xXH3aMSa1AJEljH2515n7CTkzPNzp_NH

 

Trích xuất file binary

Nếu bạn đã có một file binary rồi thì có thể bỏ qua bước này.

Bạn có thể tải một file binary tại bài viết (Phòng chống) Nghệ thuật hắc ám với ESP8266 - Phần 1: Thích thì phát beacon hoy

Hoặc bạn có thể tự xuất cho mình một chương trình Arduino đơn giản. Trong ví dụ này, tôi sẽ làm đèn TX - GPIO2 (đèn nhỏ nhỏ trên module ESP8266) sáng với hiệu ứng blink.

//Code Arduino cho ESP8266

void setup() {
  pinMode(2, OUTPUT);
}

void loop() {
  digitalWrite(2, HIGH);   
  delay(1000);                    
  digitalWrite(2, LOW); 
  delay(1000);                      
}

Bạn nhấn tổ hợp phím Ctrl + Alt + S để lưu code Arduino thành file .bin. Các bạn có thể xem như trên hình nếu muốn rõ hơn nhé. Sau khi đã biên dịch thành công, sẽ có một file .bin sẽ xuất hiện trong thư mục chứa code.

Đây là file biên dịch (.bin) cho NodeMCU. Đối với board ESP8266v1, bạn cần chỉnh lại thông tin board cho phù hơp. Ví dụ: 

Okay, đến phần nạp code thôi.

Nạp code

Cũng như việc nạp code ESP8266 bình thường, bạn cũng cần chuẩn bị mạch nạp (mạch USB-to-Serial, ví dụ CP210x). Còn đối với các module NodeMCU thì đã có sẵn mạch nạp rồi.

Quy tắc chung khi nạp firmware hay nạp code cho ESP8266 là:

  • ESP8266 sẽ chạy chương trình của bạn nếu cả chân GPIO0 và chân RESET được thả (không bị nhấn).
  • ESP8266 sẽ bị reset khi nút reset được thả.
  • ESP8266 sẽ chấp nhận bị nạp chương trình khi cả chân GPIO0 và chân RESET được nhấn, sau đó thả chân RESET ra. Nói cách khác là khi gắn điện cho ESP8266, bạn phải đưa GPIO xuống LOW.

Như vậy, để nạp code cho ESP8266, bạn cần đưa GPIO xuống LOW sau đó cấp điện (gắn vào máy tính ví dụ thế). Sau đó, mở chương trình ESP8266Flasher nào!

Bạn cần chỉnh các thông số cần thiết như sau:

Chỉnh sửa tab Config để cập nhập đường dẫn đến file binary.

Chỉnh sửa tab Advanced để cập nhật các thông tin về:

  • baudrate nạp code (tùy thuộc và mạch nạp)
  • flash size (NodeMCU: 4MB, ESP8266v1 - 512KB, ESP8266v12 - 4MV, ESP8266v7 - 512KB).
  • flash speed (40mhz hoặc thấp hơn là chắc ăn).
  • SPI Mode chọn DIO.

Quay lại tab Operation bạn nhấn nút Flash và nó hiện ra các địa chỉ MAC như hình dưới là quá trình nạp sẽ diễn ra và thành công, còn lại bạn thử rút mạch nạp ra rồi nối GPIO0 xuống LOW rồi gắn vào máy tính nhé. Cứ lắp lại quy trình là ổn thôi à.

Nó hiển thị như thế này là xong rồi!

Chúc các bạn thành công!

lên
3 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

VMIG - Kết quả vòng chung kết và trao giải thưởng

Như vậy là một kì VMIG đã trải qua, với hơn 140 ý tưởng đăng ký tham gia và 50 sản phẩm đã hoàn thiện, cuộc thi của chúng ta đã để lại những dấu ấn nhất định trong lòng mỗi thí sinh. Các bạn đã có những khoản thời gian làm việc cùng nhau, chia sẻ vui buồn, kỉ niệm từ lúc bắt đầu dự án cho đến khi hoàn thiện. Và ngày 22/01/2016 vừa quá, chính là ngày tỏa sáng của 16 nhóm xuất sắc nhất. Có thể nói, trong cái rét cắt da thịt ở Hà Nội, chính sự năng động, nhiệt huyết và tinh thần khoa học của các bạn đã làm ấm cả hội trường C2. Và giờ đây là lúc nhìn lại kết quả trong buổi trao giải, hãy cùng chúc mừng tất cả các đội đã dành chiến thắng, các bạn nhé heart​.

lên
4 thành viên đã đánh giá bài viết này hữu ích.

Bài 10: Đếm số lần nhấn một button - ButtonStateChange

Nếu bạn đã đọc qua Bài 3: Xác định trạng thái của một nút nhấn (button) thì chắc hẳn bạn đã biết cách sử dụng một button. Nhưng đôi khi bạn muốn button của bạn đặc biệt hơn một tí, chẳng hạn như là nhấn vài ba lần thì mới thực hiện chức năng của nó. Để làm được điều này, bạn cần biết được lúc nào button được nhấn và lúc nào button được thả ra, và đếm số lần. Hôm nay, tôi sẽ hướng dẫn bạn giải quyết vấn đề này.

lên
27 thành viên đã đánh giá bài viết này hữu ích.