Mục lục:

Đầu đọc thẻ SD không dây [ESP8266]: 10 bước (có hình ảnh)
Đầu đọc thẻ SD không dây [ESP8266]: 10 bước (có hình ảnh)

Video: Đầu đọc thẻ SD không dây [ESP8266]: 10 bước (có hình ảnh)

Video: Đầu đọc thẻ SD không dây [ESP8266]: 10 bước (có hình ảnh)
Video: Đầu đọc thẻ nhớ cho iPhone hỗ trợ iOS 14.4 2024, Tháng bảy
Anonim
Image
Image

USB được cho là phổ biến và mục tiêu chính là tạo ra một thiết bị có thể thay thế nóng, siêu dễ dàng để giao tiếp với các thiết bị khác nhưng trong nhiều năm, ý tưởng này đã trở nên tồi tệ. Có rất nhiều biến thể khác nhau của các cổng USB này, đôi khi rất khó chịu và cách chúng hoạt động hoàn toàn trái ngược với tên gọi của chúng [USB - Universal Serial Bus] bởi vì mọi bộ thu USB đều phải tương thích với bất kỳ thiết bị USB nào! Bạn không thể cắm USB hoặc bàn phím vào bên trong bộ sạc và mong nó hoạt động.

Nhưng khái niệm nghe có vẻ quá tốt! Đó là lý do tại sao để bắt đầu khái niệm "Cổng đa năng" này, tôi đã bắt đầu với một dự án đơn giản "Đầu đọc thẻ không dây"

Điều này đáp ứng được tất cả mong muốn của tôi, tất cả những gì tôi phải làm là chỉ cần cắm nó vào bên trong bất kỳ bộ thu USB nào, không quan trọng cái nào!

Ngay sau khi bạn cắm nó vào, nó tạo ra một điểm truy cập nơi chúng tôi có thể kết nối và sau đó kết nối với điểm truy cập và chỉ cần mở bất kỳ ứng dụng FTP client nào trong bất kỳ thiết bị tương thích nào. Với thiết lập này, chúng tôi có thể sao chép cũng như lưu tệp vào thẻ SD không dây!

Quân nhu

Đây là danh sách các sản phẩm có thể giúp bạn thực hiện dự án này một cách dễ dàng

(Liên kết liên kết)

  • Esp12E:
  • Thẻ SD:
  • Bộ chuyển đổi Micro SD:
  • HeaderPins:
  • Ghim tiêu đề góc:
  • Dây:
  • FTDI:
  • Dây lập trình Arduino nano +:
  • USB Nam:
  • PCB:
  • Súng hàn:
  • Mối hàn:

Bước 1: Thẻ SD (Kỹ thuật số an toàn)

Thẻ SD (Kỹ thuật số an toàn)
Thẻ SD (Kỹ thuật số an toàn)

SD là viết tắt của Secure Digital, nó tương tự như Pendrive của bạn nhưng có kích thước nhỏ hơn và giá rẻ hơn nhiều.

Khi chúng ta phải sử dụng điều này với bất kỳ bộ vi điều khiển nào, có 2 tùy chọn, một là SDIO và SPI. Hầu như tất cả các thẻ SD đều chia sẻ nhiều tính năng tiêu chuẩn và có cùng thông số kỹ thuật vật lý và điện. Sự khác biệt thực tế giữa SPI và SDIO chủ yếu ở cấp độ phần mềm. Bạn có thể đọc thêm về nó trong Liên kết này.

Hiện tại, giả sử SDIO nhanh hơn nhưng khó triển khai hơn và SPI chậm hơn nhưng dễ triển khai hơn. Vì hầu hết các bộ vi điều khiển đều hỗ trợ SPI theo mặc định, chúng tôi sẽ chỉ tiếp tục sử dụng nó.

Sơ đồ chân thẻ SD cho SPI

Pin-1 - CS (Chọn chip) Pin-2 - DI (MOSI) Pin-3 - GNDPin-4 - VCCPin-5 - SCLKPin-6 - GNDPin-7 - DO (MISO) Pin-8 - NCPin-9 - NC

Bước 2: Sửa đổi bộ điều hợp thẻ SD

