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

(Luận văn) nghiên cứu, thiết kế hệ thống giám sát và cảnh báo sức khỏe ứng dụng công nghệ iot

134 4 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

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUY NHƠN NGÔ VĂN TÂM lu an n va p ie gh tn to NGHIÊN CỨU, THIẾT KẾ HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỨC KHỎE ỨNG DỤNG CÔNG NGHỆ IOT d oa nl w an lu nf va LUẬN VĂN THẠC SỸ KỸ THUẬT VIỄN THÔNG z at nh oi lm ul z m co l gm @ an Lu Bình Định - Năm 2021 n va ac th si BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUY NHƠN NGÔ VĂN TÂM lu an n va p ie gh tn to NGHIÊN CỨU, THIẾT KẾ HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỨC KHỎE ỨNG DỤNG CÔNG NGHỆ IOT nl w d oa Chuyên ngành: Kỹ thuật viễn thông nf va an lu Mã số: 8520208 lm ul z at nh oi Người hướng dẫn: TS Nguyễn Đức Thiện z m co l gm @ an Lu n va ac th si LỜI CAM ĐOAN Tôi xin cam đoan công trình nghiên cứu tơi, có hỗ trợ từ Thầy hướng dẫn cá nhân, tập thể cảm ơn Các nội dung nghiên cứu kết đề tài trung thực chưa cơng bố cơng trình lu an Bình Định, ngày tháng năm 2021 va TÁC GIẢ n p ie gh tn to nl w d oa Ngô Văn Tâm nf va an lu z at nh oi lm ul z m co l gm @ an Lu n va ac th si LỜI CẢM ƠN Trong thời gian nghiên cứu thực luận văn này, nhận giúp đỡ nhiệt tình tổ chức cá nhân Tôi xin bày tỏ lời cảm ơn sâu sắc tới tất tập thể cá nhân tạo điều kiện giúp đỡ tơi suốt q trình thực nghiên cứu luận văn Trước hết xin chân thành cảm ơn quý Thầy, Cô Khoa Kỹ thuật & Công nghệ, Trường Đại học Quy Nhơn, đặc biệt quý Thầy, Cô môn Điện tử - Viễn thông trang bị cung cấp kiến thức giúp đỡ lu suốt trình học tập vừa qua an n va Tơi xin chân thành cảm ơn Quỹ Đổi sáng tạo VinIF, Viện Nghiên cứu tn to Dữ liệu lớn VinBigData, Tập đồn Vingroup tài trợ kinh phí cho nghiên cứu p ie gh Với lòng biết ơn sâu sắc, xin trân trọng cảm ơn TS Nguyễn Đức Thiện w trực tiếp hướng dẫn khoa học giúp đỡ tơi suốt q trình nghiên cứu oa nl hoàn thành luận văn d Xin chân thành cảm ơn tất bạn bè, đồng nghiệp động viên, giúp lu nf va an đỡ nhiệt tình đóng góp nhiều ý kiến q báu để tơi hồn thành luận văn Do thời gian nghiên cứu có hạn, luận văn tơi chắn khơng thể lm ul tránh khỏi thiếu sót Tơi mong nhận đóng góp, giúp đỡ Trân trọng cảm ơn! z at nh oi quý Thầy Cô giáo tồn thể bạn đọc Bình Định, ngày tháng năm 2021 z m co l gm @ TÁC GIẢ an Lu Ngô Văn Tâm n va ac th si i MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤ C i DANH MỤC CHỮ VIẾT T Ắ T vi DANH MỤC HÌNH Ả N H xi DANH MỤC BẢNG B IỂ U xiii MỞ Đ Ầ U lu an n va Lý chọn đề tài T quan tình hình nghiên u Mục đích nhiệm vụ nghiên cứu Mục đích nghiên cứu 3.2 Nhiệm vụ nghiên c ứ u 4 Đối tượng phạm vi nghiên cứu p ie gh tn to 3.1 4.1 w Phạm vi nghiên c ứ u oa nl 4.2 Đối tượng nghiên u Phương pháp nghiên c ứ u Cấu trúc trình bày nội dung luận văn .5 d nf va an lu CHƯƠNG TỔNG QUAN VỀ CÔNG NGHỆ IO T lm ul 1.1 Giới thiệu chương .6 z at nh oi 1.2 Khái niệm Io T 1.3 Kiến trúc hệ thống IoT 1.4 Hệ sinh thái IoT z 1.5 Các yêu cầu Io T @ gm 1.5.1 Nhận thức lượng hiệu suất lư ợng co l 1.5.2 Chất lượng dịch vụ 10 m 1.5.3 Bảo m ậ t 10 an Lu 1.5.4 Sự tương thích 11 1.5.5 Quản lý can nhiễu .11 n va ac th si ii 1.6 Các công nghệ truyền dẫn Io T .11 1.6.1 Bluetooth 12 1.6.2 Z igB ee 12 1.6.3 WiFi 12 1.6.4 L oR a 12 1.7 Các ứng dụng IoT 13 1.7.1 Nhà thông m inh 13 1.7.2 Thành p h ố thông m inh 14 1.7.3 Năng lượng thông m in h 14 lu an 1.7.4 Sức khỏe thông m inh 15 n va 1.7.5 Cuộc sống thông m in h 15 1.8 Tình hình triển khai IoT Thế giới Việt N a m 16 1.8.1 Trên Thế giới 16 p ie gh tn to 1.7.6 Giao thông thông m in h 15 1.8.2 Tại Việt N a m 17 nl w 1.9 Kết luận chương 18 d oa CHƯƠNG ỨNG DỤNG IOT TRONG LĨNH VỰC c h ă m s ó c s ứ c KHỎE 19 lu nf va an 2.1 Giới thiệu chương 19 2.2 Vai trị cơng nghệ IoT lĩnh vực chăm sóc sức khỏe (CSSK) 19 lm ul 2.3 Kiến trúc hệ thống IoT C S S K 20 z at nh oi 2.3.1 Lớp cảm biến .20 2.3.2 Lớp truyền thông 21 2.3.3 Lớp điện toán đám mây 21 z gm @ 2.4 Các yêu cầu thách thức triển khai IoT CSSK 21 2.4.1 Thách thức thiết k ế 22 l 2.4.2 Quản lý liệu 22 co m 2.4.3 Khả mở rộ n g .24 an Lu 2.4.4 Khả tương tác, tiêu chuẩn hóa vấn đề quy định 25 n va ac th si iii 2.4.5 Giao diện yếu tố người 25 2.4.6 Vấn đề bảo mật riêng tư 25 2.5 Các ứng dụng IoT lĩnh vực chăm sóc sức k h ỏ e 26 2.5.1 mHealth 26 2.5.2 Ứng dụng IoT môi trường sống h ỗ trợ 26 2.5.3 Ứng dụng IoT ngành dược p h ẩ m 27 2.5.4 Ứng dụng IoT cho người khuyết tậ t 27 2.5.5 Ứng dụng IoT y sinh cấy g h é p 27 2.5.6 Ứng dụng IoT cảnh báo sớm phát hiệnbất thường 28 lu an 2.5.7 Ứng dụng IoT quản lý sức khỏe dân số 28 n va 2.6 Kết luận chương 28 3.1 Giới thiệu chương .29 gh tn to CHƯƠNG THU THẬP DỮ LIỆU SỨC KHỎE TỪ X A 29 p ie 3.2 Mô hình hệ thống thu thập liệu sức khỏe từ x a 29 3.2.1 Thu thập liệu sức khỏe từ x a 30 nl w 3.2.2 Công nghệ truyền thông .33 d oa 3.3 Thiết kế phần cứng 37 an lu 3.3.1 Khối cảm biến Sensor N ode 37 nf va 3.3.2 Khối Gateway xử lý trung tâ m 38 3.4 Thiết kế phần mềm 39 lm ul 3.4.1 Tổng quan tảng mã nguồn mở Thingsboard 39 z at nh oi 3.4.2 Giao thức M Q TT 41 3.4.3 Các lưu đồ thuật to n 41 3.5 Kết luận chương 43 z l gm @ CHƯƠNG HỌC MÁY VÀ ỨNG DỤNG TRONG LĨNH V ự c CHĂM SÓC SỨC K H Ỏ E ’ 44 4.1 Giới thiệu chương .44 co m 4.2 Tổng quan học máy ứng dụng lĩnh vực CSSK 44 an Lu 4.2.1 Tổng quan học m y 44 n va ac th si iv 4.2.2 Ứng dụng học máy lĩnh vực chăm sóc sức khỏe 46 4.3 Ứng dụng số thuật toán ML hệ thống CSSK đề x u ấ t 47 4.3.1 Thuật toán K N N 47 4.3.2 Thuật toán Decision T ree 48 4.3.3 Thuật toán Hồi quy L ogistic 48 4.3.4 Thuật toán S V M 49 4.3.5 Thuật toán Random F orest 50 4.3.6 Thuật tốn Nạve B ayes .51 4.4 Bộ liệu Kaggle cho bệnh tim mạch 52 lu an 4.5 Các phương pháp đánh giá mơ hình phân lớ p 55 n va 4.5.1 Độ xác (Accuracy) 55 to 4.5.2 Ma trận nhầm lẫn (Confusion matrix) 55 4.5.4 Diện tích đường cong ROC - A UC (Area Under the Curve) 57 p ie gh tn 4.5.3 Đường cong ROC (Receiver Operating Characteristic curve) 56 4.5.5 Precision and R ecall 57 nl w 4.5.6 F l-sco re 57 d oa 4.6 Kết luận chương 58 an lu CHƯƠNG TRIỂN KHAI VÀ ĐÁNH GIÁ HỆ THỐNG 59 nf va 5.1 Giới thiệu chương .59 5.2 Triển khai thực t ế 59 lm ul 5.3 Kết thực h iện 60 z at nh oi 5.3.1 Đánh giá hiệu hệ thống 60 5.3.2 Trực quan hóa liệu cảnh báo 61 5.3.3 Khai phá liệu Kaggle dataset 63 z gm @ 5.4 Đánh giá hệ thống .68 5.4.1 Đánh giá sai số hệ thống 68 l co 5.4.2 Đánh giá mơ hình phân lớp dự đốn bệnh tim 69 m 5.5 Kết luận chương 71 an Lu KẾT LUẬN VÀ KIẾN NGHỊ 72 n va ac th si v DANH MỤC CÔNG TRÌNH KHOA HỌC ĐÃ CƠNG BỐ CỦA TÁC GIẢ73 DANH MỤC TÀI LIỆU THAM KHẢO 74 PHỤ L Ụ C 92 QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN lu an n va p ie gh tn to d oa nl w nf va an lu z at nh oi lm ul z m co l gm @ an Lu n va ac th si vi DANH MỤC CHỮ VIẾT TẮT Nghĩa tiếng Anh Từ viết tắt Nghĩa tiếng Việt 2G 2th Generation Thế hệ thứ hai 3G 3th Generation Thế hệ thứ ba 4G 4th Generation Thế hệ thứ tư 5G 5th Generation Thế hệ thứ năm A lu an Artificial Intelligence Trí tuệ nhân tạo API Application Programming Interface Giao diện lập trình ứng dụng American Sign Language Ngôn ngữ ký hiệu Hoa Kỳ Area Under the Curve Diện tích đường cong n va AI tn to ie gh ASL p AUC Bach Khoa Antivirus Bách Khoa Antivirus d BKAV oa nl w B lu Bluetooth Low Energy Bluetooth lượng thấp BW Bandwidth Băng thông nf va Bộ Y tế C z at nh oi lm ul BYT an BLE CART Classification And Regression Tree CoAP Constrained Application Protocol CR Coding Rate Tỉ lệ mã hóa CSS Chirp Spread Spectrum Kỹ thuật trải phổ Chirp z Giao thức ứng dụng ràng buộc m co l gm @ an Lu CSSK Cây phân loại hồi quy Chăm sóc sức khỏe n va ac th si 103 w h ile (¡S e ria l); S P I.b e g in (5 ,1 ,2 ,1 ); L o R a s e tP in s (S S ,R S T ,D I0 ); i f (!L o R a b e g in (B A N D )) { w h ile (1); } S e ria l.p rin t(" In itia liz in g S D c a rd "); p in M o d e (S S , O U T P U T ); lu i f (!S D b e g in (1 , 2, , )) { an S e ria l.p rin tln (" in itia liz a tio n fa ile d !"); va n re tu rn ; tn to } gh p ie S e ria l.p rin tln (" c a rd in itia liz e d "); w s e n s o rD a ta = S D o p e n (" A u to c sv " , F IL E _ W R IT E ); oa nl se n s o rD a ta p rin tln (" D a te , T im e , H e a rtR a te (b p m ), S p O (% ), E C G (m V )"); se n so rD a ta c lo s e (); d lu s e n s o rD a ta = S D o p e n (" M a n u a l.c sv " , F IL E _ W R IT E ); an lm ul se n so rD a ta c lo s e (); nf va se n s o rD a ta p rin tln (" D a te , T im e , H e a rtR a te (b p m ), S p O (% ), E C G (m V )"); s e n s o rD a ta = S D o p e n (" d a ta E C G c s v " , F IL E _ W R IT E ); z at nh oi se n s o rD a ta p rin tln (" D a te , T im e , E C G (m V )" ); se n so rD a ta c lo s e (); m co an Lu p o x u p d a te (); l { gm v o id lo o p () @ } z W iF i.d isc o n n e c t(); n va ac th si 104 b u tto n S ta te = d ig ita lR e a d (b u tto n P in ); i f (b u tto n S ta te != la s tB u tto n S ta te ) { i f (b u tto n S ta te = = L O W ) { b u tto n P u s h C o u n te r+ + ; S e ria l.p rin tln (MD a n g n h a n "); S e ria l.p rin tln (" S o la n n h an : "); lu S e ria l.p rin tln (b u tto n P u sh C o u n te r); an d e la y (1 0 ); n va } to gh tn else p ie { w S e ria l.p rin tln (" o ff'); oa nl } d } lu la s tB u tto n S ta te = b u tto n S ta te ; nf va an p o x u p d a te (); lm ul b u tto n S ta te _ = d ig ita lR e a d (K h a n P in ); i f (b u tto n S ta te _ != la s tB u tto n S ta te _ ) i f (b u tto n S ta te _ = = L O W ) z at nh oi { z m an Lu { co else l } gm K h a n c a p (); @ { n va ac th si 105 d ig ita lW rite (L O A , L O W ); S e ria l.p rin tln (Mo ff"); } } la s tB u tto n S ta te _ = b u tto n S ta te _ ; i f (b u tto n P u s h C o u n te r= = ) { p o x b e g in (); lu p o x u p d a te (); an d is p la y d isp la y O n (); va n d isp la y c le a r(); to gh tn d isp la y s e tF o n t(A ria lM T _ P la in _ 0); p ie d is p la y d w S trin g (0 , , "H e llo "); w d isp la y d isp la y (); oa nl S e ria l.p rin tln (" T u rn o n O le d "); d } lu e lse i f (b u tto n P u s h C o u n te r= = ) nf va an { z at nh oi } lm ul m e a su re _ m a n u a l(); e lse i f (b u tto n P u s h C o u n te r= = ) { z } e lse i f (b u tto n P u s h C o u n te r= = ) { an Lu i f (W iF i.s ta tu s () != W L _ C O N N E C T E D ) m co l gm @ m e a s u re _ a u to (); n va ac th si 106 { W IF I_ C o n n e c t(); } else { m e a su re _ E C G (); } } lu e lse i f (b u tto n P u s h C o u n te r= = ) an va { n p o x sh u td o w n (); to gh tn W iF i.d isc o n n e c t(); p ie m e a su re _ T e m p (); w } d { oa nl e lse i f (b u tto n P u s h C o u n te r= = ) } nf va an lu G e t_ tim e (); // E S P re sta rt(); d isp la y d isp la y O ff(); m co an Lu R e a d S e ria l(); l { gm i f (S e ria l.a v a ila b le ()) @ } z b u tto n P u s h C o u n te r= ; z at nh oi { lm ul e lse i f (b u tto n P u s h C o u n te r= = ) n va ac th si 107 } o n R e c e iv e (L o R a p a rs e P a c k e t()); } v o id In itW iF i(){ S e ria l.p rin tln (" C o n n e c tin g to A P "); W iF i.b e g in (W IF I_ A P , W IF I_ P A S S W O R D ); w h ile (W iF i.s ta tu s () != W L _ C O N N E C T E D ){ d e la y (5 0 ); lu S e ria l.p rin t(" " ); an va } n S e ria l.p rin tln (" C o n n e c te d to A P " ); gh tn to } p ie v o id K h a n c a p () w { oa nl L o R a b e g in P a c k e t(); L o R a p rin t(" !_ " ); d lu L o R a e n d P a c k e t(); an p o x b e g in (); v o id sa v e D a ta _ A u to () z at nh oi } lm ul d e la y (2 0 ); nf va d ig ita lW rite (L O A , H IG H ); z gm @ { s e n s o rD a ta = S D o p e n (" A u to c sv " , F IL E _ W R IT E ); m an Lu se n s o rD a ta p rin tln (d a ta S trin g ); co { l i f (se n so rD a ta ) n va ac th si 108 s e n s o rD a ta c lo s e (); // c lo se th e file S erial p rin tln (d a ta S trin g ); } else { S e ria l.p rin tln (" E rro r w ritin g to file !"); } } lu an C.2 Lập trình cho GW va n # in c lu d e < T o n e h > gh tn to # in c lu d e < S P I.h > p ie # in c lu d e < L o R a h > w # in c lu d e < S S D h > oa nl # in c lu d e < P u b S u b C lie n t.h > # in c lu d e < W iF i.h > d lu # in c lu d e < N T P C lie n t.h > an lm ul # in c lu d e < W ire h > nf va # in c lu d e < W iF iU d p h > # in c lu d e < L iq u id C ry s ta l_ I2 C h > z at nh oi # in c lu d e < S o ftw a re S e ria l.h > # in c lu d e < D F P la y e r_ M in i_ M p h > m co an Lu # d e fin e SS 18 l L iq u id C ry s ta l_ I2 C lc d (0 X , , 4); gm # in c lu d e < A rd u in o O T A h > @ # in c lu d e < E S P m D N S h > z # in c lu d e < s trin g h > n va ac th si 109 # d e fin e R S T 14 # d e fin e D I0 26 # d e fin e B A N D 3 E # d e fin e R X D 16 # d e fin e T X D 17 # if n d e f S T A S S ID # d e fin e S T A S S ID " IP H O N E P L U S " # d e fin e S T A P S K "0 8 " lu # e n d if an c o n st c h ar* ss id = S T A S S ID ; va n c o n st c h ar* p a s s w o rd = S T A P S K ; gh tn to W iF iU D P n U D P ; p ie N T P C lie n t tim e Q ie n t(n U D P ); w S trin g d a y S ta m p , tim e S ta m p , d a te _ g , m o n th _ ,y e a r_ ; oa nl S o ftw a re S e ria l m y S e ria l(3 ,1 ); c o n st S trin g m y p h o n e = " 8 " ; d lu S trin g R x B u f f = ""; an nf va # d e fin e T O K E N " J P M h n k y B m tF H ry n v c S " W iF iC lie n t w ifiC lie n t; P u b S u b C lie n t c lie n t(w ifiC lie n t); z at nh oi lm ul c h a r th in g s b o a rd S e rv e r[] = " d e m o th in g sb o a rd io " ; in t sta tu s = W L _ ID L E _ S T A T U S ; m in t v a l1 , v a l2 , m o c _ , m o c _ , m o c _ , m o c _ , m o c _ ; co l gm u n s ig n e d lo n g la s tS e n d _ N O D E ; @ u n s ig n e d lo n g la s tS e n d _ tim e ; z u n s ig n e d lo n g la stS e n d ; an Lu S trin g d a te _ , tim e _ , d a te _ , tim e _ , d a te _ , tim e _ ,d a te _ , tim e _ ; n va ac th si 110 S trin g filte r_ d a ta [5 ], d a ta ; v o id se tu p () { S e ria l.b e g in (1 0 ); S e ria l2 b e g in (9 0 , S E R IA L _ N , R X D , T X D ); m y S e ria l.b e g in (9 0 ); m p _ s e t_ s e ria l (S e ria l2 ); m p _ s e t_ v o lu m e (2 ); lu m p _ p la y (1 ); an p in M o d e (N u tT im e , IN P U T ); va n W iF i.b e g in (s s id , p a ssw o rd ); gh tn to w h ile (W iF i.s ta tu s () != W L _ C O N N E C T E D ) { p ie d e la y (5 0 ); w S e ria l.p rin t(M.M); oa nl } c lie n t.s e tS e rv e r(th in g s b o a rd S e rv e r, 1883); d tim e C lie n t.b e g in (); z at nh oi lm ul d e la y (1 0 ); nf va an w h ile (!S e ria l); lu la s tS e n d = 0; tim e C lie n t.s e tT im e O ffs e t(+ * * ); lc d in it(); m co an Lu { l i f (!L o R a b e g in (B A N D )) gm L o R a s e tP in s (S S ,R S T ,D I0 ); @ S P I.b e g in (5 ,1 ,2 ,1 8); z lc d b a c k lig h t(); n va ac th si 111 w h ile (1); } G s m _ In it(); se ria lE v e n t(); G s m _ M a k e C a ll(m y p h o n e ); // T e s t c u o c g o i m p _ p la y (2); } v o id lo o p () lu { an i f (s ta tu s R e p e a te r = = ) { va n i f (m illis () - m illis B e fo re < 0 ) gh tn to { p ie i f (tu rn = = 1) { w S e n d R e q u e s t(" N " ); oa nl w a itF o rA n sw e r_ (); tu rn = 2; d lu an } nf va w a itF o rA n sw e r_ (); lm ul } e lse i f ((m illis () - m illis B e fo re > 0 ) & & (m illis () - m illis B e fo re < 0 )) i f (tu rn = = ) { m co an Lu w a itF o rA n sw e r_ (); l } gm tu rn = 3; @ w a itF o rA n sw e r_ (); z S e n d R e q u e s t(" N " ); z at nh oi { n va ac th si 112 } e lse i f ((m illis () - m illis B e fo re > 0 ) & & (m illis () - m illis B e fo re < 0 )) { i f (tu rn = = 3) { S e n d R e q u e s t(" N " ); w a itF o rA n s w e r_ (); tu rn = 4; } lu w a itF o rA n sw e r_ (); an va } n e lse i f (m illis () - m illis B e fo re > 0 ) gh tn to { p ie i f (tu rn = = ) { w S e n d R e q u e s t(" N " ); oa nl w a itF o rA n sw e r_ (); tu rn = 1; d an lu } nf va w a itF o rA n sw e r_ (); } z at nh oi } lm ul m illis B e fo re = m illis(); in t p a c k e tS iz e = L o R a p a rs e P a c k e t(); m co an Lu lc d s e tC u rs o r(0 , 2); l lc d c le a r(); gm d a ta = L o R a re a d S trin g (); @ w h ile (L o R a a v a ila b le ()) { z i f (p a c k e tS iz e ) { n va ac th si 113 lc d p rin t(đ a ta ); if(d a ta s u b s trin g (0 ,2 )= = " !_ " ) { d ig ita lW rite (R E D _ N O D E 1, H IG H ); m p _ p la y (7); G s m _ M a k e C a ll(m y p h o n e ); } e lse if(d a ta s u b strin g (0 ,2 )= = " @ _ ") lu { an d ig ita lW rite (R E D _ N O D E , H IG H ); va n m p _ p la y (7); to } p ie gh tn G s m _ M a k e C a ll(m y p h o n e ); oa nl { w e lse if(d a ta s u b s trin g (0 ,2 )= = " # _ " ) d ig ita lW rite (R E D _ N O D E , H IG H ); d lu m p _ p la y (7); an lm ul } nf va G s m _ M a k e C a ll(m y p h o n e ); e lse if(d a ta s u b strin g (0 ,2 )= = " $ _ ") z at nh oi { d ig ita lW rite (R E D _ N O D E , H IG H ); m co an Lu } l } gm } @ G s m _ M a k e C a ll(m y p h o n e ); z m p _ p la y (7); n va ac th si 114 lc d s e tC u rs o r(0 , 3); lc d p rin t(”R S S I: "); lc d s e tC u rs o r(5 , 3); lc d p rin t((S trin g )L o R a p a c k e tR s s i()); if(!c lie n t.c o n n e c te d ()){ re c o n n e c t(); } c lie n t.lo o p (); lu } an v o id S e n d D a ta _ (){ va n in t S p o _ _ A la rm = c h u o i2 _ to In t(); gh tn to S trin g R = (S trin g )L o R a p a c k e tR s s i(); p ie S trin g H = c h u o i1 ; w S trin g S = c h u o i2 _ ; S trin g A ; d oa nl S trin g D = c h u o i3 ; lu if(S p o _ _ A la rm < ) nf va an { z at nh oi } lm ul A = " A L A R M !" ; //A la rm e lse i f (S p o _ _ A la rm > = & & S p o _ _ A la rm < = ) { z gm @ A = " L O W " ; //L O W } l e lse i f (S p o _ _ A la rm > = & & S p o _ _ A la rm < = ) an Lu A = " N O R M A L " ; //N O R M A L m co { n va ac th si 115 } else { A = " G O O D " ;// G O O D } S trin g p a y lo a d = "{"; p a y lo a d + = " \" H \" :" ; p a y lo a d + = H ; p a y lo a d + = ","; p a y lo a d + = " \" S \":"; p a y lo a d + = S1; p a y lo a d + = ","; lu p a y lo a d + = " \" D \" :" ; p a y lo a d + = D ; p a y lo a d + = ","; an p a y lo a d + = " \"A \":"; p a y lo a d + = A ; p a y lo a d + = ","; va n p a y lo a d + = " \"R \":"; p a y lo a d + = R ; gh tn to p a y lo a d + = "}"; p ie c h a r te le m e try [1 0 ]; w p a y lo a d to C h a rA rra y ( te le m e try , 100 ); oa nl c lie n t.p u b lis h ( " v /d e v ic e s/m e /te le m e try " , te le m e try ); d } an lu v o id re c o n n e c t(){ nf va w h ile (!c lie n t.c o n n e c te d ()){ lm ul sta tu s = W iF i.s ta tu s(); if(sta tu s != W L _ C O N N E C T E D ){ z at nh oi W iF i.b e g in (s s id , p a ssw o rd ); w h ile (W iF i.s ta tu s () != W L _ C O N N E C T E D ){ i f ( c lie n t.c o n n e c t(" E S P D e v ic e " , T O K E N , N U L L )) an Lu { m co l gm } @ } z d e la y (5 0 ); n va ac th si 116 } e lse { d e la y ( 0 ); } } } v o id S e n d R e q u e s t(S trin g re q u e st) { lu L o R a b e g in P a c k e t(); an L o R a p rin t(re q u e s t); va n L o R a e n d P a c k e t(); gh tn to } w { p ie v o id w a itF o rA n s w e r_ () oa nl in t p a c k e tS iz e = L o R a p a rs e P a c k e t(); i f (p a c k e tS iz e ) { d lu w h ile (L o R a a v a ila b le ()) { an lc d s e tC u rs o r(0 , 2); lc d p rin t(d a ta ); if(d a ta s u b s trin g (0 ,2 )= = " _ " ) z at nh oi lm ul lc d c le a r(); nf va d a ta = L o R a re a d S trin g (); z fo r (in t i = 0; i < d a ta le n g th (); i+ + ) { m an Lu } co m o c _ = i; l i f (d a ta c h a rA t(i) = = '_ ') { gm @ { n va ac th si 117 i f (d a ta c h a rA t(i) = = ',') { m o c _ = i; } i f (d a ta c h a rA t(i) = = ';') { m o c _ = i; } i f (d a ta c h a rA t(i) = = '# ') { m o c _ = i; lu } an i f (d a ta c h a rA t(i) = = '$ ') { va n m o c _ = i; tn to } gh p ie } w c h u o i3 = data su b s trin g (m o c _ + ); oa nl c h u o i2 _ = d a ta s u b s trin g (m o c _ + ,m o c _ ); c h u o i1 = d a ta s u b s trin g (m o c _ + ,m o c _ ); d lu d ate_ = d a ta s u b s trin g (m o c _ + ,m o c _ ); an } } z at nh oi } lm ul } nf va tim e _ = d a ta s u b s trin g (m o c _ + ,m o c _ ); z m co l gm @ an Lu n va ac th si

Ngày đăng: 19/07/2023, 05:09

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w