Thiết kế phần cứng

Một phần của tài liệu ĐỒ án môn học 1 đề tài đếm sản PHẨM BẰNG cảm BIẾN HỒNG NGOẠI NGÀNH CÔNG NGHỆ kỹ THUẬT điện tử VIỄN THÔNG (Trang 36)

3.4.1. Khối báo hiệu

Khối báo hiệu sử dụng một điện trở và một con LED. Khi có sản phẩm đi ngang qua cảm biến, LED sáng lên và thông báo đến người đang quan sát. Trong khối này, sử dụng LED 3mm màu xanh lá cây, có cường độ dòng điện định mức là 20mA và điện áp định mức từ 1.6V~2.6V [8]. Ngõ ra của khối xử lý trung tâm điều khiển khối báo hiệu có điện áp là 3.3V [1]. Chọn điện áp đặt trên LED là 1.6V và điện áp 7mA, khi đó điện trở hạn dòng cho LED được tính như sau:

R =

Vậy chọn giá trị điện trở mắc nối tiếp với LED là 240 Ω.

2 4

Hình 3.2: Sơ đồ nguyên lý khối báo hiệu liên kết với khối xử lý trung tâm

3.4.2. Khối cảm biến

Đối với khối cảm biến, dựa vào yêu cầu thiết kế của hệ thống, người thực hiện chọn sử dụng cảm biến vật cản hồng ngoại E18-D80NK bởi những ưu điểm sau:

- Được đóng gói vào một module giúp dễ lắp ráp, sử dụng.

- Ít bị nhiễu và bền hơn so với các cảm biến hồng ngoại giá rẻ khác trên thị trường.

- Tuỳ chỉnh khoảng cách phát hiện bằng điện trở phía sau cảm biến từ 3cm đến 80cm [2].

Cảm biến vật cản hồng ngoại này sử dụng điện áp 5VDC được cung cấp từ khối nguồn. Chân tín hiệu của cảm biến được nối tới chân GPIO12 – D6 của khối xử lý trung tâm để nhận tín hiệu mỗi khi có vật đi ngang cảm biến. Hình 3.2 bên trên mô tả kết nối khối cảm biến đến khối xử lý trung tâm.

3.4.3. Khối hiển thị

Với yêu cầu thiết kế của hệ thống hiển thị các thông tin: - Ngày - tháng - năm (10 kí tự theo dạng “dd-mm-yyyy”).

2 5

- Số lượng sản phẩm (6 kí tự theo dạng “xxx SP” với xxx là số lượng sản phẩm nhỏ hơn 1000).

- Số thùng đóng gói được (5 kí tự theo dạng “aa TH” với aa là số lượng thùng nhỏ hơn 100).

Vì vậy, người thực hiện chọn sử dụng LCD1602 gồm 2 hàng với mỗi hàng 16 kí tự. Hàng 1 sẽ hiển thị thời gian theo dạng “TIME: dd-mm-yyyy” và hàng 2 hiển thị số lượng đếm được theo dạng “SL: xxx SP aa TH”. Đồng thời, để hiển thị thông tin dễ dàng hơn trên LCD, chọn sử dụng thêm module giao tiếp I2C giữa LCD và khối xử lý trung tâm. Bên trong module giao tiếp I2C là mạch mở rộng chân I/O PCF8574 được sử dụng để mở rộng chân giao tiếp I/O của vi điều khiển thông qua giao tiếp I2C. Ngõ vào module là 16 chân LCD, sử dụng nguồn 3.3V cho cả khối hiển thị, ngõ ra là 2 chân SDA và SCL kết nối trực tiếp đến SDA, SCL của khối xử lý trung tâm.

Hình 3.3: Sơ đồ nguyên lý khối hiển thị liên kết với khối xử lý trung tâm

3.4.4. Khối xử lý trung tâm

