MẠCH đo NHỊP TIM CẢNH báo BẰNG TIN NHẮN SMS (có code và layout bên dưới) MẠCH đo NHỊP TIM CẢNH báo BẰNG TIN NHẮN SMS (có code và layout bên dưới) MẠCH đo NHỊP TIM CẢNH báo BẰNG TIN NHẮN SMS (có code và layout bên dưới) MẠCH đo NHỊP TIM CẢNH báo BẰNG TIN NHẮN SMS (có code và layout bên dưới) MẠCH đo NHỊP TIM CẢNH báo BẰNG TIN NHẮN SMS (có code và layout bên dưới)
Trang 1MẠCH ĐO NHỊP TIM CẢNH BÁO
BẰNG TIN NHẮN (SMS)
Trang 2DANH MỤC CÁC TỪ VIẾT TẮT
CHƯƠNG 1 TÌM HIỂU LINH KIỆN 1
1.1 CẢM BIẾN ĐO NHỊP TIM (PULSE SENSOR) 1
1.2 VI ĐIỀU KHIỂN PIC 16F877A 2
1.3 MẠCH GSM GPRS GPS SIM808 6
1.4 MODULE LM2596 7
1.5 LCD 8
CHƯƠNG 2 KỸ THUẬT GPS 9
2.1 GIỚI THIỆU VỀ GPS 9
2.2 GPS VỚI SIM808 11
CHƯƠNG 3 THIẾT KẾ MẠCH VÀ THỰC THI PHẦN CỨNG 12
3.1 LƯU ĐỒ THỰC THI PHẦN CỨNG 12
3.2 SƠ ĐỒ NGUYÊN LÝ MẠCH 13
3.3 THỰC THI PHẦN CỨNG 14
CHƯƠNG 4 KẾT LUẬN, ỨNG DỤNG VÀ HƯỚNG PHÁT TRIỂN 16
4.1 KẾT LUẬN 16
4.2 ỨNG DỤNG 16
4.3 HƯỚNG PHÁT TRIỂN 16
TÀI LIỆU THAM KHẢO 17
PHỤ LỤC 18
Trang 3HÌNH 1-2: MẶT SAU PULSE SENSOR 1
HÌNH 1-3: TÍN HIỆU NHỊP TIM 2
HÌNH 1-4: SƠ ĐỒ CHÂN PIC16F877A 2
HÌNH 1-5: SƠ ĐỒ LOGIC CÁC NGẮT TRONG PIC16F877A 5
HÌNH 1-6: SIM808 6
HÌNH 1-7: MODULE LM2596 7
HÌNH 1-8: LCD 8
HÌNH 2-1: CÁC VỆ TINH BAO QUANH TRÁI ĐẤT 9
HÌNH 3-1: SƠ ĐỒ NGUYÊN LÝ 13
HÌNH 3-2: MẠCH IN 1 14
HÌNH 3-3: MẠCH IN 2 14
HÌNH 3-4: MẠCH NGOÀI THỰC TẾ 15
DANH MỤC CÁC TỪ VIẾT TẮT
Trang 4GPRS General Packet Radio Service
GSM Global System for Mobile Communications
PSP Parallel Slave Port
TTL Transistor-transistor logic
USART Universal Synchronous Asynchronous Receiver Transmitter
Trang 5CHƯƠNG 1 TÌM HIỂU LINH KIỆN
1.1 Cảm biến đo nhịp tim (Pulse Sensor)
Nhịp đập của tim là thông số quan trọng trong việc xây dựng một bài tập thể dụckhoa học Trước đây, cảm biến nhịp tim chỉ thường xuất hiện trên các thiết bị đắttiền như là máy chạy bộ, máy đo trong bệnh viện, smartphone,…v.v… Giờ đây đãxuất hiện loại cảm biến đo nhịp tim mà chúng ta dễ dàng kết nối với các board mạchđiện tử như Arduino, Raspberry Pi hay các MCU khác
Cảm biến hoạt động dựa trên một sensor quang đo nhịp tim cùng với bộ khuếch đạitín hiệu và lọc nhiễu
Cấu tạo gồm hai thành phần là một đầu phát quang là bóng hồng ngoại (bước sóng609nm), và một quang trở nhạy với bước sóng ánh sáng mà đầu phát phát ra
hoạt động theo nguyên lí là khi áp chặt mặt
cảm biến vào da, nơi có mạch máu chảy (thường là áp vào tai, đầu ngón tay) đầuphát sẽ phát ra ánh sáng đi vào da Dòng ánh sáng sẽ khuếch tán ra xung quanh vàmột phần đi tới quang trở gần đầu phát Do bị ép nên lượng máu phần cảm biến sẽ
bị thay đổi, cụ thể khi không có áp lực tim đập, máu sẽ dồn ra xung quanh, lượngánh sáng từ đầu phát sẽ về phía đầu thu nhiều hơn khi tim đập, máu chảy qua nơi cócảm biến áp vào Sự thay đổi rất nhỏ, nên phần cảm nhận ánh sáng (quang trở)thường có mạch IC để khuếch đại tín hiệu thay đổi này, đưa về mạch lọc, đếm hoặcqua mạch ADC để tín toán ra nhịp tim Tín hiệu đầu ra là analog dao động theo nhịpđập của tim
Hình 1-2: Mặt sau Pulse Sensor Hình 1-1: Pulse Sensor
Trang 61.2 Vi điều khiển PIC 16F877A
PIC16F877A thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit
Mỗi lệnh thực thi trong một chu kì xung clock Tốc độ hoạt động tối đa chophép là 20 MHz với một chu kì lệnh là 200ns Bộ nhớ chương trình 8K x 14bit, bộ nhớ dữ liệu 368x8 byte RAM và EEPROM với dung lượng 256x8 byte
Số PORT I/O là 5 với 33 chân I/O
Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ và song song PSP gồm các chânđiều khiển RD, WR, CS ở bên ngoài
Hình 1-3: Tín hiệu nhịp tim
Hình 1-3: Arduino Uno R3 Hình 1-4: Sơ đồ chân PIC16F877A
Trang 7Bộ nhớ dữ liệu của PIC16F877A là EEPROM chia thành 4 bốn bank, mỗi bank códung lượng 128 byte, gồm các thanh ghi có công dụng đặc biệt SFG nằm ở vùng cóđịa chỉ thấp và các thanh ghi mục đích chung GPR nằm ở vùng còn lại trong bank.Thanh ghi SFR được sử dụng thường xuyên được đặt ở tất cả bank của bộ nhớ giúptruy xuất thuận lợi và giảm bớt lệnh chương trình.
Bộ nhớ chương trình của PIC16F877A là flash, có dung lượng 8K word (1word =
14 bit) chứa được 8192 lệnh, dung lượng 1 lệnh sau mã hóa là 1 word tương ứng 14bit Khi reset vi điều khiển, bộ đếm chương trình sẽ chỉ đến địa chỉ 0000h Khi ngắtthì bộ đếm sẽ chỉ đến địa chỉ 0004h Bộ nhớ chương trình không gồm bộ nhớ stack
và không được địa chỉ hóa bởi bộ đếm chương trình
1.2.1 Các cổng xuất nhập của PIC16F877A
- Port A: Gồm có sáu chân I/O, là các chân hai chiều có thể xuất và nhập đềuđược Thanh ghi TrisA điều khiển chức năng này Muốn xác lập chức năngmột chân trong Port A là đầu vào thì ta “set” bit điều khiển tương ứng vớichân đó trong thanh ghi TrisA và ngược lại, muốn xác lập chức năng của mộtchân trong Port A là đầu ra, ta “clear” bit điều khiển tương ứng với chân đótrong thanh ghi TrisA
- Port B: Gồm 8 chân I/O, thanh ghi TrisB là thanh ghi điều khiển xuất nhậptương ứng, một số chân của Port B còn được dùng trong quá trình nạpchương trình cho vi điều khiển với các chế độ nạp khác nhau Port B còn cóngắt ngoại vi và timer 0 Port B còn được tích hợp chức năng kéo trở lên điềukhiển bởi chương trình
- Port C: Gồm có 8 chân I/O, TrisC là thanh ghi điều khiển xuất nhập Port Ccòn có chức năng của bộ so sánh, timer 1, PWM và các chuẩn giao tiếp I2C,SPI, USART
- Port D: Gồm 8 chân I/O, TrisD là thanh ghi điều khiển xuất nhập, là cổngxuất dữ liệu của chuẩn giao tiếp PSP
Trang 8- Port E: Gồm 3 chân I/O, TrisE là thanh ghi điều khiển xuất nhập tương ứng,các chân là ngõ vào analog, còn là các chân điều khiển chuẩn giao tiếp PSP.
1.2.2 Giao tiếp nối tiếp – USART
USART là một trong hai chuẩn giao tiếp kết nối, còn được gọi là giao diện giaotiếp nối tiếp SCI, được sử dụng để kết nối với các thiết bị ngoại vi, với vi điều khiểnkhác hoặc với máy tính Giao diện SART gồm có 3 dạng:
1.2.3 Ngắt – Interrup
Hoạt động ngắt của PIC16F877A có 15 nguồn tạo ra được điều khiển bởi thanh ghiINTCON Mỗi ngắt có 1 bit điều khiển và cờ ngắt riêng, hoạt động ngắt lệ thuộcvào bit GIE và các bit điều khiển khác Bit điều khiển ngắt là RB0/INT và TMR0nằm trong thanh ghi INTCON, thanh ghi này còn có bit cho phép ngắt ngoại viPEIE Bit điều khiển ngắt nằm trong thanh ghi PIE1 và PIE2 Cờ ngắt nằm trongthanh ghi PIR1 và PIR2
Ngắt ngoại vi như là ngắt từ chân INT hay ngắt từ sự thay đổi trạng thái của cácchân Port B thì việc xác định ngắt nào xảy ra cần 3 hay 4 chu kỳ lệnh tùy thuộc vàothời điểm ngắt xảy ra
Khi chương trình ngắt được thực thi, bit GIE được xóa tự động, địa chỉ lệnh tiếptheo của chương trình chính được cất vào bộ nhớ stack và bộ đếm sẽ chỉ đến địa chỉ
Trang 90004h Để thoát khỏi chương trình ngắt và trở lại chương trình chính thì dùng lệnhRETFIE.
Ngắt INT dựa trên sự thay đổi trạng thái chân RB0/INT Cạnh lên hay xuống có thểtác động gây ra ngắt và do bit INTEDG điều khiển Khi có cạnh tác động thích hợpxuất hiện tại chân RB0/INT, cờ ngắt INTF được set bất chấp trạng thái các bit điềukhiển GIE và PEIE
Ngắt do sự thay đổi trạng thái các chân trong Port B dùng các chân Port B<7:4> vàđược điều khiển bởi bit RBIE Cờ ngắt của ngắt này là RBIF
Trang 10Mạch có thiết kế nhỏ gọn nhưng có độ bền và ổn định cao, mạch được tích hợp cácthiết kế cần thiết cho module Sim, mạch nguồn xung áp, tụ lọc và ổn định nguồn.Mạch thích hợp cho các yếu tố sử dụng GSM, GPRS, GPS cần độ bền và ổn địnhcao, mạch đi kèm anten GSM và GPS.
GPRS GPS SIM808
- Nguồn vào: 5-18 VDC, lớn hơn 1A
- Tín hiệu giao tiếp: TTL (3.3 – 5 VDC)
- Tích hợp chuyển mức tín hiệu TTL Mosfet tốc độ cao
- Tích hợp mạch giảm áp xung và tụ lọc, ổn định nguồn
- Tích hợp khe cắm Micro Sim
- Tích hợp led báo trạng thái
Trang 11- SPKN: Ngõ ra loa speaker âm.
- SPKP: Ngõ ra loa speaker dương
- MICP: Ngõ vào micro dương
- MICN: Ngõ vào micro âm
1.4 Module LM2596
Mạch giảm áp LM2596 là module giảm áp có khả năng điều chỉnh dòng ra đến 3A.LM2596 là IC nguồn tích hợp đầy đủ bên trong Tức là khi cấp nguồn 9V vàomodule, sau khi giảm áp ta có thể lấp nguồn 3A < 9V như 5V hay 3V
Trang 12trong các ứng dụng của vi điều khiển LCD có nhiều ưu điểm so với các dạng hiểnthị khác Nó có khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ họa),
dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau , tốn ít tàinguyên hệ thống và giá thành rẻ
- VDD: Cực dương (5V)
- Constrast Voltage (Vo): Điều khiển độ sáng màn hình
- Register Select (RS): Điều khiển địa chỉ nào ghi dữ liệu
- Read/Write (RW): Đọc hoặc ghi dữ liệu
- Enable pin: Cho phép ghi vào LCD
- D0 – D7: 8 chân dữ liệu, có giá trị high hoặc low
- Backlight (Anode (+) và Cathode (-)): Bật tắt đèn màn hình LCD
CHƯƠNG 2 KỸ THUẬT GPS
1.6 Giới thiệu về GPS
Để có thể hiển thị vị trí tọa độ GPS trên google map thì cơ bản cần phải hiểu GPS là
gì GPS là một hệ thống gồm 27 vệ tinh (kể cả 3 vệ tinh dự phòng) chuyển động
Hình 1-8: LCD
Trang 13trên các quĩ đạo chung quanh trái đất Quân đội Mỹ phát triển hệ thống này với mụcđích quân sự nhưng nay nó đã được mở rộng cho các mục đích dân sự.
Mỗi vệ tinh nặng khoảng 2 tấn, sử dụng năng lượng mặt trời, chuyển động cách mặtđất khoảng 19300km Mỗi vệ tinh quay quanh trái đất 2 vòng một ngày đêm Quỹđạo của các vệ tinh được tính toán sao cho ở bất kỳ nơi nào trên trái đất, vào bất kỳthời điểm nào, cũng có thể “nhìn thấy” tối thiểu 4 vệ tinh
thu GPS là xác định vị trí của 4 vệ tinh hay hơn nữa, tính toán khoảng cách từ các
vệ tinh và sử dụng các thông tin đó để xác định vị trí của chính nó Quá trình nàydựa trên một nguyên lý toán học đơn giản:
- Vĩ độ (ký hiệu: φ) của một điểm bất kỳ trên mặt Trái Đất là góc tạo thành ) của một điểm bất kỳ trên mặt Trái Đất là góc tạo thành giữa đường thẳng đứng (phương của dây dọi, có đỉnh nằm ở tâm hệ tọa độ-chính là trọng tâm của địa cầu) tại điểm đó và mặt phẳng tạo bởi xích đạo Đường tạo bởi các điểm có cùng vĩ độ gọi là vĩ tuyến, và chúng là những đường tròn đồng tâm trên bề mặt Trái Đất Mỗi cực là 90 độ: cực bắc là 90° B; cực nam là 90° N Vĩ tuyến 0° được chỉ định là đường xích đạo, một đường thẳng tưởng tượng chia địa cầu thành Bán cầu bắc và Bán cầu nam
- Kinh độ (ký hiệu: λ) của một điểm trên bề mặt Trái Đất là góc tạo ra giữa ) của một điểm trên bề mặt Trái Đất là góc tạo ra giữa mặt phẳng kinh tuyến đi qua điểm đó và mặt phẳng kinh tuyến gốc Kinh độ
Hình 2-1: Các vệ tinh bao quanh trái đất
Trang 14có thể là kinh độ đông hoặc tây, có đỉnh tại tâm hệ tọa độ, tạo thành từ một điểm trên bề mặt Trái Đất và mặt phẳng tạo bởi đường thẳng ngẫu nhiên nối hai cực bắc nam địa lý Những đường thẳng tạo bởi các điểm có cùng kinh
độ gọi là kinh tuyến Tất cả các kinh tuyến đều là nửa đường tròn, và không song song với nhau: theo định nghĩa, chúng hội tụ tại hai cực bắc và nam Đường thẳng đi qua Đài Thiên văn Hoàng gia Greenwich (gần London ở Liên hiệp Vương quốc Anh và Bắc Ireland) là đường tham chiếu có kinh độ 0° trên toàn thế giới hay còn gọi là kinh tuyến gốc Kinh tuyến đối cực của Greenwich có kinh độ là 180°T hay 180°Đ
Bằng cách phối hợp hai góc này, ta có thể xác định được vị trí nằm ngang của bất
kỳ điểm nào trên Trái Đất
Có nhiều cách viết độ, tất cả chúng đều xuất hiện theo cùng thứ tự Vĩ độ - Kinh độ:
- DMS (Degree : Minute : Second): Độ : Phút : Giây
- DM (Degree : Minute): Độ : Phút
- DD (Decimal Degree): Độ thập phân
Để chuyển từ DM hoặc DMS sang DD, độ thập phân = số độ cộng với số phút chiacho 60, cộng với số giây chia cho 3600 DMS là định dạng phổ biến nhất, và là tiêuchuẩn trên tất cả các biểu đồ và bản đồ, cũng như hệ định vị toàn cầu và hệ thôngtin địa lý
đó, ngoài ra nó còn kiểm tra yêu cầu tin nhắn mà người dùng nhắn đến thực thi cácyêu cầu
Trang 15Khối SIM808 như một cầu nối thu thập dữ liệu GPS và GSM Truyền tải nội dungđến cho người dùng.
Khối nguồn nuôi dùng cung cấp nguồn cho toàn hệ thống, khối nguồn với dòng lớnđảm bảo hệ thống hoạt động ổn định Yêu cầu của khối nguồn nuôi là phải đủ mạnh
để cấp dòng tải cho toàn hệ thống hoạt động một cách ổn định nhất Ở đây sử dụngnguồn nuôi với IC nguồn LM2596 có khả năng cung cấp dòng tải lên đến 3A, dùngcấp điện trở phân áp cho ra mức điện áp ổn định 3.3V cấp cho SIM và khối vi xử lý.Khối vi xử lý thực hiện toàn bộ các nhiệm vụ quan trọng trong mạch, vừa đảm nhậnnhiệm vụ xử lý chuỗi GPS nhận được vừa thực hiện báo động cho người dùng khi
có yêu cầu
Khối vi xử lý được chọn sử dụng PIC16F887A làm IC xử lý trung tâm, giao tiếp vớiSIM808 qua 2 chân Tx, Rx
Để kích hoạt SIM808 hoạt động được cũng giống như SIM900 ta cần kích vào chân
số 1 của Breakout 1 xung mức cao, chân PWU (chân B0) của PIC sẽ đảm nhận việc
đó Sau khi kích hoàn tất, kiểm tra hoạt động của SIM bằng cách gởi lệnh AT lênSIM liên tục, nếu có trả về OK thì việc khởi động coi như hoàn tất
Tiếp theo là khởi động hệ thống GPS trong SIM808, sau đó là bắt đầu yêu cầuSIM808 thu thập dữ liệu GPS và xử lý dữ liệu để có thể hiển thị trên Google Map
CHƯƠNG 3 THIẾT KẾ MẠCH VÀ THỰC THI PHẦN CỨNG1.8 Lưu đồ thực thi phần cứng
Bắt đầu
Khởi tạo SIM808
Trang 16Gửi tin nhắn báo động
Trang 17Đây là sơ đồ nguyên lýđược thiết kế trên phần mềm Altium Designer (17.0), gồm 5 khối chính là khối hiểnthị LCD, khối vi điều khiển, khối cảm biến đo nhịp tim, khối nguồn và cuối cùng làkhối SIM808.
Nguyên lí hoạt động của mạch giải thích ngắn gọn là khi cảm biến nhận được nhịptim tín hiệu sẽ đi qua vi điều khiển từ đó vi điều khiển xử lý tín hiệu so sánh cácngưỡng báo động và truyền dữ liệu cho SIM808 gửi cảnh báo kèm vị trí tọa độ vềđiện thoại người dùng
1.10 Thực thi phần cứng
Hình 3-1: Sơ đồ nguyên lý
Trang 18Hình 3-2: Mạch in 1
Hình 3-3: Mạch in 2
Trang 19Đây là mạch in cũng được vẽ trên phần mềm Altium Designer (17.0), linh kiệnđược và sơ đồ được vẽ theo sơ đồ nguyên lý, thiết kế nhỏ gọn hết mức có thể để tạothẩm mỹ và thuận lợi khi sử dụng.
mạch là sau khi cấp nguồn cho mạch áp ngón tay vào cảm biến đo nhịp tim thì nhịptim sẽ hiển thị trên LCD, khi nhịp tim vượt qua ngưỡng cho phép thì sẽ có tin nhắncảnh báo kèm tọa độ vị trí tự động gửi về điện thoại
Hình 3-4: Mạch ngoài thực tế
Trang 20CHƯƠNG 4 KẾT LUẬN, ỨNG DỤNG VÀ HƯỚNG PHÁT
- Cảm biến nhịp tim lấy dữ liệu chưa được tốt
- Khó lấy được tọa độ do anten GPS
Trang 21TÀI LIỆU THAM KHẢO
http//:htpro.vn
http://hshop.vn
http://arduino.vn
http://at-sky.com.vn
Trang 22PHỤ LỤC
Code:
#include <main.h>
#define LCD_ENABLE_PIN PIN_A4
#define LCD_RS_PIN PIN_E0
#define LCD_RW_PIN PIN_A5
#define LCD_DATA4 PIN_A3
#define LCD_DATA5 PIN_A2
#define LCD_DATA6 PIN_A1
#define LCD_DATA7 PIN_A0
int count=0, count1=0;//Khai bao bien dem
char data[]="000.000000,000.000000";//Khai bao mang luu toa do
int1 done=0;
const char GPS_RC[]="+UGNSINF:";//Khai bao mang chua chuoi khoi dong cuachuoi gps
Trang 23int count5=0;
int1 F_GPS_RC=0;//bien trang thai thong bao bat dau nhan chuoi toa do
const char KTTD[]="Kiem tra toa do";//mang chua noi dung tin nhan
//char sdt[]="\"+841674479551\"";//mang luu so dien thoai
Trang 26lcd_init();
lcd_putc("Reading ");
enable_interrupts (INT_RDA); //cho phep ngat UART
enable_interrupts (GLOBAL) ;//cho phep ngat toan cuc
Trang 30fprintf (UART, "\n\rAT+CMGS=%s\r",sdt);//gui sdt den sim
delay_ms (500) ;//cho sim san sang nhan tn
fprintf (UART, "Canh bao nhip tim cao %f https://maps.google.com/maps?q=%s",beat,data) ;//gui noi dung tn den sim900
fputc (0x1A, UART) ;//lenh ket thuc tn nhan va gui tn di
fprintf (UART, "\n\rAT+CMGS=%s\r",sdt);//gui sdt den sim
delay_ms (500) ;//cho sim san sang nhan tn
fprintf (UART, "Canh bao nhip tim thap %f https://maps.google.com/maps?q=%s",beat,data) ;//gui noi dung tn den sim900
fputc (0x1A, UART) ;//lenh ket thuc tn nhan va gui tn di