ESP8266 có thể thay thế Arduino?


15

Tôi là người có sở thích và đã sử dụng Arduino cho đến nay cho các dự án đơn giản. Bây giờ tôi muốn xây dựng một dự án liên quan đến đèn LED có địa chỉ, tôi muốn viết một số chương trình trên Arduino cho đèn LED và trên điện thoại của tôi, tôi chọn cái nào để chạy.

Tôi tìm thấy ESP8266 là một giải pháp tốt và rẻ để nói chuyện với Arduino của tôi. Tìm kiếm trên web để tìm hiểu làm cho nó hoạt động Tôi thấy rằng Nó có mcu riêng của nó trên đó và tôi có thể viết và tải lên mã của mình trong Arduino IDE! 20kB RAM, CPU 80 MHz và 4 MB flash với giá 3 USD (Tuy nhiên tôi không chắc chắn về những con số này nhưng thậm chí một phần tư trong số đó là tuyệt vời) !! Nếu tôi chỉ cần một vài GPIO tại sao nên sử dụng Arduino UNO? Là mô-đun này đáng tin cậy?


Không, tôi sẽ không tìm kiếm ESP8266 là gì để trả lời một câu hỏi ở đây. Bên cạnh đó, từ tiêu đề, đây rõ ràng là một câu hỏi dựa trên ý kiến, và dường như là về việc sử dụng thiết bị điện tử hơn là thiết kế của chúng. Không chỉ vậy, nhưng để xóa bỏ mọi nghi ngờ, bạn đề cập đến "arduino".

1
Bộ xử lý ESP8266 bên trong có thể chạy các chương trình người dùng. Ngôn ngữ được sử dụng phụ thuộc vào những gì bạn có quyền truy cập. LOA thường được sử dụng.
Russell McMahon

10
$ | Họ ESP8266 là một loạt các mô-đun với bộ xử lý WiFi + trong một IC duy nhất và bộ nhớ đồng hành cho chương trình. Đây là những điều rất nổi tiếng và một cái gì đó cực kỳ đáng để biết nếu bạn chưa gặp chúng. Mặc dù không (chưa) khá phổ biến, ví dụ như LM324, chúng hoàn toàn có thể là giao diện WiFi "IOT" phổ biến nhất.
Russell McMahon

3
Tôi thực sự không nghĩ rằng câu hỏi này đáng bị phủ định
Malachi

3
@ linhartr22 Trích dẫn từ www.lua.org/about.html : "Lua" (phát âm là LOO-ah) có nghĩa là "Mặt trăng" trong tiếng Bồ Đào Nha. Như vậy, nó không phải là từ viết tắt hay viết tắt mà là danh từ. Cụ thể hơn, "Lua" là tên, tên mặt trăng của Trái đất và tên của ngôn ngữ. Giống như hầu hết các tên, nó nên được viết bằng chữ thường với số vốn ban đầu, đó là "Lua". Xin đừng viết nó là "LUA", điều này vừa xấu vừa khó hiểu, bởi vì sau đó nó trở thành từ viết tắt với các ý nghĩa khác nhau cho những người khác nhau. Vì vậy, xin vui lòng, viết "Lua" ngay!
đi

Câu trả lời:


11

Vâng, câu trả lời của câu hỏi "Nó có thể thay thế Arduino" - vâng, trong nhiều trường hợp nó có thể.
Cho dù đó sẽ là "kẻ giết người Arduino" - tôi nghi ngờ điều đó.
Có nhiều arduinos và ESP trong nhà tôi và 1 ESP trong văn phòng của tôi hoạt động 24/7 như một phần của giải pháp nhà thông minh tự tạo (và không ngừng phát triển) của tôi, cùng với 1-2 PC. Trên hết, tôi có một vài thí nghiệm / dự án còn dang dở liên quan đến ESP.
Vì vậy, từ kinh nghiệm không giới hạn của tôi, đây là những ưu và nhược điểm của ESP so với Arduino:

++++ Kết nối Internet được tích hợp!
++ Đồng hồ nhanh hơn và bộ nhớ nhiều hơn.
+ Chạy trên 3V3 (hầu hết, nhưng không phải tất cả Arduinos đều là 5V) để nó có thể giao tiếp trực tiếp với các thiết bị 3v3 (giống như hầu hết các mô-đun hiển thị) mà không cần thay đổi mức.
+ ESP-12E "cơ bản" có giá tương đương với Arduino nano hoặc pro micro.

- ESP-12E "cơ bản" có độ cao 2.0mm, không phải 2.54mm, khiến cho việc sử dụng nó trở nên khó khăn.
- Có những đột phá giúp tạo mẫu dễ dàng hơn, nhưng chúng làm tăng chi phí và chiếm quá nhiều không gian trên bảng / bánh trước.
- Đột phá phổ biến nhất - NodeMCU - đắt hơn và có các chân được ánh xạ lại, phiền toái lớn, trừ khi bạn lập trình nó trong Lua, điều này chỉ phù hợp với các dự án rất đơn giản. IMO, nó chỉ nên được sử dụng để tạo mẫu.
- Họ chạy trên 3v3, làm cho nó khó khăn để giao tiếp 5V mô-đun, hoàn toàn biến trên hầu hết các MOSFETs vv
- Họ là cực kỳ kén chọn về cung cấp điện của họ.
- Chúng tiêu thụ nhiều năng lượng hơn đáng kể so với Arduino khi không truyền và nhiều hơn nữa khi truyền.
- Chúng hầu như luôn tệ hơn đối với các dự án chạy bằng pin - bạn cần bộ điều chỉnh 3v3 (có dòng điện hoạt động), bạn cần ngủ rất nhiều (và bạn cần GPIO16 bị hỏng vì điều đó) và vào cuối ngày, một arduino + thấp đài phát thanh -power sẽ làm công việc tương tự trong khi kéo dài thời gian sử dụng pin lâu hơn đáng kể.
- Chúng có ít chân GPIO hơn và một số trong số chúng phải đặt điện áp khi khởi động (GPIO0 - cao, GPIO2 - cao hoặc nổi, GPIO15 - thấp), chúng cũng "ngọ nguậy" một số chân IO của chúng khi khởi động, thường khiến chúng không sử dụng được cho nhiều thiết bị.
- Họ chỉ có một ADC và theo hiểu biết của tôi thì nó chậm hơn các ADC ADC đã chậm, cộng với bạn chỉ có thể sử dụng nó với 0-1.1V (tham chiếu nội bộ).
- Nhiều thư viện Arduino hoạt động tốt hoặc đã được chuyển, nhưng nhiều thư viện thì không. Bạn có thể tự mình chuyển chúng hoặc đợi ai đó làm việc đó. Nhìn chung, cộng đồng Arduino lớn hơn và trưởng thành hơn rất nhiều, vì vậy hầu hết các hướng dẫn, thư viện "thân thiện với mọi người" đều được cung cấp cho Arduino.

Có nói rằng, ESP8266 vẫn rất tuyệt vời và cực kỳ hữu ích. Ngay cả Lua cũng hữu ích cho các dự án nhỏ nhanh chóng. Trong hầu hết các trường hợp bắt buộc phải có kết nối internet, chúng dường như là giải pháp tốt nhất. Trong nhiều trường hợp khác, việc bạn sẽ sử dụng ESP hay Arduino thực sự không thành vấn đề. Và đôi khi Arduino (hoặc ATTiny85 nhỏ) là lựa chọn tốt hơn.
Như mọi khi, "công cụ phù hợp cho công việc" là con đường để đi.
Hoặc kết hợp các công cụ.


2
Rất không đồng ý rằng việc "sử dụng một thiết bị phụ làm thiết bị thứ cấp cho Arduino với giao diện UART là" sai ". Bạn tự chỉ ra lý do cho việc này - nếu bạn muốn sử dụng các thư viện chưa được chuyển sang ESP, tại sao không có Arduino làm thiết bị chính và sử dụng ESP để thực hiện tốt một công việc? Hoặc nếu bạn đã quen thuộc hơn với các thiết bị AVR 8 bit và có thể chi trả 5 đô la cho một addon WiFi rất có khả năng, tại sao bạn không làm điều đó? Trong kỹ thuật, không bao gồm sự ngu ngốc, không có cách nào đúng hay sai, miễn là nó hoạt động - chỉ ít nhiều phù hợp với một thách thức cụ thể.
stefandz

2
Không có gì sai khi có một arduino (hoặc attiny) được kết nối với ESP thông qua UART. Điều cảm thấy "sai" là sử dụng các lệnh AT và có các yêu cầu và phản hồi HTML phân tích Arduino, v.v ... Nó chắc chắn hoạt động (tôi đã làm được), nhưng nghe có vẻ sai - cách "hợp lý" sẽ dành cho chip mạnh hơn ( ESP) để hoạt động như một bậc thầy và giảm tải các tác vụ cụ thể cho chip ít mạnh hơn, không phải theo cách khác. Hầu hết thời gian, đó cũng là cách dễ dàng hơn - loay hoay với các lệnh AT phân tích cú pháp trên Arduino không thú vị cũng không hiệu quả. Có, bạn phải lập trình cả hai chip theo cách này, điều này thật bất tiện.
Mishony

