ĐO NHIỆT độ và độ ẩm QUA SMS MODULE SIM DÙNG PIC (có code và layout) ĐO NHIỆT độ và độ ẩm QUA SMS MODULE SIM DÙNG PIC (có code và layout) ĐO NHIỆT độ và độ ẩm QUA SMS MODULE SIM DÙNG PIC (có code và layout) ĐO NHIỆT độ và độ ẩm QUA SMS MODULE SIM DÙNG PIC (có code và layout) ĐO NHIỆT độ và độ ẩm QUA SMS MODULE SIM DÙNG PIC (có code và layout)
Trang 1ĐO NHIỆT ĐỘ VÀ ĐỘ ẨM QUA SMS
Trang 2DANH MỤC CÁC TỪ VIẾT TẮT VIII
CHƯƠNG 1 TÌM HIỂU CHUNG 1
1.1 GIỚI THIỆU SƠ LƯỢC VỀ ĐỀ TÀI 1
1.2 SƠ ĐỒ GIẢI THUẬT 1
1.3 SƠ ĐỒ KHỐI 2
CHƯƠNG 2 TÌM HIỂU LINH KIỆN 3
2.1 VI ĐIỀU KHIỂN PIC16F877A 3
2.1.1 Giới thiệu chung 3
2.1.2 Đặc điểm PIC16F877A 4
2.1.2.1 Các đặc tính ngoại vi của PIC 4
2.1.2.2 Các đặc tính analog 4
2.1.2.3 Các đặc tính khác 4
2.1.3 Sơ đồ chân của PIC 16F877A 5
2.1.3.1 PORTA 5
2.1.3.2 PORTB 6
2.1.3.3 PORTC 6
2.2 LCD 16X2 7
2.2.1 Giới thiệu chung 7
2.2.2 Sơ đồ chân LCD 7
2.3 CẢM BIẾN NHIỆT ĐỘ, ĐỘ ẨM DHT11 9
2.3.1 Giới thiệu chung 9
2.3.2 Thông số kỹ thuật 9
2.3.3 Nguyên lý hoạt động 10
2.4 MODULE SIM 800A 12
2.4.1 Giới thiệu chung 12
2.4.2 Thông số kỹ thuật 12
Trang 32.5.2 Các thông số cơ bản trong truyền nhận UART 15
2.5.3 Quá trình truyền dữ liệu bằng UART 16
CHƯƠNG 3 THIẾT KẾ VÀ THI CÔNG MẠCH 17
3.1 SƠ ĐỒ NGUYÊN LÝ 17
3.2 SƠ ĐỒ LAYOUT 18
3.3 MẠCH HOÀN THIỆN 19
CHƯƠNG 4 KẾT LUẬN 21
4.1 ƯU ĐIỂM 21
4.2 NHƯỢC ĐIỂM 21
4.3 HƯỚNG PHÁT TRIỂN ĐỀ TÀI 21
TÀI LIỆU THAM KHẢO 22
PHỤ LỤC 23
Trang 4Hình 1-2 Sơ đồ khối 2
Hình 2-1 PIC16F877A[3] 3
Hình 2-2 Sơ đồ chân PIC16F877A[3] 5
Hình 2-3 Bảng chức năng của PortA[3] 6
Hình 2-4 Bảng chức năng của PortB[3] 6
Hình 2-5 Bảng chức năng của PortC[3] 7
Hình 2-6 Sơ đồ chân LCD[4] 7
Hình 2-7 DHT11[3] 9
Hình 2-8 Quá trình gửi tín hiệu DHT11[3] 10
Hình 2-9 Module SIM 800A[4] 12
Hình 2-10 Sơ đồ chân SIM800A[4] 13
Hình 2-11 Quá trình truyền dữ liệu bằng UART[4] 16
Hình 3-1 Sơ đồ nguyên lý 17
Hình 3-2 Sơ đồ layout 18
Hình 3-3 Mạch in PCB 19
Hình 3-4 Mạch hàn linh kiện hoàn chỉnh 20
Trang 5ADC Analog Digital Converter
EEPROM Electrically Erasable Programmable Read-Only
GPRS General Packet Radio Service
GSM Global System for Mobile
IC Integrated Circuit
LCD Liquid Crystal Display
LED Light Emitting Diode
PIC Programable Intelligent Computer
RAM Random Access Memory
RS Register Select
SMS Short Message Services
SIM Subcriber Identity Module
TTL Transistor-transistor logic
UART Universal Asynchronous Receiver Transmitter
USART Universal Synchronous & Asynchronous Receiver Transmitter
VDD Voltage Drain Drain
VSS Voltage for Substrate and Sources
Trang 6CHƯƠNG 1 TÌM HIỂU CHUNG
1.1 Giới thiệu sơ lược về đề tài
Tên đề tài: Đo nhiệt độ và độ ẩm qua SMS
- Tìm hiểu về vi điều khiển PIC16F877A
- Tìm hiểu Module SIM, cảm biến nhiệt độ
- Thiết kế mạch đo nhiệt độ, độ ẩm có hiển thị LCD và gửi cảnh báo qua SMS
- Lập trình điều khiển và thi công phần cứng
1.2 Sơ đồ giải thuật
Hình 1-1 Sơ đồ giải thuật
1.3 Sơ đồ khối
Trang 7Hình 1-2 Sơ đồ khối
- Khối nguồn: Cung cấp nguồn cho hệ thống
- Khối cảm biến nhiệt độ, độ ẩm: Tiến hành đọc giá trị nhiệt độ, độ ẩm và gửi kết
quả về vi điều khiển
- Khối điều khiển: Xử lý giá trị đọc được và tiến hành gửi qua Module SIM, tác
động đến khối cảm biến nhiệt độ, độ ẩm để đọc giá trị mới tại thời điểm tiếp theo
- Module SIM: Nhận giá trị nhiệt độ, độ ẩm từ vi điều khiển và tiến hành gửi giá trị
nhận được đến điện thoại di động bằng SMS
- Điện thoại di động: Nhận tin nhắn từ Module SIM gửi đến
CHƯƠNG 2 TÌM HIỂU LINH KIỆN
Trang 81.4 Vi điều khiển PIC16F877A
1.1.1 Giới thiệu chung
PIC là tên vi điều khiển do hãng General Instrument đặt tên cho vi điều khiển đầu tiêncủa họ Vi điều khiển PIC16F877A thuộc họ 16F8XXX với tập lệnh gồm 35 lệnh có
độ dài 14 bit Mỗi lệnh đều được thực thi với một chu kỳ xung clock Tốc độ hoạtđộng tối đa cho phép là 20MHz với một chu kỳ lệnh là 200ns Bộ nhớ chương trình8Kx14 bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dunglượng 256x8 byte Số port I/0 là 5 với 33 pin I/0
Hình 2-3 PIC16F877A[3]
1.1.2 Đặc điểm PIC16F877A
1.1.1.1 Các đặc tính ngoại vi của PIC
Gồm có các khối chức năng sau:
+ Timer0: Bộ đếm 8 bit với bộ chia tần số 8 bit
+ Timer1: Bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm dựavào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep
Trang 9+ Timer2: 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 khác nhau
+ Cồng giao tiếp song song với các chân điều khiển ở bên ngoài
+ Nạp được chương trình ngay trên mạch điện
+ Chế độ sleep tiết kiệm năng lượng, chức năng bảo mật chương trình
+ Hoạt động với nhiều dạng Oscillator khác nhau
1.1.3 Sơ đồ chân của PIC 16F877A
Trang 10Hình 2-4 Sơ đồ chân PIC16F877A[3]
Cổng xuất/ nhập là phương tiện mà vi điều khiển dùng để tương tác với thế giới bênngoài Sự tương tác này rất đa dạng, thông qua đó, chức năng của vi điều khiển thểhiện một cách rõ ràng PIC 16F877A có 5 cổng xuất/ nhập là PORTA, PORTB,PORTC, PORTD, PORTE
1.1.1.4 PORTA
Port A bao gồm 6 chân từ RA0-RA5 Đây là các chân 2 chiều và được điều khiển bởi thanh ghi TRISA PORTA là ngõ ra của ADC, bộ so sánh, ngõ vào analog, ngõ vào xung clock của timer0
Hình 2-5 Bảng chức năng của PortA[3]
1.1.1.5 PORTB
Trang 11PORTB gồm 8 chân từ RB0-RB7, các giá trị thanh ghi TRISB quy định PORTB
Hình 2-6 Bảng chức năng của PortB[3]
Trang 121.1.4 Giới thiệu chung
LCD là một thiết bị ngoại vi dùng để giao tiếp với người dùng, có khả năng hiểnthị tất cả các ký tự trong bảng mã ASCII , dễ dàng đưa vào mạch ứng dụng sử dụngcác giao thức giao tiếp khác nhau, tốn ít tài nguyên và giá không quá cao Do vậy,ngày nay LCD được dùng rất nhiều trong các ứng dụng của vi điều khiển với mụcđích hiển thị các số liệu, kết quả tính toán một cách trực quan, rõ ràng
1.1.5 Sơ đồ chân LCD
Hình 2-8 Sơ đồ chân LCD[4]
- Chân 1(VSS): Nối đất cho LCD
- Chân 2(VDD):Cấp nguồn cho LCD
- Chân 3(VEE): Điều chỉnh độ tương phản cho LCD
- Chân 4(RS): Chân chọn thanh ghi
- Chân 5(RW): Chân chọn chế độ đọc/ghi
- Chân 6(Enable): Chân cho phép
- Chân 7-14(D0-D7): Dùng để trao đổi thông tin, có hai chế độ được sử dụng
+ Chế độ 8 bit:Dữ liệu truyền trên cả 8 đường, bit MSB là D7
+ Chế độ 4 bit:Dữ liệu truyền trên 4 đường D4-D7, bit MSB là D7
- Chân 15(LEDA): Cấp nguồn dương cho đèn nền
- Chân 16(LEDK): Nối GND cho đèn nền
Trang 131.6 Cảm biến nhiệt độ, độ ẩm DHT11
1.1.6 Giới thiệu chung
Cảm biến nhiệt độ, độ ẩm DHT11 là cảm biến rất thông dụng hiện nay vì giáthành rẻ và dễ lấy dữ liệu thông qua giao tiếp 1 wire Bộ tiền xử lý tín hiệu tích hợptrong cảm biến giúp ta thu được dữ liệu chính DHT ra đời sau và thay thế cho dòngSHT1X ở những nơi không cần độ chính xác cao về nhiệt độ và độ ẩm, so với cảmbiến DHT22 thì DHT11 cho kết quả kém chính xác hơn rất nhiều
Trang 14+ Đo tốt ở nhiệt độ 0-50oC với sai số 2%
+ Đo tốt ở độ ẩm 2080%RH với sai số 5%
+ Tần số lấy mẫu tối đa 1Hz
+ Kích thước 15mm*12mm*5.5mm
+ Khoảng cách giữa các chân 0.1’’
1.1.8 Nguyên lý hoạt động
Để giao tiếp với DHT11 theo chuẩn 1 wire, ta thực hiện theo 2 bước:
+ Gửi tín hiệu muốn đo tới DHT11, DHT11 sẽ gửi xác nhận lại
+ Khi đã giao tiếp được với DHT11, cảm biến sẽ gửi lại 5 byte dữ liệu và nhiệt độ
đo được
Bước 1: Gửi tín hiệu Start:
Trang 15Hình 2-10 Quá trình gửi tín hiệu DHT11[3]
MCU thiết lập chân Data là output, kéo chân Data xuống mức 0 trong thờigian>18ms Khi đó DHT sẽ hiểu và đo giá trị nhiệt độ, độ ẩm
MCU đưa chân Data lên mức 1, sau đó thiết lập lại chân là đầu vào Sau khoảng 40us, DHT11 sẽ kéo chân Data xuống mức thấp trong vòng 80us.Sau đó sẽ lại đượckéo lên mức cao 80us, khi đó hoàn tất quá trình giao tiếp
20-Bước 2: Đọc giá trị trên DHT11
DHT11 trả kết quả về 5 byte, trong đó:
+ Byte1: Giá trị phần nguyên của độ ẩm
+ Byte2: Giá trị phần thập phân của độ ẩm
+ Byte3: Giá trị phần nguyên của nhiệt độ
+ Byte4: Giá trị phần thập phân của nhiệt độ
+ Byte5: Kiểm tra tổng
Nếu Byte5=(8bit)(Byte1+byte2+byte3+byte4) thì giá trị nhiệt độ và độ ẩm là chính xác, ngược lại kết quả đo xem như sai
Trang 161.7 Module SIM 800A
1.1.9 Giới thiệu chung
Module SIM 800A là một module wireless Nó làm việc với cùng một mạngwireless GSM., việc gửi và nhận dữ liệu được thông qua sóng, module SIM 800Agiống như một điện thoại di động GSM, tức yêu cầu một thẻ sim với một mạngwireless để hoạt động Module SIM 800A là module được thay thế cho ModuleSIM900A nhưng vẫn đảm bảo đầy đủ thiết kế cần thiết của module sim như: Mạchchuyển mức tín hiệu logic sử dụng Mosfet, IC giao tiếp RS232 MAX232, mạchnguồn xung dòng cao,khe sim chuẩn, các led báo hiệu, angten GSM
Trang 17Hình 2-11 Module SIM 800A[4]
1.1.10 Thông số kỹ thuật
- Nguồn cấp đầu vào 5-18VDC
- Mức tín hiệu giao tiếp TTL hoặc RS232
- Tích hợp chuyển mức tín hiệu TTL Mosfet tốc độ cao
- Sử dụng khe micro SIM hỗ trợ SIM card 1.8v;3v
-Băng tần: GSM 850Mhz.SIM800A có thể tự động tìm kiếm các băng tần1.1.11 Khảo sát sơ đồ chân của Module SIM
Hình 2-12 Sơ đồ chân SIM800A[4]
Thứ tự các chân:
SIM 800A
Trang 18- Chân 1: Chân ON/OFF ta cần kích 1 xung có mức tích cực dương vàokhoảng 1s, lúc này đèn status sẽ sáng, sau đó chớp nháy với tần suất nhanhbáo hiệu SIM800 đang khởi động và tìm mạng Sau 10s sau Led Statusnhấp nháy chậm báo hiệu SIM800 đã hoạt động bình thường.
- Chân 2 : Request to send
- Chân 3 : đầu ra dùng để chỉ báo mạng kết nối được hệ thống
- Chân 4 : Clear to send
- Chân 5 : đầu vào pin dự phòng cho module
- Chân 6 : Data carrier detection
- Chân 7 : Chân vào của bộ chuyển đổi tín hiệu tương tự sang số
- Chân 8 : Ring chân ra loa báo hiệu có cuộc gọi đến
- Chân 9, 11 : chân loa nghe cuộc thoại
- Chân 13,15 : chân MIC
- Chân 10 : chân đầu cuối dữ liệu
- Chân 12 : chân truyền dữ liệu
- Chân 14 : chân nhận dữ liệu
- Chân 16 : chân RESET SIM900
- Chân 17,19 : chân nguồn cấp cho sim hoạt động
- Chân 18,20 : chân mass
1.1.12 Khảo sát tập lệnh AT Command
Các lệnh AT là các hướng dẫn được sử dụng để điều khiển một modem
AT là một cách viết gọn của chữ Attention Mỗi dòng lệnh của nó bắt đầu với
“AT” hay “at” Đó là lý do tại sao các lệnh modem được gọi là các lệnh AT.Nhiều lệnh của nó được sử dụng để điều khiển các modem quay số sử dụng dây mối(wired dial-up modems), chẳng hạn như ATD (Dial), ATA (Answer),ATH (Hool control) và ATO (return to online data state), cũng được hỗ trợ bởi các modem GSM/GPRS và các điện thoại di động
Trang 19Bên cạnh bộ lệnh AT thông dụng này, các modem GSM/GPRS và cácđiện thoại di động còn được hỗ trợ bởi một bộ lệnh AT đặc biệt đối với côngnghệ GSM Nó bao gồm các lệnh liên quan tới SMS như AT+ CMGS (gửi tinnhắn SMS), AT+CMSS (gửi tin nhắn SMS từ một vùng lưu trữ), AT+CMGL(chuỗi liệt kê các tin nhắn SMS) và AT+CMGR (đọc tin nhắn SMS) Ngoài ra,cácmodem GSM còn hỗ trợ một bộ lệnh AT mở rộng Những lệnh AT mở rộng nàyđược định nghĩa trong các chuẩn của GSM Với các lệnh AT mở rộng này có thểlàm được một số thứ như sau:
- Đọc, viết, xóa tin nhắn
- Gửi tin nhắn SMS
- Kiểm tra chiều dài tín hiệu
- Đọc, viết và tìm kiếm về các mục danh bạ
1.8 Giao thức USART
1.1.13 Định nghĩa
USART( Universal Synchronous & Asynchronous Receiver Transmitter) nghĩa
là bộ truyền nhận nối tiếp đồng bộ và không đồng bộ Khái niệm USART( hayUART nếu chỉ nói đến bộ truyền nhận không đồng bộ) thường để chỉ thiết bị phầncứng, không phải chỉ chuẩn giao tiếp.USART hay UART cần kết hợp với một thiết
bị chuyển đổi điện áp để tạo ra một chuẩn giao tiếp nào đó Chuẩn RS232 là sự kếthợp của chip UART và chip chuyển đổi mức điện áp Tín hiệu từ chip UARTthường theo mức TTL: Mức logic cao là 5V, mức logic thấp là 0V trong khi tín hiệutheo chuẩn RS232 thường là 12V cho mức logic cao và -12V cho mức logic thấp.1.1.14 Các thông số cơ bản trong truyền nhận UART
Trang 20Tốc độ Baud: Khoảng thời gian dành cho 1 bit được truyền Phải cài đặt tốc độ
Baud giống nhau ở cả hai đầu gửi và nhận
Khung truyền: Khung truyền quy đinh số bit trong mỗi lần truyền
Start bit: Là bit đầu tiên được truyền trong 1 khung truyền báo hiệu thiết bị nhận có
một gói dữ liệu sắp được truyền đến Đây là bit bắt buộc phải có
Data: Dữ liệu cần truyền Bit có trọng số nhỏ nhất sẽ được truyền trước cho đến bit
có trọng số lớn nhất
Parity bit: Kiểm tra dữ liệu truyền có đúng không
Stop bit: là 1 hoặc các bit báo cho thiết bị biết rằng các bit đã được gửi xong Thiết
bị nhận sẽ tiến hành kiểm tra khung truyền nhằm đảm bảo tính đúng đắn của dữliệu Đây là bit bắt buộc phải có
1.1.15 Quá trình truyền dữ liệu bằng UART
Để bắt đầu cho việc truyền dữ liệu bằng UART, một start bit sẽ được gửi đi, sau
đó là các bit dữ liệu và kết thúc là Stop bit Khi ở trạng thái chờ, mức điện thế ởmức cao Khi bắt đầu truyền dữ liệu, Start bit sẽ chuyển từ mức 1 xuống mức 0 đểthông báo cho bộ nhận quá trình truyền tín hiệu chuẩn bị diễn ra Sau Start bit là cácbit dữ liệu D0-D7 được truyền đi, Bit parity được truyền đi sau đó để bộ nhận kiểmtra tính đúng đắn của dữ liệu được truyền Sau cùng, Stop bit được truyền đi để báocho thiết bị nhận biết các bit đã được gửi đi xong Thiết bị nhận sẽ kiểm tra khungtruyền nhằm đảm bảo tính đúng đắn của dữ liệu
Hình 2-13 Quá trình truyền dữ liệu bằng UART[4]
Trang 21CHƯƠNG 3 THIẾT KẾ VÀ THI CÔNG MẠCH
1.9 Sơ đồ nguyên lý
Hình 3-14 Sơ đồ nguyên lý
1.10 Sơ đồ layout
Trang 22Hình 3-15 Sơ đồ layout
1.11 Mạch hoàn thiện
Trang 23Hình 3-16 Mạch in PCB
Trang 24Hình 3-17 Mạch hàn linh kiện hoàn chỉnh
Trang 25CHƯƠNG 4 KẾT LUẬN
1.12 Ưu điểm
Hiển thị nhiệt độ, độ ẩm và gửi cảnh báo qua SMS có tầm quan trọng đặc biệttrong rất nhiều các ngành công nghiệp ứng dụng Việc gửi giá trị nhiệt độ, độ ẩmqua SMS dùng cảm biến DHT11 có ưu điểm là đơn giản, dễ thiết kế, chế tạo và đưavào sử dụng thực tế Ưu điểm của gửi SMS so với các phương thức truyền khác làviệc phổ biến của sóng điện thoại ở nước ta nên có thể gửi tín hiệu ở tốc độ cao,khoảng cách lớn và giá thành rẻ giúp người dùng dù ở xa nhưng vẫn có thể biếtđược các giá trị nhiệt độ, độ ẩm của môi trường nơi đặt cảm biến từ đó có thể cónhững điều chỉnh phù hợp, kịp thời cho phù hợp với mục đích sản xuất từ đó gópphần nâng cao năng suất, chất lượng sản phẩm đồng thời hạn chế rủi ro không mongmuốn
1.13 Nhược điểm
Ngoài những ưu điểm trên, nhược điểm của việc hiển thị nhiệt độ, độ ẩm dùngcảm biến DHT11 và gửi cành báo qua SMS vẫn tồn tại nhiều nhược điểm Cảm biếnDHT11 cho kết quả có sai số cao, độ bền thấp nên còn hạn chế trong những côngviệc đòi hỏi tính chính xác cao hoặc khi đặt ngoài những nơi có thời tiết khắcnghiệt Ngoài ra, việc dùng vi điều khiển là PIC16F877A khiến tốc độ xử lý củamạch không cao, khó phát triển lên những ứng dụng phức tạp hơn
1.14 Hướng phát triển đề tài
Từ đề tài cảnh báo nhiệt độ, độ ẩm qua SMS ta có thể phát triển ứng dụng điềukhiển hệ thống điều khiển tưới cây tự động, hệ thống kiểm soát nhiệt độ, độ ẩm nhàkho, giàn phơi đồ thông minh dựa vào nhiệt độ, độ ẩm của môi trường và gửi giátrị về người dùng để có thể điều chỉnh giá trị cho phù hợp
TÀI LIỆU THAM KHẢO
Tiếng Việt
Trang 27#device *=8 adc=10
#fuses nowdt,hs,noput,noprotect,nodebug,nobrownout,nolvp, nocpd,nowrt
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stream=PORT1)
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_ENABLE_PIN PIN_D3
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#include <lcd.c>
#define dht pin_b0
void khoitao_sim(){
delay_ms(4000); // cho sim900a duoc khoi dong xong
printf("AT"); putc(13); delay_ms(1000); // gui lenh AT
printf("AT+CMGF=1"); putc(13); delay_ms(1000); // cau hinh tin nham