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

Ứng dụng Board Raspberry-pi điều khiển thiết bị trong nhà thông minh

83 2K 6

Đ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

Thông tin cơ bản

Định dạng
Số trang 83
Dung lượng 2,39 MB

Nội dung

Ứng dụng Board Raspberrypi điều khiển thiết bị trong nhà thông minhỨng dụng Board Raspberrypi điều khiển thiết bị trong nhà thông minhỨng dụng Board Raspberrypi điều khiển thiết bị trong nhà thông minhỨng dụng Board Raspberrypi điều khiển thiết bị trong nhà thông minhỨng dụng Board Raspberrypi điều khiển thiết bị trong nhà thông minhỨng dụng Board Raspberrypi điều khiển thiết bị trong nhà thông minhỨng dụng Board Raspberrypi điều khiển thiết bị trong nhà thông minhỨng dụng Board Raspberrypi điều khiển thiết bị trong nhà thông minhỨng dụng Board Raspberrypi điều khiển thiết bị trong nhà thông minh

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

-

TRỊNH QUANG LƯƠNG

ỨNG DỤNG BOARD RASPBERRY-PI ĐIỀU KHIỂN THIẾT BỊ

TRONG NHÀ THÔNG MINH

LUẬN VĂN THẠC SĨ KỸ THUẬT

TP HỒ CHÍ MINH – NĂM 2016

Trang 2

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

-

TRỊNH QUANG LƯƠNG

ỨNG DỤNG BOARD RASPBERRY-PI ĐIỀU KHIỂN THIẾT BỊ

TRONG NHÀ THÔNG MINH

LUẬN VĂN THẠC SĨ KỸ THUẬT

NGƯỜI HƯỚNG DẪN KHOA HỌC:

TS CHUNG TẤN LÂM

TP HỒ CHÍ MINH – NĂM 2016

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan toàn bộ nội dung đã được đề cập trong luận văn được viết dựa trên kết quả thực hiện và nghiên cứu của bản thân, dưới sự hướng dẫn trực tiếp của Thầy - TS Chung Tấn Lâm

Mọi thông tin và số liệu tham khảo đều được trích dẫn đầy đủ nguồn và sử dụng đúng luật bản quyền quy định

Tôi xin chịu trách nhiệm về nội dung của cuốn luận văn

TP.HCM, ngày …… tháng … năm 2016

Tác giả luận văn

Trịnh Quang Lương

Trang 4

LỜI CẢM ƠN

Lời đầu tiên Em xin gửi lời cảm ơn đến toàn thể các Thầy, Cô giảng viên Học viện Công nghệ Bưu chính Viễn thông đã tận tình chỉ bảo em trong suốt thời gian học tập tại Nhà trường

Em xin được bày tỏ lòng biết ơn chân thành với Thầy - TS Chung Tấn Lâm, Người đã trực tiếp hướng dẫn và góp ý tận tình cho em trong suốt thời gian làm luận văn tốt nghiệp

Bên cạnh đó, để hoàn thành luận văn này, em cũng đã nhận được rất nhiều sự giúp đỡ, những lời động viên quý báu của các bạn bè, gia đình và đồng nghiệp Em xin chân thành cảm ơn

Tuy nhiên, do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mình, nhưng chắc rằng luận văn không tránh khỏi những thiếu sót Em rất mong nhận được sự thông cảm và chỉ bảo tận tình của Quý Thầy Cô và sự góp ý của các bạn

Em xin chân thành cám ơn!

TP.HCM, ngày …… tháng … năm 2016

Tác giả luận văn

Trịnh Quang Lương

Trang 5

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

MỤC LỤC iii

DANH SÁCH CÁC BẢNG v

DANH SÁCH CÁC HÌNH vi

LỜI MỞ ĐẦU 1

CHƯƠNG 1 - NGHIÊN CỨU TỔNG QUAN 2

1.1 Khảo sát về board Raspberry-pi: 2

1.1.1 Khái quát chung về board Raspberry-pi: 2

1.1.2 Các hệ điều hành sử dụng trên board mạch Raspberry-pi: 6

1.1.3 Các module gắn ngoài: 8

1.2 Tổng quan về giao tiếp người dùng – thiết bị: 15

1.3 Các thành phần của nhà thông minh: 17

CHƯƠNG 2 - PHÂN TÍCH THIẾT KẾ HỆ THỐNG 19

2.1 Phân tích thiết kế hệ thống chiếu sáng: 19

2.2 Phân tích thiết kế điều khiển các thiết bị trong nhà: 22

2.3 Phân tích thiết kế thu nhận dữ liệu cảm biến nhiệt độ và độ ẩm: 26

2.4 Thiết kế điều khiển theo kịch bản: 28

2.5 Thiết kế thủ tục truyền thông và cơ sở dữ liệu: 29

2.6 Thiết kế giao diện người dùng: 31

2.6.1 Thiết kế giao diện theo phòng: 34

2.6.2 Thiết kế giao diện theo chức năng chuyên dùng: 34

CHƯƠNG 3 - CÀI ĐẶT HỆ THỐNG 38

3.1 Cài đặt điều khiển cấp cao – Web Server: 38

3.2 Cài đặt điều khiển cấp thấp - Board Raspberry-pi: 40

3.2.1 Điều khiển chiếu sáng: 40

3.2.2 Điều khiển thiết bị máy lạnh, tivi và quạt: 41

3.2.3 Thu nhận dữ liệu cảm biến nhiệt độ và độ ẩm: 42

Trang 6

3.2.4 Điều khiển theo kịch bản: 43

3.3 Thi công Demokit hệ thống điều khiển nhà thông minh: 45

3.4 Xây dựng hệ thống thu thập dữ liệu và đánh giá năng lượng tiêu thụ: 46

CHƯƠNG 4 - HOÀN THIỆN HỆ THỐNG VÀ ĐÁNH GIÁ 49

4.1 Hoàn thiện hệ thống: 49

4.2 Kết quả thu được và đánh giá: 51

4.2.1 Kết quả thu được: 51

4.2.2 Đánh giá kết quả: 53

KẾT LUẬN VÀ KIẾN NGHỊ 56

PHỤ LỤC 57

DANH MỤC CÁC TÀI LIỆU THAM KHẢO 74

Trang 7

DANH SÁCH CÁC BẢNG

Bảng 1.1: Các thông số kỹ thuật của Raspberry-pi model A và model B 5

Bảng 1.2: Các thông số của Raspberry-pi2 và Raspberry-pi3 6

Bảng 1.3: Các thông số kỹ thuật của cảm biến DHT11 12

Bảng 2.1: Bảng lưu trữ thông tin thiết bị 29

Bảng 2.2: Bảng lưu trữ thông tin sử dụng của đèn chính (DC) 30

Bảng 2.3: Bảng lưu trữ thông tin sử dụng của phụ (DP) 30

Bảng 2.4: Bảng lưu trữ thông tin sử dụng của máy lạnh (ML) 30

Bảng 2.5: Bảng lưu trữ thông tin sử dụng của quạt (QUAT) 30

Bảng 2.6: Bảng lưu trữ thông tin sử dụng của tivi (TV) 30

Bảng 2.7: Bảng lưu trữ thông số môi trường 30

Bảng 2.8: Đặc tính kỹ thuật của TSOP 1838 (ở nhiệt độ 250C) 36

Bảng 3.1: Bảng thống kê các bước thực hiện cài đặt Web-server 38

Bảng 3.2: Nội dung chỉnh sửa file vsftpd.conf 39

Bảng 3.3: Các bước thực hiện cài đặt thư viện GPIO cho Raspberry-pi 40

