Tải bản đầy đủ - 0 (trang)
Mạch chuyển nguồn từ 5V xuống 3.3V

Mạch chuyển nguồn từ 5V xuống 3.3V

Tải bản đầy đủ - 0trang

Mạch cơng suất MOSFET IRF520



Hình 2.3.6.1.3.

-



Module MOSFET IRF520



Chức năng: dùng để điều khiển đóng ngắt thiết bị sử dụng nguồn điện lớn bằng FET

Sử dụng IC IRF520

Điện áp hoạt dộng ~12V DC

Cơng suất 9A-100V



Sơ đồ ngun lý



Hình 2.3.6.1.4.



Sơ đồ ngun lý của mạch công suất



36



CHƯƠNG 3.



MẠCH ĐIỆN TỬ VÀ TRIỂN KHAI THUẬT TỐN



Sơ đồ cấu trúc hệ thống



3.1.



-



Hình 3.1.1.1.1.

1



Sơ đồ khối hệ thống



Khối xử lý trung tâm

-



Giao tiếp với module wifi ESP2866 để cập nhật thời gian qua sever ntp.pool.org.

Giao tiếp với module RTC (Real-time Clock) để đông bộ và lưu trữ thời gian cho

toàn bộ hệ thống.

37



-



Sử dụng tham số đầu vào thời gian sinh ra các mã mở khóa cho hệ thống để đối chiếu

với mật khẩu nhập vào từ bàn phím của người dùng.



3.1.2. Khối giao tiếp Client – Sever

Sử dụng giao thức UDP (User Diagram Protocol) để giao tiếp với sever NTP

(Network Time Protocol) với 2 nhiệm vụ chính:

-



Gửi yêu cầu (Time Request) lên sever, ở đây sử dụng là sever có tên miền

ntp.pool.org (sever cung cấp dữ liệu thời gian thực theo chuẩn NTP).

Nhận và xử lý phản hổi từ sever và trả về giá trị thời gian thực cho Khối xử lý trung

tâm dưới 2 dạng thời gian Unix và thời gian ngày tháng bình thường.



3.1.3. Khối đồng bộ và lưu trữ thời gian

-



Sử dụng nguồn riêng để lưu trữ thời gian cho toàn bộ hệ thống, kể cả các trường hợp

hệ thống bị mất điện hay khi xảy ra các biến cố khác.

Cập nhật thời gian theo yêu cầu của Khối xử lý trung tâm mỗi khi thời gian của hệ

thống xuất hiện sai số với thời gian nhận được từ sever.



3.1.4. Các khối ngoại vi khác

-



Khối điều khiển cơ cấu khóa cửa

Khối hiển thị

Bàn phím số



38



3.2.



Lưu đồ thuật tốn



-



-



Hình 3.2.1.1.1.



Lưu đồ thuật toán của hệ thống và các thiết bị cá nhân



-



39



Sơ đồ mạch nguyên lý



3.3.



3.3.1. Sơ đồ nguyên lý

Giao tiếp giữa Arduino và ESP8266



Hình 3.3.1.1.1.

-



Kết nối các chân của ESP8266



Chân GND của ESP8266 được nối xuống GND.

Chân VCC được nối vào nguồn 3.3V.

Chân CH_PD được kéo lên nguồn 3.3V đi qua 1 trở 10k

Chân TX nối vào với chân RX của arduino.

Chân RX nối vào chân TX của Arduino nhưng qua 1 cụm 2 trở để hạ tín hiệu logic

gửi đi bởi Arduino từ 5V xuống 3.3V. (Chi tiết giải thích ở dưới)



Giao tiếp I2C sử dụng cho Module LCD và Module RTC

Để đảm bảo tối ưu số lượng chân có trên Arduino và nhu cầu sử dụng, 2

module gồm màn hình LCD và đồng hồ thời gian thực RTC được kết nối và giao tiếp với

Arduino qua chuẩn truyền thông giao tiếp I2C.

Kết nối 2 module qua chuẩn I2C cần tổng cộng 4 chân từ Arduino gồm GND,

VCC, SDA và SCL.



40



Hình 3.3.1.1.2.



Cách hoạt động của chuẩn giao tiếp I2C



Sơ đồ mạch nguyên lý



Hình 3.3.1.1.3.



Sơ đồ mạch nguyên lý của hệ thống



-



41



3.3.2. Thiết kế mạch điện tử



Hình 3.3.2.1.1.



Mạch sau khi thiết kế



-



Hình 3.3.2.1.2.



Mơ phỏng mạch

-



-



42



Triển khai thuật tốn



3.4.



Cách thức triển khai thuật toán như sau: thuật toán sẽ được chia thành các module

nhỏ cho mỗi khối của hệ thống, phù hợp với chức năng nhiệm vụ của từng khối.

Khối giao tiếp Client – Sever

-



Hàm quét và kết nối tới các mạng wifi có sẵn trong phạm vi



43



-



44



Hình 3.4.1.1.1.



Hàm qt và kết nối tới mạng wifi



-



45



-



Hàm gửi truy vấn lên sever:

- unsigned long sendNTPpacket(IPAddress& address){…}

-



Hình 3.4.1.1.2.

-



Hàm gửi truy vấn lên sever



Đặt memset là bộ nhớ khởi tạo cho gói dữ liệu truyền nhận trong đó:

o const int NTP_PACKET_SIZE = 48 // dấu thời gian NTP sẽ ở trong 48 bytes

đầu của gói dữ liệu.

o byte packetBuffer[NTP_PACKET_SIZE] //buffer được dùng như một bộ nhớ



-



tạm thời để lưu các gói dữ liệu truyền và nhận.

Hàm nhận và xử lý dữ liệu phản hồi nhận về từ sever:

o Dữ liệu gói được Sever gửi về chứa 4 bytes có giá trị dấu thời gian

(Timestamp) bắt đầu từ byte thứ 40.

o Sau khi xử lý 4 bytes ta thu được kết quả là 1 chuỗi số có định dạng unsigned

long, gọi là NTP time, là số giây tính từ 1/1/1990 tới thời điểm sever phản hồi.

o Tuy nhiên, để đổi ra ngày tháng, ta cần 1 bước nữa đó là đổi giá trị vừa đạt

được ra UnixTime (đơn vị thời gian được sử dụng phổ biến trên các thiết bị sử

dụng giao thức mạng ngày nay). UnixTime được tính từ 00:00:00 ngày

1/1/1970, do đó:

-



unsigned long epoch = secsSince1900 - 2208988800UL;



-



(2208988800UL là số giây của 70 năm từ 1900 đến 1970)

46



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Mạch chuyển nguồn từ 5V xuống 3.3V

Tải bản đầy đủ ngay(0 tr)

×