Khối xử lý trung tâm sử dụng board ESP8266 NodeMCU Lua CP2102. Board này dễ dàng lắp đặt cũng như lập trình, ưu điểm về các tính năng liên quan đến WiFi thì rất phù hợp để sử dụng phục vụ mục đích của hệ thống này.

26

Board sử dụng nguồn 5VDC, có thể xuất điện áp 3.3V và dòng tối đa 12mA tại các chân ngõ ra [1]. Trong hệ thống này, 2 chân D1 và D2 của board sử dụng để điều khiển khối hiển thị thông qua 2 chân SCL và SDA. Chân D3 có nhiệm vụ điều khiển khối hiển thị và chân D6 điều khiển khối cảm biến hoạt động. Có thể kết nối board với máy tính để cấp nguồn và lập trình thông qua cổng micro USB.

Hình 3.4: Sơ đồ nguyên lý khối xử lý trung tâm

3.4.5. Khối nguồn

Hệ thống đếm sản phẩm bằng cảm biến hồng ngoại sử dụng 2 mức điện áp 5V và 3.3V. Vì trên board ESP8266 NodeMCU LuaCP2102 đã có chân 3.3V có thể cấp nguồn cho khối hiển thị hoạt động, nên khối nguồn chỉ có nhiệm vụ cấp nguồn 5V cho khối xử lý trung tâm và khối cảm biến.

Dựa vào datasheet của các linh kiện có trong mạch, lập bảng 3.1 nói về dòng tiêu thụ dòng điện của các linh kiện mà khối nguồn cần cung cấp.

27

Bảng 3.1: Dòng tiêu thụ của các linh kiện mà khối nguồn cần cung cấp STT 1 CP2102 2 E18-D80NK Tổng

Từ bảng trên, thấy được tổng dòng điện tiêu thụ trung bình khoảng 180mA. Như vậy để đảm bảo tất cả linh kiện trong mạch kể cả khối hiển thị hoạt động ổn định và dễ dàng tìm kiếm linh kiện ngoài thị trường, người thực hiện chọn nguồn dòng là 1A. Đồng thời khối nguồn thiết kế là nguồn tuyến tính. Sơ đồ khối khối nguồn như hình 3.5 bên dưới.

Hình 3.5: Sơ đồ khối khối nguồn

Dựa vào sơ đồ khối hình 3.5, các bước thiết kế được xác định như sau:

- Ngõ vào: Sử dụng điện áp xoay chiều 220VAC 50Hz.

- Khối biến áp: Có tác dụng làm giảm điện áp ở ngõ vào xuống điện áp yêu cầu. Đối với hệ thống này chọn sử dụng bộ biến áp biến đổi từ 220VAC xuống 12VAC.

- Khối chỉnh lưu: Có chức năng biến đổi dòng điện xoay chiều thành dòng điện

một chiều. Sơ đồ dạng sóng được miêu tả như ở hình 3.6. Tại khối này, do mong muốn điện áp ngõ ra có độ gợn sóng thấp, nên chọn sử dụng diode cầu KP206 có

điện áp ngược tối đa là 600V và dòng tải tối đa là 2A.

28

- Khối lọc: Có chức năng lọc dạng sóng sau ngõ ra của khối chỉnh lưu làm cho

dạng sóng phẳng hơn, nhưng vẫn còn tồn tại độ gợn nhất định. Bên trong khối lọc sẽ sử dụng các tụ điện phân cực và không phân cực với các giá trị khác nhau. - Khối ổn áp: Có chức năng cố định điện áp ngõ ra. Người thực hiện chọn sử

dụng

IC 7805 để cố định điện áp ngõ ra là 5V.

Dựa vào sơ đồ khối và các bước thiết kế trên, có được sơ đồ nguyên lý sơ lược về khối nguồn như hình 3.6. Điện áp xoay chiều 220VAC 50Hz đi vào cuộn sơ cấp của biến áp, ngõ ra cuộn thứ cấp là 12VAC. Sau đó tiếp tục đi qua cầu diode trở thành điện áp một chiều, các tụ C1 C2 lọc các gợn sóng. Dòng điện này tiếp tục đi vào IC 7805 trở thành 5VDC và đi qua tụ C3, C4 để ổn định nguồn.

