Skip to content
Home » Wifi 8266 Arduino Code | Esp8266 Là Gì?

Wifi 8266 Arduino Code | Esp8266 Là Gì?

Arduino UNO & ESP8266 and control using smartphone

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.

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: http://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)

Arduino UNO & ESP8266 and control using smartphone
Arduino UNO & ESP8266 and control using smartphone

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

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ả.

Arduino core for ESP8266 WiFi chip

Quick links

Arduino on ESP8266

This project brings support for the ESP8266 chip to the Arduino environment. It lets you write sketches, using familiar Arduino functions and libraries, and run them directly on ESP8266, with no external microcontroller required.

ESP8266 Arduino core comes with libraries to communicate over WiFi using TCP and UDP, set up HTTP, mDNS, SSDP, and DNS servers, do OTA updates, use a file system in flash memory, and work with SD cards, servos, SPI and I2C peripherals.

Contents

Installing with Boards Manager

Starting with 1.6.4, Arduino allows installation of third-party platform packages using Boards Manager. We have packages available for Windows, Mac OS, and Linux (32 and 64 bit).


  • Download and install Arduino IDE 1.x or 2.x
  • Start Arduino and open the Preferences window
  • Enter

    https://arduino.esp8266.com/stable/package_esp8266com_index.json

    into the File>Preferences>Additional Boards Manager URLs field of the Arduino IDE. You can add multiple URLs, separating them with commas.
  • Open Boards Manager from Tools > Board menu and install esp8266 platform (and don’t forget to select your ESP8266 board from Tools > Board menu after installation).
Latest release

Boards manager link:

https://arduino.esp8266.com/stable/package_esp8266com_index.json

Documentation:

https://arduino-esp8266.readthedocs.io/en/3.1.2/

Using git version

Also known as latest git or master branch.

Using PlatformIO


PlatformIO

is an open source ecosystem for IoT
development with a cross-platform build system, a library manager, and full support
for Espressif (ESP8266) development. It works on the following popular host operating systems: macOS, Windows,
Linux 32/64, and Linux ARM (like Raspberry Pi, BeagleBone, CubieBoard).

Building with make


makeEspArduino

is a generic makefile for any ESP8266 Arduino project.
Using make instead of the Arduino IDE makes it easier to do automated and production builds.

Documentation

Documentation for latest development version:

https://arduino-esp8266.readthedocs.io/en/latest/

Issues and support


ESP8266 Community Forum

is a well-established community for questions and answers about Arduino for ESP8266. Stackoverflow is also an alternative. If you need help, have a “How do I…” type question, have a problem with a 3rd party library not hosted in this repo, or just want to discuss how to approach a problem, please ask there.

If you find the forum useful, please consider supporting it with a donation.

If you encounter an issue which you think is a bug in the ESP8266 Arduino Core or the associated libraries, or if you want to propose an enhancement, you are welcome to submit it here on Github:

https://github.com/esp8266/Arduino/issues

.

Please provide as much context as possible, as well as the information requested in the issue template:

  • ESP8266 Arduino core version which you are using (you can check it in Boards Manager)
  • your sketch code; please wrap it into a code block, see

    Github markdown manual
  • when encountering an issue that happens at run time, attach the serial output. Wrap it into a code block, just like the code.
  • for issues that happen at compile time, enable verbose compiler output in the IDE preferences, and attach that output (also inside a code block)
  • ESP8266 development board model
  • IDE settings (board choice, flash size)
  • etc

Contributing

For minor fixes of code and documentation, please go ahead and submit a pull request. A gentle introduction to the process can be found

here

.

Check out the list of issues that are easy to fix —

easy issues pending

. Working on them is a great way to move the project forward.

Larger changes (rewriting parts of existing code from scratch, adding new functions to the core, adding new libraries) should generally be discussed by opening an issue first. PRs with such changes require testing and approval.

Feature branches with lots of small commits (especially titled “oops”, “fix typo”, “forgot to add file”, etc.) should be squashed before opening a pull request. At the same time, please refrain from putting multiple unrelated changes into a single pull request.

License and credits

Arduino IDE is developed and maintained by the Arduino team. The IDE is licensed under GPL.

ESP8266 core includes an xtensa gcc toolchain, which is also under GPL.

Esptool.py was initially created by Fredrik Ahlberg (@themadinventor, @kongo), and is currently maintained by Angus Gratton (@projectgus) under GPL 2.0 license.


Espressif’s NONOS SDK

included in this build is under Espressif MIT License.

ESP8266 core files are licensed under LGPL.


SPI Flash File System (SPIFFS)

written by Peter Andersson is used in this project. It is distributed under the MIT license.


umm_malloc

memory management library written by Ralph Hempel is used in this project. It is distributed under the MIT license.


SoftwareSerial

library and examples written by Peter Lerup. Distributed under LGPL 2.1.


BearSSL

library written by Thomas Pornin, built from

https://github.com/earlephilhower/bearssl-esp8266

, is used in this project. It is distributed under the

MIT License

.


LittleFS

library written by ARM Limited and released under the

BSD 3-clause license

.


uzlib

library written and (c) 2014-2018 Paul Sokolovsky, licensed under the ZLib license (

https://www.zlib.net/zlib_license.html

). uzlib is based on: tinf library by Joergen Ibsen (Deflate decompression); Deflate Static Huffman tree routines by Simon Tatham; LZ77 compressor by Paul Sokolovsky; with library integrated and maintained by Paul Sokolovsky.

Other useful links


Toolchain repo


Lwip link layer repo


SoftwareSerial repo


Serial Monitor Arduino IDE plugin

Original discussion

here

, quick download

there

.


FTP Client/Server Library

Arduino core for ESP8266 WiFi chip

Quick links

Arduino on ESP8266

This project brings support for the ESP8266 chip to the Arduino environment. It lets you write sketches, using familiar Arduino functions and libraries, and run them directly on ESP8266, with no external microcontroller required.

ESP8266 Arduino core comes with libraries to communicate over WiFi using TCP and UDP, set up HTTP, mDNS, SSDP, and DNS servers, do OTA updates, use a file system in flash memory, and work with SD cards, servos, SPI and I2C peripherals.

Contents

Installing with Boards Manager

Starting with 1.6.4, Arduino allows installation of third-party platform packages using Boards Manager. We have packages available for Windows, Mac OS, and Linux (32 and 64 bit).


  • Download and install Arduino IDE 1.x or 2.x
  • Start Arduino and open the Preferences window
  • Enter

    https://arduino.esp8266.com/stable/package_esp8266com_index.json

    into the File>Preferences>Additional Boards Manager URLs field of the Arduino IDE. You can add multiple URLs, separating them with commas.
  • Open Boards Manager from Tools > Board menu and install esp8266 platform (and don’t forget to select your ESP8266 board from Tools > Board menu after installation).
Latest release

Boards manager link:

https://arduino.esp8266.com/stable/package_esp8266com_index.json

Documentation:

https://arduino-esp8266.readthedocs.io/en/3.1.2/

Using git version

Also known as latest git or master branch.

Using PlatformIO


PlatformIO

is an open source ecosystem for IoT
development with a cross-platform build system, a library manager, and full support
for Espressif (ESP8266) development. It works on the following popular host operating systems: macOS, Windows,
Linux 32/64, and Linux ARM (like Raspberry Pi, BeagleBone, CubieBoard).

Building with make


makeEspArduino

is a generic makefile for any ESP8266 Arduino project.
Using make instead of the Arduino IDE makes it easier to do automated and production builds.

Documentation

Documentation for latest development version:

https://arduino-esp8266.readthedocs.io/en/latest/

Issues and support


ESP8266 Community Forum

is a well-established community for questions and answers about Arduino for ESP8266. Stackoverflow is also an alternative. If you need help, have a “How do I…” type question, have a problem with a 3rd party library not hosted in this repo, or just want to discuss how to approach a problem, please ask there.

If you find the forum useful, please consider supporting it with a donation.

If you encounter an issue which you think is a bug in the ESP8266 Arduino Core or the associated libraries, or if you want to propose an enhancement, you are welcome to submit it here on Github:

https://github.com/esp8266/Arduino/issues

.