Bảng 3.4: Bảng hướng dẫn cài đặt thư viện DHT11 trên Raspberry-pi 43

Bảng 4.1: Bảng tổng hợp thời gian sử dụng thiết bị 52

Bảng 4.2: Bảng chi tiết thời gian sử dụng thiết bị 52

Bảng 4.3: Bảng so sánh nhà thông minh dùng Raspberry – pi với các nhà thông minh hiện hữu 54

Trang 8

DANH SÁCH CÁC HÌNH

Hình 1.1: Sơ đồ khối chức năng của board Raspberry-pi 2

Hình 1.2: Các thành phần của raspberry-pi 3

Hình 1.3: Raspberry-pi model A và model B 4

Hình 1.4: 2 phiên bản nâng cấp của Raspberry-pi 5

Hình 1.5: Sơ đồ chân GPIO của board RPi 10

Hình 1.6: Raspberry-pi và các thiết bị kết nối 11

Hình 1.7: Hình dạng thực tế cảm biến DHT11 11

Hình 1.8: Sơ đồ kết nối cảm biến DHT11 với MCU 12

Hình 1.9: Hình ảnh thực tế của module relay 8 cổng với opto cách ly 14

Hình 1.10: Sơ đồ khối các thành phần của nhà thông minh 17

Hình 2.1: Lưu đồ giải thuật điều khiển bật đèn chính/phụ 19

Hình 2.2: Lưu đồ giải thuật điều khiển tắt đèn chính/phụ 21

Hình 2.3: Lưu đồ giải thuật điều khiển bật thiết bị 23

Hình 2.4: Lưu đồ giải thuật điều khiển tắt thiết bị 25

Hình 2.5: Lưu đồ giải thuật thu thập dữ liệu nhiệt độ, độ ẩm 27

Hình 2.6: Giao diện đăng nhập PUTTY 31

Hình 2.7: Giao diện cửa sổ dòng lệnh terminal 32

Hình 2.8: Giao diện GUI của raspbian 32

Hình 2.9: Giao diện website tương tác người dùng – thiết bị 33

Hình 2.10: Giao diện người dùng theo phòng 34

Hình 2.11: Giao diện remote điều khiển tivi 35

Hình 2.12: Hình dạng thực tế TSOP 1838 35

Hình 2.13: Led phát hồng ngoại 3mm 35

Hình 2.14: Tín hiệu thu được của cảm biến với khoảng cách tín hiệu 20ms 36

Hình 2.15: Sơ đồ kết nối TSOP với board Raspberry-pi 36

Hình 3.1: Raspberry-pi webserver sau khi được cài đặt xong 39

Hình 3.2: Giao diện đồ họa điều khiển thiết bị 42

Trang 9

Hình 3.3: Giao diện phím chức năng điều khiển theo kịch bản 45

Hình 3.4: Thống kê thời gian sử dụng của từng thiết bị 48

Hình 4.1: Giao diện điều khiển các thiết bị trong phòng khách 49

Hình 4.2: Giao diện điều khiển phòng ngủ 50

Hình 4.3: Bảng thống kê thời gian sử dụng thiết bị 50

Hình 4.4: Giao diện remote điều khiển tivi 50

Trang 10

LỜI MỞ ĐẦU

Cùng với sự tiến bộ của khoa học kỹ thuật và công nghệ, các thiết bị điện

tử hay nói cách khác là các board mạch tích hợp đã và đang được ứng dụng ngày càng rộng rãi và mang lại hiệu quả cao trong mọi mặt của đời sống con người

Với nhịp sống hiện đại ngày càng năng động, con người chúng ta luôn có

xu hướng tìm kiếm những điều thoải mái nhất sau những ngày làm việc mệt mỏi và căng thẳng Và ngôi nhà là địa điểm lý tưởng nhất để thực hiện điều này Chính vì vậy, đã có rất nhiều sản phẩm ứng dụng được các công ty, nhà phát triển nghiên cứu ra nhằm mục đích tạo sự tiện dụng nhất, tốt nhất cho cuộc sống sinh hoạt của con người Và việc này được thực hiện qua các board mạch tích hợp xử lý dữ liệu và điều khiển

Với mục tiêu xây dựng hệ thống điều khiển có khả năng đáp ứng cao, thao tác dễ dàng, đảm bảo giá thành rẻ, dễ sử dụng và giúp người dùng có thể quản lý được năng lượng tiêu thụ từ các thiết bị, em tiến hành thực hiện đề tài luận văn: “Ứng dụng board Raspberry-pi điều khiển thiết bị trong nhà thông minh”

Luận văn được chia làm 4 Chương:

Chương 1: Nghiên cứu tổng quan

Chương 2: Phân tích thiết kế hệ thống

Chương 3: Cài đặt hệ thống

Chương 4: Hoàn thiện hệ thống và đánh giá

Hệ thống đã được hoàn thiện với đủ các mục tiêu nêu ở đầu cuốn luận văn, nhưng do hạn chế về kiến thức, nên cuốn luận văn “Ứng dụng board raspberry-pi điều khiển thiết bị trong nhà thông minh” vẫn còn nhiều thiếu sót Rất mong được sự góp ý chân thành từ Quý Thầy, Cô và các bạn

Trang 11

CHƯƠNG 1 - NGHIÊN CỨU TỔNG QUAN

1.1 Khảo sát về board Raspberry-pi:

1.1.1 Khái quát chung về board Raspberry-pi:

Raspberry-pi là một chiếc máy tính tí hon nhỏ bằng chiếc thẻ ATM chạy

hệ điều hành Linux ra mắt vào tháng 2 năm 2012 Ban đầu Raspberry-pi được phát triển dựa trên ý tưởng của tiến sĩ Eben Upton tại đại học Cambridge muốn tạo ra một chiếc máy tính giá rẻ để học sinh có thể dễ dàng tiếp cận và khám phá thế giới tin học Dự định khiêm tốn của ông đến cuối đời là có thể bán được tổng cộng 1000 board mạch cho các trường học Nhưng khi được phát hành, nó

đã được sự đón tiếp nhiệt tình từ cộng đồng và đã bán được hơn 1 triệu board Vậy raspberry-pi có những điểm gì nỗi bật

Với Raspberry-pi (RPi), chỉ cần 1 bàn phím, 1 tivi hoặc 1 màn hình có cổng HDMI/DVI, 1 nguồn USB 5V và 1 dây micro USB là đã có thể sử dụng RPi như 1 máy tính bình thường Có thể sử dụng các ứng dụng văn phòng, nghe nhạc, xem phim độ nét cao (tới 1024p)

Hình 1.1: Sơ đồ khối chức năng của board Raspberry-pi

Trái tim của RPi (thế hệ đầu) là vi xử lý Broadcom BCM2835 chạy ở tốc

độ 700mHz Đây là vi xử lý SoC (system-on-chip) tức là hầu hết mọi thành phần của hệ thống gồm CPU, GPU cũng như audio, communication chip đều được tích hợp trong một Chip SoC này nằm ngay bên dưới chip memory Hynix

512 MB màu đen ở giữa board

RAM

CPU/GPU

4x USB ETHERNET

Trang 12

Hình 1.2: Các thành phần của Raspberry-pi

Bởi vì RAM được tích hợp sẵn trong đế chip nên không thể nâng cấp

RAM cho RPi CPU BMC2835 sử dụng nhân ARM1176JZFS (ARM11) cho

hiệu năng cao và giá thành thấp SoC này khác với CPU ở trong PC thông thường ở chỗ nó được chế tạo dựa trên kiến trúc tập lệnh (Instruction Set Architect – ISA) là ARM chứ không phải kiến trúc x86 như của Intel ARM có ISA dạng rút gọn RISC và tiêu thụ điện năng rất thấp nên phù hợp với thiết bị di động

