Đây là một trong những đồ án rất hay về ứng dụng IoT(internet of thing) vào trong thực tế để đo nhịp tim, đo huyết áp, đo đường huyết và thân nhiệt của từng người. Ứng dụng này được sử dụng phổ biến trong y tế, dùng để bác sĩ theo dõi bệnh nhân từ xa. Dữ liệu thu nhận được báo về bằng smartphone và một web server cho bác sĩ biết về tình hình của bệnh nhân cụ thể. Mình đã đính kèm full code, các bạn hoàn toàn có thể tham khảo và phát triển thêm.
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN ĐIỆN TỬ BỘ MÔN KỸ THUẬT MÁY TÍNH - VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP HỆ THỐNG GIÁM SÁT SỨC KHỎE THÔNG MINH NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG Sinh viên: TP HỒ CHÍ MINH – 7/2016 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐIỆN ĐIỆN TỬ BỘ MÔN KỸ THUẬT MÁY TÍNH - VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP HỆ THỐNG GIÁM SÁT SỨC KHỎE THÔNG MINH NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG Sinh viên: Hướng dẫn: TS PHAN VĂN CA TP HỒ CHÍ MINH – 7/2016 BẢN NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪNLỜI CẢM ƠN Lời đầu tiên, muốn gửi lời cảm ơn chân thành đến giáo viên, TS Phan Văn Ca, thời gian qua hướng dẫn giúp đỡ trình thực luận văn tốt nghiệp Những lời nhận xét, góp ý hướng dẫn thầy giúp có định hướng trình thực đề tài, giúp thấy ưu, khuyết điểm đề tài bước khắc phục để ngày tốt Đồng thời muốn gửi lời cảm ơn sâu sắc đến gia đình bạn bè động viên, cổ vũ tinh thần suốt trình học tập luận án tốt nghiệp Bên cạnh đó, muốn nói lời cảm ơn đến giáo viên, giảng viên đứng bục giảng truyền đạt kinh nghiệm, kiến thức suốt năm học qua Một lần nữa, xin gửi lời cảm ơn đến bố mẹ, thầy cô bạn bè, người cạnh, giúp đỡ cho phép có thời gian để hoàn thành luận án Ngày 27 tháng năm 2016 Nhóm thực TÓM TẮT Quyển luận án gồm chương, thể đầy đủ trình nghiên cứu thi công “Hệ thống giám sát sức khỏe thông minh” Với tính thương mại tính đến, thiết kế hệ thống hoàn chỉnh hoàn toàn phát triển thực tế Hệ thống gồm thiết bị đeo tay có khả thu thập giá trị nhịp tim thân nhiệt người đeo, đồng thời thu thập thông số đường huyết huyết áp giao tiếp với hai máy đo rời Hai máy đo máy đo huyết áp cầm tay máy đo đường huyết cầm tay, thiết bị có sẵn thị trường Sau thu thập, thông số gửi qua kết nối WiFi tới Web Server lưu trữ Một ứng dụng hệ điều hành Android truy cập liên tục để cập nhật giá trị cho người dùng theo dõi Hệ thống có Web Application cho phép liên kết đến Server giúp bác sĩ theo dõi bênh nhân từ xa đưa chuẩn đoán hay cảnh báo Mục đích Web Application thiết kế dành cho bên dịch vụ theo dõi y tế Mục tiêu luận án đặt hoàn thành tốt, bên cạnh tích lũy thêm số kinh nghiệm lập trình web lập trình android Chúng có hội ứng dụng kiến thức học vào thực tiễn để xây dựng hệ thống “Internet of Things” đơn giản MỤC LỤC MỤC HÌNH DANH MỤC BẢNG CÁC TỪ VIẾT TẮT ADC Analog Digital Converter CSDL Cơ Sở Dữ Liệu DSSS Direct-Sequence Spread Spectrum ECG Electrocardiogram FHSS Frequency Hopping Spread Spectrum GPIO General-Purpose Input/Output HTTP Hypertext Transfer Protocol IDE Integrated Development Environment MCU Microcontroller OFDM Orthogonal Frequency-Division Multiplexing PC Personal Computer PCB Printed Circuit Board SSID Service Set Identifier UART Universal Asynchronous Receiver/Transmitter WLAN Wireless Local Area Network WPA Wireless Protected Area CHƯƠNG GIỚI THIỆU 1.1 ĐẶT VẤN ĐỀ Ngày nay, bên cạnh tiến vượt bậc kinh tế, khoa học kỹ thuật giúp cho đời sống người nâng cao Chưa lịch sử sống môi trường tiện nghi Nhu cầu chăm sóc sức khỏe tăng lên, đồng thời vấn đề sức khỏe, bệnh tật có xu hướng phức tạp hơn, hai yếu tố làm làm gia tăng gánh nặng lên nhóm ngành y tế Các phương pháp theo dõi chuẩn đoán bệnh theo phương pháp truyền thống tỏ tốn hiệu Do gia tăng nhu cầu làm tải trung tâm y tế, thời gian chuẩn đoán bệnh tăng theo Mặt khác, phương pháp truyền thống hạn chế truy cập người dùng tới liệu bệnh án họ [1] Từ nhược điểm trên, hệ thống chăm sóc sức khỏe đại phát triển thay Các thiết bị giám sát sức khỏe thông minh nhỏ gọn mang bên người gửi thông số sức khỏe liên tục cho bác sĩ Từ bác sĩ theo dõi dấu hiệu chuẩn đoán sớm bệnh Với đời điện thoại thông minh máy tính bảng, người dùng người thân có khả truy cập liệu dễ dàng Các hệ thống đại có khả liên kết không dây thành phần với theo xu hướng Internet of Things Internet of Things (IoT) xu hướng công nghệ mẻ, nghiên cứu phát triển rầm rộ thời gian gần phát triển nhanh chóng mạng Internet công nghệ tích hợp, kết nối không dây… [2] Với giúp đỡ IoT, kết nối điều gì, truy cập từ nơi lúc nào, có khả truy cập vào dịch vụ thông tin đối tượng [3] Hàng loạt triển lãm công nghệ, hội thảo khoa học tổ chức xoay quanh vấn đề quảng bá sản phẩm công nghệ IoT, hệ sinh thái khởi nghiệp IoT… Đây hứa hẹn cách mạng tương lai, đem đếm thay đổi mạnh mẽ nhiều lĩnh vực sống 1.2 TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU Trong bối cảnh tình hình nghiên cứu khoa học ứng dụng khoa học công nghệ vào sống nước ta chậm nhiều so với nước khu vực giới Rất nhiều thiết bị y tế nhập từ nước ngoài, nghiên cứu y tế, y tế thông minh, y tế viễn thông gặp nước ta Tuy nhiên, trình trạng cải thiện dần, số trường đại học bệnh viện, y tế thông minh thiết bị y tế nhận nhìn chủ động nghiên cứu ứng dụng Điển khoa Kỹ Thuật Y Sinh trường đại học Quốc Tế - Đại học Quốc Gia Thành Phố Hồ Chí Minh đầu tư phát triển sản phẩm y tế thông minh, y tế viễn thông Khoa cho nhiều sản phẩm hay độc đáo như: máy đo điện tim, đường huyết, máy đo huyết áp tự động đo, tự động gửi kết tới email, trang mạng cá nhân hay bác sĩ Trên giới, có nhiều báo khoa học liên quan đến đề tài y tế thông minh, điển đề tài Wearable Sensors: Opportunities and Challenges for Low-Cost Health Care [4] nghiên cứu hệ thống có khả năng đeo được, đo cường độ hoạt thể lượng oxy máu Các cảm biến gửi thông số đo thiết bị đeo tai kết nối không dây Zigbee, sau thiết bị giao tiếp Bluetooth với điện thoại thông minh gửi liệu lên Internet Một máy tính từ xa truy cập vào sở liệu xem liệu cảm biến 10 Hình 4.42: Biểu đồ nhịp tim người sử dụng Hình 4.12: Biểu đồ nhịp tim người sử dụng có bất thường 64 Hình 4.13: Biểu đồ huyết áp người sử dụng Hình 4.14: Biểu đồ huyết áp người sử dụng có bất thường Web Application theo dõi sức khỏe bác sĩ hoạt động ổn định đồng tốt với hệ thống, tạo thuận lợi cho bác sĩ việc quản lý Tuy nhiên vấn đề bảo mật chưa áp dụng, thông tin cảnh báo chưa thực hiệu có nhiễu tác động vào hệ thống cảm biến Nhóm thực cố gắng đưa 65 giải thuật phù hợp để loại bỏ cảnh báo không cần thiết nhạy bén với trường hợp nguy hiểm thực 66 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 KẾT LUẬN Sau trình thực luận văn tốt nghiệp đề tài “Hệ thống giám sát sức khỏe thông minh”, mục tiêu đặt hoàn thành tốt Ngoài ra, thu số kinh nghiệm định lập trình web, lập trình android, thiết kế sản phẩm thực tế bước xây dựng hệ thống IoT đơn giản Một số ưu điểm “Hệ thống giám sát sức khỏe thông minh”: • Cơ thiết kế thiết bị đeo tay hoàn chỉnh, nhỏ gọn, hoạt động tương đối tốt • Thông tin sức khỏe người sử dụng cập nhật nhanh liên tục • Ứng dụng điện thoại trực quan, dễ sử dụng, cung cấp nhiều thông tin hữu ích Tuy nhiên, thời gian kinh phí thực đề tài có hạn, sản phẩm nhóm không tránh khỏi khuyết điểm như: • Các thành phần thiết kế thô, tính thẩm mĩ chưa cao, chưa thu hút • Thời gian sử dụng pin thiết bị đeo tay nhỏ, hệ thống chưa có tính bảo mật • Chưa xử lý nhiễu tác động từ môi trường • Độ xác phụ thuộc vào module có sẵn • Không chống nước 5.2 HƯỚNG PHÁT TRIỂN Hệ thống giám sát sức khỏe thông minh có khả ứng dụng lớn mang ý nghĩa nhân văn sâu sắc Hiện nước ta thiếu hụt nhiều sở vật chất y tế nhân lực lĩnh vực Hầu hết bệnh viện lớn với 67 sở vật chất đầy đủ xây dựng đô thị lớn, đồng nghĩa với việc nhiều vùng miền đất nước đáp ứng nhu cầu người sử dụng Khi người sử dụng muốn chuẩn đoán theo dõi sức khỏe định kì phải xa, gây tốn tiền của, sức khỏe gây tải cho bệnh viện tuyến Hệ thống giám sát sức khỏe thông minh nhóm xây dựng với hi vọng giúp giải phần vấn đề nêu Để thực nhu cầu thực tế đề tài cần có cải tiến như: • Tăng thêm nhiều cảm biến sức khỏe cho thiết bị • Kéo dài thời gian sử dụng pin • Thêm chức cho phép người sử dụng lựa chọn bác sĩ • Thêm hệ thống học để xử lý thông tin đưa cảnh báo • Cho phép nhiều bệnh viện kết nối tới hệ thống giám sát thông minh 68 PHỤ LỤC A MÃ NGUỒN CHƯƠNG TRÌNH Mã nguồn thiết bị đeo -BEGIN uart.on("data",0,function(data) end,0); uart.setup(0, 19200, 8,0,1,0); wifi.setmode(wifi.STATION); wifi.sta.autoconnect(1); gpio.mode(4, gpio.OUTPUT);gpio.write(4,0); -function readTemp() gpio.write(2,0);gpio.write(1,0); Rnt=28k local Rnt=28; local adc=adc.read(0); local RNTC=Rnt/(3375.9-adc)*adc; local nd=(3435/(math.log(RNTC/10)+11.527)-273); return string.format("%.1f",nd); end -local function readPin() gpio.write(2,0);gpio.write(1,1); R1=5.6k R2=18k SMD0402-5% local R1,R2=5.6,18; local VR1=adc.read(0)/1023; local Vpin=VR1/R1*(R1+R2); 69 return string.format("%.1f",(Vpin-3.7)/50); end -function readNT() readHA=nil; readDH=nil; gpio.mode(1, gpio.OUTPUT); S0 gpio.mode(2, gpio.OUTPUT); S1 gpio.write(2,1);gpio.write(1,0); MUX local IBI=600; local rate={}; local sampleCounter,lastBeatTime=0,0; local P,T,thresh=512,512,525; local Pulse,firstBeat,secondBeat=false,true,false; local function interrupps() local Signal=adc.read(0);sampleCounter = sampleCounter + 2; local N = sampleCounter - lastBeatTime; if(Signal < thresh and N > (IBI/5)*3 and Signal thresh and Signal > P) then P=Signal; end if(N>250 and Signal > thresh and Pulse==false and N > (IBI/5)*3) then Pulse=true; IBI= sampleCounter - lastBeatTime; lastBeatTime = sampleCounter; if(secondBeat) then secondBeat=false; for i=1,10,1 rate[i]=IBI; end end 70 if(firstBeat) then firstBeat=false;secondBeat=true; tmr.start(2); return; end local runningTotal=0; for i=1,9,1 rate[i]=rate[i+1]; runningTotal = runningTotal +rate[i]; end rate[10]=IBI; runningTotal =runningTotal+rate[10]; NT=string.format("%d",600000/runningTotal); tmr.unregister(2); TN=readTemp(); B=readPin(); print(DH,HA,NT,TN,B); dofile('sendSensor.lua'); return; end if( Signal < thresh and Pulse== true) then Pulse=false;thresh=(P-T)/2+T; P=thresh; T=thresh; end if( N >2500) then thresh = 512; P = 512; T = 512; lastBeatTime = sampleCounter; firstBeat = true; secondBeat = false; end tmr.start(2); end 71 tmr.unregister(2); tmr.alarm(2, 2, tmr.ALARM_SEMI, interrupps); end function readHA() readDH=nil; uart.on("data",'\n',function(data) local tt; if(string.find(data,'OK')==nil) then _,_,HA,tt=string.find(data,'=(.+):(.+)\n'); else _,_,HA,tt=string.find(data,'\n=(.+):(.+)\n'); end if tt=='O' then HA=nil end end, 0); uart.write(0,'HAp\n'); tmr.unregister(2); tmr.alarm(2, 200, tmr.ALARM_SINGLE, function() uart.on("data",0,function(data) end,0); readNT(); end); end -function readDH() uart.on("data",string.char(165),function(data) local _,_,str=string.find(data,string.char(81) '(.+)' string.char(165)); DH=string.format("%.1f",string.byte(str,2)*0.055); end, 0); 72 uart.write(0,81,38,0,0,0,0,163,26); tmr.unregister(2); tmr.alarm(2, 200, tmr.ALARM_SINGLE,function() uart.on("data",0,function(data) end,0); if DH then readNT(); else readHA(); end end); end -gpio.mode(5,gpio.INPUT); if gpio.read(5)==0 then readDH(); else readNT(); end -function getID() if(file.open('id.lua','r')) then local idn,t=file.read();file.close(); if(idn) then _,_,t=string.find(idn,"id:(.+)\n");end return t; end end function readFile() if(file.open('dsAP.lua','r')) then local tmp, ssid1, key1, ssid2, key2,time; tmp=file.read();file.close(); if(tmp) then _,_,ssid1,key1,ssid2,key2,time=string.find(tmp, "ssid1:(.+)\nkey1:(.+)\nssid2:(.+)\nkey2:(.+)\nsleep:(.+)\n"); end 73 time=tonumber(time); if(times end end function sendReply(lenh) local data='tag=phanhoilenh&tentaikhoan=' getID(); local post=string.format("POST /espandroid.php HTTP/1.1\n" "Host: www.giamsatsuckhoe.tk\n" "Content-Type: application/x-www-form-urlencoded\n" "Connection: close\nContent-Length: %d\n\n%s\n", string.len(data),data); sk1 = net.createConnection(net.TCP, 0); sk1:connect(80,"www.giamsatsuckhoe.tk"); sk1:on("connection", function(sck,c) sk1:send(post); print('C2'); end) sk1:on("receive", function(sck, res) print(res);end) sk1:on("disconnection",function(sck) sk1:close();sk1=nil; if(lenh=='sua') then local _,_,_,_,t=readFile();node.dsleep(t,1); else node.restart(); end end) end -function sendSensor(nt,tn,ha,dh,p) local data='tag=data&tentaikhoan=' getID() '&nhiptim=' nt '&thannhiet=' tn 74 '&huyetap=' tostring(ha) '&duonghuyet=' tostring(dh) '&pin=' p '&ssid=' wifi.sta.getconfig(); local post=string.format("POST /espandroid.php HTTP/1.1\n" "Host: www.giamsatsuckhoe.tk\n" "Content-Type: application/x-www-form-urlencoded\n" "Connection: close\nContent-Length: %d\n\n%s\n", string.len(data),data); tmr.alarm(3, 5000, tmr.ALARM_SINGLE,function() node.restart() end) sk = net.createConnection(net.TCP, 0); sk:connect(80,"www.giamsatsuckhoe.tk"); sk:on("connection", function(sck,c) tmr.stop(3);sk:send(post); end) sk:on("receive", function(sck, res) print('R1'); local _,_,_,_,t=readFile(); local _, _,json,tb = string.find(res,"{(.+)}"); if json then tb = cjson.decode('{' json '}'); if(tb and tb.success==1) then if(tb.lenh and tb.lenh=='sua') then if(tb.ssid1 and tb.key1 and tb.ssid2 and tb.key2 and tb.thoigianngu ) then file.remove("dsAP.lua"); file.open('dsAP.lua','w+'); file.writeline('ssid1:' tb.ssid1); file.writeline('key1:' tb.key1); file.writeline('ssid2:' tb.ssid2); file.writeline('key2:' tb.key2); file.writeline('sleep:' tb.thoigianngu); file.close(); sendReply(tb.lenh); end 75 elseif(tb.lenh and tb.lenh=='restore') then file.remove('init.lua'); file.open('init.lua','w+'); file.writeline("dofile('AP.lua');"); file.close(); sendReply(tb.lenh); else node.dsleep(t,1); end else node.dsleep(t,1); end else node.dsleep(t,1); end end) end -tmr.alarm(0, 3000, tmr.ALARM_SEMI,function() readNT=nil; local stt=wifi.sta.status(); local idnow=wifi.sta.getconfig(); print(idnow,stt); if stt==0 or stt==2 or stt==3 or stt==4 then local ssid1, key1, ssid2, key2=readFile(); if(ssid1 and ssid2) then if(idnow==ssid1) then wifi.sta.config(ssid2,key2); elseif(idnow==ssid2) then wifi.sta.config(ssid1,key1) else wifi.sta.config(ssid1,key1); end 76 end tmr.start(0); elseif stt==5 then tmr.unregister(2); sendSensor(NT,TN,HA,DH,B); else tmr.start(0); end end) 77 Tài liệu tham khảo [1] S S Bhunia, S K Dhar and N Mukherjee, "iHealth: A fuzzy approach for provisioning intelligent health-care system in smart city," 2014 IEEE 10th International Conference on Wireless and Mobile Computing, Networking and Communications (WiMob), Larnaca, 2014, pp 187-193 [2] J Gubbi et al, “Internet of Things (IoT): A vision, architectural elements, and future directions”, Future Generation Computer Systems Vol 29, No.7, 2013, pp 1645-1660 [3] K Ullah, M A Shah and S Zhang, "Effective ways to use Internet of Things in the field of medical and smart health care," 2016 International Conference on Intelligent Systems Engineering (ICISE), Islamabad, 2016, pp 372-379 [4] R R Fletcher, M Z Poh and H Eydgahi, "Wearable sensors: Opportunities and challenges for low-cost health care," 2010 Annual International Conference of the IEEE Engineering in Medicine and Biology, Buenos Aires, 2010, pp 1763-1766 78 ... lại với kèm theo tag số thông tin như: tên host, kiểu mã hóa, ngôn ngữ, độ dài liệu … Một chuỗi Hearder HTTP request có dạng sau: POST / HTTP/1.1 User-Agent: Host: www.giamsatsuckhoe.tk Content-Type:... ngành y tế Các phương pháp theo dõi chuẩn đoán bệnh theo phương pháp truyền thống tỏ tốn hiệu Do gia tăng nhu cầu làm tải trung tâm y tế, thời gian chuẩn đoán bệnh tăng theo Mặt khác, phương pháp... giám sát sức khỏe thông minh nhỏ gọn mang bên người gửi thông số sức khỏe liên tục cho bác sĩ Từ bác sĩ theo dõi dấu hiệu chuẩn đoán sớm bệnh Với đời điện thoại thông minh máy tính bảng, người