- Giới thiệu về ESP8285
- Sơ đồ mạch bảng phát triển ESP
- Chế tạo Bảng nhà phát triển ESP8285 của chúng tôi
- Đặt hàng PCB từ PCBWay
- Lắp ráp và lập trình bo mạch ESP8285
- Thử nghiệm với Phác thảo nhấp nháy đèn LED đơn giản
- Thử nghiệm Bản phác thảo máy chủ trang web trên ESP8285
Bộ điều khiển ESP từ Espressif đang trở thành một lựa chọn phổ biến rộng rãi cho các thiết kế dựa trên IoT. Có rất nhiều loại mô-đun ESP và bảng phát triển đã có sẵn trên thị trường, trong đó NodeMCU là loại phổ biến nhất. Ngoài ra, ESP-12E, ESP01 cũng là những lựa chọn phổ biến. Nhưng nếu bạn muốn làm cho thiết kế của mình linh hoạt và nhỏ gọn hơn, rất có thể chúng ta phải thiết kế mô-đun ESP của riêng mình từ cấp độ chip, thay vì trực tiếp sử dụng một mô-đun có sẵn. Trong bài viết này, chúng ta sẽ tìm hiểu cách thiết kế mạch và PCB để sử dụng trực tiếp bộ điều khiển ESP (ESP8285) mà không cần sử dụng mô-đun.
Trong dự án này, chúng tôi đã sử dụng ESP8285 vì nó là một con chip nhỏ rất thú vị. Đó là một SoC (Hệ thống trên chip) nhỏ bé, với IoT (Internet of Things) và khả năng ngủ sâu. Nó có sức mạnh ngang ngửa với người anh lớn ESP8266 của mình và như một phần thưởng, nó đi kèm với bộ nhớ flash 1MB tích hợp với rất nhiều GPIO. Bạn cũng có thể sử dụng ESP8266 làm giải pháp thay thế và hầu hết những thứ được thảo luận trong bài viết này sẽ vẫn giống nhau.
Trong một bài viết trước, tôi đã chỉ cho bạn cách bạn có thể thiết kế ăng-ten PCB của riêng mình cho 2.4GHz, sử dụng cùng một chip ESP8285 làm ví dụ. Bạn có thể đọc bài viết đó để tìm hiểu về thiết kế ăng-ten cho ESP8266 / ESP8285.
Vì vậy, trong bài viết này, tôi sẽ trình bày cách hoạt động của tất cả các mạch và cuối cùng sẽ có một video giải thích tất cả. Tôi cũng đã trình bày chi tiết quy trình hoàn chỉnh để thiết kế và đặt hàng bảng mạch PCB từ PCBWay cho thiết kế mô-đun ESP của chúng tôi.
Giới thiệu về ESP8285
Nếu bạn chưa biết về chip ESP8285 đa năng này, đây là giải thích nhanh với danh sách tính năng. ESP8285 là một con chip nhỏ được tích hợp sẵn 1M flash và ram, nó khá giống với module ESP8286, ESP-01 nhưng bộ nhớ flash bên trong giúp nó nhỏ gọn hơn và rẻ hơn rất nhiều.
Con chip này chứa bộ xử lý lõi 32-bit L106 Diamond của Tensilica và cũng tương tự như vậy đối với ESP8266, đó là lý do tại sao tất cả mã cho ESP8266 có thể được flash trực tiếp vào chip này mà không cần bất kỳ sửa đổi nào và nó có cùng một ngăn xếp mạng như liều ESp8266.
ESP8285 tích hợp công tắc ăng-ten, RF balun, bộ khuếch đại công suất, bộ khuếch đại nhận tiếng ồn thấp, bộ lọc và mô-đun quản lý điện năng. Thiết kế nhỏ gọn giảm thiểu kích thước PCB và nó yêu cầu tối thiểu các mạch bên ngoài. Nếu bạn muốn tìm hiểu thêm về IC này, bạn luôn có thể kiểm tra datasheet của ESP8285 của thiết bị tại Espressif Systems.
Sơ đồ mạch bảng phát triển ESP
Mạch rất đơn giản và tôi đã chia nhỏ nó để hiểu rõ hơn. Sơ đồ ESP dưới đây cho thấy toàn bộ mạch, như bạn có thể thấy có tám khối chức năng, tôi sẽ đi qua từng khối và giải thích từng khối.
ESP8285 SOC:
Trọng tâm của dự án là SoC ESP8285, tất cả các GPIO và các kết nối cần thiết khác được xác định ở đây.
Bộ lọc nguồn: Có 7 chân nguồn trên IC này, đầu tiên là chân nguồn cho ADC và IO. Tôi đã nối ngắn chúng lại với nhau và sử dụng tụ lọc nguồn 47uF và tụ tách 0,1uF để lọc đầu vào DC 3.3V.
Bộ lọc PI: Bộ lọc PI là một trong những khối quan trọng nhất của thiết kế này vì nó chịu trách nhiệm cấp nguồn cho bộ khuếch đại RF và LNA, bất kỳ tiếng ồn bên trong hoặc bên ngoài nào đều có thể được mô tả cho phần này, vì vậy, phần RF sẽ không hoạt động. Đó là lý do tại sao bộ lọc thông thấp cho phần LNA là rất quan trọng. Bạn có thể tìm hiểu thêm về bộ lọc PI theo liên kết.
Bộ tạo dao động tinh thể: Bộ dao động tinh thể 40MHz đóng vai trò là nguồn xung nhịp cho SoC ESP8285 và các tụ điện tách 10pF đã được thêm vào theo khuyến nghị của biểu dữ liệu.
Phần LNA: Một phần quan trọng nhất khác của mạch này là phần LNA; đây là nơi ăng-ten PCB được kết nối với chân vật lý của ESP. Theo khuyến nghị của biểu dữ liệu, tụ điện 5,6pF được sử dụng và nó sẽ hoạt động tốt như mạch phù hợp. Nhưng tôi đã thêm hai trình giữ chỗ cho hai cuộn cảm như thể trong trường hợp mạch phù hợp hoạt động, tôi luôn có thể đặt một số cuộn cảm vào, để tinh chỉnh các giá trị cho phù hợp với trở kháng của ăng-ten.
Phần LNA cũng có hai jumper PCB với đầu nối UFL. Ăng-ten PCB được đặt theo mặc định, nhưng nếu ứng dụng của bạn yêu cầu phạm vi rộng hơn một chút, bạn có thể tháo cầu nối PCB và rút ngắn cầu nối cho đầu nối UFL và bạn có thể kết nối ăng-ten bên ngoài như vậy.
Đầu nối đầu vào pin:
Bạn có thể thấy ở trên, tôi đã đặt ba loại đầu nối pin song song vì nếu bạn không thể tìm thấy một cái, bạn luôn có thể đặt một cái khác.
Tiêu đề GPIO và Tiêu đề lập trình:
Các tiêu đề GPIO ở đó để truy cập các chân GPIO và tiêu đề lập trình ở đó để flash Soc chính.
Tự động thiết lập lại mạch:
Trong khối này, hai bóng bán dẫn NPN, MMBT2222A tạo thành mạch tự động đặt lại khi bạn nhấn nút tải lên trong Arduino IDE, công cụ python nhận được cuộc gọi, công cụ python này là công cụ flash cho thiết bị ESP, công cụ pi này cung cấp cho tín hiệu đến bộ chuyển đổi UART để đặt lại bo mạch trong khi giữ chân GPIO tiếp đất. Sau đó, quá trình tải lên và xác minh bắt đầu.
Đèn LED nguồn, đèn LED trên bo mạch và bộ chia điện áp:
Đèn LED nguồn: Đèn LED nguồn có dây nối PCB Nếu bạn đang sử dụng bo mạch này như cho ứng dụng chạy bằng pin, bạn có thể hàn dây nối này để tiết kiệm điện năng.
Đèn LED trên bo mạch: Nhiều bảng mạch dành cho nhà phát triển trên thị trường có đèn LED trên bo mạch và bảng này cũng không ngoại lệ; GPIO16 của IC được kết nối với đèn LED trên bo mạch. Bên cạnh đó, có một trình giữ chỗ cho điện trở 0 OHM bằng cách điền vào điện trở 0 Ohms, bạn đang kết nối GPIO16 với thiết lập lại và như bạn có thể biết, đây là bước rất quan trọng để đặt ESP ở chế độ ngủ sâu.
Bộ chia điện áp: Như bạn có thể biết, điện áp đầu vào tối đa của ADC là 1V. Vì vậy, để thay đổi phạm vi của đầu vào thành 3,3V, bộ chia điện áp được sử dụng. Cấu hình được thực hiện để bạn luôn có thể thêm một điện trở nối tiếp với chân để thay đổi Phạm vi thành 5V.
HT7333 LDO:
Bộ điều chỉnh điện áp LDO hoặc Low Dropout được sử dụng để điều chỉnh điện áp đến ESP8285 từ pin có mức tổn thất điện năng tối thiểu.
Điện áp đầu vào tối đa của HT7333 LDO là 12V và nó được sử dụng để chuyển đổi điện áp pin thành 3,3V, tôi chọn HT7333 LDO này vì nó là thiết bị có dòng điện tĩnh rất thấp. Các tụ điện tách 4,7uF được sử dụng để ổn định LDO.
Nút bấm cho Chế độ lập trình:
Nút nhấn được kết nối với GPIO0, nếu bộ chuyển đổi UART của bạn không có chân RTS hoặc DTR, bạn có thể sử dụng nút nhấn này để kéo GPIO0 xuống đất theo cách thủ công.
Điện trở kéo lên và kéo xuống:
Các điện trở kéo lên và kéo xuống ở đó theo khuyến nghị của biểu dữ liệu.
Ngoài ra, nhiều tiêu chuẩn và hướng dẫn thiết kế đã được tuân thủ trong khi thiết kế PCB. Nếu bạn muốn biết thêm về điều đó, bạn có thể tìm thấy điều đó trong hướng dẫn thiết kế phần cứng cho ESP8266.
Chế tạo Bảng nhà phát triển ESP8285 của chúng tôi
Sơ đồ đã xong và chúng ta có thể tiến hành lắp đặt PCB. Chúng tôi đã sử dụng phần mềm thiết kế Eagle PCB để tạo ra PCB, nhưng bạn có thể thiết kế PCB bằng phần mềm ưa thích của mình. Thiết kế PCB của chúng tôi trông như thế này khi nó hoàn thành.
BOM và các tệp Gerber có sẵn để tải xuống từ các Liên kết sau:
- Tệp Gerber dành cho nhà phát triển ESP8282
- BOM của bảng phát triển ESP8282
Bây giờ, Thiết kế của chúng tôi đã sẵn sàng, đã đến lúc sử dụng PCB được chế tạo. Để làm như vậy, chỉ cần làm theo các bước dưới đây:
Đặt hàng PCB từ PCBWay
Bước 1: Truy cập https://www.pcbway.com/, đăng ký nếu đây là lần đầu tiên của bạn. Sau đó, trong tab PCB Prototype, nhập kích thước PCB của bạn, số lớp và số lượng PCB bạn yêu cầu.
Bước 2: Tiến hành bằng cách nhấp vào nút 'Báo giá ngay'. Bạn sẽ được đưa đến một trang để đặt một vài thông số bổ sung như loại bảng, Lớp, Vật liệu cho PCB, Độ dày và hơn thế nữa, hầu hết chúng được chọn theo mặc định, nếu bạn đang chọn bất kỳ thông số cụ thể nào, bạn có thể chọn nó đang nghe.
Như bạn có thể thấy, chúng tôi cần PCB màu đen! vì vậy, tôi đã chọn màu đen trong phần màu mặt nạ hàn.
Bước 3: Bước cuối cùng bạn tải file Gerber lên và tiến hành thanh toán. Để đảm bảo quá trình diễn ra suôn sẻ, PCBWAY xác minh xem tệp Gerber của bạn có hợp lệ hay không trước khi tiến hành thanh toán. Bằng cách này, bạn có thể chắc chắn rằng PCB của bạn được chế tạo thân thiện và sẽ đến tay bạn theo cam kết.
Lắp ráp và lập trình bo mạch ESP8285
Sau một vài ngày, chúng tôi nhận được PCB của mình trong một hộp gói gọn gàng và chất lượng PCB vẫn tốt như mọi khi. Lớp trên cùng và lớp dưới cùng của bảng được hiển thị bên dưới:
Sau khi nhận được bảng, tôi bắt tay ngay vào việc hàn bảng. Tôi đã sử dụng một trạm hàn không khí nóng và rất nhiều chất hàn để hàn CPU chính, và các thành phần khác trên PCB được hàn thông qua một mỏ hàn. Mô-đun đã lắp ráp được hiển thị bên dưới.
Sau khi hoàn tất, tôi đã kết nối mô-đun FTDI đáng tin cậy của mình để kiểm tra bảng bằng cách tải lên bản phác thảo, Các chân kết nối và hình ảnh của bảng được hiển thị bên dưới:
Mô-đun FTDI ESP8285 Dev Board
3,3V -> 3,3V
Tx -> Rx
Rx -> Tx
DTR -> DTR
RST -> RST
GND -> GND
Sau khi, tất cả các kết nối cần thiết đã hoàn tất, tôi đã thiết lập Arduino IDE bằng cách chọn Bảng mạch chung ESP8285 từ Công cụ > Bảng > Mô-đun chung ESP8285 .
Thử nghiệm với Phác thảo nhấp nháy đèn LED đơn giản
Tiếp theo, đã đến lúc kiểm tra bo mạch bằng cách nhấp nháy đèn LED, tôi đã sử dụng mã sau:
/ * ESP8285 Nhấp nháy Nhấp nháy đèn LED màu xanh lam trên mô-đun ESP828285 * / #define LED_PIN 16 // Xác định pin LED nhấp nháy void setup () {pinMode (LED_PIN, OUTPUT); // Khởi tạo chân LED làm đầu ra} // hàm lặp chạy đi chạy lại mãi mãi void loop () {digitalWrite (LED_PIN, LOW); // Bật đèn LED (Lưu ý rằng LOW là mức điện áp) delay (1000); // Chờ một digitalWrite thứ hai (LED_PIN, HIGH); // Tắt đèn LED bằng cách làm trễ điện áp CAO (1000); // Chờ hai giây}
Mã rất đơn giản, đầu tiên tôi đã xác định chân LED cho bảng này và nó trên GPIO 16. Tiếp theo, tôi đã đặt chân đó làm đầu ra trong phần thiết lập. Và cuối cùng, trong phần vòng lặp, tôi đã bật và tắt pin với độ trễ một giây ở giữa.
Thử nghiệm Bản phác thảo máy chủ trang web trên ESP8285
Khi nó hoạt động tốt, đã đến lúc kiểm tra bản phác thảo HelloServer từ Ví dụ ESP8266WebServer. Tôi đang sử dụng ví dụ ESP8266 vì hầu hết mã tương thích với chip esp8285. Mã ví dụ cũng có thể được tìm thấy ở cuối trang này.
Mã này cũng rất đơn giản, Đầu tiên, chúng ta cần xác định tất cả các thư viện cần thiết, #include
tiếp theo, chúng ta cần nhập tên và mật khẩu của điểm phát sóng.
#ifndef STASSID #define STASSID "your-ssid" #define STAPSK "your-password" #endif const char * ssid = STASSID; const char * mật khẩu = STAPSK;
Tiếp theo, chúng ta cần xác định đối tượng ESP8266WebServer. Ví dụ ở đây định nghĩa nó là một máy chủ (80), (80) là số cổng.
Tiếp theo, chúng ta cần xác định chân cắm cho đèn LED trong trường hợp của tôi, đó là chân số 16.
const int led = 16;
Tiếp theo, hàm handleRoot () được định nghĩa. Chức năng này sẽ được gọi khi cuộc gọi trên địa chỉ IP từ trình duyệt của chúng tôi.
void handleRoot () {digitalWrite (led, 1); server.send (200, "văn bản / đồng bằng", "xin chào từ esp8266!"); digitalWrite (dẫn, 0); }
Tiếp theo là chức năng thiết lập, nghe nói chúng ta phải xác định tất cả các thông số cần thiết như-
pinMode (led, OUTPUT); // chúng ta đã định nghĩa chân led là ngõ ra Serial.begin (115200); // chúng tôi đã bắt đầu kết nối nối tiếp với 115200 baud WiFi.mode (WIFI_STA); // chúng ta đã đặt chế độ wifi là trạm WiFi.begin (ssid, password); sau đó chúng ta bắt đầu kết nối wifi Serial.println (""); // dòng này cung cấp thêm một khoảng trắng while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } / * trong vòng lặp while, chúng tôi đang kiểm tra trạng thái kết nối mà ESP có thể kết nối với điểm phát sóng, vòng lặp sẽ hãm * / Serial.println (""); Serial.print ("Đã kết nối với"); Serial.println (ssid); Serial.print ("Địa chỉ IP:"); Serial.println (WiFi.localIP ());
Tiếp theo, chúng tôi đang in tên và địa chỉ IP của SSID được kết nối vào cửa sổ giám sát nối tiếp.
server.on ("/", handleRoot); // đối tượng trên máy chủ được gọi để xử lý hàm gốc server.on ("/ inline", () {server.send (200, "text / trơn", "cái này cũng hoạt động");}); // một lần nữa chúng ta đã gọi trên methode cho / inline example server.begin (); // tiếp theo, chúng ta khởi động máy chủ với begin methode Serial.println ("Máy chủ HTTP đã bắt đầu"); // và cuối cùng chúng ta in một câu lệnh trong màn hình nối tiếp. } // đánh dấu sự kết thúc của hàm thiết lập void loop (void) {server.handleClient (); }
Trong hàm loop, chúng ta đã gọi các phương thức handleClient () để vận hành esp đúng cách.
Khi điều này được thực hiện, bảng ESP8285 đã mất một thời gian để kết nối với máy chủ web và hoạt động thành công như mong đợi, đánh dấu sự kết thúc của dự án này.
Hoạt động hoàn chỉnh của hội đồng quản trị cũng có thể được tìm thấy tại video được liên kết bên dưới. Tôi hy vọng bạn thích bài viết này và học được điều gì đó mới từ nó. Nếu bạn có bất kỳ nghi ngờ nào, bạn có thể hỏi trong phần bình luận bên dưới hoặc có thể sử dụng diễn đàn của chúng tôi để thảo luận chi tiết.