Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download báo cáo nghiên cứu khoa học với đề tài: Thiết kế và chế tạo mạch giám sát gồm các tính năng cơ bản, cho các bạn làm luận văn tham khảo
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành điện tử truyền thông với đề tài: Hệ thống Iot điều khiển và giám sát ngôi nhà, cho các bạn có thể tham khảo
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành điện tử công nghiệp với đề tài: Hệ thống giám sát nông nghiệp bằng công nghệ Iot, cho các bạn làm luận văn tham khảo
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn tốt nghiệp với đề tài: Thiết kế và thi công mạch điều khiển máy bơm nước tự động và hiển thị mực nước dùng vi điều khiển PIC16f887, cho các bạn làm luận văn tham khảo
Download luận văn đồ án tốt nghiệp ngành kĩ thuật điện với đề tài: Mô hình phân loại sản phẩm theo chiều cao dùng Arduino, cho các bạn làm luận văn tham khảo
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành điện tử truyền thông với đề tài: Hệ thống phân loại cà chua theo màu sắc sử dụng Plc S7 - 1200, cho các bạn làm luận văn tham khảo
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn đồ án tốt nghiệp ngành kĩ thuật điện với đề tài: Mô hình phân loại sản phẩm theo chiều cao dùng Arduino, cho các bạn làm luận văn tham khảo
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn đồ án tốt nghiệp ngành điện tử viễn thông với đề tài: Thiết kế trạm BTS của MobiFone tại Hải Phòng, cho các bạn làm luận văn tham khảo
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành điện tử truyền thông với đề tài: Hệ thống Iot điều khiển và giám sát ngôi nhà, cho các bạn có thể tham khảo
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành điện tử công nghiệp với đề tài: Hệ thống giám sát nông nghiệp bằng công nghệ Iot, cho các bạn làm luận văn tham khảo
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn tốt nghiệp với đề tài: Thiết kế và thi công mạch điều khiển máy bơm nước tự động và hiển thị mực nước dùng vi điều khiển PIC16f887, cho các bạn làm luận văn tham khảo
Download luận văn đồ án tốt nghiệp ngành kĩ thuật điện với đề tài: Mô hình phân loại sản phẩm theo chiều cao dùng Arduino, cho các bạn làm luận văn tham khảo
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành điện tử truyền thông với đề tài: Hệ thống phân loại cà chua theo màu sắc sử dụng Plc S7 - 1200, cho các bạn làm luận văn tham khảo
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn đồ án tốt nghiệp ngành kĩ thuật điện với đề tài: Mô hình phân loại sản phẩm theo chiều cao dùng Arduino, cho các bạn làm luận văn tham khảo
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn đồ án tốt nghiệp ngành điện tử viễn thông với đề tài: Thiết kế trạm BTS của MobiFone tại Hải Phòng, cho các bạn làm luận văn tham khảo
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn đồ án tốt nghiệp ngành kĩ thuật điện tử với đề tài: Ứng dụng công nghệ Iot giám sát mức tiêu thụ điện – nước, cho các bạn làm luận văn tham khảo
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành điện tử công nghiệp với đề tài: Thiết kế và thi công khung ảnh điện tử, cho các bạn làm luận văn tham khảo
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn đồ án tốt nghiệp ngành điện tử truyền thông với đề tài: Thiết kế thi công hệ thống điều khiển tín hiệu đèn giao thông thông qua xử lý ảnh, cho các bạn làm luận văn tham khảo
Thiết kế thi công hệ thống điều khiển tín hiệu đèn giao thông thông qua xử l...anh hieu
Do đó, nhóm thực hiện đồ án chọn đề tài: “ Thiết kế thi công hệ thống điều khiển tín hiệu đèn giao thông thông qua xử lý ảnh ”.
Nghiên cứu này nhằm mục tiêu phát triển giải thuật điều khiển hệ thống đèn giao thông cho một giao lộ,
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành điện tử công nghiệp với đề tài: Hệ thống tính cước phí đường sắt metro sử dụng Rfid, cho các bạn làm luận văn tham khảo
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành điện tử công nghiệp với đề tài: Xây dựng một hệ thống đếm đối tượng trong ảnh, cho các bạn làm luận văn tham khảo
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn thạc sĩ ngành công nghệ thông tin với đề tài: Áp dụng Enterprise Architecture xây dựng khung kiến trúc bảo đảm an toàn thông tin cho các tổ chức, doanh nghiệp tại Việt Nam, cho các bạn tham khảo
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành kĩ thuật điện tử với đề tài: Thiết kế và thi công bộ thí nghiệm vi xử lý giao tiếp Kit Intel Galileo, cho các bạn làm luận văn tham khảo
Thiết kế chế tạo hệ thống MPS phục vụ giảng dạyDomenick Feest
Trong xu thế hội nhập nền kinh tế quốc tế, việc phát triển công nghiệp hóa - hiện đại
hóa luôn được Đảng và Nhà nước ta đặt ưu tiên hàng đầu trong lĩnh vực phát triển kinh tế,
một trong những phương châm đúng đắn và xuyên suốt trong quá trình xây dựng đất nước ta
ngày càng phát triển trong lĩnh vực công nghệ và khoa học kỹ thuật cũng như nhiều ngành
lĩnh vực khác là “đi tắt đón đầu” tiếp thu những thành tựu khoa học hiện đại của thế giới để
cải tiến nền kỹ thuật nước nhà, để nước ta không còn lạc hậu về khoa học công nghệ.
Nhờ chính sách đúng đắn này mà Việt Nam đang tiến dần, tiếp cận các công nghệ
hiện đại của thế giới từng bước cải thiện và hoàn thiện tình trạng sản xuất lạc hậu, thủ công,
năng suất kém và nhiều lĩnh vực nguy hiểm có tính chất độc hại đến đời sống người lao động.
Nâng cao dần mức sống cho người dân.
Việc tiếp thu những thành tựu khoa học kỹ thuật của thế giới cùng đi đôi với việc phát
triển tầng lớp kế thừa có tri thức về công nghệ hiện đại đồng thời cũng có trách nhiệm phát
huy, sáng tạo những kỹ thuật mới góp phần phát triển nền khoa học kỹ thuật nước nhà cũng
là góp phần vào việc thúc đẩy công nghệ hiện đại đang phát trên thế giới. Nhiều công ty đã
và đang phát triển những đội ngũ thợ có tay nghề đủ sức làm chủ các máy móc kỹ thuật tiên
tiến của thế giới, các trường Đại học, Cao đẳng, Trung cấp nghề cũng từng bước hoàn thiện
việc đào tạo ra đội ngũ có kiến thức về công nghệ hiện đại.
https://lop3.net/
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn thạc sĩ ngành công nghệ thông tin với đề tài: Tìm hiểu và đánh giá kỹ thuật mô hình hóa luồng tương tác IFML trong phát triển ứng dụng di động, cho các bạn làm luận văn tham khảo
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành kĩ thuật điện với đề tài: Thiết kế và thi công hệ thống giám sát chỉ số môi trường và hiển thị thông tin trên Web, cho các bạn làm luận văn tham khảo
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành điện tử truyền thông với đề tài: Thiết kế hệ thống điều khiển và giám sát thiết bị qua Webserver sử dụng Kit intel edison, cho các bạn làm luận văn tham khảo
Nghiên cứu phát triển cấu trúc EBG ứng dụng cho các hệ thống thông tin vô tuy...Man_Ebook
Nghiên cứu phát triển cấu trúc EBG ứng dụng cho các hệ thống thông tin vô tuyến thế hệ mới
Xem đầy đủ: https://1drv.ms/f/s!AnR3XNNgwgZpnXFv_Ny9rjn6tEJI?e=PlrZsU
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn đồ án tốt nghiệp ngành kĩ thuật điện tử với đề tài: Ứng dụng công nghệ Iot giám sát mức tiêu thụ điện – nước, cho các bạn làm luận văn tham khảo
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành điện tử công nghiệp với đề tài: Thiết kế và thi công khung ảnh điện tử, cho các bạn làm luận văn tham khảo
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn đồ án tốt nghiệp ngành điện tử truyền thông với đề tài: Thiết kế thi công hệ thống điều khiển tín hiệu đèn giao thông thông qua xử lý ảnh, cho các bạn làm luận văn tham khảo
Thiết kế thi công hệ thống điều khiển tín hiệu đèn giao thông thông qua xử l...anh hieu
Do đó, nhóm thực hiện đồ án chọn đề tài: “ Thiết kế thi công hệ thống điều khiển tín hiệu đèn giao thông thông qua xử lý ảnh ”.
Nghiên cứu này nhằm mục tiêu phát triển giải thuật điều khiển hệ thống đèn giao thông cho một giao lộ,
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành điện tử công nghiệp với đề tài: Hệ thống tính cước phí đường sắt metro sử dụng Rfid, cho các bạn làm luận văn tham khảo
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành điện tử công nghiệp với đề tài: Xây dựng một hệ thống đếm đối tượng trong ảnh, cho các bạn làm luận văn tham khảo
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn thạc sĩ ngành công nghệ thông tin với đề tài: Áp dụng Enterprise Architecture xây dựng khung kiến trúc bảo đảm an toàn thông tin cho các tổ chức, doanh nghiệp tại Việt Nam, cho các bạn tham khảo
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành kĩ thuật điện tử với đề tài: Thiết kế và thi công bộ thí nghiệm vi xử lý giao tiếp Kit Intel Galileo, cho các bạn làm luận văn tham khảo
Thiết kế chế tạo hệ thống MPS phục vụ giảng dạyDomenick Feest
Trong xu thế hội nhập nền kinh tế quốc tế, việc phát triển công nghiệp hóa - hiện đại
hóa luôn được Đảng và Nhà nước ta đặt ưu tiên hàng đầu trong lĩnh vực phát triển kinh tế,
một trong những phương châm đúng đắn và xuyên suốt trong quá trình xây dựng đất nước ta
ngày càng phát triển trong lĩnh vực công nghệ và khoa học kỹ thuật cũng như nhiều ngành
lĩnh vực khác là “đi tắt đón đầu” tiếp thu những thành tựu khoa học hiện đại của thế giới để
cải tiến nền kỹ thuật nước nhà, để nước ta không còn lạc hậu về khoa học công nghệ.
Nhờ chính sách đúng đắn này mà Việt Nam đang tiến dần, tiếp cận các công nghệ
hiện đại của thế giới từng bước cải thiện và hoàn thiện tình trạng sản xuất lạc hậu, thủ công,
năng suất kém và nhiều lĩnh vực nguy hiểm có tính chất độc hại đến đời sống người lao động.
Nâng cao dần mức sống cho người dân.
Việc tiếp thu những thành tựu khoa học kỹ thuật của thế giới cùng đi đôi với việc phát
triển tầng lớp kế thừa có tri thức về công nghệ hiện đại đồng thời cũng có trách nhiệm phát
huy, sáng tạo những kỹ thuật mới góp phần phát triển nền khoa học kỹ thuật nước nhà cũng
là góp phần vào việc thúc đẩy công nghệ hiện đại đang phát trên thế giới. Nhiều công ty đã
và đang phát triển những đội ngũ thợ có tay nghề đủ sức làm chủ các máy móc kỹ thuật tiên
tiến của thế giới, các trường Đại học, Cao đẳng, Trung cấp nghề cũng từng bước hoàn thiện
việc đào tạo ra đội ngũ có kiến thức về công nghệ hiện đại.
https://lop3.net/
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn thạc sĩ ngành công nghệ thông tin với đề tài: Tìm hiểu và đánh giá kỹ thuật mô hình hóa luồng tương tác IFML trong phát triển ứng dụng di động, cho các bạn làm luận văn tham khảo
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành kĩ thuật điện với đề tài: Thiết kế và thi công hệ thống giám sát chỉ số môi trường và hiển thị thông tin trên Web, cho các bạn làm luận văn tham khảo
Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành điện tử truyền thông với đề tài: Thiết kế hệ thống điều khiển và giám sát thiết bị qua Webserver sử dụng Kit intel edison, cho các bạn làm luận văn tham khảo
Nghiên cứu phát triển cấu trúc EBG ứng dụng cho các hệ thống thông tin vô tuy...Man_Ebook
Nghiên cứu phát triển cấu trúc EBG ứng dụng cho các hệ thống thông tin vô tuyến thế hệ mới
Xem đầy đủ: https://1drv.ms/f/s!AnR3XNNgwgZpnXFv_Ny9rjn6tEJI?e=PlrZsU
Similar to Đề tài: Chế tạo mạch giám sát gồm các tính năng cơ bản, HAY (20)
Quản Lý Hoạt Động Dạy Học Các Môn Khoa Học Tự Nhiên Theo Chuẩn Kiến Thức Và Kỹ Năng Ở Các Trường Thcs Trên Địa Bàn Quận Liên Chiểu, Thành Phố Đà Nẵng, các bạn tham khảo thêm tại tài liệu, bài mẫu điểm cao tại luanvantot.com
Quản Lý Thu Thuế Giá Trị Gia Tăng Đối Với Doanh Nghiệp Ngoài Quốc Doanh Trên Địa Bàn Thành Phố Quy Nhơn, Tỉnh Bình Định, các bạn tham khảo thêm tại tài liệu, bài mẫu điểm cao tại luanvantot.com
Thu Hút Nguồn Nhân Lực Trình Độ Cao Vào Các Cơ Quan Hành Chính Nhà Nước Tỉnh Quảng Bình, các bạn tham khảo thêm tại tài liệu, bài mẫu điểm cao tại luanvantot.com
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thương Mại Cổ Phần Ngoại Thương Việt Nam, các bạn tham khảo thêm tại tài liệu, bài mẫu điểm cao tại luanvantot.com
This thesis examines vaporization of single and binary component droplets in heated flowing gas streams and on solid spheres. Chapter 1 introduces the background and objectives of studying homogeneous and heterogeneous vaporization. Chapter 2 reviews literature on vaporization of droplets in multiphase systems, suspended droplets, and droplets on heated substrates. Chapter 3 compares homogeneous and heterogeneous vaporization models for feed droplets in fluid catalytic cracking units. Chapter 4 studies evaporation of suspended binary mixture droplets experimentally and through modelling. Chapter 5 examines evaporation of sessile binary droplets on a heated spherical particle through experiments and analysis of droplet temperature, contact area, and internal motions. Chapter 6 summarizes conclusions and recommends future work.
Quản Lý Hoạt Động Dạy Học Các Trường Thpt Trên Địa Bàn Huyện Sơn Hà Tỉnh Quảng Ngãi Đáp Ứng Yêu Cầu Đổi Mới Giáo Dục Trong Giai Đoạn Hiện Nay, các bạn tham khảo thêm tại tài liệu, bài mẫu điểm cao tại luanvantot.com
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Ngắn Hạn Tại Ngân Hàng Công Thƣơng Chi Nhánh Đắk Lắk, các bạn tham khảo thêm tại tài liệu, bài mẫu điểm cao tại luanvantot.com
Quản Lý Hoạt Động Giáo Dục Ngoài Giờ Lên Lớp Ở Các Trường Thcs Huyện Chư Păh Tỉnh Gia Lai Theo Hướng Tổ Chức Hoạt Động Trải Nghiệm Sáng Tạo, các bạn tham khảo thêm tại tài liệu, bài mẫu điểm cao tại luanvantot.com
Quản Lý Hoạt Động Dạy Học Ngoại Ngữ Tại Các Trung Tâm Ngoại Ngữ - Tin Học Trên Địa Bàn Thành Phố Pleiku Tỉnh Gia Lai, các bạn tham khảo thêm tại tài liệu, bài mẫu điểm cao tại luanvantot.com
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Doanh Nghiệp Tại Ngân Hàng Thƣơng Mại Cổ Phần Bản Việt – Chi Nhánh Đà Nẵng, các bạn tham khảo thêm tại tài liệu, bài mẫu điểm cao tại luanvantot.com
Quản Trị Rủi Ro Tín Dụng Trong Cho Vay Trung Và Dài Hạn Tại Ngân Hàng Thương Mại Cổ Phần Bản Việt - Chi Nhánh Đăklăk., các bạn tham khảo thêm tại tài liệu, bài mẫu điểm cao tại luanvantot.com
More from Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864 (20)
Smartbiz_He thong MES nganh may mac_2024juneSmartBiz
Cách Hệ thống MES giúp tối ưu Quản lý Sản xuất trong ngành May mặc như thế nào?
Ngành may mặc, với đặc thù luôn thay đổi theo xu hướng thị trường và đòi hỏi cao về chất lượng, đang ngày càng cần những giải pháp công nghệ tiên tiến để duy trì sự cạnh tranh. Bạn đã bao giờ tự hỏi làm thế nào mà những thương hiệu hàng đầu có thể sản xuất hàng triệu sản phẩm với độ chính xác gần như tuyệt đối và thời gian giao hàng nhanh chóng? Bí mật nằm ở hệ thống Quản lý Sản xuất (MES - Manufacturing Execution System).
Hãy cùng khám phá cách hệ thống MES đang cách mạng hóa ngành may mặc và mang lại những lợi ích vượt trội như thế nào.
Đề tài: Chế tạo mạch giám sát gồm các tính năng cơ bản, HAY
1. I
UỶ BAN NHÂN DÂN
THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC SÀI GÒN
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC SINH VIÊN
THIẾT KẾ VÀ CHẾ TẠO MẠCH GIÁM SÁT GỒM CÁC TÍNH NĂNG CƠ BẢN
Mã số đề tài: SV2015 - 28
Thuộc nhóm ngành khoa học: Điện tử - Viễn thông
Chủ nhiệm đề tài: Phạm Ngọc Nam
Thành viên tham gia:
1. Phan Thị Ngọc Hà
Giáo viên hướng dẫn: ThS. Trần Minh Nhật
Tp. Hồ Chí Minh, tháng 4 năm 2016
2. II
UỶ BAN NHÂN DÂN
THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC SÀI GÒN
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC SINH VIÊN
THIẾT KẾ VÀ CHẾ TẠO MẠCH GIÁM SÁT GỒM CÁC TÍNH NĂNG CƠ BẢN
Mã số đề tài: SV2015 - 28
Xác nhận của Khoa
(ký, họ tên)
Giáo viên hướng dẫn
(ký, họ tên)
Chủ nhiệm đề tài
(ký, họ tên)
Tp. Hồ Chí Minh, tháng 4 năm 2016
3. III
MỤC LỤC
BẢN TÓM TẮT .............................................................................................................V
DANH MỤC BẢNG BIỂU.........................................................................................VII
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT ................................................VIII
THÔNG TIN KẾT QUẢ NGHIÊN CỨU.......................................................................9
MỞ ĐẦU .......................................................................................................................10
1. Lý do chọn đề tài .......................................................................................................10
2. Tính cấp thiết của đề tài.............................................................................................11
3. Mục tiêu đề tài ...........................................................................................................11
4. Mục đích và nhiệm vụ nghiên cứu ............................................................................11
5. Đối tượng và phạm vị nghiên cứu .............................................................................12
6. Phương pháp nghiên cứu...........................................................................................12
7. Nội dung và bố cục của đề tài ...................................................................................12
8. Kết luận......................................................................................................................12
CHƯƠNG 1: MÔ HÌNH HOẠT ĐỘNG CỦA HỆ THỐNG GIÁM SÁT ...................13
1.1. Mô hình tổng quát của hệ thống.............................................................................13
1.2. Khối nhà trạm .........................................................................................................14
1.3. Khối quản lý nhà trạm ............................................................................................15
1.4. Khối quản lý trung tâm...........................................................................................19
1.5. Mô hình hệ thống....................................................................................................20
1.6. Kết luận...................................................................................................................20
CHƯƠNG 2: CÁC THIẾT BỊ CẢM BIẾN VÀ SƠ ĐỒ MẠCH GIÁM SÁT .............21
2.1. Các thiết bị chính của mạch: ..................................................................................21
2.1.1. Mạch phát triển STM32F4-DISCOVERY ......................................................21
2.1.2. Cảm biến nhiệt DS18B20 ................................................................................25
2.1.3. Module cảm biến chuyển động........................................................................26
2.1.4. Thiết bị báo cháy và chip LM393....................................................................27
2.1.5. Module cảm biến khí gas:................................................................................30
2.1.6. Module ethernet DP83848...............................................................................31
2.2. Sơ đồ mạch giám sát và báo động ..........................................................................32
4. IV
2.2.1. Sơ đồ mạch cảm biến nhiệt..............................................................................32
2.2.2. Sơ đồ module cảm biến chuyển động:.............................................................33
2.2.3. Sơ đồ mạch điều khiển camera ........................................................................34
2.2.4. Sơ đồ mạch điều khiển đèn..............................................................................35
2.2.5. Sơ đồ mạch cảm biến khói...............................................................................35
2.2.6. Sơ đồ module cảm biến khí gas:......................................................................37
2.2.7. Sơ đồ mạch báo động:......................................................................................37
2.3. Kết luận...................................................................................................................38
CHƯƠNG 3: HỆ THỐNG PHẦN MỀM QUẢN LÝ MẠCH GIÁM SÁT..................39
3.1. Bộ công cụ lập trình nhúng Keil C.........................................................................39
3.2. Công nghệ .NET.....................................................................................................42
3.2.1. Cấu trúc .NET FrameWork..............................................................................42
3.2.1.1. Common Language Runtime ....................................................................42
3.2.1.2. NET FRAMEWORK CLASS LIBRARY ...............................................45
3.2.1.3. Sơ lược về NAMESPACE ........................................................................45
3.2.2. Lập trình socket ...............................................................................................46
3.3. Kết luận...................................................................................................................48
CHƯƠNG 4: CÁC KẾT QUẢ NGHIÊN CỨU............................................................49
4.1. Khối nhà trạm .........................................................................................................49
4.2. Khối quản lý nhà trạm ............................................................................................50
4.3. Khối quản lý trung tâm...........................................................................................52
4.4. Kết luận...................................................................................................................54
CHƯƠNG 5: KẾT LUẬN VÀ KIẾN NGHỊ ................................................................55
5.1. Kết quả đạt được.....................................................................................................55
5.2. Kiến nghị ................................................................................................................56
5.2.1. Áp dụng thực tế................................................................................................56
5.2.2. Hướng phát triển ..............................................................................................56
TÀI LIỆU THAM KHẢO.............................................................................................57
PHỤ LỤC ......................................................................................................................58
5. V
BẢN TÓM TẮT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC SINH VIÊN
THIẾT KẾ VÀ CHẾ TẠO MẠCH GIÁM SÁT GỒM CÁC TÍNH NĂNG
CƠ BẢN
Mã số: SV2015 – 28
1. Vấn đề nghiên cứu (vấn đề, tính cấp thiết)
Điện tử - viễn thông là ngành kỹ thuật mũi nhọn, hiện đại, sử dụng những công
nghệ tiên tiến để thiết kế, chế tạo nên các hệ thống, thiết bị được ứng dụng rộng rãi
trong mọi lĩnh vực của sản xuất cũng như đời sống. Vì vậy việc áp dụng khoa học kỹ
thuật để xây dựng một hệ thống giám sát sẽ góp phần nâng cao tính bảo vệ và an toàn
cho cuộc sống con người.
2. Mục đích nghiên cứu/mục tiêu nghiên cứu
Mục đích nghiên cứu: Đề tài đặt ra và giải quyết những vấn đề về giám sát để
có thể áp dụng khoa học kỹ thuật vào việc nâng cao sự an toàn trong cuộc sống và làm
việc của con người.
Mục tiêu nghiên cứu: Làm ra được mạch giám sát cho phép giám sát nhiệt độ,
chuyển động, khí gas, khói. Xây dựng một phần mềm đơn giản cho phép giám sát tập
trung nhiều mạch giám sát cùng lúc.
3. Nhiệm vụ/nội dung nghiên cứu/câu hỏi nghiên cứu
Tìm hiểu các sơ đồ, thiết bị thích hợp đồng thời phân tích, đánh giá: Các nguy
cơ có thể xảy đến trong quá trình sinh sống và làm việc của con người? Những giải
pháp cụ thể, khả thi áp dụng lên trên mạch giám sát? Các công cụ để xây dựng nên
một hệ thống giám sát hoàn chỉnh, thiết thực?
4. Phương pháp nghiên cứu: Nghiên cứu các yêu cầu giám sát ngoài xã hội, nghiên
cứu các cảm biến phục vụ cho yêu cầu giám sát, nghiên cứu các công cụ lập trình.
6. VI
5. Kết quả nghiên cứu (ý nghĩa của các kết quả) và các sản phẩm (Bài báo khoa học,
phần mềm máy tính, quy trình công nghệ, mẫu, sáng chế…)(nếu có)
Góp vào danh mục tài liệu tham khảo phục vụ công tác nghiên cứu thực tiễn và
giảng dạy, học tập ở các cơ sở đào tạo của địa phương. Hệ thống này có thể được áp
dụng giám sát tại các hộ gia đình, xưởng sản xuất và các phòng học, phòng thí nghiệm
tại trường Đại Học Sài Gòn.
7. VII
DANH MỤC BẢNG BIỂU
Bảng 2.1 Các chân giao tiếp thiết bị của mạch STM32F4-DISCOVERY....................25
Bảng 2.2 Các tính năng của DP83848...........................................................................31
Bảng 3.1 Bảng ký tự đại diện của các lệnh trong các file script. ..................................41
Bảng 3.2 Các đối tượng dùng để lập trình socket trong C#. .........................................46
8. VIII
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
Từ viết tắt Cụm từ đầy đủ
API Application Programming Interface
CLR Common Language Runtime
FCL Framework Class Library
HTML Hypertext Mark-up Language
JIT Just-In-Time
JVM Java Virtual Machine
LAN Local Area Network
MSIL Microsoft Intermediate Language
TCP/IP Transmission Control Protocol / Internet Protocol
9. 9
THÔNG TIN KẾT QUẢ NGHIÊN CỨU
Chương 1: Cho chúng ta cái nhìn tổng quát về cơ chế hoạt động của hệ thống
giám sát, hệ thống này gồm 3 khối chương trình chính, mỗi khối đảm nhiệm một số tính
năng riêng, tuy nhiên chúng có liên lạc mật thiết với nhau trên nền tảng là giao thức
TCP/IP để tạo nên một hệ thống giám sát thống nhất.
Chương 2: Mạch giám sát là một là một hệ thống thống nhất gồm nhiều module,
mỗi module giám sát một loại thiết bị riêng. Chương 2 mới chỉ giới thiệu về sơ đồ phần
cứng của các module, để hoạt động mỗi module cần phải tích hợp chương trình tương
ứng để điều khiển quá trình giám sát.
Chương 3: Giới thiệu chi tiết về các công cụ lập trình được sử dụng để xây dựng
nên hệ thống giám sát, các công cụ này bao gồm: cộng nghệ .NET(C#), Keil C. Mỗi công
cụ được sử dụng cho từng mục đích cụ thể sau:
.Net(C#) được sử dụng để thiết kế chương trình cho server trung tâm nhằm quản
lý các dữ liệu báo cáo từ các mạch giám sát.
Keil C dùng để viết các phần mềm nhúng cho các mạch giám sát.
Chương 4: Các kết quả mà nhóm đạt được trong quá trình nghiên cứu bao gồm
phần cứng mạch giám sát, trang web cài đặt các thông số của nhà trạm và chương trình
giám sát mạch trên máy tính người dùng.
10. 10
MỞ ĐẦU
1. Lý do chọn đề tài
Điện tử - viễn thông là ngành kỹ thuật mũi nhọn, hiện đại, sử dụng những công
nghệ tiên tiến để thiết kế, chế tạo nên các hệ thống, thiết bị được ứng dụng rộng rãi trong
mọi lĩnh vực của sản xuất cũng như đời sống.
Trong thời đại bùng nổ thông tin hiện nay, các thiết bị và hệ thống điện tử viễn
thông là thành phần cơ bản của hệ thống cơ sở hạ tầng và hầu hết chúng ta ai cũng sử
dụng thiết bị hoặc hệ thống do ngành điện tử - viễn thông cung cấp. Chúng ta thấy rằng
một khi cơ sở hạ tầng này gặp sự cố thì nó sẽ ảnh hưởng tới cuộc sống của chúng ta như
thế nào. Ví dụ như sự cố cáp quang trên biển bị đứt thì lập tức việc truy cập các trang
Web có máy chủ ở nước ngoài sẽ bị chậm, ảnh hưởng đến nhiều ngành, nhiều lĩnh vực kể
cả về kinh tế, kĩ thuật và an ninh quốc phòng.
Đời sống công nghệ hiện đại của con người không thể nào thiếu các thiết bị điện
tử. Các thiết bị này phổ biến ở khắp các hộ gia đình, trong các thiết bị giải trí, trong nhà
máy sản xuất và có thể nói là tất cả mọi nơi có con nguời. Hãy thử nhìn vào các thiết bị
trong gia đình của chính bản thân mình, các thiết bị hiện đại nhất của gia đình đều đều bị
chi phối bởi kỹ thuật điện tử. Lấy một ví dụ đơn giản nhất, một chiếc quạt điện bình dân
thì chúng ta không thể hẹn giờ và tắt mở từ xa nhưng nếu có sự tham gia của kỹ thuật
điện tử thì việc điều khiển từ xa, hẹn giờ tắt mở sẽ thực hiện một cách dễ dàng. Có thể
nói kỹ thuật điện tử đã nâng các thiết bị phục vụ cho đời sống của con người lên một tầm
cao mới, hiện đại hơn và tinh vi hơn.
Nhưng ở đất nước vẫn còn đang phát triển như chúng ta, người dân vẫn chưa
được phục vụ, được bảo vệ đúng mức bởi các hệ thống thiết bị hiện đại ấy. Qua những
tin tức gần đây chúng ta thấy rằng rất nhiều vụ đột nhập, cướp của xảy ra và khi mà
cuộc sống ngày nay gas là nhiên liệu đốt không thể thiếu trong mỗi gia đình, các nguy
cơ cháy nổ luôn luôn thường trực, mối đe dọa về một thảm họa nào đó có thể xảy đến
11. 11
bất cứ lúc nào. Những thảm họa ấy nếu không được cảnh báo và phát hiện kịp thời thì
sẽ nguy hiểm đến tài sản và đe dọa lớn đến tính mạng của con người.
Chính vì những lý do trên đồng thời cũng muốn áp dụng kiến thức kiến thức
chuyên ngành đã học vào thực tiễn. Do đó, nhóm chúng em chọn đề tài “Thiết kế và chế
tạo mạch giám sát gồm các tính năng cơ bản” với mục đích chính là tăng cường việc
kiểm soát an ninh, an toàn trong đời sống sinh hoạt và sản xuất của con người.
2. Tính cấp thiết của đề tài
Nghiên cứu những vấn đề khoa học trong nội dung nghiên cứu, áp dụng các kiến
thức đã học vào thực tiễn, giúp cũng cố kiến thức phục vụ cho quá trình phát triển đề tài
tốt nghiệp sau này.
3. Mục tiêu đề tài
Làm ra được mạch giám sát cho phép giám sát nhiệt độ, chuyển động, khí gas,
khói. Xây dựng một phần mềm đơn giản cho phép giám sát tập trung nhiều mạch giám
sát cùng lúc.
4. Mục đích và nhiệm vụ nghiên cứu
Mục đích: Đề tài đặt ra và giải quyết những vấn đề về giám sát để có thể áp dụng
khoa học kỹ thuật vào việc nâng cao sự an toàn trong cuộc sống và làm việc của con
người.
Nhiệm vụ:
Thứ nhất, tìm hiểu, đánh giá những nguy cơ mà con người có thể gặp phải trong
môi trường sống và làm việc để đưa ra các thành phần cần thiết trong mạch giám sát mà
nhóm sẽ thi công.
Thứ hai, tìm hiểu các linh kiện, phần mềm, cách thức để xây dựng bản thiết kế phù
hợp với kinh phí và tiêu chí đã được đặt ra ban đầu.
Thứ ba, tiến hành thi công và thử nghiệm hệ thống giám sát để đảm bảo hệ thống
hoạt động an toàn, hiệu quả khi đưa vào sử dụng.
12. 12
5. Đối tượng và phạm vị nghiên cứu
Đối tượng nghiên cứu: Những thành phần cần phải có trong hệ thống của mạch
giám sát cơ bản phù hợp với thực tế.
Phạm vi nghiên cứu: Những linh kiện làm mạch giám sát và phần mềm cho phép
giám sát tập trung nhiều mạch giám sát cùng lúc.
6. Phương pháp nghiên cứu
5.1. Nghiên cứu các yêu cầu giám sát ngoài xã hội.
5.2. Nghiên cứu các cảm biến phục vụ cho yêu cầu giám sát.
5.3. Nghiên cứu các công cụ lập trình.
7. Nội dung và bố cục của đề tài
Nội dung đề tài được tổ chức thành các phần chính như sau:
- Phần mở đầu: Trình bày lý do và mục tiêu nghiên cứu xây dựng hệ thống giám sát.
- Chương 1: Mô hình hoạt động của hệ thống giám sát.
- Chương 2: Các thiết bị cảm biến và sơ đồ mạch giám sát.
- Chương 3: Hệ thống phần mềm quản lý mạch giám sát.
- Chương 4: Các kết quả nghiên cứu.
- Chương 5: Kết luận và kiến nghị.
8. Kết luận
Nghiên cứu xây dựng hệ thống giám sát có ý nghĩa rất quan trọng trong việc ứng
dụng khoa học kỹ thuật để tự động hóa quá trình giám sát, giúp nâng cao sự an toàn trong
đời sống sinh hoạt và làm việc của con người. Có cơ hội áp dụng kiến thức đã học vào
thực tiễn và chuẩn bị kinh nghiệm cho những đề tài sau này. Hơn nữa hoàn toàn có thể
ứng dụng hệ thống giám sát cho các phòng thực hành, phòng học cũng như các phòng thí
nghiệm của trường Đại học Sài Gòn.
13. 13
CHƯƠNG 1: MÔ HÌNH HOẠT ĐỘNG CỦA HỆ THỐNG GIÁM SÁT
Chương này sẽ mô tả cụ thể các tính năng của các khối trong hệ thống và mối liện
hệ giữa các khối này để hình thành nên một hệ thống giám sát hoàn chỉnh.
1.1. Mô hình tổng quát của hệ thống
Hình 1.1 Mô hình tổng quát của hệ thống.
Hệ thống được thiết kế theo 3 khối chúc năng cơ bản:
Khối nhà trạm.
Khối quản lý nhà trạm.
Khối quản lý trung tâm.
Nguyên lý hoạt động
Khối nhà trạm liên tục cung cấp thông tin về hoạt động của mạch cho người dùng
quan sát và có thể tự hoạt động theo chương trình đã được lập ra từ trước.
14. 14
Theo định kỳ khối quản lý nhà trạm gởi các thông tin của nhà trạm về cho khối
trung tâm.
Khối quản lý trung tâm sẽ tập hợp tất cả các thông tin của các nhà trạm để xử lý và
gởi thông tin về cho chương trình giám sát trên máy tính của người dùng.
1.2. Khối nhà trạm
Đây là mạch giám sát được thiết kế có nhiệm vụ tự thực hiện các chức năng đã
được định ra từ trước và cung cấp thông tin hoạt động của mạch cho người dùng quan sát.
Chức năng tự động điều khiển camera, đèn, báo động
Hình 1.2 Sơ đồ xử lý việc điều khiển thiết bị.
CODE: tham khảo tại phụ lục 1 (trang 58)
Bắt đầu
Lấy thông tin từ các cảm biến
chuyển động, khí gas, khói
Nếu có
chuyển động
Bật đèn và camera
Sai
Đúng
g
Nếu có khí
gas hoặc khói
Bật báo động
Đúng
g
Sai
Kết thúc
15. 15
1.3. Khối quản lý nhà trạm
Thiết kế theo cấu trúc độc lập có thể tự chạy cục bộ khi mất kết nối với trung tâm,
khối này bao gồm chức năng cài đặt thông số, chức năng lấy thông tin trạng thái của các
trạm giám sát, chức năng điều khiển các thiết bị camera, đèn, báo động…
1. Chức năng cho phép cài đặt các thông số của trạm như:
ID của trạm: là mã thiết bị giám sát dùng để phân biệt với các thiết bị giám
sát khác.
Địa chỉ IP của máy tính trung tâm: là địa chỉ mạng của máy tính trung tâm
dùng để giám sát các trạm, trạm khi khởi động sẽ sử dụng địa chỉ này để kết
nối vào trung tâm và định kỳ gởi các thông số trạng thái của trạm về trung
tâm.
Subnet mask: dùng để phân chia về mặc logic địa chỉ IP.
Cổng truy cập của server trung tâm: là cổng kết nối của máy tính trung tâm.
Địa chỉ máy trạm: là địa chỉ IP của máy trạm.
Địa chỉ gateway: là địa chỉ máy tính để giao tiếp với mạng bên ngoài.
Địa chỉ DNS server: là địa chỉ máy tính để phân giải tên miền.
Password: mật khẩu để truy xuất vào các trang web hệ thống của mạch
giám sát.
Retyped: mật khẩu nhập lại để đối sánh với mật khẩu khi thực hiện việc
thay đổi mật khẩu.
Đây là tính năng dạng trang web được nhúng trong bộ xử lý ARM.
16. 16
Bắt đầu
Para= lấy thông số từ trang web
Nếu para là LocalIP Đúng Ghi vào hệ thống
Sai
Nếu para là Port Ghi vào hệ thốngĐúng
Sai
Nếu para là ServerIP Ghi vào hệ thốngĐúng
Sai
Nếu para là Subnet Mask Ghi vào hệ thốngĐúng
Nếu para là pass Lưu vào biến pass1Đúng
Sai
Nếu para là retyped Đúng So sánh với pass1 Đúng
Ghi vào
hệ thống
Sai
Nếu para là Gateway Ghi vào hệ thốngĐúng
Sai
Nếu para là DNSServer Ghi vào hệ thốngĐúng
Sai
Nếu para là ID Ghi vào hệ thốngĐúng
Kết thúc
Sai Sai
Lưu thông tin lỗi vào
file log
Hình 1.3 Sơ đồ xử lý việc cài đặt các thông số của trạm.
CODE: tham khảo tại phụ lục 2 (trang 58)
17. 17
2. Chức năng lấy thông tin: cho phép lấy thông tin về nhiệt độ, báo khói, chuyển
động, khí gas,... Đây là chức năng được thực hiện định kỳ sau mỗi 5 giây.
Bắt đầu
Nhiệt= lấy thông tin nhiệt độ
từ cảm biến nhiệt
Chuyển đổi thông tin sang dạng mảng
Gán mã số tương ứng cho thiết bị
Đưa thông tin này vào mảng chung
Khói= lấy thông tin khói từ
cảm biến khói
Chuyển đổi thông tin sang dạng mảng
Gán mã số tương ứng cho thiết bị
Đưa thông tin này vào mảng chung
18. 18
Hình 1.4 Sơ đồ xử lý việc lấy thông tin trạng thái của các cảm biến.
CODE: tham khảo tại phụ lục 3 (trang 60)
Chuyển động= lấy thông tin
từ cảm biến chuyển động
Chuyển đổi thông tin sang dạng mảng
Gán mã số tương ứng cho thiết bị
Đưa thông tin này vào mảng chung
Khí gas= lấy thông tin từ cảm
biến khí gas
Chuyển đổi thông tin sang dạng mảng
Gán mã số tương ứng cho thiết bị
Đưa thông tin này vào mảng chung
Tạo gói tin với phần data là mảng chung
và gởi tới máy tính trung tâm
Kết thúc
19. 19
1.4. Khối quản lý trung tâm
Khối này quản lý tất cả các đối tượng cần giám sát trên máy tính với giao diện
thân thiện, dễ sử dụng, khối này gồm các chức năng sau:
Chức năng nhận trạng thái từ máy trạm và gởi thông tin về trang web người dùng.
Bắt đầu
Nếu giờ tronggói tin trùng
khớp với giờ của hệthống
Sai Lưu thôngtin lỗi vào file log
Đúng
Kết thúc
Ghi thôngtin vào CSDL
Gởi gói tin cập nhật trạngthái cho những
nút trạngthái trên giao diện web
Chuyển chuổi dữliệu sangdạngbiến cố
Nhận chuỗi dữ liệu
từtrạm
Phát sinh biến cố ControlStateEvent
Message=lấy gói tin từbiến cố
ControlStateEvent
Hình 1.5 Sơ đồ xử lý gói tin thông báo trạng thái thiết bị.
CODE: tham khảo tại phụ lục 4 (trang 62)
20. 20
1.5. Mô hình hệ thống
Mô hình kết nối của hệ thống trên nền tảng TCP/IP:
Hình 1.6 Hệ thống có sử dụng camera giám sát.
1.6. Kết luận
Chương 1 cho chúng ta cái nhìn tổng quát về cơ chế hoạt động của hệ thống giám
sát, hệ thống này gồm 3 khối chương trình chính, mỗi khối đảm nhiệm một số tính năng
riêng, tuy nhiên chúng có liên lạc mật thiết với nhau trên nền tảng là giao thức TCP/IP để
tạo nên một hệ thống giám sát thống nhất.
21. 21
CHƯƠNG 2: CÁC THIẾT BỊ CẢM BIẾN VÀ SƠ ĐỒ MẠCH GIÁM SÁT
Chương 2 sẽ mô tả các linh kiện của mạch phát triển chính cũng như chức năng và
thông số các cảm biến, từ đó thiết kế sơ đồ cho mạch giám sát.
2.1. Các thiết bị chính của mạch:
Các thiết bị được sử dụng để thiết lập mạch giám sát bao gồm: mạch phát triển
stm32f4-Discovery, cảm biến nhiệt DS18B20, module cảm biến chuyển động, thiết bị
báo khói HORING AH-0311-4 và chip LM393, module cảm biến khí ga MQ2, module
ethernet DP83848.
2.1.1. Mạch phát triển STM32F4-DISCOVERY
STM32F4 DISCOVERY được trang bị chip 32-bit ARM Cortex, đây là một bộ xử
lý thế hệ mới đưa ra một kiến trúc chuẩn cho nhu cầu đa dạng về công nghệ, kit giúp
khám phá các tính năng của chip ARM nhằm phát triển các ứng dụng một cách dễ dàng.
Nó bao gồm tất cả tính năng cần thiết cho người mới bắt đầu cũng như người dùng có
kinh nghiệm để có thể tiếp cận chip ARM một cách nhanh chóng.
Hình 2.1 Board mạch stm32F4-DISCOVERY.
22. 22
STM32F4-DISCOVERY gồm các tính năng sau:
Vi điều khiển STM32F407VGT6 với 1 MB bộ nhớ Flash, 192 KB bộ nhớ.
ST-LINK / V2 được sử dụng cho việc nạp và debug.
Nguồn: được cung cấp thông qua cổng USB hoặc từ một nguồn cung cấp điện áp
5V bên ngoài.
Nguồn cung cấp ra bên ngoài: 3V và 5V.
CS43L22, DAC âm thanh với lớp tích hợp trình điều khiển loa D.
LD1 (màu đỏ / màu xanh lá cây) để giao tiếp USB.
LD2 (màu đỏ) cho điện 3.3V.
Bốn đèn LED dành cho người dùng sử dụng, LD3 (màu cam), LD4 (màu xanh),
LD5 (màu đỏ) và LD6 (màu xanh).
2 USB OTG LED LD7 (màu xanh) và VBus LD8 (màu đỏ) quá dòng.
Hai nút bấm (USER và RESET).
USB OTG với kết nối micro-AB.
Các chân của mạch giao tiếp được sử dụng trong đề tài
MCU pin Board function
STT
Main
function
Alternate functions USB
LIS302DL
LIS3DSH
CN5 CN2
Free
I/O
OSC SWD P1 P2
1 PA1
USART2_RTS/
USART4_RX/
ETH_RMII_REF_CLK/
ETH_MII_RX_CLK/
TIM5_CH2/
TIMM2_CH2/
ADC123_IN1
x 11
2 PA2
USART2_TX/
TIM5_CH3/
TIM9_CH1/
TIM2_CH3/
ETH_MDIO/
ADC123_IN2
x 14
24. 24
9 PB12
SPI2_NSS/
I2C2_SMBA/
USART3_CK/
TIM1_BKIN/
CAN2_RX/
ETH_RMII_TXD0/
ETH_MII_TXD0/
OTG_HS_ID
x 36
10 PB13
SPI2_SCK/
I2S2_CK/
USART3_CTS/
TIM1_CH1N/
CAN2_TX/
ETH_RMII_TXD1/
ETH_MII_TXD1/
OTG_HS_VBUS
x 37
11 PC1
ETH_MDC/
ADC123_IN11
x 7
12 PC4
ETH_RMII_RX_D0/
ETH_MII_RX_D0/
ADC12_IN14
x 10
13 PC5
ETH_RMII_RX_D1/
ETH_MII_RX_D1/
ADC12_IN15
x 19
14 PB1
TIM3_CH4/
TIM8_CH3N/
OTG_HS_ULPI_D2/
OTG_HS_INTN/
TIM1_CH3N/
ADC12_IN9
x 21
15 PB4
NJTRST/
SPI3_MISO/
TIM3_CH1/
SPI1_MISO/
I2S3ext_SD
x 25
25. 25
16 PB5
I2C1_SMBA/
CAN2_RX/
OTG_HS_ULPI_D7/
ETH_PPS_OUT/
TIM3_CH2/
SPI1_MOSI/
SPI3_MOSI/
DCMI_D10/
I2S3_SD
x 26
Bảng 2.1 Các chân giao tiếp thiết bị của mạch STM32F4-DISCOVERY.
Các chân trên được chia ra sử dụng như sau:
Sử dụng cho thu thập thông tin loại Input nhiệt độ, khói, khí gas, chuyển động lần
lượt là các chân PA8, PA3, PB4, PB5.
Sử dụng cho xuất tín hiệu loại Output camera, đèn, báo động lần lượt là các chân
PB8, PB7, PB1.
Còn lại là các chân sử dụng giao tiếp với module Ethernet DP83848 ở hình 2.8.
2.1.2. Cảm biến nhiệt DS18B20
DS18B20 là IC cảm biến nhiệt độ, chỉ bao gồm 3 chân, nó được coi là một nhiệt
kế với giá trị được chứa trong vùng nhớ 12-bit. Các DS18B20 giao tiếp với mạch thông
qua giao thức 1-Wire nghĩa là chỉ cần dùng một đường truyền duy nhất để giao tiếp với
bộ vi xử lý trung tâm. Nhiệt độ hoạt động cho phép của nó trong phạm vi -55°C đến +
125°C và có sai số là ± 0,5°C trong khoảng từ -10°C đến + 85°C.
Mỗi DS18B20 được nhận dạng qua một mã ID có độ dài 64 bit, cho phép nhiều
DS18B20 có thể hoạt động trên cùng 1-Wire bus. Vì vậy, một bộ vi xử lý có thể kiểm
soát nhiều DS18B20 phân bố trên một khu vực rộng lớn. Các ứng dụng có thể sử dụng
tính năng này bao gồm kiểm soát môi trường, giám sát nhiệt độ các hệ thống bên trong
các tòa nhà, giám sát, điều khiển trạng thái các thiết bị và máy móc.
26. 26
Hình 2.2 Mô hình các chân của DS18B20.
Tóm tắt các tính năng của DS18B20
Giao tiếp 1-Wire yêu cầu chỉ một chân (Pin) cho truyền thông.
Mỗi thiết bị có một mã 64-Bit duy nhất được lưu trữ trong ROM.
Nguồn cung cấp từ 3.0V đến 5.5V.
Khoảng nhiệt độ đo được giao động từ -55 ° C đến + 125 ° C.
Sai số là ± 0.5 ° C nếu nhiệt độ trong khoảng -10 ° C đến + 85 ° C.
2.1.3. Module cảm biến chuyển động
Module cảm biến chuyển động PIR HC- SR501 phát hiện và báo có sự xuất hiện
của vật thể trong khu vực, phạm vi nhất định.
27. 27
Hình 2.3 Module cảm biến chuyển động PIR.
Điều làm cho PIR HC-SR501 trở nên đặc biệt đó là khả năng điều chỉnh được độ
nhạy. Khả năng này rất có ý nghĩa khi trong nhà có con vật (chó, mèo...). Với cảm biến
PIR không có biến trở điều chỉnh độ nhạy, khi con vật đi ngang qua sẽ vẫn có tác dụng
với cảm biến và làm cảm biến đóng. Điều này thật sự không tốt. Hoặc khi dùng cảm biến
làm mạch báo trộm có thể gây ra báo động giả!
Thông số kỹ thuật:
Sử dụng điện áp: 4.5-20V
Đầu ra: 0-3.3V
Thứ tự chân: VCC OUT GND
Chân ra OUT không bị kích hoạt ở mức 0V (LOW), khi kích hoạt ở mức 3.3V
(HIGH)
Thời gian trễ : Điều chỉnh trong khoảng 0.5-200s.
Kích thước PCB: 32mm x 24mm.
Góc quét <100 độ.
Sử dụng cảm biến: 500BP
Khoảng cách phát hiện: 2- 4.5m.
2.1.4. Thiết bị báo cháy và chip LM393
2.1.4.1. Thiết bị báo cháy
Thiết bị dùng để phát hiện có khói hoặc các dấu hiệu co cháy xảy ra để phòng
chữa cháy kịp thời. Khi có dấu hiệu cháy thiết bị sẽ làm mạch báo động tại chỗ và truyền
tín hiệu về trung tâm.
28. 28
Hình 2.4 Đầu dò khói HORING AH-0311-4.
Các tham số của HORING AH-0311-4
Điện áp : 12- 30V DC.
Cường độ dòng hiện thời: 35 µA.
Cường độ dòng nhận được: 120mA.
Cường độ báo động: 40mA.
Nhiệt độ hoạt động: -10°C đến +55°C.
Nguyên lý hoạt động của HORING AH-0311-4
HORING AH-0311-4 có 8 chân, trong đó ta chỉ cần sử dụng 5 chân(2,4,5,6,7), các chân
này hoạt động như sau:
Chân 2 nối nguồn.
Chân 4 nối đất.
Bình thường chân 7 nối với chân 5, nhưng khi có khói chân 7 hở với chân 5 nhưng
nối với chân 6.
2.1.4.2. Chip LM393
Chip LM393 là bộ vi mạch gồm 2 bộ so sánh độc lập với điện áp bù nhỏ cỡ
2.0mV, hoạt động với cả nguồn cấp đơn hoặc 2 nguồn cấp đối xứng.
Đặc điểm LM393
Dãi nguồn nuôi rộng từ 2V đến 36V.
Dãi nguồn nuôi kép từ +/-1V đến +/-18V.
Dòng cực máng rất thấp độc lập với điện áp nguồn nuôi 0.4mA.
29. 29
Dòng lối vào thấp 25mA.
Dòng offset lối vào thấp +/-5mA và điện áp offset cực đại là +/-3mA.
Dãi điện áp lối vào chung thấp.
Điện áp lối ra tương thích với các mức logic DTL, ECL, TTL, MOS, CMOS.
Điện áp bão hòa lối ra thấp 250mV, 4mA.
Sơ đồ chân của LM393
Hình 2.5 Sơ đồ các chân của chip LM393.
Nguyên lý hoạt động của LM393
- Chân 4 nối đất.
- Chân 8 nối nguồn.
- So sánh điện áp chân 5(V5) và điện áp chân 6(V6).
Nếu V5>V6 thì điện áp V7 khác 0.
Ngược lại V7 bằng 0.
- So sánh điện áp chân 2(V2),điện áp chân 3(V3).
Nếu V3>V2 thì điện áp V1 khác 0.
Ngược lại V1 bằng 0.
30. 30
Dùng phép AND nối 2 chân 1 và 7, nếu cả 2 có điện áp đều khác 0 thì điểm nối 2
chân có điện áp khác 0, ngược lại điện áp sẽ bằng 0.
2.1.5. Module cảm biến khí gas:
MQ2 là cảm biến khí, dùng để phát hiện các khí có thể gây cháy. Nó được cấu tạo
từ chất bán dẫn SnO2. Chất này có độ nhạy cảm thấp với không khí sạch. Nhưng khi
trong môi trường có chất gây cháy, độ dẫn của nó thay đổi ngay. Chính nhờ đặc điểm này
người ta thêm vào mạch đơn gian để biến đổi từ độ nhạy này sang điện áp.
Khi môi trường sạch điện áp đầu ra của cảm biến thấp, giá trị điện áp đầu ra càng
tăng khi nồng độ khí gây cháy xung quanh MQ2 càng cao. Nó được sử dụng rộng rãi
trong công nghiệp và dân dụng do mạch đơn giản và chi phí thấp.
Hình 2.6 Module cảm biến khí gas.
Trong mạch có hai chân đầu ra là Aout và Dout. Trong đó:
Aout: Điện áp ra tương tự, nó chạy từ 0.3-4.5V, phụ thuộc vào nồng độ khí
xung quanh MQ2.
Dout: Điện áp ra số, giá trị 0 1 phụ thuộc vào điện áp tham chiếu và nồng
độ khí ga mà MQ2 đo được.
Việc có chân ra số Dout rất tiện cho ta mắc các ứng dụng đơn giản. Khi
nồng độ MQ2 đo được thấp hơn mức cho phép thì Dout=1, đèn led tắt. Khi
nồng độ khí đo được lớn hơn nồng độ khí cho phép thì Dout=0, đèn led
sáng.
31. 31
2.1.6. Module ethernet DP83848
DP83848 được thiết kế để cho phép kết nối Ethernet trong các môi trường khắc
nghiệt nhất. Thiết bị đáp ứng các tiêu chuẩn IEEE 802.3u trên một phạm vi nhiệt độ cho
phép từ -55 ° C đến 125 ° C. Thiết bị này rất lý tưởng cho các môi trường khắc nghiệt
như trạm từ xa không dây, ô tô, giao thông vận tải và các ứng dụng điều khiển công
nghiệp.
Hình 2.7 Mạch Ethernet DP83848.
Các tham số của DP83848:
CHỨC NĂNG VẬT LÝ
Nguồn 3.3
Tốc độ (Mbps) 10/100
Giao tiếp
MII
RMII
SNI
Số đèn LED 3
Chiều dài cáp tối đa (m) 150
Nhiệt độ cho phép -55 to 125
Bảng 2.2 Các tính năng của DP83848.
32. 32
Nguyên lý hoạt động của DP83848
Mạch DP83848 gồm 2 bộ giao tiếp nằm ở 2 đầu
Một đầu là port ethernet nối theo chuẩn RJ45 để giao tiếp với mạng máy tính
thông qua giao thức TCP/IP.
Đầu còn lại là bộ gồm 20 chân dùng để giao tiếp với mạch STM32F4-
DISCOVERY.
Sơ đồ giao tiếp giữa mạch ETHERNET và STM32F4-DISCOVERY
Hình 2.8 Sơ đồ giao tiếp DP83848 và STM32F4-DISCOVERY.
Sơ đồ đấu nối các chân của DP83848 và STM32F4-DISCOVERY giúp
STM32F4-DISCOVERY có thể giao tiếp với mạng máy tính qua giao tiếp RJ45 trên nền
giao thức IP của mạng máy tính.
2.2. Sơ đồ mạch giám sát và báo động
Mạch giám sát là một khối thống nhất gồm tập hợp các khối giám sát như cảm
biến nhiệt độ, báo khói, chuyển động, khí gas và đèn báo hiệu, điều khiển camera, khối
báo động gắn liền với mạch để thực hiện các chức năng đã được định ra từ trước.
2.2.1. Sơ đồ mạch cảm biến nhiệt
33. 33
Hình 2.9 Sơ đồ mạch cảm biến nhiệt.
Mạch gồm 3 chân, chân một nối đất, chân 3 nối nguồn 5V và chân 2 là chân dữ
liệu nối với chân PA8 của mạch STM32F4-DISCOVERY. Dữ liệu nhiệt độ sẽ được
truyền qua chân 2 theo giao thức 1-wire.
2.2.2. Sơ đồ chân cắm cảm biến chuyển động:
Hình 2.10 Sơ đồ chân cắm cảm biến chuyển động.
34. 34
Mạch gồm 3 chân, chân 1 nối đất, chân 3 nối nguồn và chân 2 là chân dữ liệu nối
với chân PB5 của kit STM32F4- DISCOVERY, khi có chuyển động sẽ báo mức 1 về
khối vi xử lý, sau đó làm bật camera và đèn theo chương trình đã được định trước.
2.2.3. Sơ đồ mạch điều khiển camera
Hình 2.11 Sơ đồ mạch điều khiển camera.
Khi nhận tín hiệu ở chân vi điều khiển PB8 là mức 1 thì khối khuếch đại
(transistor C1815) sẽ làm nhiệm vụ khuếch đại tín hiệu từ kích cuộn dây của Relay (Cuộn
dây quấn quanh một thanh sắt nhỏ. Có tác dụng như một nam châm điện khi có dòng điện
đủ lớn đi qua).
Khi có dòng điện kích thì sẽ hình thành nam châm điện và nam châm điện sẽ hút
thanh sắt ở bên trong từ đó hình thành tiếp điểm 3-4 và làm bật camera (sáng led hiển
thị).Ngược lại, khi chân PB8 là mức 0 thì khối khuyếch đại không hoạt động, không có
tiếp điểm nam châm điện (không có dòng kích) và sẽ có tiếp điểm 3-5. Từ đó làm tắt thiết
bị.
Tóm lại, khối relay như một công tắc điều khiển (đóng - mở, bật - tắt thiết bị) được
điều khiển bằng tín hiệu từ kit vi xử lý.
35. 35
2.2.4. Sơ đồ mạch điều khiển đèn
Hình 2.12 Sơ đồ mạch điều khiển đèn.
Khi chân PB7 của mạch STM32F4-DISCOVERY bằng 0 (điệp áp bằng 0) thì
chân đất của transistor C945 rời chân nối với R9, nên mạch ngắt và đèn tắt, nếu chân PB7
bằng 1 (điện áp bằng 3V) thì chân đất của transistor C945 nối R9, nên mạch đóng và đèn
sáng. Vây muốn đèn sáng ta gán 1 cho chân PB7 và gán giá trị 0 cho chân PB7 thì tắt
đèn. Ở đây đèn chỉ là cách gán tên tượng trưng cho việc điều khiển thiết bị gia dụng vì
vậy chúng ta có thể gán tên của một thứ khác.
2.2.5. Sơ đồ mạch cảm biến khói
Hình 2.13 Sơ đồ mạch cảm biến khói.
36. 36
Theo sơ đồ ta có các thông số sau:
Điện áp của đường VHI gần bằng 2V nối chân 2 của LM393.
Điện áp của đường VLO gần bằng 9V nối chân 5 của LM393.
Ở trạng thái bình thường ta có các thông số sau:
Chân 5 và 7 của báo khói liền nhau nên chân 7 nối đất.
Chân 7 của báo khói nối đất thì chân 3 của LM393 nối đất nên điện áp chân 3 này
bằng 0.
Điện áp chân 3 của LM393 bằng 0 sẽ nhỏ hơn điện áp chân 2 của LM393(2v) nên
điện áp chân 1 của LM393 bằng 0.
Khi điện áp chân 1 của LM393 bằng 0 thì điện áp tại tiếp điểm giữa chân 1 và 7
của LM393 phải bằng 0, lúc này nếu đọc chân PA3 của mạch STM32F4-
DISCOVERY nó sẽ cho giá trị 0.
Ở trạng thái có khói ta có một số thông số sau:
Chân 5 và 7 của báo khói rời nhau nên chân 7 không còn giá trị.
Lúc này tại chân 7 của báo khói có điện áp bằng 12V
/2 = 6V nên chân 3 và 6 của
LM393 có điện áp bằng 6V.
Điện áp chân 3 của LM393 bằng 6V sẽ lớn hơn điện áp chân 2 của LM393(2V)
nên điện áp chân 1 của LM393 khác 0.
Điện áp chân 6 của LM393 bằng 6v sẽ nhỏ hơn điện áp chân 5 của LM393(9V)
nên điện áp chân 7 của LM393 khác 0.
Khi điện áp chân 1 và chân 7 của LM393 khác 0 thì điện áp tại tiếp điểm giữa
chân 1 và 7 của LM393 khác 0.
Tóm lại, khi ở trạng thái bình thường thì giá trị tại chân PA3 của mạch STM32F4-
DISCOVERY bằng 0, khi có khói giá trị sẽ bằng 1 và kích hoạt khối báo động đã được
định sẵn.
37. 37
2.2.6. Sơ đồ chân cắm cảm biến khí gas:
Hình 2.14 Sơ đồ chân cắm cảm biến khí gas.
Mạch gồm 4 chân, chân 1 nối nguồn, chân 4 nối đất và chân 2 là chân dữ liệu
tương tự Aout, chân 3 là chân dữ liệu số Dout. Ở đây ta sử dụng chân dữ liệu số (chân 3)
nối với chân PB4 của mạch STM32F4 DISCOVERY.
Khi có khí gas vượt quá ngưỡng cho phép cảm biến sẽ báo về mức 0 làm kích hoạt
khối báo động theo chương trình đã được định sẵn.
2.2.7. Sơ đồ mạch báo động:
Hình 2.15 Sơ đồ mạch báo động.
38. 38
Khi có khí ga, chân PB1 của vi điều khiển nhận mức 1 và tác động đến chân Reset
(số 4) của IC555. Ngõ ra output (chân 3) của IC555 sẽ cho ra xung vuông có tần số đủ
lớn để chuông báo động kêu liên hồi.
Để tính toán giá trị tần số phù hợp, từ sơ đồ trên ta chỉ cần áp dụng công thức:
f= 1,44 / [C4 x (R11+2R21)]
Để điều chỉnh tần số xung vuông, ta điều chỉnh giá trị biến trở 10k.
Tín hiệu ở ngõ ra sẽ được khuếch đại nhờ khối khuyếch đại sử dụng transistor
C1815 và sau đó đưa ra loa buzzer báo động.
2.3. Kết luận
Mạch giám sát là một là một hệ thống thống nhất gồm nhiều module, mỗi module
giám sát một loại thiết bị riêng. Chương 2 mới chỉ giới thiệu về sơ đồ phần cứng của các
module, để hoạt động mỗi module cần phải tích hợp chương trình tương ứng để điều
khiển quá trình giám sát.
39. 39
CHƯƠNG 3: HỆ THỐNG PHẦN MỀM QUẢN LÝ MẠCH GIÁM SÁT
Chương này sẽ giới thiệu chi tiết về các công cụ lập trình được sử dụng để xây
dựng nên hệ thống giám sát, các công cụ này bao gồm: cộng nghệ .NET(C#), Keil C.
3.1. Bộ công cụ lập trình nhúng Keil C
Giới thiệu
Keil C là công cụ phần mềm hỗ trợ khá đầy đủ giúp người dùng soạn thảo và biên
dịch chương trình cho các vi điều khiển thuộc họ ARM và một số họ khác bằng ngôn ngữ
C/C++.
Giống như tất cả các phần mềm dựa trên μVision IDE Keil, Keil C cung cấp môi
trường lập trình mạnh mẽ, dễ sử dụng và dễ dàng tiếp cận giúp phát triển các ứng dụng
nhúng. Chúng bao gồm các thành phần cần thiết để tạo, debug và kết hợp vi điều khiển
với các thiết bị ngoại vi liên quan.
Các bước phát triển phần mềm
1. Tạo project và chọn vi xử lý đồng thời thiết lập các thông số tương ứng.
2. Viết Code cho project theo ngôn ngữ C/C++.
3. Biên dịch chương trình.
4. Debug và hoàn thiện chương trình.
5. Download chương trình xuống FLASH ROM hay SRAM của chip..
Cấu trúc chương trình đơn giản
Keil C hoạt động giống như các bộ lập trình C chuẩn, khi bắt đầu nó thực thi hàm
main. Đối với các chương trình nhúng hàm main thường là đoạn code lặp vô tận.
Ví dụ:
int counter;
main (void)
{
counter = 0;
while (1) // repeat forever
40. 40
{
counter++; // increment counter
}
}
Luân chuyển công việc theo cấu trúc Round-Robin
Round-Robin cho phép thực hiện song song đồng thời một số nhiệm vụ. Mỗi công
việc được thực hiện trong một thời gian xác định trước. Sau khi hết thời gian thực hiện
tác vụ i nó sẽ bắt đầu thực hiện tác vụ i+1. Ví dụ minh họa hoạt động của cấu trúc round-
robin tham khảo tại phụ lục 5 (trang 64).
Các dạng hàm wait
Hàm wait dùng để tạm dừng một công việc và chờ biến cố để tiếp tục công việc
của mình. Suốt thời tạm dừng này, CPU sẽ thực thi những công việc khác. Ví dụ minh
họa tham khảo phụ lục 6 (trang 65).
Mailbox
Mailbox là hàng đợi FIFO dùng để chuyển dữ liệu giữa các công việc hay tiến
trình. Ví dụ minh họa tham khảo phụ lục 7 (trang 65).
Bộ nhớ
Công cụ phát triển Keil C cung cấp quyền truy cập vào tất cả khu vực bộ nhớ với
bất kỳ kiến trúc vi điều khiển nào. Các biến có thể được gán tường minh tại một không
gian vùng nhớ nào đó bằng các khai báo kiểu tường minh hoặc có thể được gán không
tường minh dựa vào kiểu vùng nhớ. Truy cập vào bộ nhớ dữ liệu nội bộ nhanh hơn so với
truy cập vào bộ nhớ dữ liệu bên ngoài, vì vậy nếu có thể ta nên khai các biến sử truy xuất
thường xuyên tại vùng nhớ nội bộ và các biến ít truy xuất ở vùng nhớ bên ngoài.
TCP Socket
Keil C cung cấp thành phần RL-TCPnet dùng để thực hiện việc truyền dữ liệu
qua giao thức TCP/IP. Ví dụ minh họa hoạt động của RL-TCPnet tham khảo phụ lục 8
(trang 66).
41. 41
HTTP Server
Hypertext Mark-up Language (HTML) là ngôn ngữ chính để định dạng trang web.
Với HTML, bạn có thể mô tả những gì một trang cần được thể hiện như loại phông chữ,
màu sắc của văn bản, nơi đánh dấu đoạn và nhiều định dạng khác của tài liệu.
Có 2 dạng trang web trong HTTP server là trang tĩnh và trang động.
Trang tĩnh có nội dung cố định.
Trang động có nội dung thay đổi theo dữ liệu yêu cầu được nhập vào từ
người dùng.
RL-TCPnet hỗ trợ cả hai loại trang web trên. Các trang web tĩnh thường được lưu
trữ trong hệ thống tập tin ROM ảo. Các tập tin được chuyển đổi thành C-code bằng công
cụ chuyển đổi tập tin FCARM.
Ví dụ minh họa tham khảo phụ lục 9 (trang 69).
Các Web Server cung cấp một ngôn ngữ kịch bản nhỏ để xử lý các trang web
động. Các HTTP Server xử lý các dòng tập tin mã nguồn kịch bản và gọi các chức năng
CGI khi cần thiết. Các kết quả trả về của chức năng CGI được tích hợp vào trang web kết
quả và gởi đến các máy client.
Mỗi dòng lệnh bắt đầu với một ký tự xác định một lệnh cho các thông dịch kịch
bản. Các ngôn ngữ kịch bản thì đơn giản và hoạt động như sau:
Lệnh Mô tả
i Dùng để include nội dung của một tập tin .inc.
t Lệnh xuất dòng văn bản ra trình duyệt.
c
Gọi một hàm C từ file HTTP_CGI.c để xử lý dòng này. Kết quả trả về sẽ
được xuất ra trình duyệt.
# Đây là dòng chú thích và được bỏ qua bởi trình thông dịch.
. Biểu thị dòng lệnh cuối cùng.
Bảng 3.1 Bảng ký tự đại diện của các lệnh trong các file script.
Cấu trúc hàm thông dịch và ví dụ minh họa tham khảo phụ lục 10 (trang 71).
42. 42
3.2. Công nghệ .NET
.NET Framework của Microsoft là một nền tảng lập trình tập hợp các thư viện lập
trình có thể được cài thêm hoặc đã có sẵn trong các hệ điều hành Windows. Nó cung cấp
những giải pháp thiết yếu cho những yêu cầu thông thường của các chương trình điện
toán như lập trình giao diện người dùng, truy cập dữ liệu, kết nối cơ sở dữ liệu, ứng dụng
web, các giải thuật số học và giao tiếp mạng. Ngoài ra, .NET Framework còn quản lý
việc thực thi các chương trình được viết dựa trên công nghệ .NET do đó người dùng cần
phải cài .NET Framework để có thể chạy các chương trình được viết trên nền .NET.
Về chức năng, .NET Framework có 3 khối chức năng là: Trình diễn
(Presentation), Dữ liệu (Data), Giao tiếp (Communication).
Về kỹ thuật, hiện tại Microsoft giới thiệu 4 kỹ thuật mới và nổi bật nhất là:
Windows CardSpace (InfoCard), Windows Presentation Foundation (Avalon), Windows
Communication Foundation (Indigo), Windows Workflow Foundation (Workflow).
3.2.1. Cấu trúc .NET FrameWork
.NET Framework bao gồm ba phần là bộ thực thi ngôn ngữ chung (Common
Language Runtime), các lớp lập trình hợp nhất hay còn gọi là các thư viện lớp cơ sở
(Base Class Libraries) và một phiên bản cấu thành của Microsoft Active Server Pages gọi
là Microsoft ASP.NET. Trên thực tế, ASP.NET và Windows Forms là hai thành phần
nằm trong Base Class Libraries, nên có thể xem .NET Framework bao gồm 2 phần chính
là Common Language Runtime (CLR) và .NET Framework Class Library (FCL). Một
trong các thành phần này đều có vai trò cực kỳ quan trọng trong việc phát triển các dịch
vụ và các ứng dụng .NET.
3.2.1.1. Common Language Runtime - Bộ thực thi ngôn ngữ chung
Common Language Runtime (gọi tắt là bộ thực thi – CLR) được xây dựng trên các
dịch vụ hệ điều hành. CLR là nền tảng của .NET Framework, nó đảm nhận các công việc
sau:
Là công cụ thực thi mã trung gian (tựa JVM).
Biên dịch (Just-in-time compiler).
43. 43
Thực thi mã nguồn.
Quản lý bộ nhớ.
Thực thi luồng (Thread execution).
Xử lý lỗi (Error-handling).
Xác nhận mã nguồn an toàn (managed code).
CLR đã được phát triển ở tầm cao hơn so với các runtime trước đây như VB-
runtime chẳng hạn, bởi nó đạt được những khả nǎng như tích hợp các ngôn ngữ, bảo mật
truy cập mã, quản lý thời gian sống của đối tượng và hỗ trợ gỡ lỗi.
Mã được biên dịch và hướng tới CLR có tên “managed code”. “Managed code”
cung cấp siêu dữ liệu (metadata) cần thiết cho CLR để cung cấp các dịch vụ hỗ trợ đa
ngôn ngữ, bảo mật mã, quản lý thời gian sống của đối tượng và quản lý bộ nhớ.
Nếu .NET Framework tồn tại (và đã được cài đặt) trên một hệ điều hành, thì hệ
điều hành đó có thể chạy bất kỳ chương trình .NET nào. Tính năng giúp một chương
trình có thể chạy (không có sửa đổi) trên nhiều hệ điều hành khác nhau được gọi là sự
độc lập về nền tảng. Code được viết một lần có thể được sử dụng trên mọi loại máy tính
mà không sửa đổi, giúp tiết kiệm cả thời gian và tiền bạc.
.NET Framework cũng cung cấp mức độ tương tác cao giữa các ngôn ngữ.
Chương trình viết bằng các ngôn ngữ khác nhau đều được biên dịch thành các phần
MSIL khác nhau có thể được kết hợp để tạo ra một chương trình thống nhất. MSIL cho
phép .NET Framework trở thành ngôn ngữ không phụ thuộc, bởi vì các chương trình
.NET không gắn với một ngôn ngữ lập trình cụ thể nào cả. Bất cứ ngôn ngữ nào có thể
được biên dịch sang MSIL được gọi là ngôn ngữ tương thích với .NET. Danh sách một số
ngôn ngữ lập trình khả dụng với .NET được liệt kê dưới đây:
.NET programming languages
Visual C#.
Visual J#.
….
44. 44
Common Language Infrastructure (CLI)
Mục đích của Common Language Infrastructure (CLI) là cung cấp một nền tảng
ngôn ngữ trung lập để phát triển và thực thi ứng dụng, bao gồm cả chức năng để xử lý
các lỗi, thu gom rác thải (garbage collection), bảo mật và khả năng tương tác. Bằng cách
thực hiện những khía cạnh cốt lõi của .NET Framework trong phạm vi của mình, CLI sẽ
không được gắn với một ngôn ngữ duy nhất mà sẽ có mặt trên nhiều ngôn ngữ được hỗ
trợ bởi .NET framework.
Biên dịch trong .NET
Common Language Runtime (CLR) là một phần trung tâm của .NET Framework
thực hiện các chương trình .NET.
Chương trình được biên dịch vào các hướng dẫn-cụ thể (machine-specific) của
máy theo hai bước. Đầu tiên, chương trình được dịch thành Microsoft Intermediate
Language (MSIL), trong đó xác định các hướng dẫn cho các CLR. Code được chuyển đổi
thành MSIL từ các ngôn ngữ khác và các nguồn có thể được kết hợp với nhau bằng CLR.
Các MSIL cho các thành phần của một ứng dụng được đặt vào file thực thi của ứng dụng
(được gọi là assembly). Khi ứng dụng thực thi, trình biên dịch (được gọi là biên dịch just-
in-time hoặc biên dịch JIT) CLR phiên dịch MSIL trong file thực thi vào mã máy (đối với
một nền tảng cụ thể), sau đó mã máy được thực thi trên nền tảng đó. MSIL là ngôn ngữ
trung gian, là một giải pháp để giúp cho các lập trình viên không cần quan tâm đến việc
lập trình bằng ngôn ngữ nào trong bộ .NET.
Tại sao phải biên dịch 2 lần:
Độc lập với phần cứng
NET framewwork có thể cài đặt trên nhiều platform.
Các chương trình .NET được thực hiện mà không có thay đổi code nào
Độc lập về ngôn ngữ
Các chương trình .NET không bị trói buộc vào một ngôn ngữ cụ thể nào cả.
Các chương trình trong .NET có thể được viết bởi nhiều ngôn ngữ trong
.NET.
45. 45
3.2.1.2. NET FRAMEWORK CLASS LIBRARY (FCL) – Thư viện lớp .NET
Framework
Microsoft Foundation Class (MFC) là bộ thư viện mà lập trình viên Visual C++ sử
dụng trong khi Java Foundation Class (JFC) là bộ thư viện dành cho các lập trình viên
Java. Bạn có thể xem .NET Framework Class Library (FCL) là bộ thư viện dành cho các
lập trình viên .NET.
Với hơn 80000 lớp đối tượng (với .NET 4.0) để gọi thực hiện đủ các loại dịch vụ
từ hệ điều hành, bạn có thể bắt đầu xây dựng ứng dụng bằng Notepad.exe. Nhiều người
lầm tưởng rằng các môi trường phát triển phần mềm như Visual Studio 98 hay Visual
Studio .NET là tất cả những gì cần để viết chương trình. Thực ra, chúng là những phần
mềm dùng làm vỏ bọc bên ngoài. Với chúng, bạn sẽ viết được các đoạn lệnh đủ các màu
xanh, đỏ, lỗi cú pháp được báo ngay khi đang gõ lệnh, thuộc tính của các đối tượng được
đặt ngay cửa sổ properties, giao diện được thiết kế theo phong cách trực quan…
Hầu hết các lớp được gom vào một namespace (không gian tên) gọi là system.
3.2.1.3. Sơ lược về NAMESPACE
.NET Framework được tạo bởi từ hàng trǎm lớp (class). Nhiều ứng dụng mà bạn
xây dựng trong .NET đang tận dụng các lớp này theo cách này hay cách khác. Vì số
lượng các lớp là quá lớn, .NET Framework tổ chức các lớp này vào một cấu trúc lớp
được gọi là một namespace. Một namespace có thể là con của một namespace lớn hơn.
Namespace lớn nhất trong .NET Framework là System. System là một Namespace cơ sở
trong .NET Framework. Tất cả các namespace được cung cấp trong .NET framework bắt
đầu với namespace cơ sở này. Ví dụ, những lớp phục vụ việc truy cập và thao tác dữ liệu
được tìm thấy trong namespace System.Data. Những ví dụ khác bao gồm System.IO,
System.XML, System.Collections, System.Drawing …
Lợi điểm của namespace là phân nhóm các lớp đối tượng, giúp người dùng dễ
nhận biết và sử dụng. Ngoài ra, namespace tránh việc các lớp đối tượng có tên trùng với
nhau không sử dụng được. .NET Framework cho phép bạn tạo ra các lớp đối tượng và
các namespace của riêng mình. Với hơn 80000 tên có sẵn, việc đặt trùng tên lớp của mình
46. 46
với một lớp đối tượng đã có là điều khó tránh khỏi. Namespace cho phép việc này xảy ra
bằng cách sử dụng một tên đầy đủ để truy xuất đến một lớp đối tượng. Ví dụ, nếu muốn
dùng lớp WebControls, bạn có thể dùng tên tắt của nó là WebControls hay tên đầy đủ là
System.Web.UI.WebControls.
3.2.2. Lập trình socket
Trong lập trình mạng, Socket là một API cung cấp các phương thức để giao tiếp
thông qua mạng, các lớp sau đây hỗ trợ việc lập trình socket trên nền .net(C#)
Lớp Namespace Mô tả
IPAddress System.Net Địa chỉ của giao thức Internet Protocol (IP).
IPEndPoint System.Net Đại diện cho địa chỉ trên một cổng.
TcpListener System.Net.Sockets Chờ kết nối từ các máy trạm.
Socket System.Net.Sockets Quản lý kết nối với máy trạm.
TcpClient System.Net.Sockets Cung cấp các kết nối client trên nền TCP.
NetworkStream System.Net.Sockets Cung cấp cơ chế luồng cho việc truy cập dữ
liệu qua mạng.
Bảng 3.2 Các đối tượng dùng để lập trình socket trong C#.
Kết nối Server-Client thông qua TCP/IP
Khi thực thi, server cần được xác định rõ địa chỉ IP và sẽ tiếp nhận thông tin trên
một port cụ thể. Server sẽ nằm trong trạng thái này cho đến khi client gửi đến một yêu
cầu kết nối. Sau khi được server chấp nhận, một kết nối sẽ hình thành cho phép server và
client giao tiếp với nhau.
Để hiểu rõ hơn ta thực hiện các bước sau để kết nối server và client sử dụng giao
thức TCP/IP trong C# (có thể chạy server và client trên cùng một máy).
47. 47
Server:
1. Tạo một đối tượng System.Net.Sockets.TcpListener để bắt đầu “lắng nghe” trên
một cổng cục bộ.
2. Đợi và chấp nhận kết nối từ client với phương thức AccepSocket(). Phương thức
này trả về một đối tượng System.Net.Sockets.Socket dùng để gửi và nhận dữ liệu.
3. Thực hiện giao tiếp với client.
4. Đóng Socket.
Thông thường quy trình này sẽ được đặt trong một vòng lặp (lặp lại bước 2) để
chấp nhận nhiều kết nối cùng lúc (sử dụng Thread) hoặc các kết nối lần lượt.
Client:
1. Tạo một đối tượng System.Net.Sockets.TcpClient.
2. Kết nối đến server với địa chỉ và port xác định với phương thức
TcpClient.Connect().
3. Lấy luồng (stream) giao tiếp bằng phương thức TcpClient.GetStream().
4. Thực hiện giao tiếp với server.
5. Đóng luồng và socket.
Hình 3.1 Mô hình truyền nhận Client-Server.
48. 48
Ví dụ : Gửi nhận dữ liệu dạng mảng các byte
Lớp NetworkStream và Socket cung cấp các phương thức gửi và nhận dữ liệu
dạng mảng các byte. Vì vậy bạn cần phải thực hiện các bước chuyển đổi dữ liệu sang
dạng byte và ngược lại. Trong ví dụ sau tôi sử dụng dữ liệu dạng văn bản ASCII trong
console, và dùng các lớp trong namespace System.Text để chuyển đổi. Có hai cách bạn
có thể áp dụng:
Dùng các static property của lớp abstract System.Text.Encoding với các phương
thức GetString() và GetBytes().
Tạo đối tượng có kiểu XXXEncoding (thừa kế từ System.Text.Encoding). Ví dụ:
UTF8Encoding, ASCIIEncoding, …
Một ví dụ gửi nhận dữ liệu đơn giản nhất sử dụng TCPListener, Socket (phía
server) và TCPClient, NetworkStream (phía client) dạng mảng byte với địa chỉ loop-back
127.0.0.1 trên cùng một máy.
CODE Server và Client tham khảo tại phụ lục 11 (trang 79)
3.3. Kết luận
Chương này cho ta cách nhìn tổng thể về hệ thống giám sát được tạo ra bởi 2 công
cụ chính là C# và Keil C, mỗi công cụ được sử dụng cho từng mục đích cụ thể sau:
.Net(C#) được sử dụng để thiết kế chương trình cho server trung tâm nhằm quản
lý các dữ liệu báo cáo từ các mạch giám sát.
Keil C dùng để viết các phần mềm nhúng cho các mạch giám sát.
49. 49
CHƯƠNG 4: CÁC KẾT QUẢ NGHIÊN CỨU
Những gì có trong chương 4 này chính là những kết quả nghiên cứu mà nhóm đã
đạt được trong quá trình tìm hiểu và thực hiện đề tài.
4.1. Khối nhà trạm
Khối này gồm các module hoạt động riêng biệt và được điều khiển bởi board xử lý
trung tâm stm32f4-Discovery.
Hình 4.1 Mạch giám sát gồm các tính năng cơ bản
50. 50
Nguyên lý hoạt động của mạch như sau: các module cảm biến khói, khí gas,
chuyển động, nhiệt độ khi được cấp nguồn sẽ liên tục gởi thông tin về cho board xử lý
trung tâm. Thông tin ấy sẽ được xử lý và chia làm hai hướng:
Tự động điều khiển các khối báo hiệu: nếu như có khói hoặc khí gas thì khối báo
động sẽ được kích hoạt và nếu như có chuyển động thì khối đèn, camera sẽ đồng
thời được kích hoạt.
Gởi thông tin của các khối trên mạch giám sát về phần mềm giám sát để người
dùng quản lý thông qua module Ethernet DP83848.
4.2. Khối quản lý nhà trạm
Khối này gồm chương trình quản lý các thiết bị cảm biến của mạch giám sát,
chương trình giao tiếp với khối quản lý trung tâm cũng như chương trình web cho phép
cài đặt các thông số hệ thống.
Hình 4.4 Giao diện trang web chính của mạch giám sát.
Trang web này gồm 2 tính năng: cho phép cài đặt thông số và thay đổi mật khẩu.
51. 51
Hình 4.5 Giao diện cài đặt thông số cho mạch giám sát.
ID: là mã thiết bị giám sát dùng để phân biệt với các thiết bị giám sát khác, mã này
chính là mã trạm mà chương trình trung tâm quản lý, thiết bị giám sát muốn đăng
nhập vào hệ thống thì mã trạm này phải được khai báo ở chương trình trung tâm
và ID của thiết bị này được lưu trong bảng STATION (trường ID).
Server IP Address : đây là địa chỉ mạng của máy tính trung tâm dùng để giám sát
các trạm, trạm khi khởi động sẽ sử dụng địa chỉ này để kết nối vào trung tâm và
định kỳ gởi các thông số trạng thái của trạm về trung tâm.
Port: đây là cổng kết nối của máy tính trung tâm.
Local IP Address: đây là địa chỉ của thiết bị giám sát, địa chỉ này phải cùng lớp
mạng với địa chỉ máy trung tâm bên trên.
Subnet mask: dùng để phân chia về mặc logic địa chỉ IP.
Default gateway: địa chỉ máy tính để giao tiếp với mạng bên ngoài.
DNS server: địa chỉ máy tính để phân giải tên miền.
52. 52
Hình 4.6 Giao diện đổi mật khẩu.
Mỗi mạch giám sát có một account duy nhất là Admin, vì vậy trang này chỉ đơn
giản là đổi mật khẩu cho Admin.
4.3. Khối quản lý trung tâm
Khối này có vai trò trung gian cho khối quản lý nhà trạm và khối giao diện người
sử dụng, khối này có vai trò tập hợp trạng thái của các mạch giám sát để gởi tới chương
trình web của người dùng, cũng như gởi các lệnh lấy thông tin. Giao diện chính của khối
này như hình sau:
Hình 4.7 Giao diện chính của khối trung tâm.
53. 53
Giao diện chính gồm 4 phần
Connected station: thể hiện thông tin của các trạm hiện đang kết nối vào trung
tâm.
Connected browser: thể hiện thông tin các trang web giám sát đang kết nối vào
trung tâm để theo dõi các trạm giám sát.
Command from browser: hiển thị các lệnh yêu cầu từ các trang web người dùng
gởi về các trạm giám sát.
Data from stations: hiển thị các thông tin trạng thái của các trạm giám sát gởi về
cho trung tâm. Bao gồm 2 phần chính: thời gian và thông số của các khối trên
mạch giám sát: 1: nhiệt độ, 2: chuyển động, 3: camera, 4: đèn, 5: khói, 6: khí gas,
7: báo động. Ngoại trừ nhiệt độ hiển thị số liệu nhiệt độ của môi trường thì các
thông số từ 2 đến 7 sẽ thông báo trạng thái đang bật/tắt của các khối trên mạch
giám sát.
Chức năng Tool-View Log: cho phép xem lại tất cả các biến cố của trung tâm,
phục vụ cho việc debug khi chương trình phát sinh kết quả ngoài ý muốn.
Hình 4.8 Giao diện View Log.
54. 54
Chức năng Tool-Analyse log: cho phép xem lại tất cả các biến cố của trung
tâm kèm thêm tính năng lọc các thông tin biến cố theo ý người dùng.
Hình 4.9 Giao diện Analyse Log.
4.4. Kết luận
Chương 4 đã trình bày các kết quả đạt được. Mạch và hệ thống giám sát đã hoạt
động hiệu quả, đảm bảo tính chính xác của từng phần. Chương 5 sẽ kết luận về các nội
dung nghiên cứu đã được thực hiện và kiến nghị về các lĩnh vực có thể ứng dụng kết quả
nghiên cứu cũng như đề xuất những định hướng nghiên cứu trong tương lai.
55. 55
CHƯƠNG 5: KẾT LUẬN VÀ KIẾN NGHỊ
Chương 5 này sẽ tóm tắt lại các nội dung nghiên cứu đã thực hiện cũng như đưa ra
các kiến nghị cho tương lai.
5.1. Kết quả đạt được
Đề tài thiết kế và thi công mạch giám sát đã thực hiện được các công việc sau:
- Thiết kế và thi công hệ thống phần cứng mạch giám sát gồm các module sau:
Module báo khói.
Module giám sát nhiệt độ.
Module cảm biến chuyển động.
Module cảm biến khí gas.
Module điều khiển camera.
Module điều khiển đèn.
- Xây dựng hệ thống phần mềm giám sát mạch gồm các khối sau:
Khối chương trình nhúng tại các mạch giám sát gồm:
Chức năng cài đặt các thông số của mạch giám sát.
Chức năng đổi mật khẩu.
Chương trình nhúng để giám sát và gởi thông số về server trung tâm.
Khối chương trình server trung tâm gồm:
Chức năng liên kết với các trạm để nhận thông tin trạng thái.
Chức năng liên kết với các người dùng đầu cuối (giao diện web) để
hiển thị thông tin nhận được cho người dùng quan sát từ xa được
mạch trên máy tính.
Khối chương trình web cho phép người dùng giám sát các trạm từ xa, khối
này gồm:
Chức năng cho phép cài đặt các thông số hệ thống.
Chức năng cho phép khai báo tài khoản người truy cập.
Chức năng cho phép khai báo thông tin các trạm.
Kết luận: đề tài đã hoàn thành tất cả các mục tiêu đã đề ra trong bản thuyết minh đề tài.
56. 56
5.2. Kiến nghị
5.2.1. Áp dụng thực tế
Hệ thống giám sát là hệ thống cho phép người quản trị có thể giám sát các hoạt
động của từng thiết bị, điều khiển và quản lý một cách hiệu quả nhà trạm thông qua mạng
nội bộ. Hệ thống này có thể được áp dụng giám sát tại các hộ gia đình, xưởng sản xuất và
các phòng học, phòng thí nghiệm tại trường Đại Học Sài Gòn nhằm:
Giám sát được trạng thái mọi lúc, mọi nơi.
Tăng độ bền thiết bị.
Tăng cường tính bảo vệ, an toàn cho con người.
Tiết kiệm chi phí điện năng.
Giảm thiểu chi phí nhân công.
5.2.2. Hướng phát triển
Hệ thống mạch giám sát là đề tài ứng dụng các dạng cảm biến để giám sát và điều
khiển các thiết bị liên quan, vì vậy đây là một dạng đề tài mở, ta có thể phát triển đề tài
này bằng cách nghiên cứu tích hợp thêm các dạng cảm biến như: cảm biến độ ẩm, cảm
biến vỡ kính, cảm biến điện lưới, cảm biến ngập nước,... Ngoài ra chúng ta có thể nâng
cấp hệ thống giám sát bằng việc xây dựng phần mềm quản lý và điều khiển mạch giám
sát từ xa, không dây. Nhằm phát triển đề tài thành những hệ thống giám sát trên nhiều
lĩnh vực khác nhau phục vụ cho nhu cầu thiết thực trong môi trường thực tiễn.
57. 57
TÀI LIỆU THAM KHẢO
[1] Keil, ARM Product Manuals,
http://www.keil.com/support/man_arm.htm, 2015.
[2] TS.Văn Tấn Lượng, ThS.Lê Quốc Đán, Giáo trình Kĩ thuật vi xử lý.
[3] Microsoft, C# Programming Guide,
https://msdn.microsoft.com/en-us/library/67ef8sbd.aspx, 2013.
[4] Microsoft, Sockets,
https://msdn.microsoft.com/en-us/library/b6xa24z5(v=vs.110).aspx, 2015.
[5] ThS.Trần Minh Nhật, Đề tài hệ thống giám sát nhà trạm viễn thông BTS.
[6] ST, Discovery kit for STM32F407/417 lines,
http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF252419, 2015.
[7] http://www.alldatasheet.com/
58. 58
PHỤ LỤC
1. Code tự động điều khiển camera, đèn, báo động
while(1)
{
timer_tick();
//bat tat Bao dong
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_4)==0||GPIO_ReadInputDataBit(
GPIOA, GPIO_Pin_3)==1)
GPIO_WriteBit(GPIOB, GPIO_Pin_1,1);
else GPIO_WriteBit(GPIOB, GPIO_Pin_1,0);
//bat tat Camera, May lanh
if(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_5)==1)
{
GPIO_WriteBit(GPIOB, GPIO_Pin_7,1);
GPIO_WriteBit(GPIOB, GPIO_Pin_8,1);
}
else
{
GPIO_WriteBit(GPIOB, GPIO_Pin_7,0);
GPIO_WriteBit(GPIOB, GPIO_Pin_8,0);
}
}
2. Code xử lý cài đặt thông số của trạm
do {
/* Parse all returned parameters. */
dat = http_get_var (dat, var, 40);
if (var[0] != 0) {
/* Parameter found, returned string is non 0-length. */
62. 62
pb4=GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_4); //Khi gas
temp=pb4*10;
p=(char*)&temp;
data[25]=1;//kieu float
data[26]=5;//VisibleIndex=Khi gas
data[27]=0;//nguong
data[28]=p[0];
data[29]=p[1];
pb1=GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_1);
temp =pb1*10;
p=(char*)&temp;
data[30]=1;//kieu float
data[31]=6;//VisibleIndex=Bao dong
data[32]=0;//nguong
data[33]=p[0];
data[34]=p[1];
AddDataPacketToQueue(Data_List_V2, data, 35, 0);
}
4. Code xử lý gói tin thông báo trạng thái
private void Manager_ControlStateEvent(object sender, ControlStateEvent e)
{
VTracDataContext db;
try
{
if (string.IsNullOrEmpty(connectionString))
{
63. 63
return;
}
// Kiểm tra giờ từ thiết bị gởi lên với giờ tại Server
DateTime now = DateTime.Now;
if ((e.Date - now).TotalDays > 30)
{
// Xuất ra file log
log.WarnFormat("Giờ tại trạm {0} là '{1}' sai lệch với giờ tại Server
là '{2}'", e.StationID, e.Date.ToString(), now.ToString());
}
db = new VTracDataContext(connectionString);
Config_Station_Control
stationControl = db.Config_Station_Controls.Where(sC => sC.StationID ==
e.StationID && sC.VisibleIndex == e.VisibleIndex).FirstOrDefault();
if (stationControl != null)
{
// Lưu trạng thái điều khiển vào Database
DataControl dataControl = new DataControl { StationID =
e.StationID, Value = e.State, Time = e.Date, ControlName =
stationControl.ControlLabel, ControlID = stationControl.ControlID };
db.DataControls.InsertOnSubmit(dataControl);
db.SubmitChanges();
// Cập nhật trạng thái cho những nút trạng thái trên web
UpdateWebFormControl(e.StationID.ToString(), "Control",
e.State.ToString(), e.VisibleIndex);
}
else
64. 64
{
// Xuất ra file log
log.ErrorFormat("Không tìm thấy dòng có VisibleIndex={0} và
StationID={1} trong bảng Config_Station_Control", e.VisibleIndex, e.StationID);
}
}
catch (Exception ex)
{
// Xuất ra file log
log.Error("Hàm Manager_ControlStateEvent đã phát ra Exception ",
ex.Message);
}
}
5. Ví dụ minh họa hoạt động của cấu trúc round-robin.
int counter0;
int counter1;
__task1 void job0 (void) {
os_tsk_create (job1, 1); // start job 1
while (1) { // endless loop
counter0++; // Increment counter 0
}
}
__task void job1 (void) {
while (1) { // Endless loop
counter1++; // Increment counter 1
}
}
main (void) { // the main function
65. 65
os_sys_init (job0); // starts only job 0
}
Chương trình bắt đầu với job0, hàm os_tsk_create tạo công việc, các chức năng nhiệm vụ
job0 và job1 là vòng lặp đếm đơn giản. Sau khi hết thời gian thực hiện job0 thì job1 sẽ
được thực thi. Ngay khi thời gian thực thi job1 hết hệ thống tiếp tục với job0.
6. Chờ một khoảng thời gian xác định (Wait for Time Delay)
int counter0;
int counter1;
__task void job0 (void) {
os_tsk_create (job1, 1); // start job 1
while (1) {
counter0++; // Increment counter 0
os_dly_wait (3); // Wait 3 timer ticks
}
}
__task void job1 (void) {
while (1) {
counter1++; // Increment counter 1
os_dly_wait (5); // Wait 5 timer ticks
}
}
7. MAILBOX
os_mbx_declare(v_mail, 20); // mailbox with 20 entries
__task void job0 (void) {
int i, res;
os_mbx_init (v_mail, sizeof (v_mail)); // create mailbox first
os_tsk_create (job1, 2); // before waiting tasks
66. 66
for (i = 0; i < 30; ) { // send 30 mail
res = os_mbx_send (v_mail, (void *) i, 1000);
if (res == OS_R_OK) i++; // check that mail send OK
}
os_tsk_delete_self (); // when done delete own task
}
__task void job1 (void) {
int v, res;
while (1) {
res = os_mbx_wait (v_mail, (void **) &v, 0xFFFF); // receive mail
if (res == OS_R_OK || s == OS_R_MBX) { // check status
printf ("nReceived v=%d res=%d", v, res); // use when correct
}
}
}
8. Hoạt động của RL-TCPnet
#include <rtl.h>
U8 tcp_soc;
U8 soc_state;
BOOL wait_ack;
void main (void) {
init_ ();
tcp_soc = tcp_get_socket (TCP_TYPE_CLIENT, 0, 120, tcp_callback);
soc_state = 0;
while (1) {
timer_poll ();
67. 67
main_TcpNet ();
send_data ();
}
}
void send_data (void) {
static const U8 rem_IP[4] = {192,168,0,100};
static int bcount;
U32 max;
U8 *sendbuf;
switch (soc_state) {
case 0:
tcp_connect (tcp_soc, rem_IP, 1000, 0);
bcount = 0;
wait_ack = __FALSE;
soc_state = 1;
return;
case 2:
if (wait_ack == __TRUE) {
return;
}
max = tcp_max_dsize (tcp_soc);
sendbuf = tcp_get_buf (max);
for (i = 0; i < max; i += 2) {
sendbuf[i] = bcount >> 8;
sendbuf[i+1] = bcount & 0xFF;
if (bcount >= 32768) {
soc_state = 3;
68. 68
break;
}
}
tcp_send (tcp_soc, sendbuf, i);
wait_ack = __TRUE;
return;
case 3:
if (wait_ack == __TRUE) {
return;
}
tcp_close (tcp_soc);
soc_state = 4;
return;
}
}
U16 tcp_callback (U8 soc, U8 event, U8 *ptr, U16 par) {
/* This function is called on TCP event */
switch (event) {
..
case TCP_EVT_CONNECT:
/* Socket is now connected and ready to send data. */
soc_state = 2;
break;
case TCP_EVT_ACK:
/* Our sent data has been acknowledged by remote peer */
wait_ack = __FALSE;
break;
69. 69
..
}
return (0);
}
9. Ví dụ minh họa hoạt động web server
Ví dụ : ta có file system.cgi có nội dung như sau:
t <HTML>
t <BODY TEXT=#000000 BGCOLOR=#ccddff LINK=#0000FF
VLINK=#0000FF ALINK=#FF0000>
t <FORM ACTION=finish.cgi METHOD=POST NAME=CGI>
t <TABLE BORDER=0 WIDTH=400>
c s1<TR><TD WIDTH=200>Authentication</TD> <TD WIDTH=200>
<b>%s</b></TD></TR>
t <TR><TD>Password for user 'Admin'</TD>
c s2<TD><INPUT TYPE=password NAME=pw SIZE=10 MAXLENGTH=10
VALUE="%s"> </TD> </TR>
t <TR><TD>Retype your password</TD>
c s3<TD><INPUT TYPE=password NAME=pw2 SIZE=10 MAXLENGTH=10
VALUE="%s"> </TD> </TR>
t <TR><TD colspan="2" align="center"><INPUT TYPE=SUBMIT NAME=set
VALUE="Change" id="sbm"> </TD> </TR>
t </TABLE>
t </FORM>
t </BODY>
t </HTML>
.
Để nhúng trang web này vào ARM ta phải chuyển trang này sang dạng C-Code
bằng lệnh sau :
FCARM system.cgi
70. 70
Sau khi dịch code trang web có dạng như sau:
/*-- File: system.cgi, 587 bytes --*/
0x01,0x3C,0x48,0x54,0x4D,0x4C,0x3E,0x3C,0x42,0x4F,0x44,0x59,0x20,0x54,0x45,
0x58,0x54,0x3D,0x23,0x30,0x30,0x30,0x30,0x30,0x30,0x20,0x42,0x47,0x43,0x4F,
0x4C,0x4F,0x52,0x3D,0x23,0x63,0x63,0x64,0x64,0x66,0x66,0x20,0x4C,0x49,0x4E,
0x4B,0x3D,0x23,0x30,0x30,0x30,0x30,0x46,0x46,0x20,0x56,0x4C,0x49,0x4E,0x4B,
0x3D,0x23,0x30,0x30,0x30,0x30,0x46,0x46,0x20,0x41,0x4C,0x49,0x4E,0x4B,0x3D,
0x23,0x46,0x46,0x30,0x30,0x30,0x30,0x3E,0x01,0x3C,0x46,0x4F,0x52,0x4D,0x20,
0x41,0x43,0x54,0x49,0x4F,0x4E,0x3D,0x66,0x69,0x6E,0x69,0x73,0x68,0x2E,0x63,
0x67,0x69,0x20,0x4D,0x45,0x54,0x48,0x4F,0x44,0x3D,0x50,0x4F,0x53,0x54,0x20,
0x4E,0x41,0x4D,0x45,0x3D,0x43,0x47,0x49,0x3E,0x3C,0x54,0x41,0x42,0x4C,0x45,
0x20,0x42,0x4F,0x52,0x44,0x45,0x52,0x3D,0x30,0x20,0x57,0x49,0x44,0x54,0x48,
0x3D,0x34,0x30,0x30,0x3E,0x02,0x73,0x31,0x3C,0x54,0x52,0x3E,0x3C,0x54,0x44,
0x20,0x57,0x49,0x44,0x54,0x48,0x3D,0x32,0x30,0x30,0x3E,0x41,0x75,0x74,0x68,
0x65,0x6E,0x74,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x3C,0x2F,0x54,0x44,0x3E,
0x3C,0x54,0x44,0x20,0x57,0x49,0x44,0x54,0x48,0x3D,0x32,0x30,0x30,0x3E,0x3C,
0x62,0x3E,0x25,0x73,0x3C,0x2F,0x62,0x3E,0x3C,0x2F,0x54,0x44,0x3E,0x3C,0x2F,
0x54,0x52,0x3E,0x01,0x3C,0x54,0x52,0x3E,0x3C,0x54,0x44,0x3E,0x50,0x61,0x73,
0x73,0x77,0x6F,0x72,0x64,0x20,0x66,0x6F,0x72,0x20,0x75,0x73,0x65,0x72,0x20,
0x27,0x41,0x64,0x6D,0x69,0x6E,0x27,0x3C,0x2F,0x54,0x44,0x3E,0x02,0x73,0x32,
0x3C,0x54,0x44,0x3E,0x3C,0x49,0x4E,0x50,0x55,0x54,0x20,0x54,0x59,0x50,0x45,
0x3D,0x70,0x61,0x73,0x73,0x77,0x6F,0x72,0x64,0x20,0x4E,0x41,0x4D,0x45,0x3D,
0x70,0x77,0x20,0x53,0x49,0x5A,0x45,0x3D,0x31,0x30,0x20,0x4D,0x41,0x58,0x4C,
0x45,0x4E,0x47,0x54,0x48,0x3D,0x31,0x30,0x20,0x56,0x41,0x4C,0x55,0x45,0x3D,
0x22,0x25,0x73,0x22,0x3E,0x3C,0x2F,0x54,0x44,0x3E,0x3C,0x2F,0x54,0x52,0x3E,
0x01,0x3C,0x54,0x52,0x3E,0x3C,0x54,0x44,0x3E,0x52,0x65,0x74,0x79,0x70,0x65,
0x20,0x79,0x6F,0x75,0x72,0x20,0x70,0x61,0x73,0x73,0x77,0x6F,0x72,0x64,0x3C,
0x2F,0x54,0x44,0x3E,0x02,0x73,0x33,0x3C,0x54,0x44,0x3E,0x3C,0x49,0x4E,0x50,
72. 72
break;
case 'c':
/* TCP status - file 'tcp.cgi' */
..
break;
case 'd':
/* System password - file 'system.cgi' */
switch (env[2]) {
case '1':
len = sprintf(buf,&env[4],http_EnAuth ? "Enabled" : "Disabled");
break;
case '2':
len = sprintf(buf,&env[4],http_auth_passw);
break;
}
break;
}
return (len);
}
Ví dụ minh họa quá trình hoạt động trong khi thực thi trang web CGI:
Tập tin password_h.inc
<HTML>
<HEAD>
<TITLE>System Settings</TITLE>
</HEAD>
<BODY TEXT=#000000 BGCOLOR=#ccddff LINK=#0000FF VLINK=#0000FF
ALINK=#FF0000>
<H2 ALIGN=CENTER>System Settings</H2>
<FORM ACTION=index.htm METHOD=POST NAME=CGI>
73. 73
<TABLE BORDER=0 WIDTH=99%>
<TR BGCOLOR=#aaccff>
<TH WIDTH=40%>Item</TH>
<TH WIDTH=60%>Setting</TH>
</TR>
Tập tin password_f.inc
<TR>
<TD> </TD>
<TD> </TD>
</TR>
<TR>
<TD></TD>
<TD align="right">
<INPUT TYPE=SUBMIT NAME=set VALUE="Change" id="sbm">
<INPUT TYPE=RESET VALUE="Undo">
<INPUT TYPE=BUTTON VALUE="Home" OnClick="location='/index.htm'">
</TD>
</TR>
</FORM>
<p>
This page allows you to change the system <b>Password</b>, for the username
<b>admin</b>. Default <b>realm</b>, <b>user</b> and <b>password</b> can
be set in configuration file. This Form uses a <b>POST</b> method to send
data back to a Web server. You need to click on <b>Change</b> button to ctivate
the changes.
</p>
</BODY>
</HTML>
Tập tin system.cgi
i password_h.inc
c d 1 <TR><TD><IMG SRC=pabb.gif> Authentication</TD> <TD> <b>%s</b> </TD></TR>
74. 74
t <TR><TD><IMG SRC=pabb.gif>Password for user 'admin'</TD>
c d 2 <TD><INPUT TYPE=TEXT NAME=pw SIZE=10 MAXLENGTH=10 VALUE="%s"></TD></TR>
t <TR><TD><IMG SRC=pabb.gif>Retype your password</TD>
c d 2 <TD><INPUT TYPE=TEXT NAME=pw2 SIZE=10 MAXLENGTH=10 VALUE="%s"></TD></TR>
i password_f.inc
.
Giải thích: Khi biên dịch, từ 3 file trên sẽ chỉ tạo ra một file duy nhất theo nguyên
tắc sau: lấy code của file password_h.inc, kế đến lấy code của file system.cgi, sau cùng là
code của file password_f.inc. Khi đó đoạn code tổng hợp có dạng.
CODE:
<HTML>
<HEAD>
<TITLE>System Settings</TITLE>
</HEAD>
<BODY TEXT=#000000 BGCOLOR=#ccddff LINK=#0000FF VLINK=#0000FF
ALINK=#FF0000>
<H2 ALIGN=CENTER>System Settings</H2>
<FORM ACTION=index.htm METHOD=POST NAME=CGI>
<TABLE BORDER=0 WIDTH=99%>
<TR BGCOLOR=#aaccff>
<TH WIDTH=40%>Item</TH>
<TH WIDTH=60%>Setting</TH>
</TR>
c d 1 <TR><TD><IMG SRC=pabb.gif>Authentication</TD><TD><b>%s</b></TD></TR>
t <TR><TD><IMG SRC=pabb.gif>Password for user 'admin'</TD>
c d 2 <TD><INPUT TYPE=TEXT NAME=pw SIZE=10 MAXLENGTH=10
VALUE="%s"></TD></TR>
t <TR><TD><IMG SRC=pabb.gif>Retype your password</TD>
c d 2 <TD><INPUT TYPE=TEXT NAME=pw2 SIZE=10 MAXLENGTH=10
VALUE="%s"></TD></TR>
<TR>
<TD> </TD>
75. 75
<TD> </TD>
</TR>
<TR>
<TD></TD>
<TD align="right">
<INPUT TYPE=SUBMIT NAME=set VALUE="Change" id="sbm">
<INPUT TYPE=RESET VALUE="Undo">
<INPUT TYPE=BUTTON VALUE="Home" OnClick="location='/index.htm'">
</TD>
</TR>
</FORM>
<p>
This page allows you to change the system <b>Password</b>, for the username
<b>admin</b>. Default <b>realm</b>, <b>user</b> and <b>password</b> can
be set in configuration file. This Form uses a <b>POST</b> method to send
data back to a Web server. You need to click on <b>Change</b> button to activate
the changes.
</p>
</BODY>
</HTML>
Đoạn code này có dạng .CGI, do đó nó sẽ được thực thi động. Đối với các lệnh không
phải dạng c (có ký tự đứng đầu khác "c") thì chương trình giữ nguyên, đối với lệnh dạng
c thì chương trình này sẽ chuyển cho đoạn code sau thực thi.
Đoạn code xử lý các file .CGI có dạng như sau
CODE:
void cgi_process_data (U8 code, U8 *dat, U16 len) {
/* This function is called by HTTP server to process the returned Data */
/* for the CGI Form POST method. It is called on SUBMIT from the browser. */
if (len == 0) {
76. 76
/* No data or all items (radio, checkbox) are off. */
return;
}
var = (U8 *)alloc_mem (50);
stpassw = 0;
str_copy ((U8*)m_pNetCfg->lng, (U8*)"0");
str_copy ((U8*)m_pNetCfg->lat, (U8*)"0");
do {
/* Parse all returned parameters. */
dat = http_get_var (dat, var, 40);
if (var[0] != 0) {
/* Parameter found, returned string is non 0-length. */
if (str_scomp (var, (unsigned char *)"pw=") == __TRUE) {
/* Change password. */
str_copy (passw, var+3);
stpassw |= 1;
}
else if (str_scomp (var, (unsigned char *)"pw2=") == __TRUE) {
/* Retyped password. */
str_copy (retyped, var+4);
stpassw |= 2;
}
else if (str_scomp (var, (unsigned char *)"LocalIp=") == __TRUE) {
p=var+8;
GanIP(m_pNetCfg->IP_Addr,(char*)p);
}
else if (str_scomp (var, (unsigned char *)"Port=") == __TRUE) {
p=var+5;
78. 78
}
} while (dat);
if (stpassw == 0x03) {
len = strlen ((char*)passw);
if (mem_comp (passw, retyped, len) == __TRUE) {
/* OK, both entered passwords the same, change it. */
str_copy ((U8*)m_pNetCfg->Password, passw);
}
}
}
Giải thích: các dạng lệnh c thường có chuổi điều khiển %s, đây là chuổi dùng để
chèn các dữ liệu người dùng. Còn thông tin nhận được từ người dùng sẽ được chứa trong
con trỏ dat với chiều dài được lưu trong tham số len.
Tập tin system.cgi sau khi thông dịch
<HTML>
<HEAD>
<TITLE>System Settings</TITLE>
</HEAD>
<BODY TEXT=#000000 BGCOLOR=#ccddff LINK=#0000FF VLINK=#0000FF
ALINK=#FF0000>
<H2 ALIGN=CENTER>System Settings</H2>
<FORM ACTION=index.htm METHOD=POST NAME=CGI>
<TABLE BORDER=0 WIDTH=99%>
<TR BGCOLOR=#aaccff>
<TH WIDTH=40%>Item</TH>
<TH WIDTH=60%>Setting</TH>
</TR>
<TR><TD><IMG SRC=pabb.gif>Authentication</TD><TD><b>Enabled</b></TD></TR>
<TR><TD><IMG SRC=pabb.gif>Password for user 'admin'</TD>
<TD><INPUT TYPE=TEXT NAME=pw SIZE=10 MAXLENGTH=10
VALUE="test"></TD></TR>
79. 79
<TR><TD><IMG SRC=pabb.gif>Retype your password</TD>
<TD><INPUT TYPE=TEXT NAME=pw2 SIZE=10 MAXLENGTH=10
VALUE="test"></TD></TR>
<TR>
<TD> </TD>
<TD> </TD>
</TR>
<TR>
<TD></TD>
<TD align="right">
<INPUT TYPE=SUBMIT NAME=set VALUE="Change" id="sbm">
<INPUT TYPE=RESET VALUE="Undo">
<INPUT TYPE=BUTTON VALUE="Home" OnClick="location='/index.htm'">
</TD>
</TR>
</FORM>
<p>This page allows you to change the system <b>Password</b>, for the
username <b>admin</b>. Default <b>realm</b>, <b>user</b> and <b> password
</b> can be set in configuration file. This Form uses a <b>POST</b> method to
send data back to a Web server. You need to click on <b>Change</b> button to
activate the changes.
</p>
</BODY>
</HTML>
11. Code Server và Client (C#)
Server:
using System;
using System.Text;
using System.Net;
80. 80
using System.Net.Sockets;
public class Y2Server {
private const int BUFFER_SIZE=1024;
private const int PORT_NUMBER=9999;
static ASCIIEncoding encoding=new ASCIIEncoding();
public static void Main() {
try {
IPAddress address = IPAddress.Parse("127.0.0.1");
TcpListener listener=new TcpListener(address,PORT_NUMBER);
// 1. listen
listener.Start();
Console.WriteLine("Server started on "+listener.LocalEndpoint);
Console.WriteLine("Waiting for a connection...");
Socket socket=listener.AcceptSocket();
Console.WriteLine("Connection received from " +
socket.RemoteEndPoint);
// 2. receive
byte[] data=new byte[BUFFER_SIZE];
82. 82
using System.Net;
using System.Text;
using System.Net.Sockets;
public class Y2Client{
private const int BUFFER_SIZE=1024;
private const int PORT_NUMBER=9999;
static ASCIIEncoding encoding= new ASCIIEncoding();
public static void Main() {
try {
TcpClient client = new TcpClient();
// 1. connect
client.Connect("127.0.0.1",PORT_NUMBER);
Stream stream = client.GetStream();
Console.WriteLine("Connected to Y2Server.");
Console.Write("Enter your name: ");
string str = Console.ReadLine();