Hình 3.6: Sơ đồ nguyên lý sơ lược khối nguồn

Tại hình 3.6 phần biến áp, nguồn 220VAC qua biến áp thành 12VAC, có điện áp đỉnh là Vo(peak)= 12√2 (V). Giả sử điện trở tải Rtải=10kΩ. Độ gợn sóng r% sau khi đi qua tụ C1 được tính như sau:

r%= 4√

Ở công thức (3.2) trên, giá trị C1 càng lớn thì r% càng nhỏ. Chọn r% = 0.03%. Suy

ra,

C1=

100%

4√ 3*f* Rtải*r%

Vì trong thực tế không có giá trị tụ C1 như trên. Do đó, chọn tụ phân cực C1 có giá trị 1000 μF 50V. Điện áp DC sau khi qua chỉnh lưu và các tụ lọc được tính như sau:

2 9

V

ODC=

Theo datasheet của nhà sản xuất IC 7805, muốn ngõ ra ổn định ở mức điện áp 5V thì ngõ vào nằm trong khoảng 5V~18V [9], như vậy giá trị VODC =16.96 (V) được tính

ở công thức 3.4 bên trên khi đưa vào IC 7805 hoàn toàn phù hợp với yêu cầu mà nhà sản xuất đưa ra. Tụ C2 có tác dụng lọc các sóng hài bậc cao, vì thế chọn tụ gốm 104 có giá trị 100nF 50V. Chọn tụ phân cực C3 có giá trị 1000µF 50V. Tụ C4 có chức năng tương tự như tụ C2 nên chọn tụ gốm 104 có giá trị 100nF 50V.

Sơ đồ nguyên lý khối nguồn như hình 3.7 bên dưới:

Hình 3.7: Sơ đồ nguyên lý khối nguồn

3.4.6. Sơ đồ nguyên lý toàn hệ thống

Kết nối tất cả các khối trong hệ thống với nhau có được sơ đồ nguyên lý toàn hệ thống:

Hình 3.8: Sơ đồ nguyên lý toàn hệ thống

31

3.4.7. Lưu đồ giải thuật cho phần cứng

Hình 3.9: Lưu đồ giải thuật phần cứng

32

Lưu đồ giải thuật hoạt động như sau: Khi cấp điện cho hệ thống, khối xử lý trung tâm bắt đầu khởi tạo các ngõ ra, LCD và thiết lập kết nối đến WiFi đã nhập sẵn tên và mật khẩu. Lúc này, nếu kết nối thành công WiFi thì hệ thống sẽ chuyển đến công đoạn tiếp theo, nếu không hệ thống sẽ quay trở lại khởi tạo và thiết lập kết nối đến WiFi. Vòng lặp cứ như thế hoạt động cho đến khi kết nối WiFi thành công thì sẽ kết thúc. Khi đã kết nối WiFi thành công, in ra thông báo trên LCD. Sau đó hệ thống khởi tạo kết nối đến cơ sở dữ liệu Firebase.

Tiếp theo đó, hệ thống bước vào vòng lặp chính. Hệ thống cập nhật ngày tháng từ internet và thông báo trên LCD. Nếu phát hiện vật đi ngang qua cảm biến, cảm biến sẽ gửi tín hiệu đến khối xử lý trung tâm, bên trong khối xử lý trung tâm nhận tín hiệu và tăng số sản phẩm đếm được lên 1. Khối xử lý trung tâm lấy số lượng sản phẩm đếm được chia cho 30, kết quả lấy số nguyên, đó là số thùng đóng gói được. Sau đó hiển thị số lượng và số thùng lên trên màn hình LCD cùng với ngày – tháng – năm, nếu vật vẫn còn xuất hiện ở trước mắt đọc của cảm biến, hệ thống sẽ chờ đến khi nào vật đã ra khỏi cảm biến, thoát khỏi chu kỳ làm việc hiện tại và tự động bắt đầu vòng làm việc mới.