ARM dẫn đầu trong mảng thiết bị di động Lấy ví dụ như chip ARM trên Raspberry-pi: toàn bộ mạch hoạt động với nguồn 5V, 700mA tức là chỉ tiêu hao 3.5W mỗi giờ trong khi một laptop cũng ngốn ít nhất vài chục Watt Thiết

kế này bảo đảm Raspberry-pi hoạt động với sức mạnh vừa phải trong khi vẫn giữ được hình dáng nhỏ gọn do không cần quạt tản nhiệt và do đó, ARM có mặt trong hầu hết điện thoại di động thời nay

Ngoài ra chip BCM2835 dùng thế hệ ARM11 thuộc phiên bản ARMv6 ARMv6 hoạt động hiệu quả và tiết kiệm năng lượng nhưng mặc định lại không

tương thích phần mềm với thế hệ ARMv7 Tuy nhiên, điều này có thể giải

Trang 13

quyết bằng cách chuyển đổi phần mềm để đạt sự tương thích Nói như vậy không có nghĩa là lập trình Raspberry-pi sẽ gặp nhiều khó khăn Ngược

lại, cộng đồng Raspberry-pi phát triển rất nhanh trên thế giới là nguồn tài

nguyên còn phong phú hơn nhiều: hàng loạt dự án, phần mềm được phát triển cho RPi sẽ làm chúng ta hài lòng

Kết nối RPi vào cổng USB của máy tính có thể cấp nguồn cho RPi hoạt động ở mức bình thường, không sử dụng các kết nối internet như LAN và wifi

Raspberry-pi bản thân là một chiếc máy tính, để máy tính này hoạt động

bạn cần cài đặt hệ điều hành Trong thế giới nguồn mở linux, có rất nhiều phiên

bản hệ điều hành tùy biến (distro) khác nhau Tùy theo nhu cầu và mục đích, cũng như khả năng học hỏi mà bạn sẽ sử dụng distro phù hợp với mình

Ứng dụng của RPi: Có nhiều ứng dụng từ đơn giản đến phức tạp có thể

kể đến như: dùng RPi làm trung tâm giải trí đa phương tiện, internet tv, datacenter, kết hợp với webcam làm hệ thống phát hiện chuyển động, nhận diện khuôn mặt, điều khiển robot, nhận và gửi tin nhắn với usb 3g, điều khiển tắt/mở đèn trong nhà, và còn rất nhiều ứng dụng khác

Các phiên bản của Raspberry-pi:

Hình 1.3: Raspberry-pi model A và model B

Trang 14

Hai phiên bản ban đầu của Raspberry-pi là Model A và Model B như

hình 1.3, Model A có giá 25$ và Model B có giá 35$ Các thông số kỹ thuật

của chúng được cho theo bảng 1.1

Bảng 1.1: Các thông số kỹ thuật của Raspberry-pi model A và model B

- Jack Headphone Stereo 3.5mm

cho đầu ra âm thanh Analog

- 1 cổng HDMI cho đầu ra âm thanh / video số

- 1 cổng video RCA cho đầu ra video Analog

- Jack Headphone Stereo 3.5mm cho đầu ra âm thanh Analog

- 01 cổng USB

- 01 đầu đọc thẻ nhớ SD

- 08 cổng GPIO (General Purpose Input/Output)

(Nguồn: wikipedia tiếng việt – tháng 5/2016)

Hình 1.4: 2 phiên bản nâng cấp của Raspberry-pi

Trang 15

Cũng giống như các model trước, 2 phiên bản nâng cấp là A+(tháng 11/2014) và B+(tháng 7/2014) thay đổi về số cổng kết nối GPIO lên 17 cổng, ở phiên bản A+ vẫn không được trang bị cổng kết nối Ethernet Riêng với model B+ số cổng kết nối USB được tăng lên thành 4 cổng kết nối cho phép mở rộng kết nối với nhiều thiết bị hơn

Phiên bản Raspberry-pi2 (tháng 2/2015) và pi3 (tháng 2/2016) chú trọng vào việc nâng cấp chip xử lý và dung lượng RAM Các thông số kỹ thuật khác được cho theo bảng 1.2

Bảng 1.2: Các thông số của Raspberry-pi2 và Raspberry-pi3

Operating system

Same as for Raspberry Pi 1 plusWindows 10 IoT Coreand additional distributions

of Linux such as Ubuntu

Same as for Raspberry Pi 1 plusWindows 10 IoT Core and additional distributions of Linux such as Ubuntu

CPU 900 MHz quad-core ARM

Cortex-A7

1200 MHz quad-core ARM Cortex-A53

Broadcom VideoCore IV at higher clock frequencies than previous that run at 250 MHz

(Nguồn: wikipedia– tháng 5/2016)

1.1.2 Các hệ điều hành sử dụng trên board mạch Raspberry-pi:

Hiện nay có rất nhiều phiên bản hệ điều hành sử dụng cho board Raspberry-pi vì đây là hệ điều hành mở, nhưng phổ biến nhất vẫn là những loại sau:

Raspbian: Raspbian là một hệ điều hành dễ sử dụng và được sự hỗ trợ

tốt từ cộng đồng trên thế giới Hơn thế nữa, Raspbian là phiên bản không chính thức của Debian Wheezy – một phiên bản Linux được sử dụng rất rộng rãi

Trang 16

Raspbian rất đơn giản và quen thuộc Nó là nền tảng rất tốt cho những người mới bắt đầu làm quen với Raspberry-pi nói riêng và Linux nói chung Giống như một chiếc máy tính Windows, Raspbian bao gồm các ứng dụng đa phương tiện và đồ họa (xem ảnh, xem phim, soạn thảo notepad), và có thể cài thêm các gói phần mềm khác như trình duyệt internet, nhắn tin, bộ phần mềm văn phòng, v.v… để sử dụng thêm cho các nhu cầu cá nhân

Ubuntu MATE: Ubuntu MATE có một cộng đồng rất tích cực Họ đã

phát hành một phiên bản của Ubuntu MATE cho Raspberry-pi2, đó là Ubuntu 15.04 Đây là phiên bản chính thức đầu tiên hỗ trợ Raspberry-pi2 mới nhất Các phiên bản Ubuntu 15.04 còn được gọi với tên mã: Vivid Vervet Vivid Vervet cung cấp rất nhiều tính năng thú vị và các cải tiến trong kernel để đáp ứng nhu cầu Video HD

Tương tự Raspbian, Ubuntu Mate có giao diện Desktop và nó biến Raspberry Pi thành máy tính để bàn có giao diện trực quan với nhiều phần mềm được khuyên dùng bởi chính Raspbian Bạn sẽ có ứng dụng xem ảnh Shotwell, trình email Mozilla Thunderbird và trình duyệt web Mozilla Firefox, phần mềm văn phòng LibreOffice, phần mềm nhắn tin đa năng Pidgin, trình nghe nhạc Rhythmbox, hoặc Transmission để tải Torrent

OSMC: OSMC là sự kết hợp thành công của nền tảng Media trước đó và

các dịch vụ khác Điển hình là PlayOn Media Server, hỗ trợ streaming video từ các ứng dụng trên máy chủ đến tv như Netflix, Hulu và Amazon, qua đó khắc phục vấn đề liên quan đến DRM và hỗ trợ các dịch vụ này trên RPi OSMC (Open Source Media Center) dựa trên phần mềm Kodi, trước đây là XBMC

Pidora: tạo nên từ phiên bản hệ điều hành Fedora của linux, cũng hỗ trợ

tốt về giao diện, mạng và giao tiếp vào ra

RaspBMC: tạo ra để chuyên dùng giải trí, sử dụng giao diện XBMC

media center, giao diện thường thấy trong các smart-tivi hiện nay

OpenELEC: một phiên bản dùng giao diện XBMC Media-center khác,

hổ trợ nhanh và thân thiện với người sử dụng

Trang 17

RISC OS: phiên bản hệ điều hành rút gọn với tính năng hoạt động nhanh

nhất trong các hệ điều hành

Arch: phiên bản hệ điều hành phát triển riêng cho các dòng kit dùng chip

ARM

Giới thiệu ngôn ngữ lập trình Python:

Python là một ngôn ngữ lập trình thông dịch do Guido van Rossum tạo

ra năm 1990 Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ

tự động, do vậy nó tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl Python được phát triển trong một dự án mã nguồn mở do tổ chức phi lợi nhuận Python Software Foundation quản lý

Ban đầu, Python được phát triển để chạy trên nền Unix Nhưng rồi theo thời gian, nó đã “bành trướng” sang mọi hệ điều hành từ MS-DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix Mặc dù sự phát triển của Python có sự đóng góp của rất nhiều cá nhân, nhưng Guido van Rossum hiện nay vẫn là tác giả chủ yếu của Python Ông giữ vai trò chủ chốt trong việc quyết định hướng phát triển của Python

Python được thiết kế để trở thành một ngôn ngữ dễ học, mã nguồn dễ đọc, bố cục trực quan, dễ hiểu, được sự đánh giá cao của cộng đồng và được rất nhiều người sử dụng nó trong việc lập trình các dự án cá nhân

1.1.3 Các module gắn ngoài:

Các module gắn ngoài board Raspberry-pi khá đa dạng, và được thiết kế theo nhu cầu của người dùng, trong đó, các module cơ bản như theo hình 1.6

Khe cắm thẻ nhớ: sử dụng loại thẻ miniSD, đây là nơi lưu trữ hệ điều

hành và tất cả các dữ liệu hoạt động của Raspberry-pi Dung lượng của thẻ nhớ phải từ 2GB trở lên để đảm bảo cho hệ thống hoạt động tốt

Nguồn nuôi (Micro USB Power): RPi sử dụng cổng micro USB kết nối

từ nguồn nuôi vào board RPi có thể sử dụng đến 700mA tại mức áp 5V khi sử dụng nhiều thiết bị USB và cổng LAN Do đó để RPi hoạt động ổn định, nên sử

dụng bộ nguồn USB 5V-1A Điện áp quá mức 5V cấp trực tiếp vào GPIO có

Trang 18

thể gây hư hỏng các thiết bị cắm vào cổng USB, chip quản lý USB và LAN Vậy nên tốt nhất là sử dụng 1 nguồn nuôi 5V sẵn hoặc sử dụng mạch nguồn IC LM7805

Khe cắm màn hình hiển thị (Screen - cảm ứng hoặc không): để hiển thị

giao diện sử dụng Raspberry-pi một cách trực quan nhất (có thể là cửa sổ comand hoặc giao diện đồ họa GUI) có thể sử dụng chuột và bàn phím để thực hiện các thao tác điều khiển

Khe cắm camera (Camera expansion): khe cắm modem camera vào

board Raspberry-pi Board RPi hỗ trợ khe cắm camera ngoài, có thể mua phụ kiện kèm theo Chúng ta có thể chụp hình, quay phim, làm việc tất cả các tác

vụ như trên một camera bình thường

Cổng HDMI: Dùng để kết nối với các thiết bị có hỗ trợ chuẩn kết nối

HDMI, nếu thiết bị không hỗ trợ HDMI mà chỉ hỗ trợ VGA thì phải sử dụng cable chuyển đổi từ HDMI sang VGA Thường thì cổng này dùng để kết nối ra màn hình, tivi, máy chiếu, để hiển thị giao diện của hệ điều hành

Cổng kết nối Ethenet: dùng để kết nối internet, mạng Lan, truy cập

GPIO: Raspberry-pi cung cấp nhiều cổng GPIO, giao tiếp SPI, I2C,

Serial Các cổng GPIO được sử dụng để xuất/nhận giá trị 0/1 từ bên ngoài Giao

tiếp SPI,I2C, Serial có thể được dùng để kết nối trực tiếp với các vi điều khiển khác Đặc biệt phù hợp cho những người cần điều khiển các thiết bị điện tử ngoại vi

Trang 19

Hình 1.5: Sơ đồ chân GPIO của board Raspberry - pi

Đặc tính các chân GPIO:

- Có tổng cộng 40 chân được chia thành 2 hàng

- Các chân GPIO có điện áp ngõ ra là 3V3

- Dòng điện ngõ ra cực đại trên các chân GPIO là 50 mA

- Chân nguồn VCC (5 volt): 2, 4

- Chân nguồn VCC (3,3 volt): 1, 17

- Chân mass: 6, 9, 14, 20, 25, 30, 34, 39

- Các chân GPIO 2-27 đều có thể sử dụng để xuất/nhận giá trị 0/1 ra/vào từ bên ngoài Riêng chân GPIO 14, 15 ban đầu khi mới khởi động, các chân 8 (GPIO14 – TXD) và 10 (GPIO15 – RXD) được đặt sẵn cho chức năng UART0 và có thể chuyển trở lại thành GPIO

- 2 chân dành riêng cho EEPROM: 27, 28

- Các cổng dành riêng cho giao tiếp SPI: 19, 21, 23, 24, 26

- Cổng dành cho giao tiếp I2C: 3, 5

Trang 20

Hình 1.6: Raspberry-pi và các thiết bị kết nối

- Supply Current: measurement 0.3mA standby 60μA

- Sampling period: more than 2 seconds

Trang 21

Bảng 1.3: Các thông số kỹ thuật của cảm biến DHT11

Gửi yêu cầu: Để cảm biến có thể gửi dữ liệu cho MCU, ban đầu MCU

phải gửi 1 yêu cầu đến cảm biến DHT11, MCU thiết lập chân DATA là Output,

Trang 22

kéo chân DATA xuống 0 trong khoảng thời gian >18ms Khi đó DHT11 sẽ hiểu MCU muốn đo giá trị nhiệt độ và độ ẩm

Đáp ứng:

- MCU đưa chân DATA lên 1, sau đó thiết lập lại là chân đầu vào

- Sau khoảng 20-40μs, DHT11 sẽ kéo chân DATA xuống thấp Nếu

>40μs mà chân DATA ko được kéo xuống thấp nghĩa là ko giao tiếp được với DHT11

- Chân DATA sẽ ở mức thấp 80μs sau đó nó được DHT11 kéo nên cao trong 80μs Bằng việc giám sát chân DATA, MCU có thể biết được có giao tiếp được với DHT11 ko Nếu tín hiệu đo được DHT11 lên cao, khi đó hoàn thiện quá trình giao tiếp của MCU với DHT

Đọc dữ liệu trên DHT11:

- DHT11 sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 byte Trong đó: + Byte 1: giá trị phần nguyên của độ ẩm (RH%)

+ Byte 2: giá trị phần thập phân của độ ẩm (RH%)

+ Byte 3: giá trị phần nguyên của nhiệt độ (TC)

+ Byte 4 : giá trị phần thập phân của nhiệt độ (TC)

+ Byte 5 : kiểm tra tổng

