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ả

HackadayPrize 2017 - Cuộc thi sáng tạo hàng đầu thế giới - Trị giá lên đến 250.000 Mỹ cành

Bạn muốn thử sức mình ở một cuộc thi tầm cỡ thế giới với giải thưởng lên đến 250.000 USD? Bạn muốn đưa ý tưởng của mình tiếp cận những quỹ đầu tư mạo hiểm về công nghệ? Hãy tham gia cuộc thi HackdayPrize 2017. Đây là một cuộc thi sẽ biến ý tưởng của bạn thành những làn sóng công nghệ quét qua hành tình trái đất. Tìm hiểu hoy.

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

Lập trình ATtiny13 với Codebender

Trong bài viết Code Arduino trên MÂY, bạn có muốn thử hay không?, chúng ta đã biết cách lập trình Arduino trên mây rồi, phải không nào? Nhưng qua quá trình tìm hiểu thì mình thấy Codebender chưa hỗ trợ dòng ATtiny13, trong khi đó nó lại hỗ trợ những dòng ATtiny45, 85 và 2313. Vậy, câu hỏi đặt ra là: có cách nào để lập trình ATtiny13 qua Codebender hay không? Và câu trả lời là: Có, chúng ta có thể.

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