Sửa đổi bộ điều hợp thẻ SD
Sửa đổi bộ điều hợp thẻ SD
Sửa đổi bộ điều hợp thẻ SD
Sửa đổi bộ điều hợp thẻ SD
Sửa đổi bộ điều hợp thẻ SD
Sửa đổi bộ điều hợp thẻ SD
Sửa đổi bộ điều hợp thẻ SD
Sửa đổi bộ điều hợp thẻ SD

Bạn có thể sử dụng bất kỳ mô-đun thẻ SD nào hỗ trợ Arduino và esp8266 nhưng với mục đích của dự án này, chúng tôi sẽ sử dụng bộ điều hợp thẻ microSD và sẽ sửa đổi theo cách để chúng tôi có thể sử dụng nó thay vì mô-đun.

Đầu tiên, làm sạch các điểm tiếp xúc của bộ chuyển đổi thẻ SD. Sau đó, sử dụng các chân tiêu đề có góc cạnh và hàn các chân này trực tiếp vào các điểm tiếp xúc của bộ điều hợp. Sau khi hàn xong, hãy kiểm tra các điểm tiếp xúc giữa các chân tiêu đề để kiểm tra xem có đoản mạch không. Loại bỏ từng tấm ngăn cách màu đen, vì vậy khi chúng tôi đặt nó trở lại, nó sẽ đồng nhất với PCB.

Cắt PCB theo cách sao cho nó hoàn toàn phù hợp với bộ chuyển đổi thẻ SD và có thêm một số không gian, để thêm cổng USB đực.

Bạn cũng có thể thực hiện quy trình tương tự với thẻ SD thay vì bộ chuyển đổi, nhưng sẽ khá rủi ro nếu bạn làm hỏng thẻ.

Bước 3: Kết nối USB

Kết nối USB
Kết nối USB
Kết nối USB
Kết nối USB
Kết nối USB
Kết nối USB

Chúng tôi cần cấp nguồn cho thẻ SD, Vì vậy, chúng tôi sẽ sử dụng chính cổng nhận USB. Vì vậy, chúng tôi sẽ sử dụng một cổng USB đực. Loại này thường có 4 chân, trong đó 2 chân giữa được sử dụng để truyền dữ liệu và 2 chân cực được sử dụng để cấp nguồn và nối đất. Vì chúng ta chỉ cần nguồn, tôi sẽ cắt các chân dữ liệu và chỉ giữ lại GND và VCC.

Sau đó, đặt cổng USB đực trước thẻ SD, nơi chúng tôi đã tạo một khoảng trống trước đó, sau đó hàn nó vào vị trí. Điều này vẫn chưa giải quyết được bất kỳ vấn đề điện năng nào! Bởi vì thẻ SD yêu cầu 3.3v nhưng nguồn cung cấp USB là tiêu chuẩn 5V nếu bạn chỉ cắm nguồn này vào, bạn có thể sẽ hỏng thẻ SD (Nhưng không có thiệt hại nào sẽ được thực hiện bởi bộ chuyển đổi microSD).

Để giải quyết vấn đề này, chúng tôi sẽ sử dụng bộ điều chỉnh 3.3V và kết nối đầu vào của nguồn cung cấp USB với bộ điều chỉnh 3.3V, tức là kết nối GND của USB với chân 1 của bộ điều chỉnh và kết nối chân 3 của bộ điều chỉnh với + 5V của bộ điều chỉnh. Cuối cùng, hàn chân 3 (chân ra) và nối đất của bộ điều chỉnh với thẻ SD.

Thao tác này sẽ thiết lập nguồn cho thẻ SD. Bạn có thể kiểm tra sơ đồ mạch để biết kết nối chi tiết hơn.

Bước 4: Kết hợp mọi thứ cùng với ESP-12E

Kết hợp mọi thứ cùng với ESP-12E
Kết hợp mọi thứ cùng với ESP-12E
Kết hợp mọi thứ cùng với ESP-12E
Kết hợp mọi thứ cùng với ESP-12E
Kết hợp mọi thứ cùng với ESP-12E
Kết hợp mọi thứ cùng với ESP-12E
Kết hợp mọi thứ cùng với ESP-12E
Kết hợp mọi thứ cùng với ESP-12E