+ Nếu Byte 5 = (8 bit) (Byte1 +Byte2 +Byte3 + Byte4) thì giá trị độ ẩm và nhiệt độ là chính xác, nếu sai thì kết quả đo không có nghĩa Sau khi giao tiếp được với DHT11, DHT11 sẽ gửi liên tiếp 40 bit 0 hoặc 1 về MCU, tương ứng chia thành 5 byte kết quả của nhiệt độ và độ ẩm

Sau khi tín hiệu được đưa về 0, ta đợi chân DATA của MCU được DHT11 kéo lên 1 Nếu chân DATA là 1 trong khoảng 26-28 μs thì là 0, còn nếu tồn tại 70μs là 1 Do đó trong lập trình ta bắt sườn lên của chân DATA, sau đó delay 50μs Nếu giá trị đo được là 0 thì ta đọc được bit 0, nếu giá trị đo được là

1 thì giá trị đo được là 1 Cứ như thế ta đọc các bit tiếp theo Thư viện cảm biến DHT11 đã được Adafruit hỗ trợ, nên bước này chúng ta có thể bỏ qua

Trang 23

Module 8 cổng relay với opto cách ly (5VDC):

Module 8 relay thích hợp cho các ứng dụng đóng ngắt điện thế cao AC hoặc DC, các thiết bị tiêu thụ dòng lớn Module thiết kế nhỏ gọn, có opto và transitor cách ly, kích đóng bằng mức thấp (0V) phù hợp cho mọi loại MCU và thiết kế có thể sử dụng nguồn ngoài giúp cho việc sử dụng trở nên linh hoạt

- Điện thế đóng ngắt tối đa: AC250C-10A hoặc DC30V-10A

- Có đèn báo đóng/ngắt trên mỗi Relay

Và với đề tài luận văn này, Em sử dụng model Raspberry-pi2 hoạt động trên

hệ điều hành Raspbian đóng vai trò là trung tâm điều khiển cũng như webserver giao tiếp giữa website và các thiết bị điện sinh hoạt, đồng thời nó cũng lưu trữ

dữ liệu thông tin sử dụng của các thiết bị để phục vụ cho công tác theo dõi quá trình sử dụng

Trang 24

1.2 Tổng quan về giao tiếp người dùng – thiết bị:

Việc tương tác giữa người dùng – thiết bị được thực hiện thông thường qua 2 cách thức: cửa sổ command và GUI (Graphic Users Interface) – Giao diện đồ họa người dùng Trong đó cửa sổ command thường được sử dụng cho các lập trình viên, bởi phải có sự hiểu biết nhất định về các dòng lệnh và cú pháp lệnh Giao diện GUI lại phổ biến hơn bởi tính tiện lợi và trực quan hơn với người dùng mà không cần thiết phải am hiểu về cấu trúc dòng lệnh

Giao diện đồ họa người dùng trong tiếng Anh gọi tắt là GUI

(Graphical User Interface) là một thuật ngữ trong ngành công nghiệp máy tính

Đó là một cách giao tiếp với máy tính hay các thiết bị điện tử bằng hình ảnh và chữ viết thay vì chỉ là các dòng lệnh đơn thuần GUI được sử dụng phổ biến trong máy tính, các thiết bị cầm tay, các thiết bị đa phương tiện, hoặc các linh kiện điện tử trong văn phòng, nhà ở

Phạm vi sử dụng thuật ngữ GUI hầu như chỉ được giới hạn trong các thiết bị có màn hình 2 chiều Nó ít được sử dụng trong các thiết bị với giao diện

có độ phân giải cao như một số thiết bị chơi game (HUD được sử dụng nhiều

hơn)

GUI được các nhà nghiên cứu tại Xerox PARC phát triển trong thập niên

1970 Ngày nay hầu hết các hệ điều hành máy tính nhiều người dùng đều sử dụng giao diện này

Tiền thân của GUI được khai sinh bởi những nhà nghiên cứu tại Standford Research Institute - được dẫn đầu bởi Douglas Engelbart Khi đó, họ phát triển việc sử dụng những siêu liên kết (hyperlinks) dựa trên chữ cho hệ thống On-Line (One-Line System), trong đó các liên kết được thao tác với chuột máy tính Khái niệm siêu liên kết sau đó đã được các nhà nghiên cứu tại Xerox PARC mở rộng sang phạm vi đồ họa 1963, Sketchpad, một hệ thống dựa trên con trỏ (pointer) được phát triển bởi Ivan Sutherland Hệ thống này sử dụng một cây bút phát sáng để thực hiện việc tạo và thao tác với các đối tượng trong các bản vẽ kỹ thuật

Trang 25

Giao diện người dùng PARC gồm các thành phần đồ họa như cửa sổ (windows), (menus), (radio buttons), (check boxs) và các biểu tượng (icons)

Dựa trên hệ thống tiền thân, lần lượt các hệ thống đồ họa được ra đời Năm 1981, mô hình điều hành máy tính dựa trên GUI đầu tiên được ra đời là Xerox 8010 Star Information System Tiếp theo đó là Apple Lisa năm 1983, Macintosh 128K của Apple năm 1984, Atari ST và Commodore Amiga năm

1985 Việc điều khiển đồ họa bằng lệnh (command) được khai sinh khi IBM cho ra đời Common User Access(1987), trong đó các chuỗi lệnh khác nhau sẽ được áp dụng cho các chương trình khác nhau như: phím F3 sẽ kích hoạt chế độ

hỗ trợ trong WordPerfect, nhưng nó sẽ đóng chương trình trong các ứng dụng khác của IBM

Các hệ thống GUI phổ biến ngày nay là Microsoft Windows, Mac OS X, Window System trên các PC (Personal Computer), laptop Ngoài ra còn có sự góp mặt của các thiết bị di động như Symbian, BlackBerry OS, Android, iOS Các hệ thống này đều được phát triển dựa trên những ý tưởng ban đầu của Xerox, cho nên chúng gần như có các khái niệm tương tự nhau (như buttons, radio buttons, menus, icons, )

Một hệ thống GUI là sự kết hợp của các công nghệ, thiết bị để cung cấp cho người dùng một nền tảng cho phép người sử dụng có thể tương tác với nó

Một chuỗi các thành phần của GUI tuân theo một ngôn ngữ trực quan (visual language) để biểu diễn thông tin được lưu trữ trong các máy tính Thông dụng nhất khi kể đến sự kết hợp các thành phần như vậy là mô hình WIMP (window, icon, menu, pointing device) trong các máy tính cá nhân

Trang 26

1.3 Các thành phần của nhà thông minh:

Nhà thông minh bao gồm các thiết bị điện dân dụng được điều khiển theo cách đơn giản nhất, tạo cho người sử dụng có được sự tiện lợi và thoải mải

mà không cần phải trực tiếp di chuyển tới các công tắc để bật/tắt thiết bị Các thiết bị điện trong 1 căn nhà thường thấy như: quạt, máy lạnh, tivi, đèn sáng chính, đèn sáng phụ

Khối thiết bị điều khiển

Khối giao tiếp người dùng

KHỐI NGUỒN

TSOP 1838

Hình 1.10: Sơ đồ khối các thành phần của nhà thông minh

Khối giao tiếp người dùng:

- ROUTER: Dùng để kết nối các thiết bị có sử dụng mạng trong nhà ( ở đây đóng vai trò kết nối giữa thiết bị người sử dụng và board Raspberry-pi

- Các thiết bị tương tác với bộ xử lý (board Raspberry-pi) thông qua các cổng LAN và USB wifi, ở đây sử dụng laptop và máy tính bảng hiển thị

Khối cảm biến: Sử dụng các cảm biến để theo dõi các thông số môi

trường trong nhà: cảm biến nhiệt độ, độ ẩm,…và bao gồm cả cảm biến thu phát hồng ngoại sử dụng trong điều khiển hồng ngoại các thiết bị

Trang 27

Khối xử lý: là nhân tố chủ yếu trong hệ thống, ở đây là board Raspberry-pi

với các thông số hệ thống được cấu hình riêng theo nội dung đề tài

Khối nguồn: Cung cấp năng lượng, điện áp cho board Raspberry-pi và cả hệ

thống hoạt động Nguồn ở đây được chia thành 2 loại:

- Nguồn nuôi DC cấp cho board Raspberry-pi và relay hoạt động

- Nguồn điện AC dân dụng cấp cho các thiết bị điện hoạt động

Trang 28

CHƯƠNG 2 - PHÂN TÍCH THIẾT KẾ HỆ THỐNG

2.1 Phân tích thiết kế hệ thống chiếu sáng:

Hệ thống ánh sáng được điều chỉnh theo nhu cầu của gia chủ, có thể cần ánh sáng nhiều để tiếp khách hay họp mặt gia đình hoặc là cần ánh sáng nhẹ nhàng cho không gian riêng tư, yên tĩnh Từ đó, chia hệ thống chiếu sáng thành

2 thiết bị chiếu sáng là đèn chính và đèn phụ để phù hợp với nhu cầu trên Việc thực hiện bật/tắt đèn chính (cổng GPIO số 3) và đèn phụ (cổng GPIO số 4) đồng thời ghi dữ liệu vào cơ sở dữ liệu được thực hiện thông qua giao diện website với sơ đồ giải thuật sau:

+) Chương trình bật đèn chính, phụ:

THOIGIANSD

BẮT ĐẦU

Khai báo thư viện

Khai báo GPIO Bật thiết bị KẾT NỐI DATABASE

Trang 29

Giải thuật thực hiện như sau:

- Ban đầu, giải thuật sẽ tiến hành khai báo các thư viện sử dụng để điều khiển gồm: time, GPIO, MySQL, localtime

- Sau đó tiến hành khai báo phần kết nối với cơ sở dữ liệu trong mySQL: host, account, password, database

- Ở đây, nếu kết nối cơ sở dữ liệu đúng, giải thuật sẽ thực thi tiếp các dòng lệnh tiếp theo, còn nếu không kết nối được cơ sở dữ liệu thì giải thuật in ra dòng lệnh “Xảy ra lỗi”

- Khai báo cổng GPIO điều khiển bật đèn chính (cổng GPIO số 3), đèn phụ (cổng GPIO số 4)

- Thực hiện đưa điện áp thấp ở ngõ ra chân GPIO số 3, 4 của board Raspberry-pi (mức LOW) để đóng relay, vì relay sử dụng ở đây kích ở điện áp thấp

- Lúc này, nếu lệnh thực thi đúng, tức là đã khai báo đúng các cổng GPIO và kết nối được với cơ sở dữ liệu đồng thời điều kiện THOIGIANSD đã có dữ liệu, thì giải thuật sẽ tạo ra 1 dữ liệu mới và tiến hành ghi dữ liệu “thời gian bật thiết bị” vào cột THOIGIANON trong cơ sở dữ liệu Nếu xảy ra lỗi do khai báo sai cấu trúc, giải thuật

sẽ báo lỗi Còn nếu điều kiện THOIGIANSD không có dữ liệu, thì giải thuật sẽ không ghi dữ liệu vào cơ sở dữ liệu và đồng thời biên dịch ra dòng thông báo "Đèn đang bật”

- Việc thống kê số lần bật đèn chính/phụ được tính theo cột số thứ tự với số thứ tự tăng dần theo khoảng n+1

- Mục đích của việc xét điều kiện THOIGIANSD nhằm mục đích tránh trường hợp bật thiết bị liên tục trong khi thiết bị đang bật, làm cho dữ liệu “thời gian bật thiết bị” đưa vào không được chính xác

Trang 30

+) Chương trình tắt đèn chính/ phụ:

THOIGIANOFF

BẮT ĐẦU

Khai báo thư viện

Khai báo GPIO Tắt thiết bị KẾT NỐI DATABASE

Hình 2.2: Lưu đồ giải thuật điều khiển tắt đèn chính/phụ

Giải thuật thực hiện như sau:

- Khởi đầu, giải thuật sẽ tiến hành khai báo các thư viện sử dụng để điều khiển, bao gồm: time, GPIO, MySQL, localtime

- Sau đó tiến hành khai báo phần kết nối với cơ sở dữ liệu trong mySQL: host, account, password, database

- Lúc này, nếu kết nối cơ sở dữ liệu đúng, giải thuật sẽ thực thi tiếp các

Trang 31

dòng lệnh tiếp theo, còn nếu không kết nối được cơ sở dữ liệu thì giải thuật in ra dòng lệnh “Xảy ra lỗi”

- Khai báo cổng GPIO thực hiện tắt đèn chính (cổng GPIO số 3) và đèn phụ (cổng GPIO số 4)

- Thực hiện đưa điện áp cao ở ngõ ra chân GPIO số 3, 4 của board Raspberry-pi (mức HIGH) để mở relay, vì relay sử dụng ở đây là relay kích ở điện áp thấp

- Lúc này, nếu lệnh thực thi đúng, tức là đã khai báo đúng các cổng GPIO và kết nối được với cơ sở dữ liệu cũng như dữ liệu về THOIGIANOFF là chưa có, chương trình sẽ ghi dữ liệu “thời gian tắt thiết bị” vào cột THOIGIANOFF trong cơ sở dữ liệu, đồng thời cũng thực hiện tính toán thời gian sử dụng và ghi vào cột THOIGIANSD Nếu xảy ra lỗi do khai báo sai cổng thì chương trình sẽ không được thực thi tiếp dòng lệnh và biên dịch ra dòng thông báo lỗi Nếu cột THOIGIANOFF đã có dữ liệu, giải thuật sẽ không ghi dữ liệu vào cột THOIGIANOFF và biên dịch ra thông báo “Thiết bị hiện đang tắt”

- Việc kiểm tra dữ liệu THOIGIANOFF nhằm mục đích tránh việc nhấn nút tắt nhiều lần, làm chèn liên tục dữ liệu “thời gian tắt thiết bị” vào

cơ sở dữ liệu, dẫn đến việc tính toán số liệu không chính xác

2.2 Phân tích thiết kế điều khiển các thiết bị trong nhà:

Sử dụng giao diện trên website tiến hành bật/tắt thiết bị, đồng thời ghi dữ liệu về tình trạng, thời gian bật/tắt thiết bị vào cơ sở dữ liệu phục vụ cho quá trình thống kê năng lượng tiêu thụ

Các thiết bị được điều khiển ở đây gồm: quạt (cổng GPIO số 2), tivi (cổng GPIO số 27), máy lạnh (cổng GPIO số 22) Cấu trúc lệnh điều khiển các thiết bị là tương tự nhau, chỉ khác nhau ở chỗ khai báo cổng GPIO điều khiển

và các bảng lưu dữ liệu trong cơ sở dữ liệu, nên dưới đây giải thuật điều khiển

sẽ được xây dựng chung 1 cấu trúc Nhưng do dữ liệu sử dụng của mỗi thiết bị

Trang 32

được ghi vào mỗi bảng tương ứng, nên đối với mỗi thiết bị, cần phải có 1 file điều khiển riêng biệt

THOIGIANSD

BẮT ĐẦU

Khai báo thư viện

Khai báo GPIO Bật thiết bị KẾT NỐI DATABASE

Giải thuật thực hiện như sau:

- Khởi đầu, giải thuật tiến hành khai báo các thư viện sử dụng để điều khiển, gồm: time, GPIO, mySQL, localtime

- Sau đó tiến hành khai báo phần kết nối với cơ sở dữ liệu trong mySQL: host, account, password, database

- Nếu thực hiện khai báo đúng kết nối với cơ sở dữ liệu, giải thuật sẽ tiếp tục thực hiện các dòng lệnh tiếp theo, còn nếu không đúng, giải thuật sẽ in ra dòng lệnh “ Xảy ra lỗi”

Trang 33

- Khai báo cổng GPIO thực hiện điều khiển thiết bị: quạt (cổng GPIO

số 2), tivi (cổng GPIO số 27), máy lạnh (cổng GPIO số 22)

- Thực hiện đưa điện áp thấp ở ngõ ra chân GPIO số 2 (bật quạt), 27(bật tivi), 22 (bật máy lạnh) của board Raspberry (mức LOW) để bật Relay, vì Relay sử dụng ở đây kích ở điện áp thấp

- Lúc này, nếu lệnh thực thi đúng, tức là đã khai báo đúng các cổng GPIO và kết nối được với cơ sở dữ liệu, đồng thời dữ liệu ở cột THOIGIANSD đã có, thì chương trình sẽ tiến hành ghi dữ liệu “thời gian bật thiết bị” vào cột THOIGIANON với số thứ tự hơn 1 đơn vị trong cơ sở dữ liệu Nếu xảy ra lỗi do khai báo sai cấu trúc thì chương trình sẽ báo lỗi, còn nếu cột THOIGIANSD không có dữ liệu thì giải thuật sẽ biên dịch ra dòng thông báo "Thiết bị hiện đang bật” và sẽ không ghi dữ liệu “ thời gian bật thiết bị” vào cơ sở dữ liệu

- Việc thống kê số lượng bật thiết bị được tính theo cột số thứ tự với số thứ tự tăng dần theo khoảng n+1

- Xét điều kiện THOIGIANSD nhằm mục đích tránh hiện tượng nhấn nút bật thiết bị liên tục trong khi thiết bị đang bật, làm cho “thời gian bật thiết bị” đưa vào không chính xác dẫn tới việc tính toán thời gian

sử dụng không đúng

Trang 34

+) Chương trình tắt thiết bị:

THOIGIANOFF

BẮT ĐẦU

Khai báo thư viện

Khai báo GPIO Tắt thiết bị KẾT NỐI DATABASE

Ghi nhận THOIGIANOFF Ghi nhận THOIGIANSD

Hình 2.4: Lưu đồ giải thuật điều khiển tắt thiết bị

Giải thuật thực hiện như sau:

- Ban đầu, giải thuật tiến hành khai báo các thư viện sử dụng để điều khiển, gồm: time, GPIO, MySQL, localtime

- Sau đó tiến hành khai báo phần kết nối với cơ sở dữ liệu trong mySQL: host, account, password, database

- Nếu khai báo đúng, giải thuật sẽ tiếp tục thực hiện các dòng lệnh tiếp theo, còn nếu sai, giải thuật sẽ in ra thông báo “Xảy ra lỗi”

- Khai báo cổng GPIO thực hiện điều khiển thiết bị: quạt (cổng GPIO số 2), tivi (cổng GPIO số 27), máy lạnh (cổng GPIO số 22)

Trang 35

- Thực hiện đưa điện áp cao ở ngõ ra chân GPIO số 2 (tắt quạt), 27(tắt tivi),

22 (tắt máy lạnh) của board Raspberry-pi (mức HIGH) để tắt Relay, vì Relay sử dụng ở đây kích ở điện áp thấp

- Lúc này, nếu lệnh thực thi đúng, tức là đã khai báo đúng các cổng GPIO

và kết nối được với cơ sở dữ liệu cũng như dữ liệu về THOIGIANOFF là chưa có, thì chương trình sẽ ghi dữ liệu “thời gian tắt thiết bị” vào cột THOIGIANOFF trong cơ sở dữ liệu, đồng thời cũng thực hiện tính toán

“thời gian sử dụng” và ghi vào cột THOIGIANSD Nếu xảy ra lỗi do khai báo sai cổng GPIO thì chương trình sẽ không được thực thi tiếp và biên dịch ra dòng thông báo lỗi, còn nếu cột THOIGIANOFF có dữ liệu thì giải thuật biên dịch ra dòng thông báo “Thiết bị hiện đang tắt” và không ghi dữ liệu vào cơ sở dữ liệu

- Việc kiểm tra dữ liệu THOIGIANOFF nhằm mục đích tránh việc nhấn nút tắt nhiều lần, làm thay đổi dữ liệu thời gian tắt thiết bị, dẫn đến việc tính toán số liệu không chính xác

2.3 Phân tích thiết kế thu nhận dữ liệu cảm biến nhiệt độ và độ ẩm:

Môi trường có vai trò đặc biệt quan trọng đối với sức khỏe con người Cảm biến được đặt ở vị trí phù hợp trong nhà để thu thập các thông số môi trường sống như nhiệt độ và độ ẩm, từ đó giúp gia chủ có thể điều chỉnh được hoàn cảnh môi trường sống như tăng hoặc giảm nhiệt độ, sự trao đổi không khí trong phòng,… Những thông số này được hiển thị sao cho người sử dụng dễ dàng quan sát nhất Giải thuật thu thập dữ liệu môi trường được xây dựng như sau:

Trang 36

BẮT ĐẦU

Khai báo thư viện

Khai báo GPIO Lấy dữ liệu độ ẩm Lấy dữ liệu nhiệt độ KẾT NỐI DATABASE

Hình 2.5: Lưu đồ giải thuật thu thập dữ liệu nhiệt độ, độ ẩm

Giải thuật thực hiện như sau:

- Ban đầu, dòng lệnh sẽ tiến hành khai báo các thư viện sử dụng để điều khiển, gồm: time, DHT, GPIO, MySQL, localtime

- Sau đó tiến hành khai báo phần kết nối với cơ sở dữ liệu trong MySQL: host, account, password, database

- Nếu khai báo đúng, giải thuật sẽ thực hiện các dòng lệnh tiếp theo, còn sai thì giải thuật sẽ tiến hành in ra dòng lệnh “Xảy ra lỗi”

- Khai báo cổng GPIO nhận dữ liệu nhiệt độ, độ ẩm: cổng GPIO số 23

- Thực hiện lấy dữ liệu ở ngõ vào chân GPIO số 23 của board Raspberry-pi từ mạch cảm biến nhiệt độ, độ ẩm, thực hiện đưa ra 2 thông số riêng biệt từ DHT11 là nhiệt độ (t) và độ ẩm (h) Nếu cấu trúc lệnh sai, giải thuật sẽ báo lỗi

- Ghi dữ liệu vào cơ sở dữ liệu

Trang 37

2.4 Thiết kế điều khiển theo kịch bản:

Một hệ thống nhà thông minh thường có rất nhiều kịch bản sẵn có, điều này làm cho bạn đôi khi rất khó tìm kiếm các kịch bản để sử dụng Hệ thống thiết kế kịch bản với những nhu cầu thông dụng nhất

Lưu đồ giải thuật điều khiển cũng được thực hiện như điều khiển bật/tắt từng thiết bị, nhưng ở đây sẽ sử dụng 2 hay nhiều thiết bị hơn để phối hợp tạo ngữ cảnh, dữ liệu từ việc bật tắt thiết bị cũng được ghi vào cơ sở dữ liệu để tổng hợp thời gian sử dụng Ở đây, xây dựng 4 ngữ cảnh chính: Friend, normal, night, family Theo từng nhu cầu cụ thể