1
Có thể đáng để chỉnh sửa câu trả lời của bạn để bao gồm làm rõ này.
stefandz

1
Bởi vì phần còn lại của câu trả lời là tốt, nhưng câu cuối cùng đó là imho không rõ ràng và gây hiểu lầm. Làm rõ cho những người tìm kiếm câu trả lời sẽ giúp những người không hiểu tại sao đây có thể là một ý tưởng tồi - và khiến họ tránh xa ý tưởng rằng có một thứ như "chỉ sai" mà không có lý do rõ ràng. Nhưng câu trả lời là của bạn - rõ ràng bạn có thể tự do làm những gì bạn thấy phù hợp.
stefandz

1
Nếu bạn thực sự cần sử dụng Arduino VÀ một ESP (thay vì chỉ là ESP) thì bạn vẫn có thể sử dụng giao tiếp Nối tiếp, nhưng ở cấp độ cao hơn - ví dụ Arduino gửi "temp = 26,5" tới ESP, mã của bạn trên ESP nhận ra điều đó và gửi yêu cầu HTTP đến Thingspeak.com hoặc bất cứ điều gì. Để làm việc này, bạn phải lập trình cả Arduino và ESP, điều này hơi bất tiện, nhưng không thực sự khó hơn so với việc sử dụng các lệnh AT. Trong nhiều tình huống, bạn có thể bỏ Arduino và chỉ sử dụng ESP.
Mishony

1

Vâng, có một vài chân I / O, vì vậy về lý thuyết bạn có thể lái một hoặc một vài đèn led hoặc sử dụng bộ mở rộng cổng I / O (I2C) chẳng hạn.

Và vâng, bạn có thể phát triển phần mềm và tải xuống ngay cả các mô-đun chi phí thấp. Góc giống như Arduino chỉ là một cách để làm điều này. Nó không phải là ARM vì người ta có thể tin tưởng. Nhưng có một chuỗi công cụ gnu cho Esp8266, v.v. Có 80 hoặc 160 MHz, RISC 32 bit, một số đèn flash, một số ram.


1

Nếu bạn có thể lập trình nó, thì dĩ nhiên có thể điều khiển trực tiếp đèn của bạn. Nó không có số lượng lớn các chân I / O như Arduino, nhưng miễn là bạn có đủ để thực hiện công việc, nó chắc chắn sẽ giảm chi phí, kích thước và yêu cầu năng lượng.


1
@ Làm thế nào bạn có thể tìm thấy giá thậm chí tốt hơn trên ebay / AliExpress.
Darko

1
Đối với ứng dụng của tôi, một IO là đủ, tuy nhiên ESP-12 cung cấp một số IO, ADC 10 bit và nhiều hơn nữa. Thật ra tôi đã mua một chiếc ESP-01 với giá 1,78 USD (từ Aliexpress)! Kiểm tra github.com/esp8266/Arduino để sử dụng ESP của bạn trong Arduino IDE. bạn chỉ cần một bộ chuyển đổi USB sang nối tiếp. Hoặc google NodeMCU để có được tất cả trong một bảng.

1

Bảng mạch Arduino Uno và mô-đun ESP không giống nhau, nhưng miễn là GPIO của ESP8266 cung cấp phần cứng mà bạn cần cho ứng dụng của mình, nó sẽ hoạt động.

Một trong những mối quan tâm của tôi là chứng nhận. Sản phẩm đã nhận được một số chứng nhận, bạn cần kiểm tra xem phiên bản của bạn có được chứng nhận hay không. Bạn có thể tra cứu các chứng nhận của nhà sản xuất (và một số tài liệu) từ Trang Tìm kiếm của FCC bằng cách nhập 2AC7Z làm mã người được cấp. Bảng bạn sử dụng có thể phụ thuộc vào những người hoặc yêu cầu chứng nhận của riêng họ.

Như bạn đã nhận thấy, nó có thể được thêm dưới dạng bảng cho công cụ Arduino, giúp cho những người khó tính nhất có thể chơi với nó.

Tôi vừa kiểm tra các khoản tài trợ và cả ba người trong số họ yêu cầu ăng-ten WiFi được giữ ít nhất 20 cm cho tất cả mọi người.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.