Please provide as much context as possible, as well as the information requested in the issue template:

  • ESP8266 Arduino core version which you are using (you can check it in Boards Manager)
  • your sketch code; please wrap it into a code block, see

    Github markdown manual
  • when encountering an issue that happens at run time, attach the serial output. Wrap it into a code block, just like the code.
  • for issues that happen at compile time, enable verbose compiler output in the IDE preferences, and attach that output (also inside a code block)
  • ESP8266 development board model
  • IDE settings (board choice, flash size)
  • etc

Contributing

For minor fixes of code and documentation, please go ahead and submit a pull request. A gentle introduction to the process can be found

here

.

Check out the list of issues that are easy to fix —

easy issues pending

. Working on them is a great way to move the project forward.

Larger changes (rewriting parts of existing code from scratch, adding new functions to the core, adding new libraries) should generally be discussed by opening an issue first. PRs with such changes require testing and approval.

Feature branches with lots of small commits (especially titled “oops”, “fix typo”, “forgot to add file”, etc.) should be squashed before opening a pull request. At the same time, please refrain from putting multiple unrelated changes into a single pull request.

License and credits

Arduino IDE is developed and maintained by the Arduino team. The IDE is licensed under GPL.

ESP8266 core includes an xtensa gcc toolchain, which is also under GPL.

Esptool.py was initially created by Fredrik Ahlberg (@themadinventor, @kongo), and is currently maintained by Angus Gratton (@projectgus) under GPL 2.0 license.


Espressif’s NONOS SDK

included in this build is under Espressif MIT License.

ESP8266 core files are licensed under LGPL.


SPI Flash File System (SPIFFS)

written by Peter Andersson is used in this project. It is distributed under the MIT license.


umm_malloc

memory management library written by Ralph Hempel is used in this project. It is distributed under the MIT license.


SoftwareSerial

library and examples written by Peter Lerup. Distributed under LGPL 2.1.


BearSSL

library written by Thomas Pornin, built from

https://github.com/earlephilhower/bearssl-esp8266

, is used in this project. It is distributed under the

MIT License

.


LittleFS

library written by ARM Limited and released under the

BSD 3-clause license

.


uzlib

library written and (c) 2014-2018 Paul Sokolovsky, licensed under the ZLib license (

https://www.zlib.net/zlib_license.html

). uzlib is based on: tinf library by Joergen Ibsen (Deflate decompression); Deflate Static Huffman tree routines by Simon Tatham; LZ77 compressor by Paul Sokolovsky; with library integrated and maintained by Paul Sokolovsky.

Other useful links


Toolchain repo


Lwip link layer repo


SoftwareSerial repo


Serial Monitor Arduino IDE plugin

Original discussion

here

, quick download

there

.


FTP Client/Server Library

CÁC BƯỚC CÀI ĐẶT MODULE WIFI ESP8266

(Chu ý: Bước này chỉ làm một lần trước khi sử dụng module )

Bước 1: TÁCH RỜI VI ĐIỀU KHIỂN TRUNG TÂM ATMEGA328P RA KHỎI BOARD ARDUINO UNO:

Bước 2: KẾT NỐI BOARD ARDUINO UNO (không có vi điều khiển ATMEGA328p) VỚI MODULE ESP8266 THEO SƠ ĐỒ PHẦN CỨNG SAU:

ESP8266 Board Arduino uno

3.3V, RST, CH-PD (EN), GPIO2———3.3V

GND, GPIO0———————————GND

Rx—————————————–Rx

Tx——————————————Tx

Bước 2: CẤP NGUỒN CHO BOARD ARDUINO UNO

Bước 2: MỞ CHƯƠNG TRÌNH ARDUINO IDE.

////////////////////////////////Code cho cài đặt thông số Module ESP8266////////////////////////////

#include

const char* ssid = “Dieukhientuxa”; //tên host wifi muốn truy cập

const char* password = “12345678”; //pass wifi muốn truy cập

WiFiServer server(80); //Mặc định port luôn là 80

void setup()

Serial.begin(9600);

delay(10);

pinMode(2,OUTPUT);

Serial.print(“Connecting to “);

Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED)

delay(300);

Serial.print(“*”);

digitalWrite(2,!digitalRead(2));

Serial.println(“ ”);