Bây giờ để đọc và ghi dữ liệu từ thẻ SD, chúng tôi sẽ sử dụng mô-đun wifi Esp12E, mặc dù nó chậm hơn esp32. Nhưng thực sự không quan trọng bạn chọn cái nào, tôi sẽ nói lý do trong các bước sau.

Đầu tiên hàn EN (chân kích hoạt) vào VCC của esp12E, điều này sẽ bật IC. Nếu điều này không được kết nối với tín hiệu CAO, IC sẽ không bật. Sau đó, đặt esp12E ở mặt sau của bảng mạch PCB và hàn các chân SPI của esp12E với các chân SPI trên thẻ SD. Để biết chi tiết, kết nối kiểm tra sơ đồ mạch.

Bước 5: HTTP VS FTP

Trước khi lập trình, tôi đã thực hiện một số nghiên cứu về cách tải xuống và tải lên hoạt động, đó là khi tôi tình cờ bắt gặp từ FTP. Về cơ bản FTP là viết tắt của giao thức truyền tệp, giao thức này được sử dụng để truyền tệp giữa máy chủ và máy khách và nó hoàn toàn khác với HTTP thông thường, nơi máy khách và máy chủ gửi và nhận các yêu cầu / phản hồi có kích thước rất nhỏ.

FTP nhanh hơn HTTP trong việc truyền tệp vì nó được tạo riêng cho nó. Vì vậy, tôi muốn thực hiện điều này trong dự án này. Nơi máy chủ FTP chạy trên esp-12E và chúng tôi có thể đẩy và tìm nạp dữ liệu thông qua FTP này vào thẻ SD.

Bước 6: Tìm ra Thư viện FTP

Tìm ra Thư viện FTP
Tìm ra Thư viện FTP
Tìm ra Thư viện FTP
Tìm ra Thư viện FTP

Tôi không thể tìm thấy bất kỳ thư viện FTP nào được phát triển rất tích cực hoặc được tạo riêng cho esp8266. Nhưng với một số lần đào, tôi đã gặp David Paiva, người đã chuyển phiên bản Arduino của máy chủ FTP sang esp8266 nhưng với sự hỗ trợ SPIFFS chứ không phải thẻ SD.

Nhưng với nỗ lực hơn một chút, tôi đã tìm thấy một người đã thực hiện một số công việc trên thư viện David Paiva để chuyển đổi SPIFFS sang thẻ SD. Nhưng khi tôi cố gắng sử dụng điều này, tôi phải đối mặt với 2 vấn đề. Đầu tiên, trang mà tôi phát hiện ra điều này là bằng tiếng Hàn, Vì vậy, tôi phải ngồi và dịch mọi thứ theo đúng nghĩa đen để biết chuyện gì đang xảy ra trước khi tôi có thể làm bất cứ điều gì với nó. Sau đó, vấn đề thứ hai là, tôi phải sửa đổi thư viện SD hiện có để hỗ trợ những thay đổi mà anh ấy thực hiện nhưng điều đó cảm thấy rất vụng về.

Vì vậy, tôi đã so sánh cả thư viện này, một thư viện của David Paiva và thư viện kia từ trang web Hàn Quốc, Sau đó thực hiện một số thay đổi nhỏ và biến toàn bộ thành một dự án duy nhất nên không cần cài đặt bất kỳ thư viện nào. Bạn có thể kiểm tra mã từ tài khoản Github của tôi.

Bước 7: Lập trình ESP-12E

Lập trình ESP-12E
Lập trình ESP-12E
Lập trình ESP-12E
Lập trình ESP-12E
Lập trình ESP-12E
Lập trình ESP-12E

ESP-12E không đi kèm với một bộ lập trình sẵn có, vì vậy chúng tôi cần sử dụng một bộ lập trình bên ngoài như mô-đun FDTI. Vì vậy, tôi đã tạo một bộ điều hợp với một vài dây và chân cắm đầu cái, Với điều này, chúng tôi có thể tạm thời hàn esp12E và lập trình nó bằng mô-đun FTDI.

Kết nối GND [esp12E] với GND, Rx [esp12E] với Tx, Tx [esp12E] với Rx, GPIO15 [esp12E] với GND, GPIO0 [esp12E] với GND, VCC [esp12E] với VCC của mô-đun FDTI.