Đối với công việc gửi dữ liệu đã đếm được lên cơ sở dữ liệu Firebase, người thực hiện chọn sử dụng timer/ngắt với chu kỳ là 30 giây để không làm ảnh hưởng tới chương trình chính. Như vậy, sau mỗi 30 giây thì khối xử lý trung tâm sẽ ngưng công việc chính đang thực thi, thực hiện gửi dữ liệu gồm ngày - tháng - năm, số lượng và số thùng lên Firebase để lưu trữ, sau đó mới tiếp tục công việc chính.

3 3

3.5. Thiết kế phần mềm

3.5.1. Lưu đồ giải thuật cho phần mềm

Hình 3.10: Lưu đồ giải thuật phần mềm

Lưu đồ giải thuật phần mềm ở hình 3.10 hoạt động như sau: Khi truy cập vào phần mềm, trên màn hình sẽ hiển thị các thông tin được cập nhật từ cơ sở dữ liệu Firebase. Tiếp theo, nếu có sự thay đổi về dữ liệu trên Firebase, phần mềm sẽ cập nhật và hiển thị lên trên màn hình ứng dụng. Nếu không có sự thay đổi thì phần mềm sẽ kết thúc và tiếp tục vòng làm việc mới.

3.5.2. Tạo cơ sở dữ liệu Firebase

Firebase là một cơ sở dữ liệu thời gian thực hoạt động dựa trên máy chủ cực kỳ mạnh mẽ của Google, tích hợp dịch vụ như lưu trữ thông tin thời gian thực, đồng bộ hoá

3 4

dữ liệu. Tuy nhiên Firebase hiện tồn tại những nhược điểm như thời gian truy vấn chậm và không ổn định. Cơ sở dữ liệu Firebase cung cấp cho người dùng 1GB dung lượng lưu trữ miễn phí và các gói lưu trữ trả phí mở rộng khác [10]. Các bước thực hiện tạo cơ sở dữ liệu Firebase để lưu trữ dữ liệu rất đơn giản:

- Bước 1: Đăng kí tài khoản trên trang web https://firebase.google.com/ và chọn Get started ở hình 3.11.

Hình 3.11: Bắt đầu truy cập vào để sử dụng Firebase

- Bước 2: Trên màn hình sẽ hiển thị các dự án đã tạo (nếu có). Tạo dự án mới bằng cách nhấn vào biểu tượng “Add project” trên hình 3.12.

Hình 3.12: Tạo dự án mới

35

- Bước 3: Sau khi đã tạo dự án mới, tiếp theo cần tạo Realtime Database bằng cách nhấn vào “Realtime Database” trên thanh công cụ ở phía bên trái màn hình. Sau đó chọn “Create Database”.

Hình 3.13: Tạo cơ sở dữ liệu của dự án

- Bước 4: Nhấn vào “Rule” ở hình 3.14 và chỉnh sửa 2 dòng này từ “False” thành “True” để có thể đọc và ghi dữ liệu lên trên Firebase.

36

Hình 3.14: Thiết lập đọc và ghi dữ liệu trên cơ sở dữ liệu

Như vậy các bước tạo cơ sở dữ liệu Firebase về cơ bản đã được hoàn tất, muốn liên kết Firebase với hệ thống phần cứng cũng như phần mềm cần sử dụng 2 các thông số sau:

- Firebase URL: Là đường dẫn đến Firebase, nằm trong mục “Realtime Database” và vị trí như ở hình 3.15 bên dưới.

Hình 3.15: Đường dẫn của cơ sở dữ liệu

- Firebase token: Là một dạng mã được tạo ra từ Firebase, cấp quyền và cho

phép

ứng dụng có thể truy cập vào cơ sở dữ liệu Firebase. Để có được mã đó, trên hình

3.16, truy cập vào mục cài đặt của “Project Overview”, sau đó lần lượt chọn Project settings  Service accounts  Database secrets.

Hình 3.16: Firebase token

3.5.3. Tạo ứng dụng trên điện thoại

Ứng dụng được thiết kế trên MIT App Inventor 2, là một nền tảng cho phép người dùng có thể lập trình ứng dụng Android ngay trên trình duyệt web của máy tính cá nhân. MIT App Inventor 2 sử dụng các giao diện đồ hoạ đã được thiết kế sẵn để tạo nên giao diện ứng dụng, sau đó sử dụng các khối mã bằng cách kéo và thả để tạo các đoạn mã nguồn bên trong ứng dụng.

38

Hình 3.17: Các công cụ thiết kế giao diện trong App Inventor

39

Hình 3.18: Thiết kế giao diện ứng dụng

Bằng cách sử dụng các công cụ trong hình 3.17, người thực hiện đã thiết kế nên giao diện trên ứng dụng điện thoại được miêu tả ở hình 3.18. Trong đó, sử dụng các “Label” kết hợp với “Horizontal arrangement” để đặt tên và căn chỉnh vị trí các nhãn tên. Sử dụng “TableArrangement” và các “Label” để tạo dữ liệu dạng bảng. Trong bảng dữ liệu này, dữ liệu sẽ được hiển trị trong 7 ngày gần nhất bao gồm thời gian, số lượng sản phẩm đếm được và số thùng đóng gói được. Sau đó, liên kết Firebase đến ứng dụng bằng cách sử dụng Firebase URL và Firebase token như ở hình 3.19.

40

Hình 3.19: Liên kết ứng dụng đến Firebase

Với yêu cầu là quan sát dữ liệu trong 7 ngày gần nhất, người thực hiện chọn các dữ liệu sẽ được lưu trữ và hiển thị theo thứ trong tuần. Trên cơ sở dữ liệu ở hình 3.20, các dữ liệu được lưu trữ dưới dạng “nhãn tên: dữ liệu” trong đó “nhãn tên” được đặt theo cú pháp “thứ trong tuần + thông tin” ví dụ như “MondaySP” là số lượng sản phẩm của thứ 2, “MondayTH” là số thùng của thứ 2 và “MondayTIME” là ngày – tháng – năm của thứ 2 đó.

Ở hình 3.21 mô tả việc sử dụng các khối mã để thiết kế chức năng cho ứng dụng. Khi dữ liệu trên Firebase thay đổi, khối “if then” đầu tiên sẽ lấy dữ liệu của “nhãn tên” là “MondayTIME” và hiển thị lên trên màn hình ứng dụng. Tương tự cho các khối “if then” còn lại. Nếu “nhãn tên” nào chưa được tạo trên Firebase, thì màn hình sẽ hiển thị “Not Found” tại ô chứa dữ liệu đó như trên hình 3.18.

41

Hình 3.20: Lưu trữ dữ liệu trên Firebase

Hình 3.21: Thiết kế chức năng ứng dụng

42

CHƯƠNG 4

KẾT QUẢ THỰC HIỆN

4.1. Phần cứng

Sau khi hoàn thành thiết kế hệ thống, sơ đồ mạch được thực hiện kết nối trên test board để kiểm tra chức năng hoạt động của mạch như hình 4.1 bên dưới. Tại hình này, để thuận tiện cho quá trình kiểm tra cũng như sửa lỗi, cáp USB được kết nối từ máy tính đến khối xử lý trung tâm mang điện áp 5V và dòng điện 1A có chức năng cấp

Một phần của tài liệu ĐỒ án môn học 1 đề tài đếm sản PHẨM BẰNG cảm BIẾN HỒNG NGOẠI NGÀNH CÔNG NGHỆ kỹ THUẬT điện tử VIỄN THÔNG (Trang 36)