- ESP8266 là gì?
- Khái niệm cơ bản về lý thuyết WiFi:
- Các kiểu lập trình với ESP8266:
- Phần cứng để lập trình Mô-đun ESP8266:
- Vật liệu thiết yếu:
- Giải thích mạch:
- Ban xây dựng chương trình ESP8266:
Internet of Things và Home Automation đã thực sự là một chủ đề được thổi phồng trong những ngày gần đây. Tự mình xây dựng một thứ gì đó có thể giao tiếp với World Wide Web và có thể được truy cập từ mọi nơi trên thế giới, nghe thật tuyệt phải không?
Nhưng, đợi đã !!! Nghe cũng phức tạp nhỉ ???….
Đối với tôi cũng vậy, tôi nghĩ rằng sẽ mất rất nhiều thời gian và kỹ năng để xây dựng những thứ có thể tương tác với internet. KHÔNG, tôi đã hoàn toàn sai, nhờ mô-đun tuyệt vời này có tên là ESP8266 từ Hệ thống Espressif. Giờ đây, bạn có thể dễ dàng mở cửa cho các Dự án IoT với sự trợ giúp của mô-đun này. Mô-đun kích thước nhỏ, chi phí thấp này có thể làm nên điều kỳ diệu và thực sự đơn giản và dễ sử dụng, miễn là chúng ta làm theo đúng các bước.
Hướng dẫn này nhằm mục đích giới thiệu cho bạn về mô-đun ESP8266-01 này và giúp bạn bắt đầu với nó. Có lẽ, bạn đã mang theo mô-đun của mình và gặp khó khăn khi cố gắng sử dụng nó. Vì vậy, bạn không đơn độc, đừng lo lắng, nhiều người cảm thấy rất khó bắt đầu với mô-đun vì không có hướng dẫn hoặc tài liệu thích hợp cho mô-đun này. Đây là lý do để thực hiện hướng dẫn này. Làm theo hướng dẫn ở đây và bạn sẽ có thể thiết lập và chạy mô-đun ESP8266-01 của mình ngay lập tức, ở đây chúng tôi sẽ sử dụng Mô-đun Bộ điều hợp nối tiếp FTDI USB sang TTL để lập trình ESP8266. Kiểm tra Video chi tiết ở cuối Hướng dẫn.
Trước khi đi vào chủ đề, chúng ta hãy trình bày một số khái niệm cơ bản về Mô-đun ESP8266-01.
ESP8266 là gì?
Hầu hết mọi người gọi ESP8266 như một mô-đun WIFI, nhưng nó thực sự là một bộ vi điều khiển. ESP8266 là tên của bộ vi điều khiển được phát triển bởi Espressif Systems, một công ty có trụ sở tại Thượng Hải. Bộ vi điều khiển này có khả năng thực hiện các hoạt động liên quan đến WIFI do đó nó được sử dụng rộng rãi như một mô-đun WIFI.
Có nhiều loại mô-đun ESP8266 khác nhau, từ ESP8266-01 đến ESP8266-12. Cái mà chúng tôi đang sử dụng trong hướng dẫn là ESP8266-01 vì nó là cái rẻ nhất và dễ dàng có sẵn. Tuy nhiên, tất cả các mô-đun ESP chỉ có một loại bộ xử lý ESP, điều khác biệt chỉ là loại breakout bard được sử dụng. Bảng đột phá của ESP8266-01 sẽ chỉ có 2 chân GPIO trong khi ở các bảng khác, nó sẽ cao hơn.
Thông số kỹ thuật đầy đủ của mô-đun được đưa ra trong bảng dưới đây
Vôn |
3,3V |
Mức tiêu thụ hiện tại |
10uA-170mA |
Dòng tiêu thụ tối đa trong quá trình nhấp nháy |
800mA |
Bộ nhớ flash |
16MB (512K bình thường) |
Bộ xử lý |
Tensilica L106 32 bit |
Tốc độ bộ xử lý |
80-160MHz |
RAM |
32 nghìn + 80 nghìn |
GPIO |
17 (nhưng hầu hết đều được ghép) |
Bộ chuyển đổi analog sang kỹ thuật số |
1 (10-bit) |
Kết nối TCP tối đa |
5 |
Được rồi, một vài điều có thể làm bạn ngạc nhiên về thông số kỹ thuật là, CÓ mô-đun ESP8266 đi kèm với Bộ chuyển đổi ADC và nó tiêu thụ dòng điện rất cao 0,8A trong quá trình nhấp nháy thiết bị của bạn.
Ngoài ra, hãy kiểm tra các Dự án IoT thú vị dựa trên ESP8266 khác nhau của chúng tôi.
Khái niệm cơ bản về lý thuyết WiFi:
Giao thức điều khiển truyền (TCP), Giao thức Internet (IP), Giao thức dữ liệu người dùng (UDP), Điểm truy cập (AP), Trạm (Sta), Bộ nhận dạng bộ dịch vụ (SSID), Giao diện lập trình ứng dụng (API), Máy chủ trang web…..
Tất cả các thuật ngữ trên có hợp lý với bạn không?
Nếu có. Sau đó, BINGO bạn có thể nhảy phần này và chuyển sang phần tiếp theo.
Nếu không. Sau đó, bạn phải là một trong số rất nhiều sinh viên điện chỉ chớp mắt qua hầu hết các thuật ngữ này giống như tôi đã làm khi tôi lần đầu tiên được làm quen với tất cả những thứ này. Vì vậy, chúng ta hãy nhanh chóng lướt qua tất cả các điều khoản này vì chỉ khi đó chúng ta mới có thể bước vào thế giới IOT.
Giao thức kiểm soát chuyển giao (TCP):
Hầu hết chúng ta đều biết điều này có nghĩa là gì. Vâng, đây là những bộ quy tắc dựa vào đó mà Internet hoạt động. Vì ESP8266 có khả năng thiết lập kết nối WIFI. Wi-Fi ở mức cao là khả năng tham gia vào các kết nối TCP / IP qua một liên kết không dây. Bạn có thể làm cho ESP của mình hoạt động trên giao thức TCP / IP hoặc giao thức UDP.
Giao thức dữ liệu người dùng (UDP):
UDP cũng là một loại giao thức internet khác. Kiểu giao tiếp này nhanh hơn TCP nhưng kém chính xác hơn. Lý do là TCP sử dụng Acknowledgement trong quá trình giao tiếp của nó nhưng UDP thì không. TCP chủ yếu được sử dụng trong các mạng đòi hỏi độ tin cậy cao. UDP được sử dụng ở những nơi mà tốc độ có mức độ ưu tiên cao hơn độ tin cậy. Ví dụ UDP được sử dụng trong hội nghị truyền hình, bởi vì ở đó, ngay cả khi một số pixel không được truyền đi, nó sẽ không ảnh hưởng nhiều đến chất lượng video nhưng tốc độ là rất quan trọng.
Hầu hết các dự án và mã ESP8266 hoạt động xung quanh TCP / IP, UDP sẽ ít bị làm phiền nhất.
Điểm truy cập (AP) và Trạm (STA):
Khi bạn bắt đầu làm việc với mô-đun ESP, bạn sẽ thường xuyên gặp hai thuật ngữ này. Giả sử bạn và bạn của bạn muốn lướt Internet trên điện thoại thông minh của bạn nhưng vì anh ấy không có kết nối Internet đang hoạt động nên bạn quyết định bật điểm phát sóng và bạn của bạn kết nối với nó. Ở đây, điện thoại của bạn đang cung cấp kết nối internet là Điểm truy cập (AP) và điện thoại của bạn bè bạn đang sử dụng internet được gọi là Trạm (STA).
Mô-đun ESP8266 có thể được sử dụng ở ba chế độ, chế độ AP, chế độ STA hoặc ở cả chế độ STA và AP (kết hợp).
Mã định danh nhóm dịch vụ (SSID):
Đây là một thuật ngữ khá đơn giản. Hầu như tất cả chúng ta đã sử dụng WIFI. Tên của Mạng Wi-Fi được gọi là SSID của nó. Khi chúng tôi có nhiều điểm truy cập cho một trạm để kết nối, trạm phải biết điểm truy cập nào mà nó sẽ được kết nối, do đó mỗi Điểm truy cập (AP) được cấp một danh tính được gọi là SSID.
Giao diện lập trình ứng dụng (API):
Nói một cách đơn giản, API là một sứ giả nhận yêu cầu của bạn, xử lý nó và trả về hệ thống của bạn kết quả mong muốn. Hầu hết các hoạt động chúng tôi thực hiện trên internet đều sử dụng API, chẳng hạn như khi bạn đặt vé máy bay, mua hàng trực tuyến, v.v. Mọi trang web đều liên kết bạn với một API nơi một số công việc như đăng ký, thanh toán, v.v. được thực hiện cho bạn ở đó.
ESP8266 sử dụng API để nói chuyện với thế giới Internet. Ví dụ: nếu nó muốn biết thời gian, khí hậu hoặc bất cứ điều gì nó cần yêu cầu dưới dạng một API tới trang web tương ứng. Trang web đó sẽ nhận được yêu cầu và đưa kết quả mong muốn trở lại mô-đun ESP của chúng tôi.
Máy chủ web:
Máy chủ web là thứ chịu trách nhiệm hiển thị nội dung của một trang web. Tất cả nội dung của trang web cụ thể đó sẽ được tải vào máy chủ web của nó. Có những máy tính chuyên dụng chỉ hoạt động như một máy chủ web. Chúng tôi cũng có thể lập trình ESP8266 của mình để hoạt động như một máy chủ web và kết nối với nó từ mọi nơi trên thế giới.
Được rồi, điều này là đủ để chúng ta bắt đầu. Bây giờ, chúng ta hãy bắt tay vào phần cứng.
Các kiểu lập trình với ESP8266:
Có hai cách để làm việc với mô-đun ESP8266 của bạn. Hướng dẫn này sẽ giúp bạn bắt đầu với cả hai. Một cách là sử dụng các lệnh AT. Cách khác là sử dụng Arduino IDE. Hãy để chúng tôi hiểu ý nghĩa của nó.
Tất cả các mô-đun ESP8266 được vận chuyển từ nhà máy sẽ có phần sụn mặc định (SDK + API) được tải vào đó. Phần mềm này sẽ giúp bạn lập trình mô-đun ESP8266 thông qua các lệnh AT.
Cách khác là lập trình trực tiếp mô-đun ESP8266 bằng Arduino IDE (không cần bo mạch) và các thư viện của nó. Tất cả các dự án có thể được thực hiện trong cả hai phương pháp. Tuy nhiên, nếu bạn bắt đầu sử dụng Arduino IDE để lập trình ESP8266 của mình, bạn có thể không sử dụng được các lệnh AT vì SDK mặc định có thể đã bị hỏng. Trong trường hợp đó, bạn phải flash ESP của mình với cài đặt mặc định. Chúng tôi sẽ trình bày điều đó trong một hướng dẫn khác.
Phần cứng để lập trình Mô-đun ESP8266:
ESP8266 là một mô-đun 8 đầu cuối. Chốt ra của cùng một được hiển thị bên dưới.
Thật không may, mô-đun này không thân thiện với breadboard và do đó chúng tôi không thể gắn nó trực tiếp vào breadboard của mình. Cũng không giống như Arduino, nó không có trình điều khiển USB to Serial được tích hợp sẵn; do đó chúng tôi phải sử dụng “Mô-đun bộ điều hợp nối tiếp FTDI USB sang TTL” để giao tiếp với nó. Đảm bảo rằng bo mạch FTDI cũng có thể hoạt động trên 3.3V; cái mà chúng tôi đang sử dụng trong hướng dẫn này được hiển thị bên dưới.
Bây giờ, như chúng ta biết, chúng ta nên cấp nguồn cho ESP8266 với 3.3V. Nhưng mức tiêu thụ hiện tại là 0,8A, vì vậy nó có thể không hoạt động như mong đợi nếu được cấp nguồn từ bảng đột phá FTDI của chúng tôi. Do đó chúng tôi phải xây dựng mạch cấp nguồn của riêng mình. Ở đây chúng tôi đã sử dụng LM317 cho mục đích cấp nguồn; các chi tiết để tạo ra phần cứng hoàn chỉnh sẽ được đưa ra ở phần sau.
Vật liệu thiết yếu:
- Bảng Perf
- ESP8266-01
- Bảng đột phá FTDI
- LM317
- Tụ điện 0,1uf
- Tụ điện 10uf
- Jack thùng
- Bergstik Nam và Nữ
- Nút ấn
- Kết nối dây
- Bộ chuyển đổi 12V để cấp nguồn cho bo mạch.
Giải thích mạch:
Sơ đồ của bảng được hiển thị bên dưới
Một số có thể đã thử cấp nguồn cho ESP của bạn trực tiếp từ FTDI của bạn và làm cho nó hoạt động, nhưng sau đây là những lý do để xây dựng bảng mạch của riêng bạn với một vài thành phần bổ sung:
- Chỉ một số bo mạch FTDI có thể cung cấp đủ dòng điện cho mô-đun ESP. Một số mô-đun ESP có thể tiêu thụ dòng điện cao hơn mô-đun khác trong quá trình nhấp nháy. Do đó, luôn an toàn khi có nguồn điện riêng và việc tích hợp mạch cấp nguồn trên Dot Board thay vì breadboard sẽ dễ dàng hơn.
- Chúng tôi nên luôn đặt lại mô-đun ESP trước khi tải lên mã, việc xây dựng bảng mạch của riêng chúng tôi sẽ giúp chúng tôi đặt lại mô-đun dễ dàng. Chúng tôi đã sử dụng Nút nhấn để Đặt lại ESP8266.
- Chân GPIO0 phải được nối đất khi lập trình bằng Arduino và phải được để tự do khi sử dụng lệnh AT, điều này có thể dễ dàng bị bật ra nếu chúng ta xây dựng bo mạch của riêng mình. Chúng tôi đã sử dụng Jumper để chuyển đổi giữa chế độ lệnh AT và chế độ Lập trình Arduino IDE.
- Tất cả các lập trình được thực hiện bằng cách sử dụng giao tiếp Serial , nếu bạn sử dụng breadboard, một số thiết bị đầu cuối lỏng lẻo có thể gây ra lỗi một nửa và buộc chúng tôi phải flash lại mô-đun để hoạt động lại.
Điều đó đang được nói rằng bạn có thể lựa chọn giữa việc sử dụng breadboard và tạo bảng của riêng bạn để lập trình mô-đun. Nếu bạn vẫn muốn sử dụng breadboard, mạch tương tự được hiển thị ở trên có thể được tạo bằng cách sử dụng breadboard của bạn. Chỉ có sự xuất hiện sẽ khác, tất cả các hướng dẫn khác trong hướng dẫn này sẽ áp dụng như vậy.
Ban xây dựng chương trình ESP8266:
Vì vậy, ở đây chúng tôi đang xây dựng bảng để lập trình mô-đun ESP8266 có mạch cấp nguồn riêng để cấp nguồn cho ESP8266.
Như đã nói mô-đun của chúng tôi sẽ yêu cầu khoảng 800mA trong khi lập trình nó. Do đó, chúng tôi đã xây dựng mô-đun nguồn của riêng mình bằng cách sử dụng bộ điều chỉnh điện áp biến đổi LM317 vì dòng điện nguồn của LM317 gần như là 1,2A. Điện áp đầu vào của LM317 sẽ là 12V, được cung cấp bằng bộ chuyển đổi gắn tường 12V 2A. Đầu ra của LM317 sẽ được điều chỉnh thành 3,3V liên tục bằng cách sử dụng các điện trở 220ohm và 360ohm. Ngoài ra, hãy kiểm tra Mạch sạc pin sử dụng LM317 của chúng tôi để tìm hiểu thêm về LM317.
Các công thức để tính toán điện áp đầu ra của LM317 được đưa ra dưới đây:
Vout = 1,25 * (1+ (R2 / R1))
Trong đó, R1 là 220ohm và R2 là 360ohms.
Mô-đun ESP8266 được kết nối theo các chân hiển thị trong bảng bên dưới.
Số pin |
Tên pin ESP |
Kết nối với |
1 |
Đất |
Mặt đất của mô-đun FTDI |
2 |
GPIO2 |
Còn lại miễn phí hoặc kết nối với thanh berg để sử dụng trong tương lai |
3 |
GPIO0 |
Chuyển sang chuyển đổi giữa các chế độ lập trình |
4 |
Rx |
Tx của mô-đun FTDI |
5 |
Tx |
Rx của mô-đun FTDI |
6 |
CH_PH |
3.3V từ LM317 |
7 |
Cài lại |
Nút ấn để đặt lại mô-đun |
số 8 |
Vcc |
3.3V từ LM317 |
Để dễ dàng chuyển đổi giữa chế độ lệnh AT và chế độ Lập trình Arduino, tôi đã đặt một công tắc (jumper) để kéo GPIO 0 xuống đất khi sử dụng Arduino IDE và sẽ để nó nổi khi sử dụng các lệnh AT.
Có một nút nhấn khi nhấn sẽ đặt lại mô-đun ESP. Điều này được thực hiện bằng cách chỉ cần kết nối chân RST của mô-đun ESP với thanh nối đất thông qua nút bấm. Mỗi lần trước khi chúng tôi lập trình mô-đun ESP của mình, chúng tôi nên đặt lại nó.
Khi bạn đã lắp ráp mạch, nó sẽ trông giống như sau.
Tôi đã sử dụng một bảng Perf nhưng bạn cũng có thể sử dụng một breadboard nếu bạn quan tâm (như đã thảo luận ở trên). Bản dựng và giải thích đầy đủ được hiển thị trong video bên dưới.
Sau khi thực hiện xong các kết nối. Cấp nguồn cho bo mạch mà không có bo mạch ESP & FTDI và kiểm tra xem chúng tôi có nhận đúng 3.3V trên các đầu nối Vcc và Ground của vị trí mô-đun ESP hay không. Bây giờ hãy đảm bảo bo mạch FTDI của bạn ở chế độ 3.3V và kết nối các mô-đun FTDI và ESP với bo mạch của bạn.
Bật nguồn bộ điều hợp của bạn và kết nối nó với bo mạch của bạn, mô-đun ESP sẽ sáng lên với màu đỏ.
Sau đó, kết nối bo mạch FTDI của bạn với máy tính bằng cáp mini-USB với USB và điều hướng đến Trình quản lý thiết bị trên máy tính của bạn và bạn sẽ thấy bo mạch FTDI được kết nối với cổng COM của bạn, như hình dưới đây:
Giờ đã đến lúc bắt tay vào lập trình mô-đun ESP8266 của chúng tôi. Bạn có thể bắt đầu bằng cách sử dụng lệnh AT và sau đó chuyển sang sử dụng Arduino IDE. Đừng quên kiểm tra các Dự án dựa trên ESP8266 khác của chúng tôi .