Chương 1: Tổng quan Chươnginàyitrìnhibàyitìnhihìnhinghiênicứuihiện nay, tínhicấpithiếticủa đề tài, mục tiêuinghiênicứu, nhiệmivụinghiên cứu, đốiitượngivàiphạmiviinghiên cứu, phương pháp nghiênicứu, bốicụciđồián. Chương 2: Cơisởilýithuyết Chươnginàyitrình bàyicác lýithuyết chínhiliên quaniđến hệ thống. Chương 3: Thiết kế và thi công hệ thống Chươnginàyitrìnhibàyicáchitínhitoánithiếtikếihệ thống, sơiđồikhối, sơiđồ nguyênilý lưuiđồigiảiithuật, viếtichươngitrìnhihệithống, thiếtikếisơiđồimạchiiniPCBivàiđóngigóiisản phẩm. Chương 4: Kết quả thực hiện Chươnginàyitrìnhibàyikếtiquảithiicôngiphầnicứngivàikếtiquảihìnhiảnhithựcitếicủa hệ thốngibáoicháy, nhậnixétivềisảniphẩm.
Chương 5: Kết luận và hướng phát triển Chươnginàyitrìnhibàyikếtiquảithiicôngiphầnicứngivàikếtiquảihìnhiảnhithựcitếicủaihệ thốngicảnhibáoicháy, nhậnixétivềisảniphẩm, phânitíchiưuinhượciđiểmivàiđề xuất hướng phátitriểnicủaiđềitài. 4 CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 GIỚI THIỆU SƠ LƯỢC VỀ KHÍ GAS 2.1 Khái niệm Hiện nay, với đặc tính là nguồn nhiên liệu sạch được sử dụngirộngxrãi trong dân dụng, thươngxmại, vậnitải và các ứngidụngicông nghiệp. Khí gasicó nhiềuiứng dụng quan trọng trong đờiisống hằng ngày như nấuiăn, làminóng thựciphẩm, ứngidụng trong cônginghiệp và các lĩnhivực khác. Với tính chất khôngimùi, khôngimàu, nhưng chúng vẫn tồnitại nhiều nguyicơ gây tổnihại đến sứcikhỏe và do không cóimùi, không cóimàuinên gasithoát ra thiết bị chứairấtikhóiphátihiện.2 Tính chất nguy hiểm của khí gas Vớiitính chất khôngicóimùi, khôngicóimàuinên gasithoát ra thiết bị chứa rất khóiphát hiệninên tồnitại nhiều nguyihiểm như gâyingạtithở trong phòngikín, nguyicơ ngộiđộc nếu hítiphải một hàmilượng quá lớn và mối nguy lớn nhất là khả năng gâyicháyinổ khi tiếpixúc với lửa, tia lửaiđiệnihoặc nhiệt độicao.2 KHÁI QUÁT VỀ TIA LỬA ĐIỆN 2.1 Khái niệm Tiailửaiđiện được hìnhithành trong khôngikhí khiiđiệnitrường đạt giá trị ngưỡng vào khoảngi3.
Hiệuiđiệnithế đủiđể phátisinhitia lửa điệnitrong khôngikhí giữaihaiiđiện cựcidạng khácinhau.2 Tính chất nguy hiểm của tia lửa điện Tia lửa điện có thể gâyirainhiềuinguyicơinguy hiểm, đặc biệt trong môi trường chứa các chất dễ cháy như khí gas, hơi dầu hoặc các hóa chất khác. Khi một tia lửa điện lọt vào môi trường giàu khí, có thể dẫn đến cháy nổ ngoài ý muốn. Bên cạnh đó, tia lửa điện cũng 5 có thể gây ra hiện tượng chập điện và nguy hiểm về điện, đặc biệt nếu xảy ra trong môi trường có dòng điện, có thể gây hỏa hoạn hoặc thương tích cho những người xung quanh.3 GIỚI THIỆU VỀ HỆ THỐNG IOT 2.1 Giới thiệu CấuitrúcicủaihệithốngiIoTigồmi4iphầnichính: Thiếtibị (Things), trạmikếtinối (Gateways), hạitầngimạng (NetworkiandiCloud), dịchivụi(Services) [3]. 1 Cấu trúc của hệ thống IoT.
Thiếtibị: Hiệninayitrênithịitrườngicácithiếtibịicônginghệ thông minh được sử dụng rất rộng rãi điểnihìnhinhưicácithiếtibịiđiềuikhiển, cảmibiến, đồngihồ và điệnithoạiithôngiminh với đặciđiểm chung là đều đượcikết nối thôngiquaiInternet. Trạmikếtinối: Cácitrạmikếtinốiiởiđây đóng vai tròitrung gianichoiviệc kết nốiicác vật dụng với điện toániđám mây một cách bảoimật và dễidàng hơnitrong việc quảnilý. Hạitầngimạngivàiđiệnitoániđám mây: Cơ sở hạ tầng mạng baoigồm các thiếtibị tổng hợp, trạmikếtinối và các thiết bị địnhituyến, để cóithể kiểmisoát được lượngidữ liệuilưu thông, bên cạnh đó cũng được kếtinối vớiimạng lướiiviễn thôngitriển khaiibởi các nhàicung cấp. Điệnitoán đámimây sẽibao gồmicác hệithốngimáyichủ, hệ thốngimạng, lưu trữiảo sẽ được kết nối.2 Ưu điểm và nhược điểm Ưu điểm: Cóithể truy cập mọi lúc mọiinơi điềuikhiển thông quaimạngiInternetimộticách tiện lợi.
Dữiliệuiđược lưu trữ trên cơ sở dữ liệuigiúp tiếpikiệm thời gianivà tiềnibạc bên cạnh đó tăng tínhilinh động choidữiliệu. IoT là giải pháp giúp mọi thứitự độngihóa cácinhiệmivụ cảiithiển chấtilượng cuộc sống. Nhược điểm: Vớiisự tiệnilợi trongiviệc kếtinối và chiaisẻ thôngitinitrên Internetikhi nhiềuithiếtibị đượcikếtinối có thể xảyira tìnhitrạng lấyicắp thôngitin. Vì cấuitrúc của hệithống luôniliên quanimậtithiếtinhauinênikhiihệithốngixảyirailỗi có khảinăngicácithiếtibịikếtinốiisẽibịihỏng.
Hệ thốngiIoT khôngicó tiêuichuẩniquốc tế cũnginhư sự tương thích nên gây khóikhăn cho cácinhà phát triểnitrong việc giaoitiếp các thiết bị với nhau.1 Khái niệm giao tiếp I2C I2C (Inter – Integrated Circuit) làimộtigiaoithứcigiaoitiếpinốiitiếpiđồngibộiđượciphát triểnibởiiPhilipsiSemiconductors, sửidụngiđểitruyềninhậnidữiliệuigiữaicáciICivớiinhauichỉ sửidụngihaiiđườngitruyềnitínihiệu [4]. Cácibitidữiliệuisẽiđượcitruyềnitừngibitimộtitheoicácikhoảngithờiigianiđềuiđặn được thiếtilậpibởii1itínihiệuixungiclock. BusiI2Cithườngiđượcisửidụngiđểigiaoitiếpingoạiiviichoirấtinhiều loạiiIC khác nhau nhưicáciloạiiviiđiều khiển, cảmibiến, EEPROM, … 7 2.2 Hoạt động của chuẩn giao tiếp I2C Hình 2. I2C sử dụng 2 đường truyền tín hiệu: - SCL - Serial Clock Line:iTạo xunginhịp đồngihồ do Master phátiđi - SDA - Serial Data Line: Đườngitruyền nhậnidữ liệu.
- Giaoitiếp I2Cibaoigồm quá trình truyềninhận dữiliệu giữa các thiết bịiMaster - Slave. - Thiết bị Master là 1 vi điềuikhiển, có nhiệmivụ điềuikhiển đườngitín hiệuiSCL và gửi nhậnidữ liệu hay lệnhithông qua đườngiSDA đến các thiếtibị khác. - Cácithiếtibị nhậnicác dữiliệu lệnh và tínihiệu từ thiết bịiMaster được gọi làicác thiết bị Slave. CácithiếtibịiSlaveithườngilàicáciIC, hoặc làiviiđiềuikhiển.
Khung truyền I2C: Hình 2. - Khốiibitiđịaichỉ: Thôngithườngiquáitrìnhitruyềninhậnisẽidiễniraivớiirấtinhiềuithiếtibị,iICivớiinhau. Điều đóiđểiphânibiệticácithiếtibịinày,ichúngisẽiđượcigắni1iđịaichỉivậtilýi7 biticốiđịnh. 8 - Bit Read/Write: BitinàyidùngiđểixáciđịnhiquáitrìnhilàitruyềnihayinhậnidữiliệuitừithiếtibịiMaster.
NếuiMasterigửiidữiliệuiđiithìiứngivớiibitinàyibằngi‘0’,ivàingượcilại,inhậnidữiliệuikhiibit nàyibằngi‘1’. - Bit ACK/NACK: Viết tắt củaiAcknowledged /iNotiAcknowledged. Dùng để soisánh bitiđịaichỉ vật lý củaithiếtibịisoivớiiđịaichỉiđượcigửiitới. NếuitrùngithìiSlaveisẽiđượciđặtibằng ‘0’ và ngược lại, nếuikhôngithìimặc địnhibằng ‘1’.
- Khốiibitidữiliệu: Gồmi8bitivàiđượcithiếtilậpibởiithiếtibịigửiitruyềniđếnithiếtibịinhận. Sau khiicác bit nàyiđượcigửiiđi, lậpitứci1ibitiACK/NACKiđượcigửiingayitheoisauiđểixác nhận rằng thiết bị nhận đã nhận đượcidữ liệuithànhicôngihayichưa. Nếuinhậnithành công thì bit ACK/NACKiđượcitích cực bằng ‘0’ivà ngược lại. Quá trình truyền nhận dữ liệu: Hình 2.
4 Tín hiệu bắt đầu. - Bắtiđầu: ThiếtibịiMasterisẽigửiiđii1ixungiStartibằngicáchikéoilầnilượticáciđườngiSDA, SCLitừimứci1ixuốngi0. - Tiếpitheoiđó, Masterigửiiđii7bitiđịaichỉitớiiSlaveimuốnigiao tiếp cùng với bit Read/Write. 9 - Slaveisẽ soisánhiđịaichỉ vậtilý với địaichỉ vừaiđược gửi tới.
Nếu trùngikhớp, Slaveisẽ xác nhận bằng cách kéoiđường SDAixuống 0 và setibit ACK/NACKibằng ‘0’. Nếu khôngitrùng khớp thì SDAivà bit ACK/NACK đều mặciđịnhibằng ‘1’. - Thiết bịiMasterisẽ gửi hoặcinhậnikhung bitidữ liệu. NếuiMasterigửiiđếniSlaveithì bit Read/Writeiở mứci0.
Ngượcilại nếuinhận thìibit này ở mức 1. - Nếuinhư khungidữ liệu đãiđược truyền đi thànhicông, bit ACK/NACK đượciset thành mức 0 để báo hiệu cho Master tiếp tục. - Sauikhi tất cảidữ liệu đã đượcigửiiđến Slaveithành công, Masterisẽ pháti1itín hiệu Stop để báoicho cáciSlaveibiết quáitrìnhitruyềniđã kếtithúc bằngicác chuyểnilần lượtiSCL, SDA từ mứci0 lên mứci1.5 GIAO TIẾP ONE-WIRE 2.1 Khái niệm giao One-Wire One Wire, chuẩnigiaoitiếpimộtidâyilàimộtigiaoithứciđơnidâyivàiđơnigiảniđược công tyiMaxim Integratediphátitriểniđểichoiphépitruyềnidữiliệuihaiichiềuigiữaicácithiếtibị điện tửithôngiquaimộtidây. Điều này thông thường được thấy trong nhưng không giới hạn trong hệ thống có kích thước nhỏ gọn hoặc tuỳ chỉnh như hệ thống nhúng.
One Wire thực chất sử dụng các tín hiệu logic để truyền tải dữ liệu, tiếp từng bit thông qua điện trở kéo lên và đồng bộ hóa được phát bằng tín hiệu xung. GiaoithứciOneiWireisửidụngicácitínihiệuilogiciđểitruyền dữ liệu. Dữ liệu được truyền theoitừngibitivàiđượciđồngibộihóaibằngicáchisửidụngicácitínihiệuixungithời gian. Giao thứcinàyicũngihỗitrợichứcinăngiCRCi(CycliciRedundancyiCheck)iđểikiểmitraivàiphát hiệnilỗi [5].
Mộtitrong những ứngidụng phổibiếnicủaichuẩnigiaoitiếpiOneiWireilà việc kết nối các cảmibiếninhiệtiđộinhưiDHT11itrongiđó đòi hỏi dây duy nhất cho việc truyền dữ liệu. Chuẩn giao tiếp One Wire định ra một cách giao tiếp hiệu quả sau một dây, đặc biệt hữu ích choihệithốnginhúngivàihạnichếikhôngigian.2 Hoạt động của chuẩn giao tiếp One-Wire Hình 2. 5 Bus vật lý One-Wire. GiaoitiếpiOne-Wireisửidụngimộtiđườngitruyềnidữiliệuichoicácithiếtibịikếtinối.
KhungitruyềniOne-Wire: Hình 2. 6 Khung truyền One-Wire. Đồngibộihóa: Trướcikhiitruyềnidữiliệu, MasteriphátixungiResetiđểiđồngibộihóa với cácithiếtibịiSlaveitrênibusiOne-Wire. Haiixungitrướcisaoichépicóithểixác định một xung giao tiếp.
11 Sauikhiiđồngibộihóa, MasterigửiilệnhichoicácithiếtibịiSlaveitrênibus One-Wire. Lệnh cóithểiyêuicầu đọc, ghiidữiliệuihoặcithựcihiệnicácichứcinăngikhácitùyithuộcivàoiyêu cầu củaiứngidụng. Sauikhiigửiilệnh, thiếtibịiMaster vàithiếtibịiSlaveitraoiđổiidữiliệuiquaibusiOne-Wire. Dữiliệuiđượcitruyềnitheoicáchimãihóaisửidụngicácixungithờiigian.
Hoànitấtigiao tiếp sau khiitruyềnivàinhậnidữ liệu, giaoitiếpigiữaiMasterivàithiếtibịiSlaveiđượcihoàn tất. Master cóithểigửiithêmilệnhikhácihoặcikếtithúcigiaoitiếpitrênibusiOne-Wire. Trongiquáitrìnhitruyềnidữiliệu, chuẩnigiaoitiếpiOne-Wireisửidụngicácixung thời gian đểimãihóaibảnitin. Cácixungithờiigianicóithểiđượcisửidụngiđểiđồngibộihóa, truyềnibit 0 và bit 1, vàixáciđịnhitrạngitháiicủaibusi(highihoặcilow).6 GIAO TIẾP UART 2.1 Khái niệm giao tiếp UART UART là viết tắt của Universal Asynchronous Receiver/Transmitter, nó là một chuẩn giao tiếp trong lĩnhivựcitruyềnithôngiđiềuikhiểnigiữaicácithiếtibịiđiệnitử.
Nó được sử dụng rộngirãiitrongiviệcikếtinốiicáciviixửilý, vi điềuikhiển, cảm biến, cácimô-đun vàinhiều thiết bịikhácitrongicácihệithốnginhúng [6].2 Hoạt động của chuẩn giao tiếp UART Hình 2. 7 Bus vật lý UART. UART dùng hai đường truyền: TX (Transmit): Đườngitruyềnidữiliệuitừibộigửiiđếnibộ nhận. Dữiliệu đượcitruyền theo kiểuikhông đồng bộivà tuân theoichuẩn UART.
12 RX (Receive): Đườngitruyền dữiliệu từ bộinhận đến bộigửi. Dữiliệu được nhậnivà xử lý tươngiứng với chuẩniUART. Khung truyền UART: Hình 2. 8 Khung truyền UART.
Frame: Một frameiUART baoigồm startibit, dữiliệu (thườngilà 8 bit,inhưng cũng cóithể là 7 hoặc 9 bit), cácibit kiểm trai(parity bit, nếuicó), và cácibit dừng (thườngilà 1 hoặc 2 bit). Frameinày định nghĩaicách dữ liệuiđược truyền quaikênh UART. Baud rate: Là sốilượng ký tựiđược truyền quaimột kênh trongimột đơn vịithời gian nhất định, đượciđo bằng bitimỗi giây (bps). Bộigửi và bộinhận cần cấuihình baud rateigiống nhau để đảm bảo truyền thông chính xác.
- Bit bắt đầu Đườngitruyềnidữ liệuiUARTithườngiđượcigiữ ởimức điệniápicao khiikhôngitruyền dữ liệu. Để bắtiđầu truyềnidữ liệu, UARTitruyềnisẽikéoiđườngitruyềnitừ mức cao xuống mức thấpitrongimộtichuikỳ clock. Khi UART nhậniphát hiệnisự chuyểniđổi điệniáp cao xuốngithấp, nóibắtiđầuiđọcicácibititrongikhungidữiliệuiởitầnisốicủaitốciđộitruyền. - Khungidữiliệu Khungidữ liệuichứa dữiliệu thựcitế đượcichuyển.
Nóicó thể dài từi5 bit đếni8 bit nếu sử dụngibit chẵnilẻ. Nếuikhôngisử dụng bit chẵnilẻ, khung dữiliệu có thểidài 9 bit. Trongihầu hếticác trường hợp, dữiliệu được gửiivới bit ítiquan trọng nhấtitrướcitiên. 13 - Bit chẵn lẻ Bitichẵn lẻ làimộtiphươngiphápiđểiUARTixác địnhiliệu dữiliệu cóibịithayiđổi trong quáitrìnhitruyềnihay không.
Bitinày có thểibị ảnh hưởngibởi bức xạiđiện từ, tốciđộ truyền khôngikhớpihoặc truyền dữiliệu khoảng cáchixa. Sau khiiUART nhậniđọc khung dữiliệu, nó sẽiđếm số biticó giá trịilà 1 vàikiểm tra tổng sốiđó là chẵn hayilẻ. Nếu bitichẵn lẻilà 0 (tínhichẵn), tổng số biti1 trong khungidữ liệu phảiilà sốichẵn. Nếuibitichẵnilẻ lài1 (tínhilẻ), tổngisố bit 1 trong khungidữ liệu phải là số lẻ.
Khi bit chẵnilẻ khớp với dữ liệu, UART sẽ biết rằng quá trình truyền không có lỗi. Ngược lại, nếu bitichẵnilẻ lài0 nhưngitổng số bitilà lẻ, hoặcibit chẵnilẻ là 1inhưng tổng số bit là chẵn, UART sẽ biết rằng dữ liệu trongikhung đã bịithayiđổi. - Bit dừng Để báoihiệu sựikết thúcicủa gói dữiliệu, UARTigửi sẽ điều khiểniđường truyềnidữ liệu từ điệniáp thấp đến điệniáp cao trongiít nhất khoảng 2 bit.7 TỔNG QUAN VỀ PHẦN MỀM LẬP TRÌNH VI ĐIỀU KHIỂN 2.1 Giới thiệu phần mềm Arduino IDE Hình 2. 9 Giao diện phần mềm lập trình Arduino IDE.
ArduinoiIDE, viếtitắtitừiArduinoiIntegratediDevelopmentiEnvironment, làimột trình soạnithảo văn bản hỗ trợ ngôningữ lập trìnhiCivà C++, giúp sinhiviên dễidàng tiếpicận lập 14 trìnhinhúng. Chạy trên Mac, Windows, và Linux, phầnimềm này có các chứcinăng và câu lệnh sẵnicó để chỉnhisửa và biênidịch mã. Arduino IDE hỗ trợ nhiều module như ArduinoiMega,iArduino Uno,iESP8266 và ESP32. Các module này chứa viiđiềuikhiểniđược lập trình bằng mãisketch, sau đó biên dịch thànhitệpiHexiđểitảiilênibộiđiềuikhiểnicủaiboardimạch [7].2 Các thao tác trên phần mềm Sauiđâyilàibảngiliệtikêicácithaoitácichínhikhiithựcihiệnilậpitrình trên phầnimềm Arduino IDE.
1 Thao tác trên Arduino IDE 2.8 TỔNG QUAN VỀ FIREBASE 2.1 Giới thiệu về Firebase Hình 2. Firebase là cơ sở dữ liệu có thể phát triển ứng dụng di động và web do Google phát triển, cung cấp một loạt các dịch vụ nhưicơisởidữiliệuithờiigian thực, lưuitrữiđámimây, xác thực người dùng, và phân tích ứng dụng. Với khả năng tích hợp dễ dàng và mạnh mẽ, 15 Firebase giúp các nhà phát triển giảm bớt thời gian và công sức trong việc xây dựng và quản lý backend, từ đó tập trung vào việc tạo ra các tính năng đặc biệt cho ứng dụng của họ. Firebase cũng hỗ trợ nhiều ngôn ngữ lập trình và môi trường, từ Android, iOS đến web và thậm chí là Unity cho các trò chơi [8].2 Hoạt động Firebase Firebase Realtime Database Firebase Realtime Database là một cơ sở dữ liệu NoSQL trên nền tảng đám mây, cho phépilưuitrữivàiđồngibộihóaidữ liệu giữa các người dùng theo thời gian thực.
Dữ liệu được lưu trữ dưới dạng JSON và có thể được cập nhật tự động trên tất cả các thiết bị kết nối, giúp các ứng dụng phản hồi nhanh chóng với các thay đổi. Điều này đặc biệt hữu ích cho các ứng dụng yêu cầu cập nhật liên tục như chat, trò chơi, hoặc cộng tác trực tuyến 2. Firestore, hay Firebase Cloud Firestore, là một cơ sở dữ liệu NoSQL linh hoạt và có khảinăngimở rộng, lưuitrữidữiliệuidướiidạngitàiiliệu và bộ sưu tập. Firestore hỗ trợ các truy vấn phức tạp và đồng bộ hóa dữ liệu theo thời gian thực, giúp đảm bảo trải nghiệm người dùng mượt mà ngay cả khi không trực tuyến.
Tích hợp chặt chẽ với các dịch vụ Firebase khác, Firestore là giải pháp mạnh mẽ cho phát triển ứng dụng di động và web 2.9 KHÁT QUÁT VỀ FLUTTER VÀ ANDROID STUDIO 2.1 Framework Flutter và ngôn ngữ lập trình Dart Flutter là một framework mã nguồn mở được phát triển bởi Google, cho phép nhà phát triển xây dựng ứng dụng di động đẹp và nhanh chóng trên nhiều nền tảng, bao gồm cả iOS và Android. Với Flutter, người dùng có thể tạo các ứng dụng có giaoidiện đồng nhất trên nhiều thiết bị, từ điện thoại thông minh đến máy tính bảng và thậm chí cả máy tính để bàn. Một điểm nổi bật của Flutter là Dart, ngôn ngữ lập trình được sử dụng để phát triển ứng dụng trong framework này.