(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại(Đồ án tốt nghiệp) Thiết kế và thi công vòng đeo tay theo dõi nhiệt độ cơ thể, gửi cảnh báo về điện thoại
BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT Y SINH ĐỀ TÀI: THIẾT KẾ VÀ THI CƠNG VỊNG ĐEO TAY THEO DÕI NHIỆT ĐỘ CƠ THỂ, GỬI CẢNH BÁO VỀ ĐIỆN THOẠI GVHD: PGS TS Nguyễn Thanh Hải SVTH: Phan Thị Mỹ Loan Phạm Thị Diễm My Tp Hồ Chí Minh – 08/2020 16129034 16129039 LỜI CAM ĐOAN Đề tài nhóm tự thực dựa vào hướng dẫn PGS TS Nguyễn Thanh Hải số tài liệu, không chép từ tài liệu hay cơng trình có trước Nếu có gian lận nào, nhóm xin chịu hồn tồn trách nhiệm Sinh viên thực đề tài Phan Thị Mỹ Loan Phạm Thị Diễm My vi LỜI CẢM ƠN Sau thời gian thực hiện, nhóm hồn thành đề tài “Thiết kế thi cơng vịng đeo tay theo dõi nhiệt độ, gửi cảnh báo điện thoại” Để có thành trên, ngồi cố gắng thành viên nhóm, nhóm em xin gửi lời cảm ơn chân thành đến PGS TS Nguyễn Thanh Hải – Giảng viên môn Điện tử Công nghiệp – Y Sinh tận tình hướng dẫn giúp đỡ, tạo điều kiện để nhóm hồn thành tốt đề tài Nhóm xin gửi lời cảm ơn đến đội ngũ Giảng viên trường Đại học Sư phạm Kỹ thuật Tp.HCM, đặc biệt Qúy thầy cô khoa Điện – Điện tử truyền đạt kiến thức môn đại cương chun mơn giúp nhóm có kiến thức bổ ích sở vững vàng để áp dụng vào đề tài này, đồng thời tảng cho tương lai sau chúng em Đồng thời, nhóm xin cảm ơn anh chị khóa trước tập thể lớp 161290 nhiệt tình giúp đỡ, từ tài liệu liên quan đến đề tài đến việc đóng góp ý kiến chia sẻ kinh nghiệm Cảm ơn gia đình, người thân bạn bè giúp đỡ, động viên nguồn động lực tinh thần lớn, tạo cho chúng em điều kiện tốt suốt trình học tập hồn thành Đồ án Tốt nghiệp Trong q trình thực hiện, kiến thức cịn hạn chế nên khơng thể tránh khỏi sai sót Rất mong nhận góp ý Q thầy bạn để đề tài hoàn thiện Xin chân thành cảm ơn! Sinh viên thực đề tài Phan Thị Mỹ Loan Phạm Thị Diễm My vii MỤC LỤC Trang bìa i Nhiệm vụ đồ án ii Lịch trình thực đồ án tốt nghiệp iv Lời cam đoan vi Lời cảm ơn vii Mục lục vi Liệt kê hình vẽ x Liệt kê bảng xii Tóm tắt xiii CHƯƠNG TỔNG QUAN 1.1 Đặt vấn đề 1.2 Mục tiêu 1.3 Nội dung nghiên cứu 1.4 Giới hạn 1.5 Bố cục .3 CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Tìm hiểu thân nhiệt 2.2 Các phương pháp đo nhiệt độ 2.3 Lý thuyết nhiệt điện trở .6 2.3.1 Lý thuyết nhiệt điện trở 2.3.2 Phân loại nhiệt điện trở 2.4 Mơ tả q trình hoạt động 2.5 Giới thiệu công nghệ thực 10 2.5.1 Giao thức MQTT 10 2.5.2 Tìm hiểu Ubidots 15 2.5.3 Cấu hình Wifi SmartConfig 18 2.6 GIỚI THIỆU PHẦN CỨNG 22 2.6.1 Module Wemos D1 Mini ESP8266 .22 2.6.2 Mạch Sạc Lithium Micro ESP8266 D1 Mini 1A 24 2.6.3 Cảm biến nhiệt độ bề mặt da YSI700 24 2.6.4 Màn hình Oled SSD1306 .25 viii 2.6.5 Buzzer 26 2.6.6 Pin Lipo .27 CHƯƠNG TÍNH TỐN THIẾT KẾ 28 3.1 Giới thiệu 28 3.2 Tính tốn thiết kế hệ thống 28 3.2.1 Thiết kế sơ đồ khối hệ thống .28 3.2.2 Tính tốn thiết kế khối 30 3.2.3 Sơ đồ nguyên lý toàn mạch 35 CHƯƠNG THI CÔNG HỆ THỐNG 36 4.1 Giới thiệu 36 4.2 Thi công hệ thống 36 4.2.1 Thi công Board mạch 36 4.2.2 Lắp ráp kiểm tra .40 4.3 đóng gói thi cơng mơ hình 41 4.4 Lập trình hệ thống 44 4.4.1 Giới thiệu phần mềm lập trình .44 4.4.2 Lưu đồ giải thuật 46 4.5 Viết tài liệu hướng dẫn sử dụng, thao tác 51 4.5.1 Tài liệu hướng dẫn sử dụng 51 4.5.2 Quy trình thao tác 55 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 56 5.1 Kết 56 5.1.1 Kết thiết bị .56 5.1.2 Kết hiển thị Web 59 5.1.3 Kết chạy thực tế 61 5.2 Nhận xét đánh giá 66 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 68 6.1 Kết luận 68 6.2 Hướng phát triển 68 TÀI LIỆU THAM KHẢO .69 PHỤ LỤC 70 ix LIỆT KÊ HÌNH VẼ Hình Trang Hình 2.1 Phân loại nhiệt điện trở Hình 2.2 Mơ hình giao thức MQTT 11 Hình 2.3 Đọc cảm biến đến giá trị 17 Hình 2.4 Biến không hoạt động khoảng thời gian 17 Hình 2.5 Cài đặt cảnh báo vị trí thiết bị 18 Hình 2.6 Mơ hình SmartConfig 18 Hình 2.7 Giao diện ứng dụng ESP TOUCH IOS Android 20 Hình 2.8 Giao diện ESP Touch kết nối 21 Hình 2.9 Kết kết nối Serial Monitor 22 Hình 2.10 Sơ đồ chân ESP8266 23 Hình 2.11 Mạch sạc Lithium Micro ESP8266 D1 Mini 1A 24 Hình 2.12 Cảm biến YSI700 25 Hình 3.1 Sơ đồ khối 29 Hình 3.2 Mạch kết nối cảm biến 31 Hình 3.3 Sơ đồ nguyên lý toàn mạch 35 Hình 4.1 Mạch PCB 37 Hình 4.2 Phần nắp hộp 38 Hình 4.3 Phần đáy hộp 39 Hình 4.4 Mơ hình hồn chỉnh 39 Hình 4.5 Mặt mạch sau hàn linh kiện 40 Hình 4.6 Mạch thực tế 41 Hình 4.7 Đóng gói điều khiển 42 Hình 4.8 Mặt trước mơ hình hồn chỉnh 43 Hình 4.9 Dây đeo sản phẩm 43 Hình 4.10 Mặt bên mơ hình hồn chỉnh 44 Hình 4.11 Lưu đồ chương trình 46 Hình 4.12 Lưu đồ chương trình 47 x Hình 4.13 Lưu đồ chương trình đo nhiệt độ 49 Hình 4.14 Lưu đồ chương trình kết nối Ubidots 50 Hình 4.15 Màn hình đăng nhập Ubidots 52 Hình 4.16 Cài đặt ngưỡng báo động cho Buzzer 53 Hình 4.17 Thiết lập Devices 53 Hình 4.18 Lựa chọn kiện gửi SMS 54 Hình 4.19 Cài đặt ngưỡng nhiệt độ cảnh báo 54 Hình 4.20 Cập nhật số điện thoại gửi cảnh báo 55 Hình 5.1 Mơ hình hồn chỉnh thiết bị 56 Hình 5.2 Giao diện khởi động thiết bị 57 Hình 5.3 Màn hình yêu cầu kết nối Wifi 57 Hình 5.4 Giao diện hiển thị thơng số nhiệt độ 58 Hình 5.5 Kết đo thực tế 58 Hình 5.6 Giao diện hiển thị Ubidots 59 Hình 5.7 Biểu đồ theo dõi giá trị nhiệt độ 60 Hình 5.8 Lịch sử cập nhật giá trị nhiệt độ 60 Hình 5.9 Kết đo thực tế so với nhiệt kế điện tử - thủy ngân 61 Hình 5.10 Giao diện hình nhiệt độ vượt ngưỡng cài đặt 62 Hình 5.11 Gửi SMS cảnh báo điện thoại 62 Hình 5.12 Gửi Gmail cảnh báo 62 xi LIỆT KÊ BẢNG Bảng Trang Bảng 2.1 Nhiệt độ thể vị trí đo độ tuổi khác Bảng 2.2 So sánh MQTT HTTP 14 Bảng 2.3 Thông số kỹ thuật ESP8266 23 Bảng 2.4 Thông số kỹ thuật Mạch Sạc Lithium Micro ESP8266 D1 Mini 1A 24 Bảng 2.5 Thông số kỹ thuật YSI700 25 Bảng 2.6 Thông số kỹ thuật hình Oled 26 Bảng 2.7 Sơ đồ đấu nối Oled ESSP8266 26 Bảng 2.8 Thông số kỹ thuật Buzzer 26 Bảng 3.1 Giá trị nhiệt độ điện trở 32 Bảng 3.2 Bảng liệt kê công suất tiêu thụ mạch điện 34 Bảng 4.1 Bảng liệt kê danh sách linh kiện 36 Bảng 5.1 So sánh kết đo vị trí khác thể 63 Bảng 5.2 So sánh kết sản phẩm nhiệt kế thủy ngân 63 Bảng 5.3 So sánh kết sản phẩm nhiệt kế điện tử Omron HC-246 65 xii TÓM TẮT Hiện với phát triển mạnh mẽ khoa học công nghệ, giới thay đổi mạnh mẽ, văn minh đại Cùng với đó, việc áp dụng kỹ thuật, công nghệ vào đời sống, giúp nâng cao bảo vệ sức khỏe người ngày áp dụng nhiều Chúng ta thấy, nhiệt độ thể yếu tố quan trọng để xác định tình trạng sức khỏe Nhiệt độ thể không ổn định không nằm ngưỡng bình thường gây hệ lụy khơng đáng có Vì thế, nhóm đưa ý tưởng làm thiết bị đo nhiệt độ thể nhỏ gọn, nhằm mục đích theo dõi thường xuyên nhiệt độ thể cảnh báo nhiệt độ vượt q ngưỡng bình thường Đề tài nhóm “Thiết kế thi cơng vịng đeo tay theo dõi nhiệt độ, gửi cảnh báo điện thoại” với mục đích cho người thân theo dõi nhiệt độ người sử dụng liên tục Thiết bị sử dụng vi điều khiển trung tâm xử lý tín hiệu nhận từ cảm biến nhiệt độ, hiển thị kết Web có chức gửi SMS hay Gmail cảnh báo nhiệt độ vượt ngưỡng quy định Trong q trình thực đề tài, nhóm sử dụng phương pháp nghiên cứu, tìm hiểu tài liệu sở có liên quan, từ phân tích, chọn lọc ứng dụng vào đề tài Sau hoàn thành, sản phẩm nhóm đạt kết định, hoàn thành mục tiêu đặt ban đầu Tuy nhiên, số sai sót hạn chế Với đề tài này, nhóm hy vọng tương lai sở nghiên cứu cho đề tài sau, hoàn thiện mở rộng, phát triển xiii CHƯƠNG TỔNG QUAN Chương TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Ngày nay, nhịp sống người ngày tăng cao, khoa học công nghệ ngày phát triển Với Việt Nam - nước phát triển, mặt sống người dân cịn nhiều khó khăn, lạc hậu, việc áp dụng kỹ thuật nhằm đảm bảo cho đời sống, sức khỏe người cách đơn giản, dễ dàng tiếp cận cần thiết Nhiệt độ thể yếu tố quan trọng để xác định tình trạng sức khỏe Đến hoạt động cấp cao hệ thần kinh, phụ thuộc vào thân nhiệt Nếu thân nhiệt không ổn định mức cần thiết kéo theo nhiều bệnh tật sinh [1] Với tình hình dịch bệnh Covid-19 diễn biến phức tạp, việc theo dõi thân nhiệt thường xuyên trở nên quan trọng cần thiết Thường hầu hết gia đình, loại nhiệt kế phổ biến loại nhiệt kế truyền thống hay loại nhiệt kế không cần tiếp xúc với da Tuy loại nhiệt kế có cơng dụng đặc biệt riêng chúng loại nhiệt kế gửi liệu trực tiếp cảnh báo đến điện thoại khơng phổ biến thị trường [1] Để theo dõi cách xác thân nhiệt thể xác định tình trạng thể việc gửi SMS cảnh báo đến người dùng thân nhiệt vượt q ngưỡng cài đặt đóng vai trị quan trọng [2] Theo khảo sát, có nhiều nghiên cứu tạo sản phẩm có chức tương tự, Tuyển tập Báo cáo Hội nghị Sinh viên Nghiên cứu Khoa học lần thứ Đại học Đà Nẵng năm 2012 với đề tài “Thiết kế mơ hình tự động đo nhịp tim nhiệt độ thể người”, đồ án tạo thiết bị sử dụng công nghệ truyền dẫn thông tin mạng nội để đưa giải pháp thuận tiện nhằm quản lí sức khỏe người Thơng tin sức khỏe đo từ thiết bị truyền dẫn qua dây cáp mạng đến máy chủ; từ truy cập thơng qua trình duyệt Web [3] Hay Đồ Án Tốt Nghiệp năm 2019, Nguyễn Thanh Hoàng – Nguyễn Khoa Nam với đề tài “Thiết kế thi cơng vịng tay đo nhịp tim sử dụng công nghệ IoTs”, đề tài thiết kế vịng BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP - Y SINH CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Về phần mềm, nhóm hồn thành mục tiêu đề tài đặt ra: hiển thị cập nhật liên tục giá trị nhiệt độ, có biểu đồ để theo dõi nhiệt độ, có lịch sử cập nhật nhiệt độ qua thời điểm, cài đặt ngưỡng nhiệt độ để cảnh báo còi Buzzer cảnh báo SMS hay Gmail điện thoại Giao diện đơn giản, dễ theo dõi Tuy nhiên, số nhược điểm thao tác phức tạp, chẳng hạn để cài đặt số điện thoại gửi SMS cảnh báo hay Gmail phải thực nhiều bước Về kết đo, sản phẩm nhóm đo giá trị nhiệt độ thể, kết tương đối xác so với thiết bị khác so với nhiệt độ chuẩn bình thường, nhiên, sai số lớn số lần đo Bên cạnh đó, lúc bắt đầu đo, kết đo nhóm cịn chưa ổn định cịn thấp so với thiết bị đo khác, nguyên nhân cảm biến chưa có đủ thời gian tiếp xúc với da Vì vậy, để khắc phục, cần đeo sản phẩm vào tay khoảng – phút thực lấy kết quả, đồng thời ý để cảm biến vào sát nách nhất, kết đo xác 5.2.2 Đánh giá Sau khoảng thời gian nghiên cứu, tìm hiểu thực đề tài, nhóm đáp ứng mục tiêu ban đầu đề tài Tuy nhiên, vân cịn hạn chế Từ đó, nhóm nêu số đánh giá sản phẩm nhóm sau hồn thành a Ưu điểm - Mơ hình sản phẩm dễ sử dụng, thao tác - Đảm bảo an toàn cho người sử dụng - Mơ hình bền, hoạt động ổn định - Kết đo xác so với sản phẩm khác - Dễ lắp đặt, giá thành rẻ b Nhược điểm - Chưa có tính thẩm mỹ cao - Mơ hình sản phẩm kích thước cịn to so với sản phẩm khác - Phần dây đeo cịn ngắn, khơng phù hợp với tất người sử dụng - Dễ bị sai số để cảm biến khơng vị trí - Chưa kết hợp cài đặt ngưỡng nhiệt độ cảnh báo Buzzer SMS - Khi khơng kết nối Wifi thiết bị khơng hoạt động BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP - Y SINH 67 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 KẾT LUẬN Qua đề tài “Thiết kế thi cơng vịng đeo tay theo dõi nhiệt độ thể, gửi cảnh báo điện thoại”, nhóm nghiên cứu thực vấn đề mục tiêu đặt ban đầu đề tài Trong trình thực hiện, nhóm đạt kết định Nhóm biết cách sử dụng cảm biến nhiệt độ, hiểu nguyên lý cảm biến, lập trình cảnh báo nhiệt tới người dùng Bên cạnh đó, nhóm tìm hiểu nghiên cứu cách gửi liệu lên Web, sử dụng Ubidots gửi SMS, Gmail cảnh báo Hệ thống Board mạch chạy tương đối ổn định, kết đo tương đối xác so với thiết bị khác Nhìn chung, nhóm đạt khoảng 90% mục tiêu ban đầu đặt Tuy nhiên, kiến thức thời gian hạn hẹp, nên khơng thể tránh khỏi sai sót Mơ hình thi cơng thiết bị kích thước cịn lớn, tính thẩm mỹ chưa cao Ngồi ra, đeo thiết bị vào tay, cần có khoảng thời gian để cảm biến nhiệt độ thích ứng với da, đó, cần có thời gian để thu kết xác Giao diện hiển thị đơn giản, chưa ứng dụng hết tính Ubidots Từ đó, nhóm đưa hướng phát triển hợp lý 6.2 HƯỚNG PHÁT TRIỂN Trong tương lai, chế tạo thiết bị vịng đeo tay với kích thước nhỏ gọn hơn, kết hợp đo thông số thể: nhịp tim, huyết áp, nhiệt độ thể, nồng độ Oxy bão hịa máu SpO2 , … Ngồi ra, phát triển đáp ứng ứng dụng khác kết nối với Bluetooth với điện thoại để tiện theo dõi khơng có Wifi, thêm chức chẩn đốn, cảnh báo tình trạng bệnh cách kịp thời xác Về phần mềm, phát triển tài khoản quản lý nhiều thiết bị lúc, lưu trữ lại liệu gặp cố không kết nối mạng cập nhật lại liệu kết nối mạng, xuất báo cáo cho người dùng dạng Excel BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 68 TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO [1] Nguyễn Vân Nam - Nguyễn Thị Bích Hồng, “Thân Nhiệt: Chìa Khóa Để Sống Khỏe Mạnh Và Trường Thọ”, Nhà Xuất Bản Hồng Đức, 06-2019 [2] Lê Trọng Hoàng – Võ Đình Ln, “Thiết kế thi cơng hệ thống giám sát nhiệt độ, độ ẩm, cường độ gió, cường độ sáng qua sms dùng nguồn pin sạc lượng mặt trời”, Đồ Án Tốt Nghiệp, Trường ĐH Sư Phạm Kỹ Thuật TP.HCM, 2019 [3] Nguyễn Bá Tòng, Nguyễn Đặng Quốc Anh, Nguyễn Duy Hiển, “Thiết kế mô hình tự động đo nhịp tim nhiệt độ thể người”, Tuyển tập Báo cáo Hội nghị Sinh viên Nghiên cứu Khoa học lần thứ Đại học Đà Nẵng năm 2012 [4] Nguyễn Thanh Hoàng, Nguyễn Khoa Nam, “Thiết kế thi cơng vịng tay đo nhịp tim sử dụng công nghệ IoTs”, Đồ Án Tốt Nghiệp, Trường ĐH Sư Phạm Kỹ Thuật TP.HCM, 2019 [5] Nguyễn Đình Phú, Trương Ngọc Anh, “Giáo Trình Vi Điều Khiển”, khoa Điện- Điện Tử, trường ĐHSPKT, Tp.HCM, 2013 [6] Lê Mỹ Hà, Phạm Quang Huy, “Lập trình IOT với Arduino”, Nhà Xuất Bản Thanh Niên, 2017 [7] YSI Precision Temperature Group, “YSI Precision Thermistors & Probes”, 2002 [8] Phạm Minh Tuấn, “MQTT”, 25/5/2020, [9] Maria Carlina Hernandez, “Ubidots Basics: Devices, Variables, Dashboards, and Alerts”, 5/6/2020 < help.ubidots.com/> [10] Phạm Minh Tuấn, “Smartconfig”, 16/6/2017 < arduino.esp8266.vn> BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 69 PHỤ LỤC PHỤ LỤC Code chương trinh Khởi tạo chương trình #include #include #include #include #include #include #include "UbidotsESPMQTT.h" #include #include #define TOKEN "BBFF-tpTgIYb91n4752VzEY3T4nVMWQVBB9" // Your Ubidots TOKEN #define MQTTCLIENTNAME "MyMyMy" // Your MQTT Client Name, it must be unique so we recommend to choose a random ASCCI name #define DEVICE_LABEL "control" #define VARIABLE_LABEL // Put here your Ubidots device label "set-an-alarm" // Put here your Ubidots variable label #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // Declaration for an SSD1306 display connected to I2C (SDA, SCL pins) Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); double Vout, adc_value, Rth, temperature; const double VCC = 3.3; // NodeMCU on board 3.3v vcc const double R2 = 9890; const double adc_resolution = 1023; // 10-bit adc const double A = -1.431353076e-03; const double B = 6.647074447e-04; const double C = -17.10973934e-07; float temperatureAlarm = 38; const int buzzer = 13 ;//pin D4 unsigned long previousMillis = 0; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 70 PHỤ LỤC const long intervalScreen = 15000; const long intervalButton = 1000; const int BUTTON_PIN = 12; // the number of the pushbutton pin int flagScreen=2; int flagMute=0; const unsigned char alarm [] PROGMEM = { 0x01, 0x00, 0x03, 0x80, 0x07, 0xc0, 0x0f, 0xe0, 0x1f, 0xf0, 0x1f, 0xf0, 0x1f, 0xf0, 0x1f, 0xf0, 0x1f, 0xf0, 0x1f, 0xf0, 0x3f, 0xf8, 0x7f, 0xfc, 0x00, 0x00, 0x07, 0xc0, 0x03, 0x80 }; int analogPin = A0; Ubidots client(TOKEN, MQTTCLIENTNAME); /**************************************** * Auxiliar Functions ****************************************/ void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); for (int i=0;itemperatureAlarm)&&(flagMute==0)) { flagMute=1; flagScreen=1; digitalWrite(buzzer,LOW); Serial.println("Tat bao dong"); DisplayCreen(); } } else { flagScreen=1; Serial.println("Nhan lan"); if((temperature>temperatureAlarm)&&(flagMute==0)) { flagMute=1; digitalWrite(buzzer,LOW); Serial.println("Tat bao dong"); DisplayCreen(); } } DisplayCreen(); } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 73 PHỤ LỤC } void DisplayCreen() { if (flagScreen==1) { unsigned long currentMillis = millis(); display.clearDisplay(); display.setTextSize(1.5); display.setTextColor(WHITE); display.setCursor(43, 10); display.print("Temperature: "); display.setTextSize(2.8); display.setTextColor(WHITE); display.setCursor(45, 30); display.print(temperature,1); display.print((char)247); display.print("C"); display.drawBitmap(5, 5, thermometer, 27, 62, WHITE); if(temperature>temperatureAlarm) { display.setTextSize(1.75); display.setCursor(47, 55); display.print("TAKE CARE"); } else { display.setTextSize(1); display.drawBitmap(50, 47, alarm, 15, 15, WHITE); display.setTextColor(WHITE); display.setCursor(68, 55); display.print(temperatureAlarm,1); display.print((char)247); display.print("C"); } display.display(); Serial.println("Che hien thi man hinh 15 giay"); if (currentMillis - previousMillis >= intervalScreen) { previousMillis = currentMillis; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 74 PHỤ LỤC flagScreen=0; } } if (flagScreen==2) { display.clearDisplay(); display.setTextSize(1.5); display.setTextColor(WHITE); display.setCursor(43, 10); display.print("Temperature: "); display.setTextSize(2.8); display.setTextColor(WHITE); display.setCursor(45, 30); display.print(temperature,1); display.print((char)247); display.print("C"); display.drawBitmap(5, 5, thermometer, 27, 62, WHITE); if(temperature>temperatureAlarm) { display.setTextSize(1.75); display.setCursor(47, 55); display.print("TAKE CARE"); } else { display.setTextSize(1); display.drawBitmap(50, 47, alarm, 15, 15, WHITE); display.setTextColor(WHITE); display.setCursor(68, 55); display.print(temperatureAlarm,1); display.print((char)247); display.print("C"); } Serial.println("Che luon luon hien thi man hinh"); if(digitalRead(BUTTON_PIN)==0) { if(temperature>temperatureAlarm) { flagMute=1; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 75 PHỤ LỤC flagScreen=1; digitalWrite(buzzer,LOW); DisplayCreen(); } else { flagScreen=0; DisplayCreen(); digitalWrite(buzzer,LOW); } while(digitalRead(BUTTON_PIN)==0) { delay(10); } } } else if(flagScreen==0) { display.clearDisplay(); display.display(); Serial.println("Tat man hinh"); } } void TemperatureAlarm() { if((temperature>temperatureAlarm)&&(flagMute==0)) { monitor.blink(); flagScreen=2; } else { digitalWrite(buzzer,LOW); } if(temperature= 10){ WiFi.beginSmartConfig(); while(1){ delay(1000); //Kiểm tra kết nối thành công in thông báo if(WiFi.smartConfigDone()){ Serial.println("SmartConfig Success"); break; } } } } Serial.println(""); Serial.println(""); WiFi.printDiag(Serial); // Khởi tạo server Serial.println("Server started"); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 78 PHỤ LỤC // In địa IP Serial.println(WiFi.localIP()); // Nhận gói tin gửi từ ESPTouch Udp.parsePacket(); //In IP ESP8266 while(Udp.available()){ Serial.println(Udp.remoteIP()); Udp.flush(); delay(5); } delay(1000); client.begin(callback); //client1.wifiConnection(WIFINAME, WIFIPASS); client.begin(callbackAlarm); client.ubidotsSubscribe(DEVICE_LABEL, VARIABLE_LABEL); //Insert the dataSource and Variable's Labels } void loop() { // put your main code here, to run repeatedly: Udp.parsePacket(); //In IP ESP8266 while(Udp.available()){ Serial.println(Udp.remoteIP()); Udp.flush(); delay(5); } if(!client.connected()){ client.reconnect(); } // if(!client1.connected()){ // client1.reconnect(); // client1.ubidotsSubscribe(DEVICE_LABEL, VARIABLE_LABEL); //Insert the dataSource and Variable's Labels // } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 79 PHỤ LỤC float analog = analogRead(analogPin); //float analogSmooth100 = as100.analogReadSmooth(analogPin); float analogSmooth10 = as.smooth(analog); Calculate_Temp(); doSwitchStatement(); DisplayScreen(); TemperatureAlarm(); for(int i=0; i