ĐẠI HỌC QU TRƯỜ KHOA ĐI LUẬN VĂN T ĐIỀU KHIỂ VỚI CÔNG NGH THÔNG QUA M TP HỒ CHÍ MINH, THÁNG C QUỐC GIA TP HỒ CHÍ MINH ỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ o0o N VĂN TỐT NGHIỆP ĐẠI.
ĐẠI HỌC C QUỐC QU GIA TP.HỒ CHÍ MINH TRƯỜ ỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐI ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ -o0o - LUẬN N VĂN T TỐT NGHIỆP ĐẠI HỌC ĐIỀU KHIỂ ỂN VÀ GIÁM SÁT THIẾT T BỊ VỚII CÔNG NGHỆ NGH GPRS THÔNG QUA M MẠNG INTERNET GVHD: Th.S TRẦN N HOÀNG QUÂN SVTH: LƯU TRỌNG NG NHÂN MSSV: 40901805 TP HỒ CHÍ MINH, THÁNG NĂM 2014 ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập – Tự – Hạnh phúc -✩ Số: /BKĐT Khoa: Điện – Điện tử Bộ Môn: Điện Tử -✩ - NHIỆM VỤ LUẬN VĂN TỐT NGHIỆP HỌ VÀ TÊN: LƯU TRỌNG NHÂN MSSV: 40901805 NGÀNH: ĐIỆN TỬ - VIỄN THÔNG LỚP : DD09DV6 Đề tài: Điều khiển giám sát thiết bị với công nghệ GPRS qua mạng Internet Nhiệm vụ (Yêu cầu nội dung số liệu ban đầu): Thiết kế thệ thống điều khiển giám sát thiết bị với công nghệ GPRS qua mạng Internet gồm nội dung: - Điều khiển thiết bị relay từ trang web hiển thị trạng thái thiết bị trang web - Đọc giá trị cảm biến chuyển động hiển thị trang web, ghi lại thời gian phát chuyển động - Trang web truy cập thông qua module SIM900A thiết lập để kết nối GPRS Ngày giao nhiệm vụ luận văn: 02/2014 Ngày hoàn thành nhiệm vụ: 06/06/2014 Họ tên người hướng dẫn: Phần hướng dẫn Th.S TRẦN HOÀNG QUÂN Nội dung yêu cầu LVTN thông qua Bộ Môn Tp.HCM, ngày… tháng… năm 20 CHỦ NHIỆM BỘ MÔN PHẦN DÀNH CHO KHOA, BỘ MÔN: Người duyệt (chấm sơ bộ): Đơn vị: Ngày bảo vệ : Điểm tổng kết: Nơi lưu trữ luận văn: NGƯỜI HƯỚNG DẪN CHÍNH Lời cảm ơn GVHD: Th.S Trần Hoàng Quân LỜI CẢM ƠN Đầu tiên, em xin chân thành cảm ơn thầy Trần Hoàng Quân, người giúp đỡ, hướng dẫn em tận tình suốt q trình thực Đồ án mơn học 2, Thực tập tốt nghiệp trình thực Luận văn tốt nghiệp Để đạt đến ngày hôm nay, nhắc đến dạy bảo, hướng dẫn tận tình thầy, Trường Đại học Bách khoa TP HCM, đặc biệt thầy cô khoa Điện – Điện tử giúp em có kiến thức để thực Luận văn tốt nghiệp Cuối cùng, em xin cảm ơn tất bạn bè, người bên cạnh động viên, giúp đỡ em suốt trình học tập trường thời gian thực Luận văn tốt nghiệp Tp Hồ Chí Minh, ngày 06 tháng 06 năm 2014 Lưu Trọng Nhân i Luận văn tốt nghiệp GVHD: Th.S Trần Hồng Qn TĨM TẮT LUẬN VĂN Luận văn trình bày hệ thống điều khiển giám sát từ xa qua mạng Internet ứng dụng công nghệ GPRS Hệ thống giúp cho người sử dụng điều khiển thiết bị giám sát trạng thái thiết bị từ xa thiết bị kết nối Internet máy vi tính, điện thoại di động, … Nguyên lý hoạt động cụ thể hệ thống sau: - Vi điều khiển gởi lệnh AT cho Sim900A để thiết lập kết nối GPRS - Vi điều khiển đọc trạng thái thiết bị Nếu có thay đổi, vi điểu khiển gởi lệnh AT cho Sim900A để gởi thông tin trạng thái đến cho sở liệu - Vi điều khiển gởi lệnh AT cho Sim900A để lấy thông tin yêu cầu từ sở liệu Từ yêu cầu đó, vi điều khiển điều khiển thiết bị tương ứng thơng qua relay - Trang web có nhiệm vụ hiển thị trạng thái thiết bị thời gian thay đổi trạng thái thiết bị Ngươi dùng điều khiển thiết bị thông qua lựa chọn trang web ii Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân MỤC LỤC GIỚI THIỆU 1.1 Tổng quan .1 1.2 Tình hình nghiên cứu ngồi nước 1.3 Nhiệm vụ luận văn LÝ THUYẾT 2.1 2.1.1 Sơ lược GSM .3 2.1.2 Sơ lược GPRS 2.2 Module SIM900A 2.2.1 Sơ lược SIM900A 2.2.2 Các đặc điểm SIM900A 2.2.3 Sơ đồ chức SIM900A 10 2.2.4 Các giao tiếp SIM900A 11 2.3 Sơ lược GSM GPRS .3 ARM Cortex-M Vi điều khiển STM32F4 19 2.3.1 Sơ lược cấu trúc ARM .19 2.3.2 ARM Cortex-M 20 2.3.3 Vi điều khiển STM32F4 21 2.4 Kit STM32F4 Discovery 23 2.5 Cảm biến phát chuyển động PIR 25 2.6 Sơ lược LCD 16x2 27 2.7 Nguồn Buck (Step-down) IC ổn áp LM2596 31 2.7.1 Nguồn Buck (Step-down) .31 2.7.2 IC ổn áp LM2596 32 THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG 34 3.1 Yêu cầu thiết kế 34 3.2 Sơ đồ khối hệ thống 34 3.3 Thiết kế sơ đồ nguyên lý 35 iii Luận văn tốt nghiệp 3.3.1 Nguồn cung cấp 35 3.3.2 Breakout Board SIM900A .37 3.3.3 Khối Relay 38 3.3.4 Cảm biến chuyển động PIR 40 3.3.5 Mạch LCD 41 3.4 Kết nối mạch 41 THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM 43 4.1 Yêu cầu thiết kế 43 4.2 Trang Web phía Server 43 4.2.1 Phần mềm Microsoft WebMatrix ASP.NET framework 43 4.2.2 Tạo sở liệu 44 4.2.3 Trang hiển thị trang Web .46 4.2.4 Trang hiển thị trạng thái cảm biến thiết bị .48 4.2.5 Trang Web phía Server 49 4.2.6 Trang hiển thị yêu cầu cho thiết bị 50 4.3 GVHD: Th.S Trần Hoàng Quân Phần mềm cho vi điều khiển 50 4.3.1 Giải thuật tổng quát chương trình 50 4.3.2 Giải thuật truyền nhận UART 52 4.3.3 Khởi tạo kết nối GPRS 54 4.3.4 Trao đổi liệu với trang Web giao thức HTTP 54 4.3.5 Ngắt 55 KẾT QUẢ THỰC HIỆN 57 5.1 Đăng tải trang Web lên mạng Internet 57 5.2 Phần mềm vi điều khiển 57 5.3 Hoạt động toàn hệ thống 58 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .61 6.1 Kết luận 61 6.2 Hướng phát triển 61 iv Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân TÀI LIỆU THAM KHẢO 62 PHỤ LỤC .63 8.1 Mã lệnh trang “Default.cshtml” .63 8.3 Mã lệnh trang “Sensor.cshtml” 66 8.4 Mã lệnh trang “DisplayStatus.cshtml” 66 8.5 Mã lệnh trang “GetStatus.cshtml” 67 8.6 Chương trình vi điều khiển 68 v Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân DANH SÁCH HÌNH MINH HỌA Hình 2-1 Cấu trúc mạng GSM Hình 2-2 Cấu trúc mạng GPRS Hình 2-3 Hình ảnh Module SIM900A Hình 2-4 Sơ đồ ác khối chức SIM900A 11 Hình 2-5 Sơ đồ chân SIM900A 11 Hình 2-6 Mạch tham khảo cho ngõ vào VBAT 12 Hình 2-7 Sự sụt áp VBAT trình truyền dẫn 12 Hình 2-8 Bật SIM900A với chân PWRKEY mạch lái 13 Hình 2-9 Bật SIM900A với chân PWRKEY nút nhấn 13 Hình 2-10 Giản đồ thời gian bật chân PWRKEY 14 Hình 2-11 Bật SIM900A với chân PWRKEY PWRKEY_OUT mạch lái 14 Hình 2-12 Bật SIM900A với chân PWRKEY PWRKEY_OUT nút nhấn 14 Hình 2-13 Giản đồ thời gian bật chân PWRKEY PWRKEY_OUT 15 Hình 2-14 Giản đồ thời gian tắt chân PWRKEY 15 Hình 2-15 Giản đồ thời gian tắt chân PWRKEY PWRKEY_OUT 15 Hình 2-16 Kết nối giao tiếp nối tiếp 16 Hình 2-17 Mạch tham khảo giao tiếp thẻ SIM 17 Hình 2-18 Mạch tham khảo đèn LED thị trạng thái 18 Hình 2-19 So sánh dịng ARM Cortex-M 21 Hình 2-20 Các nhóm sản phẩm vi điều khển STM32F4 22 Hình 2-21 Sơ đồ khối vi điều khển STM32F4 23 Hình 2-22 Kit STM32F4 Discovery 23 Hình 2-23 Sơ đồ khối phần cứng STM32F4 Discovery 24 Hình 2-24 Cảm biến PIR 25 Hình 2-25 Sự thay đổi điện áp ngõ có nguồn nhiệt chuyển động 26 Hình 2-26 Thấu kính Fresnel 26 vi Luận văn tốt nghiệp GVHD: Th.S Trần Hồng Qn Hình 2-27 Hình ảnh LCD 16x2 thông dụng 27 Hình 2-28 Sơ đồ mạch Buck 31 Hình 2-29 Mạch Buck SW đóng 32 Hình 2-30 Mạch Buck SW1 ngắt 32 Hình 2-31 IC ổn áp LM2596 32 Hình 2-32 Sơ đồ khối IC ổn áp LM2596 33 Hình 2-33 Mạch ứng dụng LM2596 phiên điện áp cố định 33 Hình 3-1 Sơ đồ khối hệ thống 34 Hình 3-2 Sơ đồ nguyên lý mạch nguồn 4V 35 Hình 3-3 Sơ đồ nguyên lý mạch nguồn 5V 37 Hình 3-4 Sơ đồ nguyên lý Breakout Board SIM900A 37 Hình 3-5 Breakout Board SIM900A 38 Hình 3-6 Sơ đồ nguyên lý mạch relay 39 Hình 3-7 Sơ đồ nguyên lý mạch cảm biến PIR 40 Hình 3-8 Cảm biến PIR TM-208 40 Hình 3-9 Sơ đồ nguyên lý mạch LCD 41 Hình 3-10 Sơ đồ kết nối Breakout Board SIM900A với Kit STM32F4 Discovery 41 Hình 3-11 Sơ đồ kết nối mạch relay mạch PIR sensor với Vit STM32F4 Discovery 42 Hình 3-12 Sơ đồ kết nối mạch LCD với Kit STM32F4 Discovery 42 Hình 4-1 Chương trình Microsoft WebMatrix 43 Hình 4-2 Bảng Devices sở liệu 45 Hình 4-3 Bảng Sensor sở liệu 45 Hình 4-4 Bảng DLog sở liệu 45 Hình 4-5 Bảng SLog sở liệu 45 Hình 4-6 Trang hiển thị trang Web 46 Hình 4-7 Lưu đồ giải thuật 51 Hình 4-8 Giải thuật ngắt UART 52 vii Luận văn tốt nghiệp GVHD: Th.S Trần Hồng Qn Hình 4-9 Giải thuật ngắt UART để đọc yêu cầu trạng thái thiết bị 53 Hình 4-10 Sở đồ ngắt ngồi chân GPIO 56 Hình 5-1 Trang Web sau đăng tải lên mạng 57 Hình 5-2 Phần mềm Keil µVision 58 Hình 5-3 Hệ thống kết nối hoàn chỉnh 58 Hình 5-4 Quan sát biến chế độ debug Keil µVision 59 Hình 5-5 Mạch relay ba relay bật 59 viii Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân PHỤ LỤC 8.1 Mã lệnh trang “Default.cshtml” @{ var var var var var var var var var request1 = ""; request2 = ""; request3 = ""; db = Database.Open("GPRS Demo"); SQLUPDATE01 = "UPDATE Devices Set DRequest=@0 WHERE id=1"; SQLUPDATE02 = "UPDATE Devices Set DRequest=@0 WHERE id=2"; SQLUPDATE03 = "UPDATE Devices Set DRequest=@0 WHERE id=3"; SQLDELETE1 = "DELETE FROM Log"; SQLDELETE2 = "DELETE FROM DLog"; if(IsPost){ if(Request["Button"].Equals("Submit 1")){ request1 = Request["Choice1"]; db.Execute(SQLUPDATE01, request1); } if(Request["Button"].Equals("Submit 2")){ request2 = Request["Choice2"]; db.Execute(SQLUPDATE02, request2); } if(Request["Button"].Equals("Submit 3")){ request3 = Request["Choice3"]; db.Execute(SQLUPDATE03, request3); } if(Request["Button"].Equals("Submit All")){ request1 = Request["Choice1"]; request2 = Request["Choice2"]; request3 = Request["Choice3"]; db.Execute(SQLUPDATE01, request1); db.Execute(SQLUPDATE02, request2); db.Execute(SQLUPDATE03, request3); } if(Request["Button"].Equals("Clear Sensor Log")){ db.Execute(SQLDELETE1); } if(Request["Button"].Equals("Clear Devices Log")){ db.Execute(SQLDELETE2); } } } GPRS-Based Remote Control 63 Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân function Load_external_content(){ $('#status').load('DisplayStatus.cshtml'); $('#sensor').load('DisplaySensor.cshtml'); } setInterval('Load_external_content()', 500); GPRS-Based Remote Control Sensor Status of Devices Control Panel I want: Device 1: On Off Device 2: On Off Device 3: On Off 64 Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân @{ var day = DateTime.UtcNow.Day; var month = DateTime.UtcNow.Month; var year = DateTime.UtcNow.Year; var DayOfWeek = DateTime.UtcNow.DayOfWeek; } TP.Ho Chi Minh, @DayOfWeek, @day/@month/@year 8.2 Mã lệnh trang “DisplaySensor.cshtml” @{ var var var var var var db = Database.Open("GPRS Demo"); sqlQ = "SELECT * FROM Sensor WHERE id1=1"; selectQueryString = "SELECT * FROM SLog ORDER BY id3"; data = db.QuerySingle(sqlQ); sstt = data.Status; Display = ""; if(sstt == 0){ Display = "No movement."; } if(sstt == 1){ Display = "Movement Detected."; } } @Display 65 Luận văn tốt nghiệp GVHD: Th.S Trần Hoàng Quân Data Log Time @foreach(var row in db.Query(selectQueryString)){ @row.Time } 8.3 Mã lệnh trang “Sensor.cshtml” @{ var db = Database.Open("GPRS Demo"); var usensor = Request.QueryString["sensor"]; var timelog = DateTime.UtcNow; var SQLUPDATE = "UPDATE Sensor Set Status=@0 WHERE id1=1"; var SQLINSERT = "INSERT INTO DLog (Time) VALUES (@0)"; db.Execute(SQLUPDATE, usensor); if(usensor == "1"){ db.Execute(SQLINSERT,timelog); } } 8.4 Mã lệnh trang “DisplayStatus.cshtml” @{ var var var var db = Database.Open("GPRS Demo"); sqlQ = "SELECT * FROM Devices"; selectQueryString = "SELECT * FROM DLog ORDER BY id"; data = db.Query(sqlQ); } Status- @foreach(var row in data){
- @row.Name is @row.DStatus. }