TỔNG QUAN
Đặt vấn đề
Với sự tiến bộ vượt bậc của khoa học và công nghệ, các thiết bị và hệ thống thông minh ngày càng trở nên phổ biến Hệ thống điều khiển thông minh hiện đang được ứng dụng rộng rãi trong cuộc sống hàng ngày, đặc biệt là trong việc quản lý và điều khiển các thiết bị điện trong gia đình.
Ngôi nhà thông minh ứng dụng công nghệ IoT đang trở thành xu thế nổi bật trong xã hội hiện đại, tuy nhiên, giá thành cao vẫn là rào cản lớn cho việc triển khai Các hệ thống nhà thông minh từ Âu-Mỹ có thể lên tới 1 tỷ đồng cho một biệt thự 300m², thậm chí một số hệ thống có giá lên đến 2 tỷ đồng Trong khi đó, các sản phẩm nhà thông minh từ các công ty Việt Nam có mức giá dao động từ 30 – 150 triệu đồng, tùy theo gói lắp đặt, phù hợp với nhiều loại hình nhà ở như căn hộ chung cư, nhà phố và biệt thự sân vườn.
Các nghiên cứu trước đây đã phát triển các hệ thống mô hình điều khiển thông minh sử dụng nhiều công nghệ như sóng hồng ngoại, RF, bluetooth và mạng WLAN Trong bối cảnh mạng Internet ngày càng phát triển, các hệ thống điều khiển mới hiện nay yêu cầu khả năng điều khiển qua Internet, WiFi và 3G/4G, đồng thời mang lại sự tiện lợi hơn với việc điều khiển thông qua điện thoại thông minh.
Trong bài báo này, chúng tôi trình bày một mô hình điều khiển thiết bị điện và giám sát nhà thông minh, sử dụng vi điều khiển Arduino kết hợp với mô đun WiFi ESP8266 Node MCU và SIM900A Hệ thống cho phép người dùng điều khiển thiết bị điện qua smartphone Android hoặc trang web, ở bất kỳ đâu có Internet hoặc WiFi Đặc biệt, nó có khả năng giám sát từ xa các thông số như nhiệt độ, độ ẩm và cảnh báo khi có khí gas rò rỉ, nhiệt độ vượt ngưỡng hoặc có trộm đột nhập thông qua tin nhắn và chuông báo Hệ thống còn được trang bị pin dự phòng để đảm bảo hoạt động trong trường hợp mất điện và gửi thông báo cảnh báo khi xảy ra sự cố mất điện.
Mục tiêu
Mô hình điều khiển thiết bị điện như đèn qua ứng dụng Android và website sử dụng mạng WiFi và Internet Hệ thống còn giám sát nhiệt độ, độ ẩm trong nhà, phát cảnh báo khi phát hiện rò rỉ khí gas, nhiệt độ phòng cao hoặc có trộm đột nhập Đặc biệt, hệ thống vẫn hoạt động khi mất điện nhờ vào mạch chuyển sang nguồn Acqui dự phòng.
- Tìm hiểu board mạch Arduino.
- Tìm hiểu về mạng WiFi, mô đun WiFi Node MCU ESP8266.
- Tìm hiểu cảm biến nhiệt độ - độ ẩm, cảm biến khí gas và cảm biến chuyển động.
- Tìm hiểu mô đun SIM900A.
- Tìm hiểu, thiết kế và lập trình xây dựng website.
- Tìm hiểu về trình Android bằng Android Studio.
- Thi công mô hình điều khiển các thiết bị điện là các đèn 220VAC công suất 5W.
- Khoảng cách phát hiện trộm đột nhập tối đa 5m, có thể hiệu chỉnh được nhỏ hơn.
- Không phát triển bảo mật của hệ thống.
Chương này giới thiệu lý do chọn đề tài, mục tiêu nghiên cứu, nội dung chính, các giới hạn về thông số và cấu trúc của đồ án.
Giới hạn
- Thi công mô hình điều khiển các thiết bị điện là các đèn 220VAC công suất 5W.
- Khoảng cách phát hiện trộm đột nhập tối đa 5m, có thể hiệu chỉnh được nhỏ hơn.
- Không phát triển bảo mật của hệ thống.
Bố cục
Chương này giới thiệu lý do lựa chọn đề tài, mục tiêu nghiên cứu, nội dung nghiên cứu, các giới hạn về thông số, cùng với bố cục của đồ án.
CƠ SỞ LÝ THUYẾT
Tổng quan về Internet of Things
2.1.1 Giới thiệu về Internet of Things
Internet of Things (IoT) là mạng lưới kết nối vạn vật, trong đó mỗi đồ vật và con người đều có định danh riêng, cho phép truyền tải và trao đổi thông tin qua một mạng duy nhất IoT được hình thành từ sự kết hợp của công nghệ không dây, công nghệ vi cơ điện tử và Internet Nói một cách đơn giản, IoT là tập hợp các thiết bị có khả năng kết nối với nhau, với Internet và thế giới bên ngoài để thực hiện các nhiệm vụ cụ thể.
IoT có ứng dụng trong nhiều lĩnh vực:
- Quản lí và lập kế hoạch quản lí đô thị
- Phản hồi trong các tinh huống khẩn cấp
- Quản lí các thiết bị cá nhân
- Đồng hồ đo thông minh
- Tự động hóa ngôi nhà
2.1.3 Đặc điểm công nghệ IoT Điểm quan trọng của IoT đó là các đối tượng phải có thể được nhận biết và định dạng (identifiable) Nếu mọi đối tượng, kể cả con người, được “đánh dấu” để phân biệt bản thân đối tượng đó với những thứ xung quanh thì chúng ta có thể hoàn toàn quản lí được nó thông qua máy tính Việc đánh dấu này có thể được thực hiện thông qua nhiều công nghệ, chẳng hạn như RFID, NFC, mã vạch, mã QR,… Mạng kết nối thì có thể là qua Wi-Fi, mạng viễn thông băng rộng (3G, 4G), Bluetooth,
Ngoài các kỹ thuật đã đề cập, trong thế giới web, địa chỉ IP đóng vai trò quan trọng trong việc xác định từng thiết bị Mỗi thiết bị đều có một địa chỉ IP riêng biệt, giúp tránh nhầm lẫn và tạo điều kiện cho việc kết nối dễ dàng giữa các thiết bị cũng như kết nối với Internet.
Tổng quan về mạng WiFi
WiFi, hay còn gọi là Wireless Fidelity và được biết đến với tên gọi mạng 802.11, là một hệ thống mạng không dây sử dụng sóng vô tuyến để truyền tải dữ liệu Tương tự như điện thoại di động, truyền hình và radio, WiFi cho phép người dùng truy cập Internet ở những khu vực có sóng mà không cần sử dụng cáp nối.
Sóng WiFi là các sóng vô tuyến tương tự như sóng được sử dụng cho điện thoại di động và các thiết bị cầm tay khác.
Nó có thể chuyển và nhận sóng vô tuyến, chuyển đổi các mã nhị phân 1 và 0 sang sóng vô tuyến và ngược lại.
Sóng WiFi khác biệt so với sóng vô tuyến khác ở tần số hoạt động, cụ thể là 2.5 GHz hoặc 5 GHz, cao hơn so với tần số của điện thoại di động, thiết bị cầm tay và truyền hình Tần số cao này giúp tín hiệu truyền tải nhiều dữ liệu hơn.
Giới thiệu về Website, Webserver và PHP
Website là tập hợp các trang web liên kết với nhau, trong đó mỗi trang là một tài liệu siêu văn bản Tài liệu này có thể bao gồm văn bản, âm thanh, hình ảnh và được mã hóa bằng ngôn ngữ đánh dấu siêu văn bản HTML (HyperText Markup Language).
Mỗi WebSite được lưu trữ trên trên một máy phục vụ Web, vốn là các máy chủ Internet lưu trữ hàng các trang Web riêng lẻ.
2.3.2 Máy chủ Web (Webserver) Ở khía cạnh phần cứng, một Web server là một máy tính lưu trữ các file thành phần của một Website (ví dụ: các tài liệu HTML, các file ảnh, CSS) và có thể phân phát chúng tới thiết bị của người dùng Nó kết nối tới mạng Internet và có thể truy cập tới thông qua một tên miền.
Khi trình duyệt cần truy cập một file trên web server, nó sẽ gửi yêu cầu thông qua HTTP Nếu yêu cầu đến đúng server, HTTP server sẽ phản hồi bằng cách gửi tài liệu được yêu cầu trở lại qua giao thức HTTP.
PHP, viết tắt của cụm từ Personal Home Page, là ngôn ngữ lập trình kịch bản mã nguồn mở phổ biến cho việc phát triển ứng dụng web trên máy chủ Ngôn ngữ này có khả năng thực hiện các hàm hệ thống như tạo, mở, đọc, ghi và đóng file Ngoài ra, PHP có thể xử lý các form, cho phép thu thập và lưu trữ dữ liệu từ file, cũng như trả về thông tin cho người dùng Bạn cũng có thể quản lý cơ sở dữ liệu của mình bằng cách thêm, xóa hoặc sửa đổi các phần tử thông qua PHP.
Giới thiệu về tin nhắn SMS
SMS (Dịch vụ tin nhắn ngắn) là giao thức viễn thông cho phép gửi tin nhắn văn bản ngắn tối đa 160 ký tự Công nghệ SMS hoạt động dựa trên ba mạng lớn: GSM, CDMA và TDMA Tin nhắn từ điện thoại di động được lưu trữ tại trung tâm lưu trữ tin nhắn SMC trước khi được chuyển tiếp đến người nhận SMS sử dụng một kênh riêng biệt để gửi và quản lý tin nhắn, đảm bảo rằng các cuộc gọi và hình thức tin nhắn khác không bị ảnh hưởng Kênh điều khiển này cũng giúp xác định vị trí điện thoại, đảm bảo tin nhắn được gửi đến đúng địa điểm.
Một số lợi ích của tin nhắn SMS có thể kể đến như:
- Các tin nhắn SMS có thể được gửi và đọc tại bất kỳ thời điểm nào.
Ngày nay, hầu hết mọi người sở hữu điện thoại di động và luôn mang theo bên mình Với điện thoại di động, bạn có thể dễ dàng gửi và nhận tin nhắn SMS mọi lúc, mọi nơi, từ văn phòng, trên xe buýt cho đến khi ở nhà.
- Tin nhắn SMS có thể được gửi tới các điện thoại bị tắt nguồn.
Nếu bạn không chắc chắn về việc thực hiện một cuộc gọi, bạn có thể gửi tin nhắn SMS cho bạn của mình, ngay cả khi điện thoại của họ đang tắt Hệ thống SMS của mạng điện thoại sẽ lưu trữ tin nhắn và tự động gửi đến khi điện thoại của họ được bật lại.
- Các tin nhắn SMS ít gây phiền phức trong khi bạn vẫn có thể giữ liên lạc với người khác.
Giới thiệu về Android
Android là hệ điều hành mã nguồn mở dựa trên nền tảng Linux, được thiết kế cho các thiết bị di động như điện thoại thông minh và máy tính bảng Ban đầu phát triển bởi Tổng công ty Android với sự hỗ trợ tài chính từ Google, hệ điều hành này đã được Google mua lại vào năm 2005 và chính thức ra mắt sau đó.
2007 Android hiện là nền tảng di động rất phổ biến và được nhiều hãng sản xuất phần cứng sử dụng.
Mã nguồn mở và giấy phép linh hoạt đã cho phép các nhà phát triển thiết bị và lập trình viên tùy chỉnh và phân phối Android một cách tự do, góp phần đưa Android trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới Tính đến quý 3 năm 2012, Android chiếm 75% thị phần điện thoại thông minh toàn cầu, với 500 triệu thiết bị được kích hoạt và 1,3 triệu lượt kích hoạt mỗi ngày.
Giới thiệu phần cứng
2.6.1 Vi điều khiển a Giới thiệu về Arduino
Arduino là một bo mạch vi xử lý dễ sử dụng, cho phép lập trình và tương tác với các thiết bị phần cứng như cảm biến, động cơ và đèn Với môi trường phát triển thân thiện và ngôn ngữ lập trình đơn giản, người dùng có thể nhanh chóng làm quen và bắt đầu sáng tạo Arduino có giá thành thấp, bao gồm phần cứng mở với nền tảng vi xử lý megaAVR Atmel 8bit hoặc ARM Atmel 32-bit, thường được trang bị cổng USB, chân vào analog và chân I/O kỹ thuật số Được giới thiệu vào năm 2005, Arduino hướng đến việc cung cấp công cụ lập trình dễ tiếp cận cho sinh viên, người yêu thích và chuyên gia, với các dự án phổ biến như robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động.
Arduino mega 2560 (hình 2.1) là một board Arduino được trang bị chip ATmega2560, với bộ nhớ flash memory 256 KB, 8KB cho bộ nhớ SRAM, 4
KB cho bộ nhớ EEPROM.
Board Arduino Mega2560 có thông số kỹ thuật như sau:
Vi điều khiển ATmega 2560, với 256 KB flash memory, 8 KB bộ nhớ
Cường độ dòng điện trên mỗi I/O pin: 20mA.
54 chân digital (trong đó có 15 chân có thể được sủ dụng như những chân PWM là từ chân số 2 → 13 và chân 44 45 46).
6 ngắt ngoài: chân 2 (interrupt 0), chân 3 (interrupt 1), chân 18 (interrupt
5), chân 19 (interrupt 4), chân 20 (interrupt 3) và chân 21 (interrupt 2).
16 chân vào analog (từ A0 đến A15).
4 cổng Serial giao tiếp với phần cứng
1 thạch anh với tần số dao động 16 MHz.
Được tích hợp sẵn thư viện cho Matlab.
Arduino có thể được cấp nguồn qua kết nối USB hoặc nguồn cung cấp bên ngoài, với khả năng tự động lựa chọn nguồn Hệ thống vi điều khiển hoạt động hiệu quả với nguồn bên ngoài từ 6V đến 20V, nhưng để đảm bảo board mạch hoạt động ổn định, nên sử dụng nguồn điện áp nhỏ hơn 7V.
Chân Vin: Điện áp đầu vào Arduino khi chúng ta dùng nguồn điện bên ngoài Chúng ta có thể cung cấp nguồn thông qua chân này.
Chân 5V trên bo mạch có chức năng cung cấp nguồn cho vi điều khiển và các linh kiện khác, đồng thời cũng cấp điện cho các thiết bị ngoại vi khi chúng được kết nối.
Chân 3V3: Cung cấp nguồn cho các thiết bị cảm biến.
Chân GND : Chân nối đất
2.6.2 Cảm biến nhiệt, độ ẩm DHT11
Hệ thống giám sát nhiệt độ phòng được thiết kế trong ĐATN này sử dụng cảm biến DHT11, với khả năng đo nhiệt độ từ 25°C đến 45°C và độ chính xác tương đối Cảm biến DHT11 nổi bật nhờ chi phí thấp và dễ dàng lấy dữ liệu thông qua giao tiếp 1-dây Ngoài ra, cảm biến còn được tích hợp bộ tiền xử lý tín hiệu, giúp đảm bảo dữ liệu nhận về chính xác mà không cần tính toán phức tạp.
Cảm biến DHT11 gồm 2 chân cấp nguồn và 1 chân tín hiệu trong hình 2.2:
Hình 2.2 Mô đun cảm biến DHT11 Đặc điểm:
Điện áp hoạt động : 3V - 5V (DC)
Dải độ ẩm hoạt động : 20% - 90% RH, sai số ±5%RH
Dải nhiệt độ hoạt động : 0°C ~ 50°C, sai số ±2°C
Tần số lấy mẫu tối đa: 1 Hz
2.6.3 Mô đun cảm biến khí gas MQ2
Cảm biến khí ga MQ2 là thiết bị quan trọng để phát hiện nhiều loại khí như butan, propane, methane, alcohol, khói và khí ga Với thiết kế nhạy bén và thời gian phản hồi nhanh, cảm biến này sử dụng SnO2 làm bộ phận cảm nhận, có độ dẫn điện thấp trong không khí sạch Khi nồng độ khí dễ cháy tăng lên, độ dẫn điện của cảm biến cũng tăng theo, từ đó biến đổi sự thay đổi này thành điện áp.
Mô đun cảm biến khí gas MQ2 bao gồm các thành phần chính như cảm biến khí gas, chiết áp điều chỉnh độ nhạy, LM393 và đèn LED báo hiệu Hình 2.3 minh họa mô đun cảm biến khí gas MQ2.
Hình 2.3 Mô đun cảm biến khí gas MQ2 Đặc điểm:
Nguồn cung cấp: 4.5V đến 5V DC
Độ nhạy cao với khí Propane, khói và Butan
Tuổi thọ cao, giá thành thấp
Hỗ trợ đầu ra analog và digital
Dòng tiêu thụ khi nóng: ≤ 180mA
Tích hợp LED báo động trên mođun
Giao tiếp đơn giản với 4 chân VCC GND Analog và Digital
2.6.4 Mô đun cảm biến chuyển động PIR HC – SR501
Mô đun cảm biến hồng ngoại HC-SR501 là một thiết bị nhạy, đáng tin cậy và tiết kiệm năng lượng, thường được sử dụng trong các ứng dụng tự động hóa Cảm biến PIR (Passive Infrared) hoạt động bằng cách phát hiện chuyển động thông qua sự thay đổi trong bức xạ hồng ngoại từ các đối tượng Khi phát hiện chuyển động, cảm biến sẽ gửi ra một xung cao, được vi điều khiển đọc để thực hiện các chức năng cần thiết Tín hiệu đầu ra là Digital và có thể được đọc trực tiếp từ chân vi điều khiển Mô đun còn được trang bị hai biến trở để điều chỉnh độ nhạy và thời gian giữ trạng thái kích hoạt.
Hình 2.4 Mô đun cảm biến chuyển động HC SR501
Hình 2.5 sau đây mô tả sơ đồ chân của mô đun cảm biến HC SR501:
Hình 2.5 Sơ đồ chân cảm biến HC SR501 Đặc điểm:
- Điện áp hoạt động: 5VDC
- Nhiệt độ hoạt động: -15°C đến 70°C
- Thời gian trễ: điều chỉnh bằng biến trở, từ 5giây đến 200 giây.
Khi kích hoạt L, điện áp ra sẽ tự động giảm về 0 sau khi hết thời gian trễ Trong khi đó, khi kích hoạt H (mặc định), điện áp ra sẽ duy trì ở mức 3.3V cho đến khi không còn phát hiện chuyển động.
Cảm biến hoạt động khi có người đi vào vùng cảm biến, tự động cung cấp điện áp 3.3V ở chân ra Sau khi người rời khỏi vùng hoạt động, điện áp sẽ trở về 0 sau khoảng thời gian trễ có thể điều chỉnh bằng biến trở.
2.6.5 Mô đun WiFi ESP8266 Node MCU
ESP8266 là vi điều khiển tích hợp WiFi (WiFi SoC) do Espressif Systems phát triển Với khả năng lập trình trên mô đun này, ESP8266 cho phép các lập trình viên phát triển nhiều ứng dụng khác nhau, đặc biệt là trong lĩnh vực Internet of Things (IoT).
NodeMCU, được phát triển dựa trên chip WiFi ESP8266EX, tích hợp IC CP2102 cho phép giao tiếp dễ dàng với máy tính qua cổng Micro USB Board này còn có sẵn nút nhấn và đèn LED báo hiệu, thuận tiện cho việc thao tác và điều khiển.
Với kích thước nhỏ gọn, linh hoạt board dễ dàng liên kết với các thiết bị ngoại vi để tạo thành project, sản phẩm một cách nhanh chóng.
- Có thể quét và kết nối đến một mạng WiFi bất kỳ để thực hiện các tác vụ như lưu trữ, truy cập dữ liệu từ server.
- Tạo điểm truy cập WiFi cho phép các thiết bị khác kết nối, giao tiếp và điều khiển.
- Là một server để xử lý dữ liệu từ các thiết bị sử dụng Internet khác.
Hình 2.6 Sơ đồ chân Node MCU
- WiFi: 2.4 GHz hỗ trợ chuẩn 802.11 b/g/n
- Điện áp vào: 5V thông qua cổng USB
- Số chân I/O: 11 (tất cả các chân I/O đều có Interrupt/PWM/I2C/One- wire, trừ chân D0)
- Số chân Analog Input: 1 (điện áp vào tối đa 3.3V)
- Giao tiếp: Cáp Micro USB
- Hỗ trợ bảo mật: WPA/WPA2
- Tích hợp giao thức TCP/IP
Mô-đun SIM900A được thiết kế dựa trên chipset SIM900A, tích hợp đầy đủ các linh kiện và kết nối cần thiết Sản phẩm này rất phù hợp cho việc nghiên cứu, học tập hoặc thực hiện các demo nhanh chóng, tiện lợi cho các dự án ứng dụng GSM.
Hình 2.7 Hình ảnh mô đun SIM900A
- Chân 5V: chân cung cấp nguồn dương 5VDC để module sim900A hoạt động.
- Chân DTR: Chân đầu cuối dữ liệu.
- Chân TX: chân truyền UART(TX) dùng để truyền dữ liệu.
- Chân RX: chân nhận UART(RX) dùng để nhận và xử lý dữ liệu.
- Chân Headphone: chân xuất dữ liệu âm thanh ra loa thoại.
- Chân Microphone: chân kết nối với mic nếu muốn đàm thoại.
- Chân Reset: chân reset module sim.
- Chân GND: chân nối mass.
LCD hiển thị được 2 hàng mỗi hàng hiển thị được 16 kí tự Hình 2.8 mô tả sơ đồ các chân của LCD 16x2.
- Kích thước hiển thị : 16x2 dòng
- Màu hiển hiển thị : đen trắng
- Chế độ giao tiếp : 8 hoặc 4 bit
- Cỡ chữ hiển thị : 5x7 hoặc 5x10
Hình 2.8 Sơ đồ chân LCD 16x2
- VSS: Chân nối đất cho LCD, khi thiết kế ta nối chân này với GND của vi điều khiển.
- VDD: Chân cấp nguồn cho LCD, khi thiết kế ta nối chân này với VCC = 5V của mạch điều khiển.
- Vee: Dùng để điều chỉnh độ tương phản cho LCD.
- RS: Chân chọn thanh ghi (register seclect) Nối chân RS xuống mức logic ‘0’ (GND) hay ‘1’ (VDD) để chọn thanh ghi.
Chân R/W trên LCD cho phép chọn chế độ đọc hoặc ghi Để LCD hoạt động ở chế độ ghi, bạn cần nối chân R/W xuống mức logic '0', trong khi để chuyển sang chế độ đọc, hãy nối chân R/W lên mức logic '1'.
- D0- D7: Tám đường của bus dữ liệu dùng để trao đổi thông tin với
Opto là linh kiện điện tử cơ bản phổ biến trong lĩnh vực điện tử, được biết đến với tên gọi bộ cách ly quang Thiết bị này hoạt động bằng cách chuyển đổi tín hiệu ánh sáng thành tín hiệu điện, giúp truyền tải thông tin một cách hiệu quả Opto còn có chức năng cách ly điện giữa đầu vào và đầu ra, đảm bảo an toàn cho các mạch điện.
Opto được sử dụng để chống nhiễu và cách ly giữa tải và mạch điều khiển MCU Thiết bị này bao gồm một diode quang và một transistor, trong đó khi diode dẫn điện, dòng phân cực sẽ đi qua transistor.
Chuẩn truyền thông UART
UART (Universal Asynchronous Receiver/Transmitter) là một phương thức truyền thông tin nối tiếp không đồng bộ, thường được sử dụng trong máy tính công nghiệp, truyền thông, vi điều khiển và các thiết bị truyền tin khác.
Tốc độ Baud (baud rate) là một yếu tố quan trọng trong truyền nhận không đồng bộ, giúp hai mô đun hiểu nhau Để đảm bảo quá trình truyền nhận diễn ra suôn sẻ, cần thiết lập thời gian cho mỗi bit truyền Theo định nghĩa, tốc độ Baud chính là số lượng bit được truyền trong một giây.
Khung truyền (frame) trong hệ thống truyền thông nối tiếp được thiết kế để giảm thiểu mất mát dữ liệu, bên cạnh việc tối ưu hóa tốc độ truyền Khung này quy định số bit trong mỗi lần truyền, bao gồm các bit khởi đầu (start), kết thúc (stop), bit kiểm tra (parity) và số bit dữ liệu.
Bit Start là tín hiệu khởi đầu trong khung truyền, có nhiệm vụ thông báo cho thiết bị nhận biết rằng quá trình truyền dữ liệu đã bắt đầu Trên AVR, trạng thái của bit Start là 0.
Data : Dữ liệu cần truyền Data không nhất thiết phải 8 bit, có thể là 5, 6,
7, 8, 9 Trong UART bit LSB được truyền đi trước, Bit MSB được truyền đi sau
Bit parity là một phương pháp kiểm tra tính chính xác của dữ liệu, bao gồm hai loại: parity chẵn và parity lẻ Parity chẵn thêm một bit để đảm bảo tổng số bit 1 trong dữ liệu cộng với bit parity là số chẵn, trong khi parity lẻ đảm bảo tổng số bit 1 là số lẻ Việc sử dụng bit parity là tùy chọn và không bắt buộc.
Bit stop là tín hiệu báo hiệu kết thúc khung dữ liệu trong truyền thông, thường có mức 5V và có thể bao gồm 1 hoặc 2 bit stop Hình 2.10 minh họa quá trình truyền dữ liệu qua giao thức UART.
TÍNH TOÁN VÀ THIẾT KẾ
Giới thiệu
Nhóm chúng tôi đang phát triển một hệ thống điều khiển thiết bị điện từ xa thông qua Internet, Wifi, và 3G, sử dụng Website và ứng dụng Android Người dùng có thể theo dõi nhiệt độ và độ ẩm trong nhà, cùng với hệ thống cảnh báo qua tin nhắn và chuông reo khi có sự cố như trộm đột nhập, rò rỉ khí gas, hoặc nhiệt độ quá cao Hệ thống được trang bị nguồn Acqui dự trữ để duy trì hoạt động trong trường hợp mất điện 220V Các thành phần của hệ thống bao gồm khối xử lý trung tâm bằng board Arduino, mô đun wifi, mô đun SIM900A, khối Relay điều khiển thiết bị, khối hiển thị, khối cảm biến và khối nguồn.
THI CÔNG HỆ THỐNG
Giới thiệu
Trong chương này, nhóm sẽ trình bày chi tiết về sơ đồ mạch in cho cả lớp trên và lớp dưới, cách bố trí linh kiện, lập danh sách linh kiện cần thiết, quy trình lắp ráp và kiểm tra hệ thống, cũng như việc lập trình và viết tài liệu hướng dẫn sử dụng.
Thi công hệ thống
Mạch in trong ĐATN này được thiết kế bằng phần mềm Altium designer, hình 4.1 là mạch in lớp dưới.
Hình 4.1 Mạch in lớp dưới
Hình 4.2 sau đây là mạch in lớp trên.
Hình 4.2 Mạch in lớp trên
4.2.3 Sơ đồ bố trí linh kiện
Sơ đồ bố trí linh kiện được thể hiện trong hình 4.3.
Hình 4.3 Sơ đồ bố trí linh kiện
Bảng 4.1 Danh sách các linh kiện
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 43
Thi công mô hình
Mô hình của hệ thống được thể hiện trong hình 4.4 sau:
Mô hình này bao gồm:
- Vị trí số 1: board mạch chính điều khiển của hệ thống.
Cảm biến chuyển động được lắp đặt tại cửa ra vào nhằm phát hiện trộm, trong khi cảm biến nhiệt độ và độ ẩm được đặt tại phòng khách để theo dõi nhiệt độ trong phòng.
- Vị trí số 3: cảm biến khí gas đặt tại phòng bếp để phát hiện khí gas rò rỉ.
- Vị trí số 4,5,6,7: lần lượt là các đèn phòng khách, phòng ngủ 1, 2 và đèn phòng bếp.
Cụ thể chi tiết về mô hình sẽ được trình bày trong phần kết quả.
Lập trình hệ thống
Hoạt động của cả hệ thống từ khi được cấp điện cho đến khi hệ thống ngừng hoạt động như sau:
Khi cấp điện lần đầu cho mạch, chế độ báo trộm chưa được kích hoạt, trong khi các chế độ báo cháy và báo gas rò rỉ hoạt động bình thường Mô đun SIM900A được khởi tạo và sẵn sàng nhận tin nhắn điều khiển Board Arduino sẽ đọc các giá trị cảm biến và truyền thông qua UART để gửi giá trị nhiệt độ và độ ẩm đến Node MCU Màn hình LCD hiển thị thông tin về nhiệt độ, độ ẩm và các trạng thái đèn hiện tại từ Node MCU.
Arduino sử dụng mạch phân áp để đọc giá trị điện áp từ adapter, sau đó so sánh với trạng thái hệ thống trước đó được lưu trong bộ nhớ EPROM Nếu phát hiện mất điện hoặc có điện, Arduino sẽ gửi tin nhắn thông báo và cập nhật trạng thái mới của hệ thống vào bộ nhớ EPROM.
Khi nhấn nút "enable", chế độ báo trộm sẽ được kích hoạt và đèn báo hiệu sẽ sáng Nhấn lại nút này để hủy kích hoạt, và người dùng cũng có thể bật hoặc tắt chế độ chống trộm thông qua tin nhắn Để reset chuông, nhấn nút "reset", điều này sẽ khôi phục buzzer và đưa các chế độ cảnh báo về trạng thái ban đầu như khi mới cấp điện, và cũng có thể thực hiện reset bằng tin nhắn Hai nút nhấn này được xử lý như hai ngắt ngoài của Arduino.
Khi phát hiện trộm qua chuyển động, nhiệt độ vượt ngưỡng 36°C, hoặc rò rỉ khí gas, hệ thống sẽ kích hoạt buzzer để cảnh báo Sau đó, mô đun SIM900A sẽ tự động gửi tin nhắn cảnh báo đến số điện thoại đã được cài đặt sẵn.
Khi mất điện chính, Relay sẽ tự động chuyển sang nguồn acqui dự phòng và gửi tin nhắn cảnh báo về việc mất nguồn chính Khi nguồn điện chính được khôi phục, Relay sẽ chuyển lại sang sử dụng nguồn chính và gửi tin nhắn thông báo đã có điện trở lại.
Lưu đồ chương trình chính cho board Arduino được trình bày trong hình4.5 sau:
Khởi tạo các chân, khởi tạo ngắt, UART, SIM
Xử lí mất điện Đọc 2 nút nhấn, nhiệt độ,độ ẩm, khí gas gửi nhiệt độ độ ẩm đến Node
Nhận trạng thái đèn từ Node rồi hiển thị LCD Đọc, xử lí tin nhắn đến
Bật buzzer, gửi tin nhắn
Hình 4.5 Lưu đồ mạch điều khiển Arduino Lưu đồ chương trình con xử lý mất điện được trình bày như trong hình 4.6:
Bắt đầu Đọc giá trị digital chân 22 Arduino Đọc trạng thái trước của hệ thống lưu trong EPROM
Giống nhau? Đ Đều bằng 1? S Đ Gửi tin nhắn:
Lưu trạng thái mới của hệ thống vào EPROM
Arduino đọc giá trị digital từ chân 22, là Vout của mạch phân áp từ adapter, và so sánh với giá trị trạng thái hệ thống trước đó lưu trong bộ nhớ EPROM Chân này cho giá trị 1 khi sử dụng nguồn từ adapter và 0 khi sử dụng nguồn từ acqui Dựa vào kết quả này, hệ thống sẽ đánh giá tình trạng mất điện hay có điện và gửi tin nhắn thông báo Cuối cùng, trạng thái mới của hệ thống sẽ được lưu vào bộ nhớ EPROM.
Lưu đồ chương trình con nhận trạng thái đèn từ Node MCU và hiển thị ra LCD được trình bày ở hình 4.7.
Có dữ liệu truyền UART từ Node? Đ
Kiểm tra dữ liệu trạng thái các đèn Đ
Hình 4.7 Lưu đồ chương trình con nhận trạng thái đèn từ Node
MCU và hiển thị ra LCD
Khi nhận dữ liệu từ Node MCU, Arduino sẽ xử lý chuỗi thông tin này để xác định trạng thái của đèn Sau đó, Arduino sẽ hiển thị trạng thái đèn tương ứng trên màn hình LCD.
Lưu đồ chương trình con xử lý tin nhắn đến được trình bày trong hình 4.8 sau:
Tin nhắn S bật báo trộm? Đ
Gán biến enable báo trộm lên 1
Tin nhắn S tắt báo trộm? Đ
Gán biến enable báo trộm về 0
Tắt buzzer, reset enable về 0
Chương trình con xử lý tin nhắn đến kiểm tra cú pháp và so sánh với lệnh trong code để đưa ra các điều khiển tương ứng Chương trình thực thi các lệnh như bật tính năng báo trộm, tắt tính năng báo trộm và tắt chuông buzzer khi nhận được tin nhắn phù hợp.
Lưu đồ chương trình con gửi tin nhắn phản hồi (hình 4.9).
S Đ Gửi tin nhắn báo nhiệt độ cao
Gửi tin nhắn báo có khí gas rò rỉ
Gửi tin nhắn báo có
Kết thúc trộm đột nhập
Chương trình kiểm tra hệ thống sẽ xác định sự cố đang xảy ra và gửi tin nhắn phản hồi phù hợp Nếu nhiệt độ vượt quá 36°C, hệ thống sẽ tự động gửi thông báo về tình trạng nhiệt độ cao Tương tự, khi phát hiện rò rỉ khí gas hoặc có trộm đột nhập, hệ thống cũng sẽ gửi cảnh báo kịp thời.
Lưu đồ chương trình cho Node MCU được trình bày trong hình 4.10:
Khởi tạo các chân sử dụng, UART
Nhận nhiệt độ, độ ẩm từ
Kết nối vào mạng Wifi, kết nối tới website
Gửi nhiệt độ, độ ẩm lên web bằng phương thức GET Đọc phản hồi trạng thái đèn từ web trả về Bật đèn? S Đ Điều khiển Relay bật đèn
Gửi trạng thái đèn về Arduino
Node MCU sẽ sáng đèn báo hiệu khi kết nối thành công vào mạng Wi-Fi Nó nhận giá trị nhiệt độ và độ ẩm từ Arduino qua cổng giao tiếp UART Sau đó, Node MCU sử dụng giao thức GET để gửi các giá trị này lên trang web load.php để hiển thị Đồng thời, nó nhận phản hồi từ trang web về các trạng thái đèn, từ đó điều khiển mạch Relay và gửi các trạng thái này trở lại Arduino để hiển thị trên LCD.
4.4.2 Phần mềm lập trình cho Android a Giới thiệu Android Studio
Android Studio là môi trường phát triển tích hợp (IDE) chính thức cho phát triển ứng dụng Android, ra mắt vào năm 2013 tại hội nghị Google I/O Phần mềm này được phát hành miễn phí và dựa trên IntelliJ IDEA của JetBrains, được thiết kế đặc biệt cho việc phát triển ứng dụng Android Android Studio hỗ trợ các hệ điều hành Windows, Mac OS X và Linux, và là sự thay thế cho Android Development Tools (ADT) dựa trên Eclipse.
Hình 4.11 Giao diện phần mềm Android Studio
Một project Android bao gồm các file sau:
Bảng 4.2 Cấu tạo một project Android
Tập tin AndroidManifest.xml, cùng với các thư mục java, res/drawable, res/layout, res/menu, res/mipmap và res/values, là các thành phần quan trọng trong việc phát triển ứng dụng Android Ứng dụng này được thiết kế với giao diện bao gồm các nút nhấn để bật tắt đèn, cùng với các nhãn hiển thị trạng thái đèn, nhiệt độ và độ ẩm Hình 4.12 minh họa giao diện điều khiển của ứng dụng Android trong đề tài này.
Hình 4.12 Giao diện ứng dụng Android trong ĐATN
Hình 4.13 Vị trí 2 file MainActivity.java và activity_main.xml
Tiến hành lập trình giao diện ứng dụng Android trong file layout/activity_main.xml, trong khi các hoạt động của ứng dụng sẽ được thực hiện trong file MainActivity.java.
4.4.3 Phần mềm lập trình cho website a Giới thiệu phần mềm lập trình Để lập trình thiết kế giao diện web nhóm sử dụng phần mềm Adobe Dreamweaver CS6
Adobe Dreamweaver CS6 là công cụ xử lý cho những người thiết kế web, viết code và những nhà phát triển ứng dụng ở mọi cấp độ khác nhau
Tính năng Fluid Grid Layout của Adobe Dreamweaver cho phép thiết kế website đẹp mắt trên mọi thiết bị, từ PC đến mobile và tablet Phần mềm này hỗ trợ tạo website tiêu chuẩn hiện đại với HTML5 và CSS3 Điểm nổi bật của Dreamweaver CS6 là tính năng xem trước trong khi lập trình, giúp lập trình viên dễ dàng phát hiện và sửa lỗi, từ đó nâng cao hiệu quả công việc.
Để tạo một file mới, bạn chỉ cần nhấn vào nút "Create New" Dreamweaver sẽ hiển thị danh sách các loại file thường sử dụng như File HTML, File CSS, và File PHP Sau đó, bạn chỉ cần bấm nút "Create" để hoàn tất quá trình tạo file, và nội dung của file vừa chọn sẽ xuất hiện.
Hình 4.14 Tạo một file php mới
Hình 4.15 sau đây là màn hình làm việc của Dream sau khi tạo file.
Hình 4.15 Giao diện ứng dụng DW
Thanh Menu là thanh nằm trên cùng chứa các Menu.
Thanh Toolbars : Nằm dưới thanh Menu Chứa danh sách các Icons tắt Giúp cho bạn thực hiện nhanh các chức năng như Preview,
Tài liệu hướng dẫn sử dụng
Bước 1 : cấp nguồn cho hệ thống, hệ thống sử dụng nguồn từ adapter
6VDC/2A, khi cấp nguồn thì đèn báo hiệu có điện sáng lên.
Trên board mạch có một switch (hình 4.16) dùng để lựa chọn việc sử dụng nguồn dự phòng khi mất điện Gạt switch sang trái để tắt nguồn dự phòng, trong khi gạt sang phải sẽ kích hoạt nguồn dự phòng Trước khi cấp nguồn cho mạch, cần cấp acqui 6V tại domino acqui 2 chân.
Để khởi động chế độ báo trộm, bạn chỉ cần nhấn nút "enable" trên mạch hoặc gửi tin nhắn “kichhoat” đến số điện thoại đã cài đặt trên board Lưu ý rằng chế độ báo cháy và báo khí gas rò rỉ luôn hoạt động mặc định Để hủy tính năng này, hãy gửi tin nhắn “huy”.
Bước 3: Truy cập vào trang web https://huynhthan1996.000webhostapp.com/ hoặc mở ứng dụng Android đã cài đặt trên điện thoại để điều khiển các thiết bị điện Nhấn vào các nút trên giao diện để điều khiển tương ứng với thiết bị; ví dụ, nhấn nút bật 1 để làm sáng đèn 1.
Bước 4: Để xem giá trị nhiệt độ-độ ẩm và các trạng thái hiện tại của thiết bị, ta xem trên LCD hoặc truy cập website , app Android ở trên.
Khi xảy ra sự cố, chuông sẽ kêu và tin nhắn cảnh báo sẽ được gửi đi Để tắt cảnh báo, bạn chỉ cần nhấn nút reset trên bảng điều khiển hoặc gửi tin nhắn với nội dung “reset”.
Hình 4.16 Mô tả board mạch hệ thống
1 Vị trí cắm jack nguồn Adapter 6VDC.
2 Vị trí cắm Acqui dự phòng 6VDC.
3 Vị trí Switch lựa chọn sử dụng nguồn acqui.
4 Vị trí bỏ thẻ SIM.
5 Vị trí 2 nút nhấn reset chuông và enable báo trộm.
7 Ngõ ra nối vào các đèn 220VAC.