Serial.println(“WiFi connected. IP address: “);

Serial.println(WiFi.localIP());

server.begin();

void loop()

WiFiClient client = server.available();

if(!client)

return;

while(!client.available())

delay(1);

String request = client.readStringUntil(‘\r’);

Serial.println(request);

client.flush();

delay(1);

/////////////////////////////////////////////The end////////////////////////////

Installing ESP8266 Board in Arduino IDE (Windows, Mac OS X, Linux)

Nạp chương trình thành công khi xuất hiện :

Bước 3: NGẮT NGUỒN ĐIỆN CHO BOARD ARDUINO (rút cáp USB từ máy tính kết nối với board Arduino), NGẮT KẾT NỐI CÁC CHÂN gpio0, gpio2, Rst, CH-PD.

Kết nối lại nguồn cho board Arduino Uno, khi đó sẽ thấy led (thường màu xanh) trên board ESP8266 chớp tắt với tần số 1 giây, trong tường hợp này là board ESP8266 đã được cài đặt, và đang dò tìm wifi với tên và pass giống trong code ở bước 2.

Ngắt kết nối nguồn cho board arduino (rút cáp USB), để chuẩn bị bước tiếp theo.

Bước 4: CÀI ĐẶT HOST WIFI CHO ĐIỆN THOẠI VÀ CÀI PHẦN MỀM WIFI TỪ ĐIỆN THOẠI.

Cài đặt host wifi cho điện thoại :

Cài phần mềm Wifi cho điện thoại: tải app “Wifi RC Car ESP8266” cho điện thoại di động.

Bước 5: KIỂM TRA TRUYỀN NHẬN GIỮA ĐIỆN THOẠI VỚI MODULE ESP8266.

Tắt Wifi hotspot trên điện thoại di động.

Kết nối board Arduino Uno với máy tính, vào Arduino IDE mở Serial Monitor sẽ thấy ESP8266 truyền kí tự “*” lên máy tính do chưa tìm được Host Wifi tương ứng.

Sau đó mở Wifi hotspot trên điện thoại di động, tức điện thoại di động trở thành bộ phận phát wifi với tên và pass đã đặt ở bước 4. Khi đó màn hình serial monitor sẽ chỉ ra địa chỉ IP của board ESP8266, và cố gắng nhớ IP này (chú ý: mỗi board khác nhau sẽ có địa chỉ khác nhau). Khi đó led trên ESP8266 không còn chớp tắt nữa báo hiệu điện thoại di động và board ESP8266 đã kết nối.

Mở phần mềm wifi RC car đã cài đặt ở bước 4 và nhập địa chỉ IP vào và tiến hành điều khiển, sẽ thấy kí tự tương ứng trên Serial Monotor.

——————————CHÚC THÀNH CÔNG !!!!!!!———————————-

Bài viết này sẽ hướng dẫn các bạn nạp code cho các phiên bản MCU thuộc ESP8266 series sử dụng Arduino IDE và Serial-USB Conventer (USB TTL). Ở đây sử dụng MCU ESP12E làm ví dụ, đây là MCU phổ biến của dòng ESP8266 được tích hợp trên kit NodeMCU v1.0.

Phần 1: Cấu hình Arduino IDELưu ý, sử dụng Arduino IDE phiên bản 1.6.5 trở lên.Đầu tiên, cài đặt thư viện vào IDE.Vào File → Preferences, vào textbox Additional Board Manager URLs thêm đường link sau vàohttp://arduino.esp8266.com/stable/package_esp8266com_index.jsonSau đó nhấn OK để chấp nhận.

Tiếp theo vào Tool → Board → Boards ManagerTa nhập vào ô tìm kiếm ESP8266 và chọn ESP8266 by ESP8266 Community, nhấp vào Install. Chờ phần mềm tự động download và cài đặt.

Phần 2: Cấu hình phần cứng và nạp codeKhi thiết kế mạch sử dụng board ESP8266, cần chú ý đảm bảo board sẽ hoạt động tốt ở cả hai chế độ là Run mode (load code từ bộ nhớ flash khi reset hoặc cấp nguồn) và Flash mode (nạp code mới), cụ thể như yêu cầu từ nhà sản xuất:

Trước khi nạp code cần cấu hình mức logic các chân của ESP8266 như sau:GPIO0 ——– LOWGPIO2 ——– HIGHGPIO15 ——– LOW

Bên cạnh đó, các bạn cần đảm bảo các điều kiện VCC, GND và mức logic HIGH tại các chân RST, EN để ESP8266 hoạt động. Các bạn có thể tham khảo sơ đồ nguyên lý tối thiểu sau:

(Khi nạp code, các bạn nối Jumper để GPIO0 có mức logic LOW)

Sau khi thiết kế xong phần cứng như trên, các bạn nối ESP8266 với moudle USBTTL theo sơ đồ sau và tiến hành nạp code (sau khi đã cấu hình Arduino IDE ở Phần 1):

ESP8266 ——- USB-TTLVCC ——- 3V3GND ——- GNDTX ——– RXRX ——–TX

Đến đây các bạn cắm USB-TTL đã được kết nối với ESP8266 vào máy tínhChọn Tool → Board → NodeMCU 1.0Chọn cổng COM tương ứng tại Tool → Port và sau đó nạp code bình thường.

(Lưu ý: ESP8266 sử dụng điệp áp 3v3 cho nên không được kết nối nhầm VCC với chân 5v trên USB-TTL sẽ làm hỏng vi điều khiển)

Sau khi nạp code xong, để thoát khỏi chế độ flash mode chuyển về chế độ run mode ta cần giữ các chân của ESP8266 ở các mức điện áp theo yêu cầu của nhà sản xuất như sau:GPIO0 —– HIGHGPIO2 —– HIGHGPIO15 —– LOWTheo sơ đồ nguyên lý gợi ý trên thì các bạn tháo jumper – Chân GPIO0 sẽ về mức HIGH.Xem thêm: Tổng hợp hướng dẫn Internet of Things với NodeMCU ESP8266 và ESP32

Chúc các bạn thành công!Ngô Văn Trung

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.

How to Program ESP01 WiFi Module | Arduino IDE | DIY
How to Program ESP01 WiFi Module | Arduino IDE | DIY

ESP8266 là gì? Hướng dẫn lập trình ESP8266 bằng Arduino IDE

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!

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.

5$ Arduino WiFi Module!? ESP8266 mini Tutorial/Review
5$ Arduino WiFi Module!? ESP8266 mini Tutorial/Review

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ả.

Trong dự án này, bạn sẽ học cách giao tiếp mô-đun wi-fi esp8266 với arduino và cách gửi dữ liệu từ arduino đến server bằng mô-đun esp8266 wi-fi.

Trong hướng dẫn hôm nay, chúng ta sẽ tìm hiểu cách giao tiếp mô-đun Wi-Fi với Arduino và xem cách Wi-Fi hoạt động như thế nào. Chúng ta sẽ truyền dữ liệu đến một thế giới thực và hiển thị nó dưới dạng đồ thị.

Chúng tôi sẽ truyền dữ liệu nhiệt độ và độ ẩm của không khí đến server bằng cách sử dụng cảm biến DHT11 và mô-đun Wi-Fi ESP8266.

Wifi Fidelity là một thuật ngữ được sử dụng cho các sản phẩm sử dụng loại công nghệ 802.11. Mạng Wi-Fi hoạt động với tốc độ dữ liệu 11 Mbps hoặc 54 Mbps ở băng tần vô tuyến không được cấp phép 2.4 GHz và 5 GHz.

Các thiết bị đã bật Wi-Fi có thể gửi và nhận dữ liệu không dây từ các vị trí có truy cập không dây. Các điểm truy cập được đặt ở vị trí có Wi-Fi sẽ truyền tín hiệu RF cho các thiết bị có hỗ trợ Wi-Fi.

Các thiết bị có hỗ trợ Wi-Fi này có thể nhận tín hiệu nếu chúng nằm trong phạm vi điểm truy cập. Tốc độ truyền dữ liệu phụ thuộc vào tốc độ của đường truyền của điểm truy cập.

Tín hiệu vô tuyến là nguyên lý hoạt động cơ bản của Wi-Fi. Nó được tạo thành từ ba yếu tố cần thiết.