Sau đó tải lên mã từ Github bằng Arduino IDE.

Sau khi chương trình được tải lên, bạn có thể gỡ bỏ các dây được kết nối với chương trình esp12E.

Bước 8: Hoàn thiện dự án

Kết thúc dự án!
Kết thúc dự án!
Kết thúc dự án!
Kết thúc dự án!
Kết thúc dự án!
Kết thúc dự án!

Chỉ cần đặt bất kỳ thẻ microSD [tối đa 32 GB] nào vào bên trong bộ chuyển đổi và cắm toàn bộ thiết bị vào bất kỳ thiết bị tương thích USB nào, Điều đó sẽ tăng sức mạnh cho mọi thứ! Nhưng có một số điều cần xem xét, hãy đảm bảo dòng điện đầu ra cổng USB lớn hơn 1amp, để an toàn hơn. Bởi vì mô-đun Esp12E tiêu thụ nhiều dòng điện hơn khi nó truyền tệp.

Bước 9: Sử dụng thiết bị

Sử dụng thiết bị
Sử dụng thiết bị
Sử dụng thiết bị
Sử dụng thiết bị
Sử dụng thiết bị
Sử dụng thiết bị

Ngay sau khi thiết bị được cấp nguồn, thiết bị sẽ tạo một điểm truy cập được gọi là Đầu đọc SD. Kết nối với điểm truy cập này bằng mật khẩu có trên mã. Sau đó, tùy thuộc vào thiết bị bạn đang sử dụng để kết nối với 12E, hãy tải xuống phần mềm ứng dụng khách FTP tương ứng nếu bạn đang sử dụng PC tải xuống WinSCP hoặc Filzella và nếu bạn đang sử dụng thiết bị Android, hãy tải xuống AndFTP.

Sau khi cài đặt xong, hãy mở AndFTP và điền thông tin đăng nhập để thiết lập FTP client. Trong trường hợp của tôi, tôi đã để tên người dùng và mật khẩu mặc định là "esp8266" trong mã. Vì vậy, hãy sử dụng nó cho thông tin người dùng và cho máy chủ lưu trữ sử dụng 192.168.12.7. Cuối cùng, kết nối với máy chủ FTP.

Sau khi hoàn tất, bạn có thể tải xuống bất kỳ tệp nào từ thẻ SD cũng như bạn có thể tải tệp từ điện thoại lên thẻ SD.

Bạn có thể xem video để biết nó hoạt động như thế nào nhé!

Bước 10: Kết luận

Lời kết
Lời kết
Lời kết
Lời kết

Nhưng trước khi đi đến kết luận rằng đó là một thiết bị rất tiện dụng, chúng ta hãy lùi lại một bước.

Mặc dù nó làm những gì tôi muốn, nó hoàn toàn chậm! Đối với chỉ 4 tệp (mỗi tệp ~ 100Kb), mất khoảng 30 giây và nếu bạn thử với tệp lớn hơn như 10MB thì sẽ mất khoảng 3-4 phút để hoàn thành. Có nhiều cách để tối ưu hóa điều này, và từ trang mà tôi giới thiệu, anh ấy có thể đạt được tốc độ đọc khoảng 450kbs. (Với Esp32 và SD_MMC tốc độ truyền thư viện có thể vào khoảng 1MB / giây)

Lý do tại sao tôi dừng dự án ở đây và không thử tối ưu hóa nó là bởi vì 2 lý do. Lý do đầu tiên, tôi thực sự muốn, cùng với máy chủ FTP, tôi vẫn có thể sử dụng đường truyền dữ liệu USB để truyền dữ liệu, nhưng nó không được hỗ trợ trong esp8266 hoặc esp32. Và lý do thứ hai là tôi không thể có đủ tốc độ để truyền tệp qua FTP. Đây cũng là lý do tại sao tôi không bận tâm sử dụng esp32 thay vì esp12E.

Nhưng tôi nghĩ rằng một số vấn đề này có thể được giải quyết nếu chúng ta có thể sử dụng bo mạch esp32 S2 hỗ trợ tốc độ tối đa khi di chuyển USB. Có lẽ tôi có thể làm điều đó cho một XD có hướng dẫn khác.

Đề xuất: