1. Trang chủ
  2. » Luận Văn - Báo Cáo

THIẾT KẾ VÀ CHẾ TẠO MÔ HÌNH ĐIỀU KHIỂN QUANG BÁO TỰ ĐỘNG TỪ XA

68 209 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 68
Dung lượng 5,08 MB
File đính kèm Báo Cáo T_t Nghi_p - Copy.rar (5 MB)

Nội dung

 Đồ án sẽ đi vào thực hiện các nội dung sau đây: • Tìm hiểu về module sim900a và phương thức giao tiếp của nó với vi điều khiển và điện thoại di động bằng tin nhắn sms • Xây dựng giao diện truyền nhận dữ liệu từ máy tính tới bảng led ma trận bằng visual studio. • Tìm hiểu cách sử dụng tính năng GPRS trên sim thông qua vi điều khiển, đồng thời xây dựng một web server làm nơi để truyền dữ liệu gửi xuống vi điều khiển ,tới bảng led ma trận. • Tìm hiểu cách hiển thị nội dung ra bảng led ma trận. 16x32 hiệu quả nhất. • Có kiến thức cơ bản trong lập trình arduino,window form và lập trình web

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH KHĨA LUẬN TỐT NGHIỆP THIẾT KẾ VÀ CHẾ TẠO MƠ HÌNH ĐIỀU KHIỂN QUANG BÁO TỰ ĐỘNG TỪ XA Họ tên sinh viên: TẠ DUY LONG Ngành:CÔNG NGHỆ KỸ THUẬT CƠ ĐIỆN TỬ Niên khóa:2012-2016 TP HỒ CHÍ MINH – 06/2016 THIẾT KẾ VÀ CHẾ TẠO MƠ HÌNH QUANG BÁO TỰ ĐỘNG TỪ XA Tác giả TẠ DUY LONG Khóa luận đệ trình để đáp ứng yêu cầu cấp Kỹ sư ngành Cơ điện tử Giáo viên hướng dẫn Th.s.NGUYỄN LÊ TƯỜNG i Ks.BÙI TƯỜNG HUY Tháng năm 2016 LỜI CẢM ƠN Người thực đề tài xin gửi lời cảm ơn chân thành đến quý Thầy cô khoa Cơ Khí Cơng Nghệ, q Thầy cô thuộc môn Cơ điện tử giảng dạy truyền đạt kiến thức chuyên ngành cho người thực đồ án thời gian vừa qua Đặc biệt người thực xin gửi lời cảm ơn sâu sắc tới thầy Bùi Tường Huy cô Nguyễn Lê Tường tận tình hướng dẫn tạo điều kiện thuận lợi cho người thực đồ án để có thể thực hoàn thành tốt đề tài Người thực đồ án không quên cảm ơn bạn lớp trao đổi, góp ý để người thực hoàn thành đề tài cách tốt đẹp thời gian i Mặc dù có nhiều cố gắng nỗ lực thực hiện, kiến thức khả thân nhiều hạn chế nên trình thực đề tài khơng thể tránh khỏi sai phạm, thiếu sót…Rất mong nhận góp ý, dẫn từ nơi quý thầy cô bạn sinh viên Người thực hiện đề tài Tạ Duy Long i MỤC LỤC LỜI CẢM ƠN .i MỤC LỤC ii DANH MỤC CÁC HÌNH iv DANH MỤC CÁC BẢNG v TÓM TẮT ĐỂ TÀI vi Chương MỞ ĐẦU 1.1 Mục tiêu đề tài 1.2 Nhiệm vụ giới hạn đề tài 1.2.1 Nhiệm vụ 1.2.2 Giới hạn đề tài: Chương TỔNG QUAN 2.1 Tổng quan tin nhắn (SMS) .2 2.2 Module sim900a ? .2 2.2.1 Thông số kĩ thuật module Sim900A 2.2.2 Tập lệnh AT(AT command) .4 2.3 Giới thiệu Board Aduino Uno .4 2.3.1 Arduino Uno gì? 2.3.2 Vi điều khiển 2.3.3 Các cổng vào kết nối 2.3.4 Lập trình cho Arduino 2.4 Khái quát led ma trận .9 2.4.1 Các thông số module led ma trận P10 2.4.2 Nguyên tắc hoạt động module P10 10 2.4.3 Phần mềm lập trình visual studio 2012 11 2.4.4 Khái niệm HTTP 12 Chương 14 NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU .14 3.1 Nội dung đề tài 14 3.1.1 Đối tượng nghiên cứu 14 3.1.2 Phương tiện .14 3.2 Phương pháp thực 14 3.2.1 Nghiên cứu lí thuyết 14 Chương 16 KẾT QUẢ VÀ THẢO LUẬN 16 4.1 Sơ đồ khối 16 4.2 Khối vi điều khiển: 17 4.2.1 Phân tích chương trình cho vi điều khiển .17 4.3 Khối PC: 19 4.4 Khối Module Sim900A: 22 4.5 Khối hiển thị: 28 4.6 Khối nguồn: 31 4.7 Sơ đồ mạch in 33 Chương 35 KẾT LUÂN VÀ ĐỀ NGHỊ 35 5.1 Kết luận .35 5.2 Đề nghị 35 TÀI LIỆU THAM KHẢO .36 PHỤ LỤC 37 DANH MỤC CÁC HÌNH Trang Hình 2.2: Mặt trước mặt sau module sim900A Hình 2.3: Board Aduino Uno R3 Hình 2.4: Các chân I/O board (phần màu đỏ) Hình 2.6: Mặt trước module P10 .9 Hình 2.7: Mặt sau module P10 Hình 2.8: Sơ đồ quét led ma trận 11 Hình 2.9 cửa sổ làm viêc visual studio 12 Hình 2.10 cấu trúc URL .13 Hình 4.1: Sơ đồ khối 16 Hình 4.2: Arduino hoạt động kết nối với máy tính 17 Hình 4.3 Lưu đồ thuật tốn 18 Hình 4.4 Giao diện đăng nhập 19 Hình 4.5: Giao diện chưa kết nối 20 Hình 4.6: Sau kết nối gửi liệu xuống .21 Hình 4.7: Chữ “NONG LAM” 21 Hình 4.8: trước gửi tin nhắn .22 Hình 4.11Trang đăng kí địa web hosting 24 Hình 2.12 Up load file lên server 24 Hình 4.12 Cửa sổ làm việc code HTML 25 Hình 4.11: Website điều khiển sau hồn thành (chưa gửi nội dung) 25 Hình 4.12: Nội dung lưu vào database server 26 Hình 4.13: Gửi xuống “hello word” chữ chạy bảng led .27 Hình 4.14: Nội dung “hello word” lưu lại database 27 Hình 4.15: Sơ đồ chân IC 74hc595 29 Hình 4.16: Chữ chạy “thong bao” 30 Hình 4.17: Chạy dãy số đến .30 Hình 4.18: Mạch ngun lí nguồn 5v 31 Hình 4.19: Shield cắm arduino tích hợp nguồn module sim900a .31 Hình 4.20: Hình ảnh thực tế nguồn xung (nguồn tổ ong) .32 Hình 4.21: Sơ đồ ngun lí 32 Hình 4.22: Sơ đồ mạch in 33 Hình 4.23: mơ hình hồn thiện hồn thiện 33 DANH MỤC CÁC BẢNG Bảng 2.1 Một số tập lệnh at giao tiếp với module sim900a: .4 Bảng 2.2 Một vài thông số Arduino UNO R3 .6 Bảng 4.1 đánh giá phương thức truyền liệu .34 TÓM TẮT ĐỂ TÀI Đề tài: thiết kế chế tạo mơ hình quang tự đơnh báo từ xa  Đồ án vào thực nội dung sau đây:  Tìm hiểu module sim900a phương thức giao tiếp nó với vi điều khiển điện thoại di động tin nhắn sms  Xây dựng giao diện truyền nhận liệu từ máy tính tới bảng led ma trận visual studio  Tìm hiểu cách sử dụng tính GPRS sim thông qua vi điều khiển, đồng thời xây dựng web server làm nơi để truyền liệu gửi xuống vi điều khiển ,tới bảng led ma trận  Tìm hiểu cách hiển thị nội dung bảng led ma trận 16x32 hiệu  Có kiến thức lập trình arduino,window form lập trình web Các tham số chuỗi trả bao gồm trạng thái tin nhắn (REC UNREAD), số điện thoại gửi tin nhắn (+84929047589) thời gian gửi tin nhắn (07/05/15,09:32:05+28) nội dung tin nhắn Đây dạng mặc định module SIM900 lúc khởi động, dạng mở rộng có thể thiết lập cách sử dụng lệnh AT+CSDH=1 trước thực đọc tin nhắn (3) Sau đọc, tin nhắn xóa lệnh AT+CMGD=1 Thao tác tương tự tin nhắn chứa ngăn thứ bước 4,(5A), (5B) 2.2.2.4 Gửi tin nhắn (1) Gửi tin nhắn đến thuê bao cách sử dụng lệnh AT+CMGS=”số điện thoại” (2) Nếu lệnh (1) thực thành công, chuỗi trả có dạng: > (kí tự “>” khoảng trắng) (3) Gửi nội dung tin nhắn kết thúc kí tự có mã ASCII 0x1A (3A) Gửi kí tự ESC ( mã ASCII 27) khơng muốn tiếp tục gửi tin nhắn Khi đó TE gửi trả chuỗi OK (4) Chuỗi trả thơng báo q trình gửi tin nhắn Chuỗi trả có định dạng sau: +CMGS :62 OK Trong đó 62 số tham chiếu cho tin nhắn gửi Sau tin nhắn gửi đi, giá trị tham chiếu tăng lên đơn vị Số tham chiếu có giá trị nằm khoảng từ đến 255 Thời gian gửi tin nhắn vào khoảng 3-4 giây (kiểm tra với mạng Vietnammobile) 44 Hình Cấu hình gửi tin nhắn (4A) Nếu tình trạng sóng khơng cho phép thực hiên việc gửi tin nhắn (thử cách tháo antenna), chức RF modem không cho phép hoạt động ( sử dụng lệnh AT+CFUN=0 AT+CFUN=4), số tin nhắn hàng đợi phía tổng đài vượt qua giới hạn cho phép, nhớ chứa tin nhắn 2.2.2.5 Kết nối GPRS (1) Kiểm tra chất lượng đường truyền kết mối mạng sử dụng lệnh “AT+CSQ” thực thi thành công chuỗi chả +CSQ: số % chất lượng OK Nếu xảy lỗi chuỗi tra ERROR (2) Kiểm tra mạng GPRS có mạng có thể sử dụng “ AT+CGATT?” 45 Chuỗi chả có dạng CGATT: với số mạng có thể sừ dụng GPRS OK (3) Thiết lập kết nối GPRS tâp lệnh “AT+SAPBR=3,1” “CONTYPE” “GPRS” Chuỗi trả câu lệnh thưc thi OK Trong đó AT+SAPBR=3,1 để lựu chọn kiểu kết nối Nếu tập lệnh “AT+SAPBR=2,1” trả địa IP điểm kết nối, câu lệnh thực thi chuỗi chả có dạng +SAPBR: 1,1,"100.120.204.132" OK Nếu thay tập lệnh “AT+SAPBR=1,1” chức nhận kích hoạt tính GPRS sim Chuỗi trả thực thi thành công OK (4) Tập lệnh “AT+SAPBR=3,1,"APN","CMNET"” nhằm kết nối đến điểm truy cập nhà mạng cung cấp, thực thành cơng chuỗi trả “ OK”.bạn điểm truy cập tùy vào mạng sim mà bạn sử dụng nên “CMNET” có thê thay đôi cho phù hợp Để kết nối với địa host server ta dùng tập lệnh “AT+HTTPPARA="URL","http://www.XXXXXXXXX.com/temp/” nhăm đưa kết nối ta tới địa trang server ta cần lấy thông tin “http://www.XXXXXXXXX.com/temp/ ” đường dẫn tới địa website bạn (5) Để gửi yêu cầu kết nối với website ta cần tập lệnh sau “AT+HTTPACTION=0” chuỗi chả có dạng OK Thì câu lệnh thực thi (6) Tiếp theo đọc phản hồi từ server hay nói cách khác nhận liệu từ server thông qua câu lệnh “AT+HTTPREAD” (7) Kết thúc gửi yêu cầu tới server qua câu lệnh “AT+HTTPTERM” 46 Quy tắc quét led ma trận Dựa nguyên tắc quét hình tivi, máy tính, ta có thể thực việc hiển thị ma trận đèn cách quét theo hàng quét theo cột Mỗi Led ma trận Led có thể coi điểm ảnh Địa điểm ảnh xác định đồng thời mạch giải mã hàng giải mã cột, điểm ảnh xác định nhờ liệu đưa từ mạch điều khiển Như thời điểm có trạng thái điểm ảnh xác định Tuy nhiên xác định địa trạng thái điểm ảnh điểm ảnh lại chuyển trạng thái tắt.Vì để hiển thị tồn hình ảnh mà ta muốn ta phải quét ma trận nhiều lần với tốc độ quét lớn, lớn nhiều lần thời gian kịp tắt đèn Mắt người nhận biết tối đa 24 hình/s đó tốc độ quét lớn mắt người không nhận biết gián đoạn nhấp nháy đèn Led(đánh lừa cảm giác mắt) Ứng dụng hiển thị Led ma trận để đảm bảo phù hợp thông số điện Led đơn người ta khơng điều khiển theo chu trình hình tivi (CRT) để đảm bảo độ sáng tồn bảng led dòng tức thời qua led vô lớn đó có thể đánh thủng lớp tiếp giáp led Trên thực tế người ta có thể ghép chung anot catot hàng cột Khi đó công việc điều khiển chuyển liệu cột cấp điện cho hàng Như tài thời điểm có hàng điều khiển sáng theo liệu đưa Ngoài để đảm bảo độ sáng bảng thông tin tốt nhất, đặc biệt với bảng cỡ lớn theo chiều dọc ( có nhiều hàng), thời gian sáng hàng lúc bị giảm nhiều nguyên kiểu quét hàng Để khác phục điều người ta sử dụng phương pháp điều khiển cho hàng sáng, từ đó giúp giảm dòng tức thời qua led mà đảm bảo độ sáng tối ưu  Cách thức điều khiển modun 16x32 sau:  Module 16x32 đơn sắc có 16 hàng 32 cột,có 16 74hc595 ic ghi dịch bit mắc nối tiếp , đánh số từ trái sang phải (1 đến 4) từ xuống ( đánh từ đến 4) , bạn lật module lên nhìn từ phía sau module lại , em đánh số led từ xuống ( đánh từ đến 16) từ trái sang phải ( từ đến 32) led cách 1cm điểm ảnh module  Tất chân anot hàng nối chung vào , cấp điện qua mostfet ic  74hc595 cùng(1 đến 4) phụ trách bật tắt hàng led 1,2,3,4 cụ thể bật tắt led đầu tiên,con bật tắt led tiếp,con bật tắt led tiếp theo,con bật tắt led cuối 47  74hc595 tếp theo (5 đến 8) phụ trách bật tắt hàng led 5,6,7,8 cụ thể bật tắt led đầu tiên,con bật tắt led ,con bật tắt led tiếp theo,con bật tắt led cuối  74hc595 tếp theo (9 đến 12) phụ trách bật tắt hàng led 9,10,11,12 cụ thể bật tắt led đầu tiên,con 10 bật tắt led ,con 11 bật tắt led tiếp theo,con 12 bật tắt led cuối  74hc595 cuối (13 đến 16) phụ trách bật tắt hàng led 13,14,15,16 cụ thể 13 bật tắt led đầu tiên,con 14 bật tắt led ,con 15 bật tắt led tiếp theo,con 16 bật tắt led cuối  Dữ liệu truyền sau:  Tức truyền theo kiểu từ xuống, từ phải sang trái, 74hc595 thứ -> thứ -> thứ 12 -> thứ 16 -> thứ -> thứ Cách quét led đơn giản, cần quét lần quét toàn module, đơn giản cụ thể sau:  Lần thứ nhất: tắt hết hàng, truyền liệu cho 74hc595 bật hàng số 1,5,9,13 ( lần quyét hàng lúc)  Lần thứ hai: tắt hết hàng, Truyền liệu cho 74hc595 bật hàng số 2,6,10,14 (lần quyét hàng lúc)  Lần thứ ba: tắt hết hàng, Truyền liệu cho 74hc595 bật hàng số 3,7,11,15 ( lần quyét hàng lúc)  Lần thứ tư: tắt hết hàng, Truyền liệu cho 74hc595 bật hàng số 4,8,12,16 ( lần quyét hàng lúc)  Mã nguồn chương trinh điều khiển #include #include #include "SystemFont5x7.h" #include "Arial_Black_16_ISO_8859_1.h" #define DISPLAYS_ACROSS #define DISPLAYS_DOWN DMD dmd(DISPLAYS_ACROSS, DISPLAYS_DOWN); #include 48 #include SoftwareSerial MySim900A(5, 4); //RX, TX int PWR = A3; byte len; int remember = 0; short sms_mode = false; short flag = false; short mode = false; int answer; bool kt = false; String data_old = ""; String text_sms = ""; String var = ""; const int buffer_size = 300; int xbuff = 0; char buffer[buffer_size]; char sms_buf[180]; char c = 0; char c1 = 0; char *num1 = 0; char *num2 = 0; 49 char *ptr1 = 0; char *ptr2 = 0; char *ptr3 = 0; char KT[] = "KT"; char NT[] = "NT"; char aux_string[30]; char number[20]; char pass[6] = "12345"; // -void ScanDMD() { dmd.scanDisplayBySPI(); } // -void setup() { MySim900A.begin(9600); Serial.begin(19200); dmd.clearScreen( true ); pinMode(PWR, OUTPUT); power_on(); // Power on Module SIM900A init_SIM900A(); 50 Xoa_buffer();// Configuration for Module SIM900A } void loop() { Receive_uart(); Tranffer(); Receive_sms(); } void Receive_uart() { if (Serial.available () > 0) { delay(10); var = ""; while (Serial.available() > ) { char data = Serial.read() ; var += data; Serial.println(var); } Serial.write("Send completed"); 51 while (1) { if (Serial.available()> || MySim900A.available() > 0) break; Serial.println("asa"); DisPlay(var); } } } //********************************************************* Void receive_sms() { if (MySim900A.available() > 0) { while (MySim900A.available() > 0) { c = MySim900A.read(); if (c == '\n' || c == '#') { c1 = c; buffer[xbuff] = '\0'; } if (c == '.' && c1 == '#') { sms_mode = true; } if (xbuff >= buffer_size) { 52 xbuff = 0; } if (c != '\r') { buffer[xbuff] = c; xbuff++; } xuli(); } } } //********************************************************* void receive_data() { String data = ""; int len = 0; while (MySim900A.available() != 0) { char buf = MySim900A.read(); data = data + String(buf); len = data.length(); if (data_old != data) { 53 data_old = data; data_old = data_old.substring(30, (len - 4)); } else { data_old; } } } //********************************************************* Void ShowSerialData() { while (MySim900A.available() != 0) { Serial.write(char (MySim900A.read())); } } //********************************************************* void Tranffer(void) { while(MySim900A.available()>0 ){ MySim900A.println("AT+CSQ"); delay(100); ShowSerialData(); 54 MySim900A.println("AT+CGATT?"); delay(100); ShowSerialData(); MySim900A.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\""); delay(1000); ShowSerialData(); MySim900A.println("AT+SAPBR=3,1,\"APN\",\"www\""); delay(1000); ShowSerialData(); MySim900A.println("AT+SAPBR=1,1"); delay(1000); ShowSerialData(); MySim900A.println("AT+HTTPINIT"); delay(2000); ShowSerialData(); MySim900A.println("AT+HTTPPARA=\"URL\",\"dongtroi.tk/demo/dat a.php\""); delay(2000); ShowSerialData(); MySim900A.println("AT+HTTPACTION=0"); delay(5000); ShowSerialData(); MySim900A.println("AT+HTTPREAD"); delay(300); receive_data(); Serial.println(data_old); //MySim900A.println("AT+HTTPTERM"); while (!MySim900A.available()) { if (MySim900A.available() > || Serial.available() > ) break; DisPlay(data_old); } receive_sms(); } } 55 void xuli() { while (sms_mode) { num1 = strchr((char *)(buffer), '"'); num2 = num1 + 2; num1 = strchr((char *)(num2), '"'); if (num1 != NULL) { *num1 = 0; strcpy(number, num2); Serial.print("so dien thoai :"); Serial.println(number); } ptr1 = strchr(num1 + 1, 0x0a); if (ptr1 != NULL) { ptr1++; char* p_char1 = strchr((char *)(ptr1), 0x0d); if (p_char1 != NULL) { *p_char1 = 0; } } ptr1 = strstr(ptr1, pass); if (ptr1[0] == pass[0] && ptr1[1] == pass[1] && ptr1[2] == pass[2] && ptr1[3] == pass[3] && ptr1[4] == pass[4] && ptr1[5] == '>') { ptr2 = strchr((char *)(ptr1), '>'); ptr3 = ptr2 + 1; ptr2 = strchr((char *)(ptr3), '.'); if (ptr2 != NULL) { *ptr2 = ; text_sms = ""; strcpy(sms_buf, ptr3); text_sms += sms_buf ; Serial.print("chuoi xl :"); Serial.println(text_sms); mode = true ; flag = true; } } else { if ((ptr1[5] != '>' || ptr1[4] != pass[4]) && ptr1 != NULL ) { mode = false ; flag = true; } 56 else { kt = true; } } send_SMS(); flag = false; // send sms thi sim # Xoa_buffer(); // while (MySim900A.available() == 0) { // DisPlay(text_sms); // } } } void DisPlay(String chuoi) { dmd.clearScreen( true ); dmd.selectFont(Arial_Black_16_ISO_8859_1); String chuoi_moi = ""; char chuyen[200]; if (chuoi_moi != chuoi) { chuoi_moi = chuoi; chuoi_moi.toCharArray(chuyen, chuoi_moi.length() + 1); } dmd.drawMarquee(chuyen, strlen(chuyen), (32 * DISPLAYS_ACROSS) - 1, 0); long start = millis(); long timer = start; bool t = false; while (!t) { ScanDMD(); if ((timer + 50) < millis()) { t = dmd.stepMarquee(-1, 0); timer = millis(); } } } void send_SMS() { sprintf(aux_string, "AT+CMGS=\"%s\"", number); answer = sendAT(aux_string, ">", 2000); if (answer == 1) { if (flag == true) { switch (mode) { case 1: { MySim900A.println("Gui Thanh cong"); Serial.println("Gui cong"); break; } 57 case 0: { MySim900A.println("Error, KIEM TRA LAI CU PHAP NT"); Serial.println("ERROR, KIEM TRA LAI CU PHAP NT"); break;} default : break;} } MySim900A.write(26); } 58 ... cạnh tranh đề tài Thiết kế chế tạo mô hình điều khiển quang báo từ xa đời nhằm đáp ứng mục tiêu sản phẩm mang tính đột phá ngành điều khiển tự động đưa vào điều khiển quang báo truyền thống... vụ Thiết kế chế tạo mơ hình quang báo điều khiển từ xa sử dụng led ma trận 16x32 led để hiển thị nội dung thơng qua tin nhắn sms, máy tính qua mạng internet Tiến hành xây dựng giao diện điều khiển. .. THIẾT KẾ VÀ CHẾ TẠO MƠ HÌNH QUANG BÁO TỰ ĐỘNG TỪ XA Tác giả TẠ DUY LONG Khóa luận đệ trình để đáp ứng yêu cầu cấp Kỹ sư

Ngày đăng: 21/09/2019, 10:05

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w