HỆ THỐNG xả lũ QUA SMS DÙNG PIC (có code và layout) ........................... HỆ THỐNG xả lũ QUA SMS DÙNG PIC (có code và layout) ........................... HỆ THỐNG xả lũ QUA SMS DÙNG PIC (có code và layout) ........................... HỆ THỐNG xả lũ QUA SMS DÙNG PIC (có code và layout) ........................... HỆ THỐNG xả lũ QUA SMS DÙNG PIC (có code và layout) ...........................
Trang 1HỆ THỐNG XẢ LŨ QUA SMS DÙNG
PIC
Trang 2HÌNH 1- 2: SƠ ĐỒ CHÂN CỦA PIC16F877A 2
HÌNH 1- 3: KIẾN TRÚC VON NEUMANN VÀ HARVARD 4
HÌNH 1- 4: SƠ ĐỒ KHỐI ĐIỀU KHIỂN PIC 5
HÌNH 1- 5: MODULE SIM NGOÀI THỊ TRƯỜNG 6
HÌNH 1- 6: CẢM BIẾN SIÊU ÂM NGOÀI THỊ TRƯỜNG 9Y HÌNH 2- 1: SƠ ĐỒ KHỐI CỦA HỆN THỐNG 11
HÌNH 2- 2: SƠ ĐỒ MẠCH CỦA HỆ THỐNG 12
HÌNH 2- 3: KHI CẤP NGUỒN CHO MẠCH 13
HÌNH 2- 4: TRẠNG THÁI MỨC NƯỚC THẤP 14
HÌNH 2- 5: TRẠNG THÁI MỨC NƯỚC VỪA 14
HÌNH 2- 6: TRẠNG THÁI MỨC NƯỚC CAO 1 HÌNH 3- 1: LƯU ĐỒ GIẢI THUẬT CỦA CHƯƠNG TRÌNH 16
HÌNH 3- 2: GIAO DIỆN LÀM VIỆC VỚI MIKROC 17
HÌNH 3- 3: MẶT HÀN CHÂN LINH KIỆN 18
HÌNH 3- 4: MÔ HÌNH MẠCH THỰC TẾ 18
HÌNH 3- 5: KHI ĐO ĐƯỢC MỨC NƯỚC THẤP 19
HÌNH 3- 6: KHI ĐO ĐƯỢC MỨC NƯỚC VỪA 20
HÌNH 3- 7: KHI ĐO ĐƯỢC MỨC NƯỚC CAO 20
HÌNH 3- 8: CẢNH BÁO SMS QUA DI ĐỘNG 21
Trang 3CHƯƠNG 1 TÌM HIỂU LINH KIỆN TRONG ĐỀ TÀI
1.1 Tổng quan về vi điều khiển PIC 16F877A [1]
PIC là viết tắt của “ Programable Intelligent Computer ” do hãng GenenralInstrument đặt tên cho vi điều khiển đầu tiên của họ là PIC1650, sau đó nó đượcnghiên cứu phát triển thêm và từ đó hình thành nên nhiều dòng vi điều khiển PICngày nay
Các kí hiệu của vi điều khiển PIC:
PIC12xxxx: độ dài lệnh 12 bit
PIC16xxxx: độ dài lệnh 14 bit
PIC18xxxx: độ dài lệnh 16 bit
C: PIC có bộ nhớ EPROM ( chỉ có 16C84 là EEPROM )
F: PIC có bộ nhớ flash
LF: PIC có bộ nhớ flash hoạt động ở điện áp thấp
LV: tương tự như LF, đây là kí hiệu cũ
Trong đề tài này ta sử dụng vi xử lý PIC16F877A, nó thuộc họ vi điều khiểnPIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit Mỗi lệnh đều được thực thitrong một chu kì xung clock Tốc độ hoạt động tối đa cho phép là 20 MHz với chu
kì lệnh là 200 ns Bộ nhớ chương trình 8K x 14 bit, bộ nhớ dữ liệu EEPROM vớidung lượng 256x8 byte Số port I/O là 5 với 33 chân I/O Điện áp hoạt động từ 2Vđến 5,5V
Các đặc tính ngoại vi bao gồm các khối chức năng sau:
Hình 1- 1: PIC16F877A ngoài thị trường [2]
Trang 4 Timer 0: Bộ đếm 8 bit với bộ chia tần số 8 bit.
Timer 1: Bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếmdựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep
Timer 2: Bộ đếm 8 bit với bộ chia tần số, bộ postcaler
Hai bộ Capture / so sánh / điều chế độ rộng xung
Các chuẩn giao tiếp nối tiếp SSP ( Synchronous Serial Port ), SPI và I2C
Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ
Cổng giao tiếp song song PSP ( Parallel Slave Port ) với các chân điều khiển
RD, WR, CS ở bên ngoài
Các đặc tính Analog: 8 kênh chuyển đổi ADC 10 bit, hai bộ so sánh
1.1.1 Sơ đồ chân của PIC16F877A
Hình 1- 2: Sơ đồ chân của PIC16F877A [3]
Các cổng xuất nhập của PIC 16F877A:
PORT A: Bao gồm 6 chân I/O Đây là các chân hai chiều, nghĩa là có thểxuất và nhập được Chức năng I/O này được điều khiển bởi thanh ghi TRISA
Trang 5( địa chỉ 85h ) Muốn xác lập chức năng của một chân trong Port A là input,
ta “set” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA vàngược lại, muốn xác lập chức năng Port A là output, ta “clear” bit điều khiểntương ứng với chân đó trong thanh ghi TRISA Thao tác này tương tự đối vớicác Port và các thanh ghi điều khiển tương ứng TRIS ( đối với PortA làTRISA, đối với PortB là TRISB, đối với PortC là TRISC, đối với PortD làTRISD và đối với PortE là TRISE ) Bên cạnh đó PortA còn là ngõ ra của bộADC, bộ so sánh, ngõ vào analog, ngõ vào xung clock của Timer 0 và ngõvào của bộ giao tiếp MSSP ( Master Synchronous Serial Port )
PORTB: Gồm 8 chân I/O Thanh ghi điều khiển xuất nhập tương ứng làTRISB Bên cạnh đó còn có một số chân sử dụng trong quá trình nạp chươngtrình cho vi điều khiển với các chế độ nạp khác nhau PortB còn liên quanđến ngắt ngoại vi và bộ Timer 0 PortB còn được tích hợp chức năng điện trởkéo lên được điều khiển bởi chương trình
PORTC: Gồm 8 chân I/O Thanh ghi điều khiển xuất nhập tương ứng làTRISC Có chứa các chân chức năng của bộ so sánh, bộ Timer 1, bộ PWM
và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART
PORTD: Gồm 8 chân I/O, thanh ghi điều khiển xuất nhập tương ứng làTRISD Còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP ( Parallel SlavePort )
PORTE: Gồm 3 chân I/O, thanh ghi điều khiển xuất nhập tương ứng làTRISE Các chân của PortE có ngõ vào analog Bên cạnh đó còn là các chânđiều khiển của chuẩn giao tiếp PSP
1.1.2 Kiến trúc bộ nhớ vi điều khiển PIC16F877A
Có 2 loại kiến trúc bộ nhớ cơ bản là kiến trúc Von Neumann và Harvard:
Trang 6Hình 1- 3: Kiến trúc Von Neumann và Harvard [1]
Kiến trúc Von Neumann: Với kiến này thì bộ nhớ giao tiếp với CPU thông
qua 1 bus dữ liệu 8 bit, bộ nhớ có các ô nhớ chứa dữ liệu 8 bit, bộ nhớ vừalưu trữ chương trình và dữ liệu Kiến trúc này có ưu điểm là kiến trúc đơngiản và có khuyết điểm là do chỉ có 1 bus nên tốc độ truy suất chậm, khóthay đổi dung lượng lưu trữ của ô nhớ
Kiến trúc Harvard: Với kiến trúc này thì bộ nhớ được tách ra làm 2 loại
độc lập ( bộ nhớ lưu chương trình và bộ nhớ lưu dữ liệu ), CPU giao tiếp với
2 bộ nhớ độc lập nên cần 2 bus độc lập Vì độc lập nên có thể thay đổi số bitlưu trữ của từng bộ nhớ mà không ảnh hưởng đến nhau Kiến trúc này có ưuđiểm là tốc độ truy suất nhanh, tùy ý thay đổi số bit của ô nhớ và cấu trúcphức tạp là khuyết điểm của nó
Trang 7Hình 1- 4: Sơ đồ khối điều khiển PIC[4]
Trang 8 Dòng ở chế độ chờ: 10mA – rất tiết kiệm.
Hỗi trợ 4 băng tần phổ biến ở Việt Nam, SIM mạng nào dùng cũng được
Khe cắm sim: Chuẩn Micro Sim
Chức năng các chân:
Chân NET: Lắp anten, có thể dùng anten đi kèm hoặc anten mở rộng
Chân VCC – GND: Cấp nguồn dương – âm
Chân reset RST: Sử dụng khi cần khởi động lại module sim
Trang 9 RXD – TXD: Giao tiếp chuẩn serial đặc trưng của module sim.
RING: Đổ chuông khi có cuộc gọi đến
DTR: Chân UART DTR
SPKP, SPKN: Ngõ ra âm thanh, nối với loa để phát âm thanh
MICP, MICN: Ngõ vào âm thanh, phải gắn thêm micro để thu âm thanh
1.2.1 Tập lệnh AT [4]
Tập lệnh AT còn gọi là tập lệnh Hayes, bao gồm một loạt các chuỗi ký tự đượckết hợp lại để tạo thành những lệnh hoàn chỉnh cho những thao tác như gọi, giữ vàthay đổi các tham số kết nối Các tập lệnh Hayes được sử dụng rộng rãi, các lệnhnày đều bắt đầu bằng “AT”
Một cách để gửi lệnh AT đến GSM/GPRS modem là sử dụng một chương trìnhđầu cuối Chức năng của chương trình này là gửi các ký tự được gõ vàoGSM/GPRS modem, sau đó hiển thị những phản hồi nó nhận được từ modem nàylên màn hình Có thể dùng có thể dùng các chương trình như Hyper Terminal,Teraterm,…
Trong đồ án này, thiết bị đầu cuối chính là khối điều khiển chứa vi điều khiểnPIC16F877A, vi điều khiển này sẽ gửi các lệnh AT thực hiện các nhiệm vụ, chứcnăng khác nhau cho module SIM để thực hiện các lệnh
Một số lệnh AT được sử dụng :
Lệnh ATZ : Dùng thiết lập lại tất cả các tham số hiện tại theo mẫu đượcngười dùng định nghĩa Nếu không thiết lập lại được theo mẫu của ngườidùng định nghĩa thì nó sẽ reset lại theo đúng các tham số mặc định của nhàsản xuất
Lệnh AT+CMGR : Lệnh này được dùng để đọc tin nhắn Cấu trúcAT+CMGR=I với I là ngăn bộ nhớ chứa tin nhắn trong sim
Lệnh AT+CMGS : Lệnh này dùng để gửi tin nhắn SMS tới một số điện thoạicho trước Cú pháp AT+CMGS= “số điện thoại cần gửi”<CR>
Lệnh AT+CMGD : Lệnh này dùng để xóa tin nhắn trên sim
Trang 10 Lệnh ATE : Lệnh này dùng để thiết lập chế độ lệnh phản hồi trở lại Đáp ứngtrở lại là OK Lệnh này có 2 tham số: ATE0 (tắt chế độ phản hồi), ATE1 (bậtchế độ phản hồi).
Lệnh AT&W : Dùng để lưu cấu hình cài đặt
Lệnh AT+CMGF : Dùng để lựa chọn định dạng tin nhắn SMS, với hai chế
độ là text và PDU
Lệnh AT+CNMI : Lệnh này dùng để thông báo có tin nhắn mới đến
Lệnh AT+CSAS : Dùng để lưu các thiệt lập SMS do người dùng đã cài đặttrước đó
1.3 Cảm biến siêu âm HC-SR04[4]
Hình 1- 6: Cảm biến siêu âm ngoài thị trường [2]
Sơ lược về cảm biến siêu âm:
Trang 11 Cảm biến siêu âm dùng để đo khoảng cách với vật cản.
Khoảng cách đo: 3cm-4m
Nguyên lí: Sử dụng phản xạ của sóng siêu âm để đo khoảng cách
Ứng dụng: Đo mực nước, chống trộm, robot dò đường,…
Sơ đồ chân:
VCC : Nguồn 5V
Trig : Chân kích để phát sóng âm đi
Echo : Chân phát hiện có sóng âm dội lại
GND : Chân nối đất
Giao tiếp với vi điều khiển để đo khoảng cách:
Đo khoảng cách bằng cảm biến siêu âm chính là đo thời gian chân ECHO ở mức cao
Để đo thời gian chân ECHO ở mức cao có thể dùng một trong các bộ Timer của vi điều khiển
Để đo khoảng cách ta sẽ làm các bước:
o Kích chân Trigger: Xuất mức một chân Trigger và delay tối thiểu 10ms
o Sau đó đợi chân ECHO lên mức cao
o Khi chân ECHO lên mức cao kích hoạt Timer:
Đợi chân Echo xuống thấp
Cho phép ngắt cạnh xuống
o Khi chân Echo xuống mức thấp (hoặc trong chương trình sử lí ngắt), dừng timer và tính toán giá trị thời gian từ timer, từ đó suy ra khoảng cách
o Reset giá trị đếm của Timer để chuẩn bị cho lần đo tiếp theo
Cách tính ra khoảng cách từ thời gian đo được:
S = 2 x d, d là khoảng cách đến vật cản
Gọi V là vận tốc của sóng âm
V = 344m/s = 34400 cm/s
Trang 13 Khối nguồn: Sử dụng nguồn 5VDC để cấp cho toàn mạch.
Module sim: Ở đây ta sử dụng module SIM800L chứa sim card cho phép
gửi tin nhắn SMS đến số điện thoại di động để cảnh báo mức nước cao
Khối xử lí: Ở đây sử dụng vi điều khiển PIC16F877A với nhiệm vụ xử lý
thông số nhận được từ cảm biến siêu âm để tính ra khoảng cách đo được vàhiển thị các mức nước lên LCD, đồng thời gửi các lệnh AT đến module sim
để điều khiển module sim cảnh báo SMS đến điện thoại di động khi mứcnước cao
Khối hiển thị: Ở đây ta sử dụng LCD 16x2 để hiển thị các mức nước đo
được của cảm biến siêu âm
Khối cảm biến: Sử dụng cảm biến siêu âm HC-SR04 để đo mức nước.
Mobile phone: Chức năng nhận tin nhắn SMS cảnh báo khi mức nước cao.
2.2 Sơ đồ mạch
Hình 2- 2: Sơ đồ mạch của hệ thống
2.3 Nguyên lý hoạt động của mạch và chức năng của linh kiện trong mạch
Trang 14Nguyên lý hoạt động chung: Toàn mạch được cấp bởi nguồn 5VDC, sau khi
khởi tạo module sim xong thì PIC sẽ xử lý dữ liệu nhận về từ cảm biến siêu âm vàxuất khoảng cách đo được hiển thị lên LCD (nguyên lý đo khoảng cách đã đượctrình bày ở phần tìm hiểu cảm biến sêu âm), khoảng cách đo được trong khoảng từ15cm đến 20cm thì LCD sẽ hiển thị trạng thái là mức nước thấp, từ khoảng 10cmđến 15cm thì LCD hiển thị là mức nước trung bình, còn từ 5cm đến 10cm thì LCDhiển thị mức nước cao, đồng thời lúc này PIC sẽ gửi SMS cảnh báo qua điện thoại
di động
Chức năng các linh kiện trong mạch:
Để cho vi điều khiển PIC hoạt động thì ta cần cấp xung cho nó, ở đây tadung thạch anh 16KHz để làm nguồn xung, vì xung cấp không ổn định nêncần tụ lọc gắn vào thạch anh
Nút nhấn trên mạch sẽ có nhiệm vụ reset PIC, bình thường nút nhấn sẽ hở vàchân MCLR của vi điều khiển ở mức logic 1 ( vì được nối với nguồn quađiện trở hạn dòng ), khi nhấn nút nhấn, chân MCLR được nối với GND nênmang mức logic 0, khi đó vi điều khiển sẽ được reset
PIC16F877A với nhiệm vụ sử lý mọi dữ liệu nhận về và điều khiển các thiết
bị theo lập trình đã được thiết lập
LCD với chức năng hiển thị khoảng cách đo được và trạng thái các mứcnước
Khoảng cách đo được dựa trên nguyên lí phản xạ sóng siêu âm phát ra bởimodule cảm biến siêu âm HC-SR04
Module SIM chứa sim card với chức năng gửi SMS cảnh báo khi mức nướccao
2.4 Kết quả mô phỏng trên phần mềm Protues
Trang 15Khi cho mạch chạy thì PIC bắt đầu khởi tạo với các tập lệnh AT để giao tiếp vớimodule sim Đồng thời lúc này khoảng cách đo được cũng hiển thị lên LCD.
Hình 2- 3: Khi cấp nguồn cho mạch
Khi khoảng cách đo được từ 15cm đến 20cm thì LCD sẽ hiển thị là mức thấp
Trang 16Hình 2- 4: Trạng thái mức nước thấp
Khi khoảng cách đo được từ 10cm đến 15cm thì LCD hiển thị mức vừa
Hình 2- 5: Trạng thái mức nước vừa
Khi khoảng cách đo được từ 5cm đến 10cm thì LCD hiển thị là mức cao, đồngthời lúc này tin nhắn SMS với nội dung “ cảnh báo mức cao” được module sim gửitới điện thoại di động
Trang 17Hình 2- 6: Trạng thái mức nước cao
CHƯƠNG 3 THỰC THI PHẦN CỨNG
3.1 Lưu đồ mô tả thực thi
Trang 18Hình 3- 1: Lưu đồ giải thuật của chương trình
Giải thích lưu đồ giải thuật: Ban đầu hệ thống sẽ khởi tạo module sim, timer 1,
và thiết lập kết nối với cảm biến siêu âm, sau khi khởi tạo xong thì chương trình bắtđầu tính khoảng cách bằng cách lấy thời gian mà timer 1 đếm được chia cho 58 ( đãđược chứng minh ở trên ), khoảng cách tính được sẽ đưa vào câu lệnh “if”, nếu nhưkhoảng cách tời 15cm đến 20cm thì vi điều khiển sẽ xuất dữ liệu hiển thị lên LCD
là “MỨC THẤP”, tưởng tự như vậy khi khoảng cách từ 10cm đến 15cm thì là
“MỨC VỪA” và 5cm đến 10cm là “MỨC CAO” đồng thời lúc này vi xử lí sẽ giaotiếp với module sim bằng các tập lệnh AT thông qua giao tiếp USART để modulesim gửi tin nhắn SMS cảnh báo qua điện thoại di động
3.2 Phần mềm MikroC hỗi trợ lập trình PIC
Trang 19Vi điều khiển PIC có thể sử dụng nhiều phần mềm lập trình chuyên dụng với cácdạng ngôn ngữ lập trình khác nhau: ASM – Hợp ngữ, ngôn ngữ C, ngôn ngữPASCAL,… Mỗi phần mềm và mỗi dạng ngôn ngữ lập trình đều có những thuận lợi
và khó khắn riêng, phụ thuộc vào người dùng để lựa chọn một công cụ phù hợp.Hiện nay có hai phần mềm hỗi trợ lập trình PIC với ngôn ngữ C linh hoạt làCCS và MikroC, và trong đề tài này ta sử dụng ngôn ngữ MikroC để lập trình choPIC
Hình 3- 2: Giao diện làm việc với MikroC
3.3 Mô hình thực thi phần cứng
Trang 20Hình 3- 3: Mặt hàn chân linh kiện
Hình 3- 4: Mô hình mạch thực tế
Trang 21Hình 3- 5: Khi đo được mức nước thấp
Trang 22Khi khoảng cách đo được từ 10cm đến 15cm thì trạng thái sẽ là mức vừa được hiển thị lên LCD.
Khi khoảng cách đo được từ 5cm đến 10cm thì trạng thái sẽ là mức cao được hiển thị lên LCD, đồng thời lúc này SMS cảnh báo sẽ được gửi qua điện thoại
Hình 3- 6: Khi đo được mức nước vừa
Hình 3- 7: Khi đo được mức nước cao
Trang 23Khi mức nước cao, tin nhắn cảnh báo sẽ được gửi qua điện thoại di động.
Hình 3- 8: Cảnh báo SMS qua di động
Trang 24CHƯƠNG 4 KẾT LUẬN
4.1 Kết luận
Mạch sau khi hoàn đã hoạt động đúng như yêu cầu nhiệm vụ trong đề tài, mạch
có thể đo ba mức nước và hiển thị trạng thái của các mức nước lên màn hình LCD,đồng thời cảnh báo SMS qua điện thoại di động khi mức nước ở trạng thái cao.Mạch chạy ổn định, vận hành đơn giản và dễ sử dụng, các linh kiện hư hỏng cóthể thay thế và dễ tìm kiếm trên thị trường
Để hoàn thành được đồ án này, tôi đã tìm hiểu nghiên cứu các vấn đề có liênquan tới: PIC16F877A, Module SIM, cảm biến siêu âm, các tập lệnh AT để PIC cóthể giao tiếp với module sim, phần mềm lập trình MikroC với ngôn ngữ C và cácvấn đề khác liên quan đến đồ án
4.2 Hướng phát triển
Do thời gian tìm hiểu đề tài có hạn và kiến thức còn hạn hẹp nên đề tài thực hiệnxong chỉ áp dụng được một phần nhỏ của hệ thống thực tế đã hoàn chỉnh Vì vậy, đểcho đồ án này có thể ứng dụng rộng rãi hơn thì có thể phát triển thêm một vàihướng như:
Ngoài việc có thể cảnh báo SMS qua điện thoại di động thì ta còn có thể sửdụng điện thoại di động điều khiển đóng tắt động cơ để chặn hoặc xả lũ
Do linh kiện còn hạn chế về độ bền và hiệu năng làm việc nên sai số là điềukhó tránh khỏi, để khắc phục thì ta cần sử dụng các linh kiện có hiệu nănglàm việc có độ chính xác cao hơn và bền hơn
Ngoài việc cảnh báo qua SMS thì có thể sử dụng các loại cảnh báo khác nhưchuông cảnh báo hoặc có thể thiết kế hệ thống tự động đóng hoặc xả lũ khicần thiết mà không cần con người điều khiển
Ngoài thực tế khi mưa lớn thì đường xá ở thành phố thường hay bị ngập lụt ởmột vài nơi do lượng nước quá nhiều đổ từ các sông hồ ngược vào cống, vìvậy ta có thể thiết kế các hệ thống đóng mở cửa cống tự động khi mức nướcvượt quá giới hạn cho phép để đường xá sẽ không bị ngập lụt khi có mưalớn