Các tín hiệu vô tuyến được truyền bởi ăng-ten và bộ định tuyến và chúng được nhận bởi bộ thu Wi-Fi chẳng hạn như máy tính.

Mô-đun Wi-Fi có 8 chân cắm được sắp xếp thành 2 hàng. Để các chân gần đầu vào thiết bị nhất. Hàng dưới từ trái sang phải là

Hàng trên từ trái sang phải có

Mô-đun DHT11:

Mô-đun DHT có 3 chân đầu ra.

Giao tiếp mô-đun Wi-Fi ESP8266 với Arduino

Kết nối mạch như sau:

Kết nối DHT11 với Arduino như sau:

Toàn bộ mạch sẽ là sự kết hợp của cả hai bước đấu nối trên.

Sau khi hoàn thành các mạch làm theo như đã cho. Chúng ta xem kết quả trên server. Bạn sẽ thấy kết quả trong phần “Public preview” của trang web.

1. Trước hết, người dùng cần tạo một tài khoản trên ThingSpeak.com, sau đó Đăng nhập và nhấp vào Bắt đầu.

2. Bây giờ, hãy chuyển đến menu ‘Channels’ và nhấp vào lựa chọn New channel trên cùng một trang để tiếp tục xử lý.

Bây giờ bạn sẽ thấy một biểu mẫu để tạo kênh, hãy điền Name và Description theo của bạn. Sau đó điền vào ‘Humidity’ và ‘Temparature’ ở các nhãn 1 và 2, đánh dấu vào checkbox 2 nhãn này và cả checkbox ‘Make public’ trong biểu mẫu bên dưới và cuối cùng là Save kênh. Bây giờ kênh mới của bạn đã được tạo.

Bây giờ hãy nhấp vào tab ‘Khóa API’ và lưu các key Write and Read API, ở đây chúng tôi chỉ sử dụng key Read. Bạn cần Sao chép key này vào char * api_key trong code.

Code có thể giao tiếp để hiển thị trên LCD. Bạn có thể kết nối với LCD như trong code và tất cả các kết quả hiển thị trên LCD và cũng có thể được hiển thị trên màn hình monitor của arduino.

Ưu điểm

Nhược điểm

>>> 100+ Mã Sản Phẩm Dây Rút: https://mecsu.vn/san-pham/day-rut-nhua.5op

>>> 1000+ Mã Sản Phẩm Đầu Cosse: https://mecsu.vn/san-pham/dau-cosse.Q1j

>> Mời anh em xem thêm

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

// 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

ESP8266 + Arduino + database - Control Anything from Anywhere
ESP8266 + Arduino + database – Control Anything from Anywhere

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ủ.

Keywords searched by users: wifi 8266 arduino code

Connecting Arduino Uno And Esp8266 Wifi Module - Youtube
Connecting Arduino Uno And Esp8266 Wifi Module – Youtube
Mạch Esp8266 Wifi Shield (Arduino Compatible) – Hshop.Vn
Mạch Esp8266 Wifi Shield (Arduino Compatible) – Hshop.Vn
Installing Esp8266 Board In The Arduino Ide: Step-By-Step Guide
Installing Esp8266 Board In The Arduino Ide: Step-By-Step Guide
Arduino Esp8266 Wifi Shield - Nshop
Arduino Esp8266 Wifi Shield – Nshop
Arduino Uno + Esp8266 Wifi Module : 3 Steps - Instructables
Arduino Uno + Esp8266 Wifi Module : 3 Steps – Instructables
Wifimanager With Esp8266 - Autoconnect, Custom Parameter And Manage Your  Ssid And Password | Random Nerd Tutorials
Wifimanager With Esp8266 – Autoconnect, Custom Parameter And Manage Your Ssid And Password | Random Nerd Tutorials
Arduino Uno Wifi R3 Atmega328 Esp8266, Điện Áp: 6-9Vdc, Giao Tiếp Ch340G
Arduino Uno Wifi R3 Atmega328 Esp8266, Điện Áp: 6-9Vdc, Giao Tiếp Ch340G

See more here: kientrucannam.vn

Leave a Reply

Your email address will not be published. Required fields are marked *