+ Ngữ cảnh Friend: Sử dụng khi tiếp khách, cần lượng lớn ánh sáng

cũng như sự điều hòa không khí là tối đa, bên cạnh đó cũng kết hợp thêm tivi để đáp ứng thêm nhu cầu về giải trí

Đối với ngữ cảnh này cần bật: Đèn chính (cổng GPIO số 3), đèn phụ (cổng GPIO số 4), máy lạnh (cổng GPIO số 22), quạt (cổng GPIO số 2), tivi (cổng GPIO số 27)

+ Ngữ cảnh Normal: Sử dụng trong nhu cầu bình thường ban ngày ,

nhiệt độ môi trường khá cao, cần sự mát mẻ và kết hợp thêm tivi

Đối với ngữ cảnh này cần bật: Máy lạnh (cổng GPIO số 22), tivi (cổng GPIO số 27)

+ Ngữ cảnh Night: Sử dụng khi cần không gian yên tĩnh, cần ánh sáng

vừa phải, nhiệt độ ngoài trời không quá cao nên chỉ cần quạt tăng sự lưu chuyển không khí, đồng thời tạo không gian mát mẻ:

Đối với ngữ cảnh này cần bật: Đèn phụ (cổng GPIO số 4), quạt (cổng GPIO số 2)

+ Ngữ cảnh Family: Sử dụng khi sinh hoạt chung gia đình, cần đèn sáng,

đèn phụ, tivi cho nhu cầu giải trí và máy lạnh tạo không gian mát mẻ

Đối với ngữ cảnh này cần bật: Đèn chính (cổng GPIO số 3), đèn phụ (cổng GPIO số 4), máy lạnh (cổng GPIO số 22), tivi (cổng GPIO số 27)

Trang 38

2.5 Thiết kế thủ tục truyền thông và cơ sở dữ liệu:

Bạn có thể kiểm soát ngôi nhà từ bất cứ vị trí nào trong căn nhà, chỉ cần kết nối được với board Raspberry-pi Việc kết nối giữa board RPi và các thiết bị được thực hiện bằng giao thức TCP/IP qua ROUTER đóng vai trò là DHCP server, và kết nối không dây tới thiết bị người sử dụng Mọi thao tác điều khiển đều được thực hiện qua giao diện website

Bên cạnh đó, trên website được thiết kế có thêm chức năng hiển thị thông tin sử dụng của các thiết bị và thống kê thời gian tiêu thụ của từng thiết bị điện dể phục vụ cho mục đích cân đối sử dụng

Ở luận văn này, sử dụng mySQL để lưu trữ các dữ liệu về thiết bị điện phục vụ cho công tác thay thế, cũng như ghi chú các thông số cơ bản về thiết bị

đó Bên cạnh đó, sử dụng thêm các bảng để lưu trữ dữ liệu về thời gian sử dụng thiết bị để tính toán tiêu thụ điện và lấy dữ liệu môi trường hiển thị trên website

Để thực hiện được điều này, cần tạo các bảng dữ liệu với các cột sau để lưu trữ thông tin

Bảng thietbi: Dùng để thống kê lại các thiết bị đang sử dụng, đặc điểm

của từng thiết bị giúp cho việc thay thế sửa chữa khi hư hỏng:

Bảng 2.1: Bảng lưu trữ thông tin thiết bị

Trang 39

Bảng 2.2: Bảng lưu trữ thông tin sử dụng của đèn chính (DC)

Bảng 2.3: Bảng lưu trữ thông tin sử dụng của phụ (DP)

Bảng 2.4: Bảng lưu trữ thông tin sử dụng của máy lạnh (ML)

Bảng 2.5: Bảng lưu trữ thông tin sử dụng của quạt (QUAT)

Bảng 2.6: Bảng lưu trữ thông tin sử dụng của tivi (TV)

Bảng moitruong: dùng để hiển thị các thông số môi trường như nhiệt độ,

độ ẩm Các dữ liệu trong bảng được nhập vào cơ sở dữ liệu từ board

raspberry-pi thông qua cảm biến DHT11

Bảng 2.7: Bảng lưu trữ thông số môi trường

Trang 40

2.6 Thiết kế giao diện người dùng:

Sử dụng giao diện GUI hoặc command khi thực hiện lập trình điều khiển trên board Raspberry-pi:

Giao diện tương tác người dùng – board raspberry-pi (giao diện cấu hình): có thể bằng nhiều cách như: dùng phần mềm PUTTY để sử dụng cửa sổ

terminal, hoặc sử dụng giao diện GUI dành riêng cho raspbian bằng remote desktop hoặc sử dụng LCD kết nối trực tiếp để hiển thị:

Hình 2.6: Giao diện đăng nhập PUTTY

Đầu tiên là việc cấu hình điều khiển các thông số của thiết bị Việc này được thực hiện qua 2 cách thức chính là SSH hoặc sử dụng màn hình được gắn trực tiếp trên board thông qua cổng LCD hoặc cổng HDMI

Ngày đăng: 17/12/2016, 23:25

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Abhay Kumar, Neha Tiwari (January 2015), “Energy Efficient Smart Home Automation System”, International Journal of Scientific Engineering and Research (IJSER), Volume 3 Issue 1 Sách, tạp chí
Tiêu đề: Energy Efficient Smart Home Automation System”, "International Journal of Scientific Engineering and Research (IJSER)
[2]. Matt Rechardson and Shawn Wallace (2013), Getting Started with Raspberry Pi, O’Reilly, Sebastopol Sách, tạp chí
Tiêu đề: Getting Started with Raspberry Pi
Tác giả: Matt Rechardson and Shawn Wallace
Năm: 2013
[3]. Mohamed Abd El-Latif Mowad, Ahmed Fathy, Ahmed Hafez, (, May-2014), “Smart Home Automated Control System Using Android Application and Microcontroller”, International Journal of Scientific &Engineering Research, Volume 5, Issue 5 Sách, tạp chí
Tiêu đề: Smart Home Automated Control System Using Android Application and Microcontroller”, "International Journal of Scientific & "Engineering Research
[4]. Noah Gift, Jeremy Jones (2008), Python for Unix and Linux System Administration, O'Reilly, Sebastopol Sách, tạp chí
Tiêu đề: Python for Unix and Linux System Administration
Tác giả: Noah Gift, Jeremy Jones
Năm: 2008
[5]. Shiu Kumar (January 2014), “Ubiquitous Smart Home System Using Android Application”, International Journal of Computer Networks &Communications (IJCNC) Vol.6, No.1 Sách, tạp chí
Tiêu đề: Ubiquitous Smart Home System Using Android Application”, "International Journal of Computer Networks & "Communications (IJCNC) Vol.6
[7]. Steven Goodwin (2013), Smart Home Automation with Linux and Raspberry Pi, Apress Sách, tạp chí
Tiêu đề: Smart Home Automation with Linux and Raspberry Pi
Tác giả: Steven Goodwin
Năm: 2013
[8]. Website: https:// raspberrypi.org/ , truy nhập ngày 12/6/2016 [9]. Website: http://raspberrypi.vn/ , truy nhập ngày 12/6/2016 [10]. Website: http://codientu.org/ , truy nhập ngày 10/6/2016 Link
[11]. Website: http://smarthome.com.vn/ , truy nhập ngày 15/5/2016 [12]. Website: https://en.wikipedia.org/ , truy nhập ngày 20/4/2016 [13]. Website: http://tutorialspoint.com/ , truy nhập ngày 2/5/2016 Link

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w