Để giám sát được ngôi nhà cũng như sử dụng các chức năng, tiện ích của ngôi nhà 24/24 hay điều khiển từ xa, chúng ta cần phải có một phương tiện giám sát hiệu quả hơn, thông minh hơn.Do
Trang 1KHOA CÔNG NGHỆ ĐIỆN
KHÓA LUẬN TỐT NGHIỆP
ĐỀ TÀI: ĐIỀU KHIỂN VÀ GIÁM SÁT THIẾT BỊ ĐIỆN BẰNG PHẦN MỀM VISUAL BASIC VÀ
WEBSERVER THÔNG QUA ARDUINO VÀ NODE MCU V3
Trang 2Ngày nay cùng với sự phát triển và lên ngôi của nền công nghiệp 4.0 qua đó các ngành khoa học kĩ thuật, công nghệ kĩ thuật điện, điện tử cũng đóng một vai trò hết sức quan trọng trong mọi lĩnh vực khoa học kỹ thuật, quản lí, công nghiệp, cung cấp thông tin,… Dó
đó là sinh viên chuyên ngành Điều Khiển Tự Động, chúng ta phải biết nắm bắt và vận dụng công nghệ 4.0 một cách hiệu quả nhằm góp phần vào sự phát triển của nền khoa học kỹ thuật thế giới nói chung và trong sự phát triển kỹ thuật điện, điện tử nói riêng Bên cạnh còn
là sự thúc đẩy sự phát triển của nền kinh tế nước nhà
Như chúng ta đã biết nhu cầu về cuộc sống ngày càng được nâng cao nên nhu cầu về
sự tiện nghi trong ngôi nhà ở cũng không nằm ngoài xu thế đó Nắm bắt được nhu cầu đó cùng với sự phát triển của công nghệ kĩ thuật điện, điện tử đã cho ra đời nhiều giải pháp mang tính đột phá, có tính sáng tạo cao nhằm đáp ứng được thị yếu của người dân Các thiết
bị trong nhà ở được điều khiển một cách tự động cũng như giám sát từ xa sẽ đem lại cuộc sống thoải mái cho mọi thành viên trong gia đình
Để giám sát được ngôi nhà cũng như sử dụng các chức năng, tiện ích của ngôi nhà 24/24 hay điều khiển từ xa, chúng ta cần phải có một phương tiện giám sát hiệu quả hơn, thông minh
hơn.Do đó nhóm chúng em chọn đề tài “ Điều khiển và giám sát thiết bị điện bằng phần
mềm Visual Basic & Webserver thông qua ARDUNIO VÀ NODE MCU V3” làm đề tài
tốt nghiệp của mình
TP.HCM, Ngày … tháng … năm 2019
Nhóm sinh viên
Trang 31 Họ và tên sinh viên/nhóm sinh viên được giao đề tài:
4 Kết quả:
Thông qua mạng internet bằng Webserver và VB6, ta đạt được những kết quả sau:
Sinh viên
Trang 4
viên hướng dẫn
Trang 5CHƯƠNG 1 : TỔNG QUAN VỀ ĐỀ TÀI 6
1.1 Vai trò và ứng dụng của Arduino hiện nay 3
1.1.1 Tổng quan về Arduino 3
1.1.2 Ứng dụng Arduino trong thực tế 4
1.2 Lý do chọn đề tài 5
1.3 Mục đích của đề tài 6
1.4 Mục tiêu và phạm vi nghiên cứu 6
CHƯƠNG 2:GIỚI THIỆU TỔNG QUAN HỆ THỐNG 8
2.1 Giới thiệu về board Arduino 8
2 1.1 Cấu tạo phần cứng 8
2.1.2 Các loại board mạch Arduino 9
2.2 Giới thiệu Phần mềm Arduino IDE 11
2.2.1 Giới thiệu về IDE 11
2.2.2 Giao diện làm việc 12
2.2.3 Cá c hàm và lệnh cơ bản 13
2.3 Tổng quan về Esp8266 Nodemcu Lua V3 CH340 16
2.3.1.Giới thiệu 16
2.3.2 Th ông số kĩ thuật nodemcu Lua V3 CH340 17
2.13 Hình ảnh Kit Wifi ESP8266 NodeMCU 17
2.4.Tổng quan về webserver 17
2.4.1G iới thiệu về webserver 17
2.14 Hình ảnh minh họa Webserve 18
2.4.2 Cách tạo webserver trên ardunio 19
2.15Hình ảnh khi mở chương trình Ardunio IDE 19
2.16 Hình ảnh khi mở chương trình Ardunio IDE 20
2.17 Hình ảnh Boards Manager 20
2.18 Hình ảnh Boards Manager 21
2.5 Tổng quan về VB6 21
Trang 62.19 Hình ảnh VB6 21
2.5.2 Các thành phần chính ViSual Basic 22
2.5.3 Cơ sở lập trình 25
CHƯƠNG 3: THIẾT KẾ MÔ PHỎNG HỆ THỐNG SMART HOME 30
3.1 Sơ đồ khối tổng quát của hệ thống 30
3.2 Các khối cảm biến 30
3.2.1 Cảm biến chuyển động PIR 30
3.2.2 Cảm biến nhiệt độ - độ ẩm DHT11 31
3.2.3 Cảm biến ánh sáng CDS 32
3.2.4 Cảm biến phát hiện khí Gas 33
3.2.5 Quạt tản nhiệt 34
CHƯƠNG 4: LẬP TRÌNH CHO HỆ THỐNG 35
4.1 Lưu đồ giải thuật tổng quát 35
4.2 Lưu đồ giải thuật chi tiết 36
4.2 Lưu đồ giải thuật chi tiết 37
4 3 Code lập trình 38
4.3.1 Code lập trình cho Arduino Uno 38
4.3.2 Code lập trình cho ESP8266 44
4.3.3 Code lập trình cho Visual Basic 60
4 Điều khiển thiết bị từ xa bằng natport mordem wifi 65
4.3 Danh sách sơ đồ chân đấu nối của thiết bị với Arduino 68
CHƯƠNG 5 69
KẾT QUẢ THỰC TẾ - HƯỚNG PHÁT TRIỂN ĐỀ TÀI 69
5.1 Kết quả nghiên cứu 69
5.1.1 Mô hình thực tế 69
5.2 Nhận xét và đánh giá 71
5.2.1 Nh ận xét 71
5.3 Hướng phát triển đồ án 72
TÀI LIỆU THAM KHẢO 73
Trang 7Hình 1.1: Máy in 3D 4
Hình 1.2: Thiết bị máy bay không người lái 4
Hình 1.3: Ardiuno điều khiển nhà bẳng smart phone 5
Hình 2.1 : Board Arduino UNO 9
Hình 2.2: Board Arduino Micro 9
Hình 2.3: Board Arduino Nano 10
Hình 2.4: Board Arduino Mega 11
Hình 2.5: Board Arduino Ethernet 11
Hình 2.6: Giao diện làm việc IDE 12
Hình 2.7: Nút lệnh trên IDE 12
Hình 2.8: Thông báo lỗi trên IDE 13
Hình 2.9: Ví dụ về lệnh void setup() 14
Hình 2.10: Ví dụ về lệnh void loop() 14
Hình 2.11: Hình ảnh minh họa về Esp8266 16
Hình 2.12: Hình ảnh Kit Node Mcu 16
Hình 2.13: Sơ đồ chân Node Mcu 16
Hình 2.14: Hình ảnh minh họa Webserver 18
Hình 2.15: Hình ảnh mở chương trình Ardunio 19
Hình 2.16: Cài thư viện Esp 8266 19
Hình 2.17: Hình ảnh boards Manager 20
Hình 2.19: Hình ảnh VB6 21
Hình 2.20: Hình ảnh IDE của VB6 22
Hình 2.21: Hình ảnh Menu Bar 23
Hình 2.22: Hình ảnh Toolbars 24
Hình 2.23: Hình ảnh Toobox 25
Hình 2.24: Hình ảnh Form 25
Hình 2.25: Hình ảnh View form button 26
Hình 3.1: Sơ đồ khối tổng quát của hệ thống 31
Hình 3.2: Cảm biến chuyển động PIR 32
Trang 8Hình 3.4: Cảm biến ánh sáng CDS 34
Hình 3.5: Cảm biến khí GAS 35
Hình 3.6: Quạt 36
Hình 3.7: Buzzer 37
Hình 4.1: Lưu đồ giải thuật tổng quát 37
Hình 4.2: Lưu đồ giải thuật chi tiết điều khiển 38
Hình 4.3: Lưu đồ giải thuật chi tiết giám sát 39
Hình 4.4: Ảnh code Ardunio 40
Hình 4.5: Ảnh code Esp 46
Hình 4.6: Ảnh code VB6 62
Hình 5.1: Mô hình hoàn chỉnh 71
Trang 9Hình 3.13: Động cơ Servo và DC 26
Hình 3.14: Mô hình mặt bằng nhà 26
Hình 3.15: Vị trí các thiết bị điều khiển trong nhà 27
Hình 3.16: Bố trí cảm biến trên bản vẽ 28
Hình 3.17: Kí hiệu của thiết bị và cảm biến trên bảng vẽ 29
Hình 4.1: Lưu đồ giải thuật tổng quát 30
Hình 4.2: Sơ đồ điều khiển bằng internet 31
Hình 4.3: Lưu đồ giải thuật điều khiển thiết bị bằng cảm biến 31
Hình 4.4: Tải phần mềm Blynk trên CH play 48
Hình 4.6: Tạo project trên Blynk 49
Hình 4.5: Tải phần mềm Blynk trên CH play 49
Hình 4.7: Thông báo nhận mã từ mail 50
Hình 4.8: Giao diện project mẫu 50
Hình 4.9: Giao diện sử dụng và nạp energy 51
Hình 4.10: Tải IFTTT qua CH play 52
Hình 4.11: Tạo tài khoản trên IFTTT 52
Hình 4.12: Tạo my applets 53
Hình 4.13: Giao diện làm việc trên IFTTT 53
Hình 4.14: Kết nối với Google Assistant 54
Hình 4.15: Ví dụ lập trình điều khiển Relay 54
Hình 4.16: Lập trình cho phần mềm để kết nối với Google Assistant 55
Hình 4.17: Lập trình Webhooks 55
Hình 4.18: Giao diện sau khi lập trình 56
Hình 5.1: Mô hình hoàn chỉnh 58
Hình 5.1: Mô hình hoàn chỉnh 59
Hình 5.2: Vị trí cảm biến nhiệt độ - độ ẩm 59
Hình 5.3: Vị trí cảm biến quang trở 59
Hình 5.4: Vị trí cảm biến chuyển động 60
Trang 10Hình 5.6: Vị trí module RFID và động cơ 61
Hình 5.7: Vị trí cảm biến hồng ngoại 61
Hình 5.8: Vị trí cảm biến khí gas và còi báo 62
Hình 5.9: Vị trí rèm cửa 62
Hình 5.11: Board mạch xử lý trung tâm 63
Hình 5.10: Vị trí các thiết bị đóng cắt và dimmer 63
Trang 13CHƯƠNG 1 : TỔNG QUAN VỀ ĐỀ TÀI
1.1 Vai trò và ứng dụng của Arduino hiện nay
1.1.1 Tổng quan về Arduino
điện, điện tử Arduino gồm có board mạch có thể lập trình được (vi điều khiển) và phần mềm hỗ trợ IDE (Integrated Development Environment) dùng để soạn thảo, biên dịch code và nạp chương trình cho board (code được viết với ngôn ngữ C+)
lập trình vì nó đơn giản, hiệu quả và dễ tiếp cận Không giống như các loại vi điều khiển khác, Arduino không cần phải có các công cụ chuyên biệt để phục vụ việc nạp code, ví
dụ để nạp code cho PIC cần phải có Pic Kit hay nạp chương trình cho hệ KNX cần có USB interface Đối với Arduino rất đơn giản, ta có thể kết nối với máy tính bằng cáp USB
tự chế ra sản phẩm của mình) trong thế giới trong vài năm gần đây qua đó thúc đẩy nền công nghiệp 4.0 phát triển mạnh mẽ và công nghệ IOT (Internet of Things) ra đời
nước Ý và được đặt tên thoe một vị vua vào thế kỉ thứ 9 là King Arduin Arduino chính thức được đưa ra giới thiệu vào năm 2005 như một công cụ khiêm tốn dành cho các sinh viên của giáo sư Massimo Banzi, là một trong những người phát triển Arduino, tại trường Interaction Design Instistute Ivrea (IDII) Mặc dù hầu như không được tiếp thị gì cả, tin tức về Arduino vẫn lan truyền với tốc độ chóng mặt nhờ những lời truyền miệng tốt đẹp của những người dùng đầu tiên
Trang 14Khóa luận tốt nghiệp Trịnh Hữu Trường_Đặng Hoài Anh
1.1.2 Ứng dụng Arduino trong thực tế
Máy in 3d
Một cuộc cách mạng khác cũng đang âm thầm định hình nhờ vào Arduino, đó là sự phát triển máy in 3D nguồn mở Reprap Máy in 3D là công cụ giúp tạo ra các vật thể thực trực tiếp từ các file CAD 3D Công nghệ này hứa hẹn nhiều ứng dụng rất thú vị trong đó có cách mạng hóa việc sản xuất cá nhân
Hình 1.1: Máy in 3D
Thiết bị bay không người lái UAV
UAV là một ứng dụng đặc biệt thích hợp với Arduino do chúng có khả năng xử lý nhiều loại cảm biến như Gyro, accelerometer, GPS…; điều khiển động cơ servo và cả khả năng truyền tín hiệu từ xa
Hình 1.2: Thiết bị máy bay không người lái
Trang 15Điều khiển nhà thông minh (smart home)
Kết hợp với các module chức năng Bluetooth hoặc wifi… , với các ứng dụng cài trên máy tính bảng, smart phone hay trình duyệt web người dùng có thể thiết kế hệ thống điều khiển giám sát thông minh các thiết bị điện trong ngôi nhà của mình khi ở trong nhà hoặc từ bất cứ nơi nào ( được kết nối internet)
Hình 1.3: Ardiuno điều khiển nhà bẳng smart phone và tablet
1.2 Lý do chọn đề tài
thuật cơ khí hiện đại, kỹ thuật điều khiển và kỹ thuật máy tính vào việc vận hành, điều khiển các quy trình sản xuất, và ngay cả các hoạt đông sinh hoạt hằng ngày tại nhà
Ngày nay, khi nhu cầu và thị hiếu con người ngày càng cao, yêu cầu về số lượng và chất lượng của các sản phẩm xã hộ cũng không ngừng tăng, điều đó đòi hỏi các dây chuyền sản xuất trong công nghiệp ngày càng hiện đại, có mức độ tự động hóa ngày càng cao với việc sử dụng các kỹ thuật điều khiển hiện đại có trợ giúp từ công nghệ, máy tính Hệ thống điều khiển
và tự động hóa có mặt trong mọi dây chuyền sản xuất của các ngành kinh tế khác nhau như : công nghiệp, nông nghiệp, giao thông vận tải,…
Vì vậy một hệ thống điều khiển thông minh và hoàn toàn tự động là xu thế tất yếu Ứng dụng hệ thống thông minh và điều khiển các thiết bị nhà ở và sân vườn vẫn còn khá mới mẻ
ở Việt Nam Nhóm đã quyết định chọn đề tài Nhà Thông minh để làm đề tài nghiên cứu của mình để bắt nhịp với xu thế đó
Trang 16Khóa luận tốt nghiệp Trịnh Hữu Trường_Đặng Hoài Anh
1.3 Mục đích của đề tài
Nhóm xây dựng đề tài đã chọn theo hướng xây dựng hệ thống sử dụng Arduino và
việc lặp đi lặp lại hằng ngày Nhằm hạn chế và tiết kiệm sức của người bỏ ra, chúng ta sẽ không phải bận tâm quá nhiều đến việc quản lí ngôi nhà bằng việc tích hợp những công nghệ
kĩ thuật quản lí từ xa sẽ mang đến cho chúng ta cuộc sống thoải mái, an toàn và tiện nghi hơn
1.4 Mục tiêu và phạm vi nghiên cứu
Nhóm đã đặt ra mục tiêu nghiên cứu cụ thể như sau: tìm hiểu về nguyên tắt hoạt động của công nghệ số trên module Arduino và ESP8266 Biết cách ứng dụng và lập trình trên Arduino IDE Tìm hiểu hoạt động của các cảm biến quang, nhiệt độ & độ ẩm, chuyển động, hồng ngoại vv và để ứng dụng chúng vào hoạt động thường ngày của ngôi nhà Ngoài ra còn trang bị thêm cảm biến báo khí gas để tăng tính an toàn cho những trường hợp rủi ro trong gia đình
Do giới hạn về thời gian nghiên cứu cũng như kiến thức chuyên ngành nên nhóm thực hiện chỉ tập trung nghiên cứu các vấn đề chính là tích hợp các hệ thống thống thông minh và giúp người dùng thuật tiện điều khiển và giám sát tất cả mọi thứ trong nhà qua phần mềm trên
Nhóm khi thực hiện đề tài đã sử dụng các phương pháp nghiên cứu đề tài
Trang 17Khóa luận tốt nghiệp Trịnh Hữu Trường_Đặng Hoài Anh
Trang 18Khóa luận tốt nghiệp Trịnh Hữu Trường_Đặng Hoài Anh
•
CHƯƠNG 2:GIỚI THIỆU TỔNG QUAN HỆ THỐNG
2.1 Giới thiệu về board Arduino
2.1.1 Cấu tạo phần cứng
mở được thiết kế trên nền tảng vi xử lý AVG Atmel 8- bit hoặc AMR Atmel 32- bit Những model hiện đại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog,
vào năm 2005, những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo
ra các thiết bị có khả năng tương tác với môi trường thông qua các cảm biến và các cơ cấu chấp hành
robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động Đi cùng với nó là một môi trường phát triển tích hợp (IDE) chạy trên các máy tính cá nhân thông thường và
của các board mạch Arduino dao động xung quanh €20 hoặc $27 (tức 574.468 VNĐ) nếu được “ làm giả” thì giá có thể giảm xuống thấp hơn $9 Các board mạch Arduino có thể được đặt hàng ở dạng lắp đặt sẵn hoặc dưới dạng các kit tự làm lấy Thông tin
Trang 19thiết kế phần cứng được cung cấp công khai để những ai muốn tự làm một
mạch Arduino bằng tay có thể tự mình thực hiện được (mã nguồn mở)
được sản xuất thương mại và vào năm 2013 có khoảng 700.000 mạch chính thức đã được đưa tới tay người dùng
2.1.2 Các loại board mạch Arduino
- Arduino Uno: Nó có 14 chân dữ liệu số, có thể cấu hình làm chân lấy tín hiệu vào hoặc xuất tín hiệu ra là tùy bạn 6 chân tương tự đầu vào 5V, độ phân giải 1024 mức Tốc độ 16MHZ, điện áp vào từ 7~12V, chân số có thể cấp điện áp 5V và 1A, nếu bạn điều khiển chân số ra tiêu tốn quá 1A thì Board sẽ bị hỏng Kích thước board 5,5 x 7 cm
Hình 2.1 : Board Arduino UNO
- Arduino Micro: có thiết kế nhỏ, dành cho các không gian lắp đặt nhỏ, nhẹ, kích thước khoảng 5 x 2cm Board này giống với Arduino Uno Có 20 chân số, trong đó có 7 chân có thể phát xung PWM 12 chân tương tự
Hình 2.2: Board Arduino Micro
Trang 20- Arduino Nano: có kích thước nhỏ nhất, gồm 14 chân số (6 chân PWM) và 8 chân tương tự Kích thưởng khoảng 2 x 4cm Nhỏ gọn, dễ lắp đặt ở bất cứ đâu
- Arduino Mega: có thiết kế hoạt động tương tự Arduino UNO, tuy nhiên có số lượng chân vào ra lớn với 54 chân số (14 chân PWM), 16 chân tương tự và 4 cổng truyền nối tiếp (RS232) dễ dàng giao tiếp với các board, thiết bị khác Kích thước 5 x 10cm
Hình 2.4: Board Arduino Mega
- Arduino Ethernet: Như tên của nó, nó là 1 Arduino giống chức năng với UNO
Hình 2.3: Board Arduino Nano
Trang 21Hình 2.5: Board Arduino Ethernet
Due,…
2.2 Giới thiệu Phần mềm Arduino IDE
2.2.1 Giới thiệu về IDE
thảo văn bản, giúp bạn viết code để nạp vào bo mạch arduino
như Arduino Uno, Arduino Mega , nano , Lập trình trên Arduino IDE là cách tiếp cận đơn giản cho những người đam mê điện,điện tử và muốn tạo ra những sản phẩm nhúng
ấn tượng mà không cần quá nhiều kiến thức chuyên sâu về điện, điện tử
một thư viện phần mềm được gọi là "Wiring" từ dự án lắp ráp ban đầu, có thể giúp các
một chương trình vòng thực thi là có thể chạy được
lập các cài đặt
sử dụng avrdude để tải lên các chương trình vào bo mạch chủ
Trang 22- Do nền tảng Arduino sử dụng vi điều khiển Atmel, môi trường phát triển của
phần mềm cho các Arduino
2.2.2 Giao diện làm việc
Hình 2.6: Giao diện làm việc IDE
icon cho phép sử dụng nhanh các chức năng thường dùng của IDE được miêu tả như sau:
Trang 23 Vùng viết chương trình
dãy các icon, ở đây nó tên là “Blink” Để ý rằng phía sau chương trình có một dấu “§”, điều đó có nghĩa là đoạn chương trình chưa được lưu lại
Hình 2.8: Thông báo lỗi trên IDE
thị loại board Arduino và cổng COM được sử dụng Lưu ý: nếu chọn sai loại board hoặc cổng COM thì sẽ không thể upload được code
Lưu ý: Khi lập trình, các bạn cần chọn port (cổng kết nối khi gắn board vào) và
board (tên board mà bạn sử dụng) Giả sử, bạn đang dùng mạch Arduino Uno, và khi gắn board này vào máy tính bằng cáp USB nó được nhận là COM4 thì bạn chỉnh như thế này là
có thể lập trình đươc nhé
2.2.3 Các hàm và lệnh cơ bản
Cấu trúc cơ bản của một chương trình trong Aruino bao gồm 2 phần chính là void setup() và void loop() được gọi là hai hàm ( hàm là một cấu trúc gồm nhiều câu lệnh phía trong nó bắt đầu và kết thúc bằng kí tự {} )
• Là hàm được chạy đầu tiên mỗi khi chương trình khởi động, nhưng chỉ chạy 1 lần duy nhất vào đầu chương trình, được sử dụng để khai báo các biến số, cấu
viện, nếu bạn muốn một lệnh thực thi nào đó chỉ chạy duy nhất 1 lần ở đầu trương trình thì cũng có thể cho vào hàm void setup()
Trang 24- Void loop()
Hình 2.9: Ví dụ về lệnh void setup()
nội dung của của chương trình, các câu lệnh nằm trong void loop() sẽ được chạy tuần tự từ trên xuống dưới sau đó lặp lại từ đầu liên tục cho tới khi khởi động lại hoặc nhấn nút reset
Hình 2.10: Ví dụ về lệnh void loop()
Trang 25- Lệnh Serial.begin()
thể giao tiếp với máy tính hoặc với các phần cứng khác qua hai chân TX / RX (Transmiter/Receiver), kết nối giao tiếp UART giữa Arduino với máy tính là mặc định thông qua cổng chuyển USB-UART có sẵn trên mạch (không cần kết nối chân trên board, chỉ cần cắm dây USB từ Aruduino vào máy tính
và cài Driver)
chạy 1 lần duy nhất trong toàn chương trình
14400, 19200, 28800, 38400, 57600, 115200 nhưng thông thường nhất ta hay
phần mềm, nạp chương trình, sau đó nhấn Ctrl + Shift + M hoặc ký tự kính lúp góc phải phần mềm, chọn đúng tốc độ baud trong cửa sổ mới mở lên trùng với tốc độ baud trong Serial.begin() là đã có thể thấy các ký tự từ Arduino truyền lên máy tính
Trang 26
2.3 Tổng quan về Esp8266 Nodemcu Lua V3 CH340
khiển được sản xuất bởi nhà sản xuất Espressif Systems tại Thượng Hải, Trung Quốc Con chip này lần đầu tiên thu hút sự chú ý của các nhà sản xuất phương Tây vào tháng
8 năm 2014 với mô-đun ESP-01 Mô-đun nhỏ này cho phép các bộ vi điều khiển kết nối với mạng Wi-Fi và thực hiện các kết nối TCP / IP đơn giản
NodeMCU là một firmware Lua interpreter trên nền ESP8266
Kit RF thu phát Wifi ESP8266 NodeMCU Lua V3 CH340 là phiên bản NodeMCU sử dụng IC nạp giá rẻ CH340 từ Lolin với bộ xử lý trung tâm là module Wifi SoC ESP8266,
Arduino để lập trình và nạp code, điều này khiến việc sử dụng và lập trình các ứng dụng trên ESP8266 trở nên rất đơn giản
2.12 Hình ảnh Kit Wifi ESP8266 NodeMCU
Trang 272.3.2 Thông số kĩ thuật nodemcu Lua V3 CH340
2.13 Hình ảnh Kit Wifi ESP8266 NodeMCU
• Phiên bản
firmware: NodeMCU Lua
2.4.Tổng quan về webserver
2.4.1 Giới thiệu về webserver
Máy chủ web (tiếng Anh: Web server) là từ được dùng để chỉ phần mềm máy
cung cấp các dịch vụ World Wide Web Một máy chủ web xử lí các yêu cầu (request)
từ các client (trong mô hình server - client) thông qua giao thức HTTP và một số giao thức liên quan khác
Giao tiếp giữa của máy tính người dùng và máy chủ thực hiện thông qua giao thức HTTP Nội dung phân phối chính từ máy chủ web là các nội dung định dạng HTML,
bao gồm hình ảnh, style sheets, các đoạn mã script hỗ trợ các nội dung văn bản thô Tác nhân người dùng, thường là trình duyệt web hoặc trình thu thập dữ liệu web,
Trang 28khởi tạo giao tiếp bằng cách yêu cầu một tài nguyên cụ thể bằng HTTP và máy chủ phản hồi với nội dung của tài nguyên đó hoặc thông báo lỗi nếu không thể thực hiện Tài nguyên thường là một tệp thực sự trên bộ nhớ thứ cấp của máy chủ, nhưng điều này không nhất thiết phải là trường hợp và phụ thuộc vào cách máy chủ web được triển khai Mặc dù chức năng chính là phân phát nội dung, việc triển khai đầy đủ HTTP cũng bao gồm các cách nhận nội dung từ khách hàng Tính năng này được sử dụng để gửi biểu mẫu web, bao gồm tải lên tệp
Trang 292.4.2 Cách tạo webserver trên ardunio
tự Đặc biệt, ESP8266 có thể được lập trình bằng Arduino IDE
và mở chương trình
Để tiến hành cài đặt thư viện và chức năng nạp code cho IDE ta làm như sau:
link sau vào
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Trang 302.16 Hình ảnh khi mở chương trình Ardunio IDE
Trang 31Đợi một lát để chương trình tìm kiếm Ta kéo xuống và click vào ESP8266 by ESP8266
Community, click vào Install Chờ phần mềm tự động download và cài đặt
Phần "Visual"đề cập đến phương phàp được sử dụng để tạo giao diện đồ họa người
dùng (Graphical User Interface hay viết tắc là GUI) Có sẵn những bộ phận hình ảnh, gọi
là controls, bạn tha hồ sắp đặt vị trí và quyết định các đặc tính của chúng trên một khung
2.19 Hình ảnh VB6
Trang 32Phần "Basic"đề cập đến ngôn ngữ BASIC (Beginners All-Purpose Symbolic
Instruction Code), một ngôn ngữ lập trình đơn giản, dễ học, được chế ra cho các khoa học gia (những người không có thì giờđể học lập trình điện toán) dùng Visual Basic đã được ra từ MSBasic, do Bill Gates viết từ thời dùng cho máy tính 8 bits 8080 hay Z80 Hiện nay nó chứa đến hàng trăm câu lệnh (commands), hàm (functions) và từ khóa (keywords) Rất nhiều commands, functions liên hệ trực tiếp đến MSWindows GUI Những người mới bắt đầu có thểviết chương trình bằng cách học chỉ một vài commands,
nghiệp hoàn thành bất kỳđiều gì nhờ sử dụng ngôn ngữ lập trình MSWindows nào khác Visual Basic còn có hai dạng khác: Visual Basic for Application (VBA) và VBScript VBA là ngôn ngữ nằm phía sau các chương trình Word, Excel, MSAccess, MSProject, v.v còn gọi là Macros Dùng VBA trong MSOffice, ta có thể làm tăng chức năng bằng cách tựđộng hóa các chương trình VBScript được dùng cho Internet và chính Operating System
2.5.2 C ác thành phần chính ViSual Basic
Khi khởi động VB6 bạn sẽ thấy mở ra nhiều cửa sổ (windows), scrollbars, v.v và nằm chồng lên là New Project dialog Ởđây VB6 cho bạn chọn một trong nhiều loại công trình
Trang 33
• Menu Bar
Chứa đầy đủ các commands mà bạn sử dụng để làm việc với VB6, kể cả các menu
để truy cập các chức năng đặc biệt dành cho việc lập trình chẳng hạn như Project, Format, hoặc Debug Trong Menu Add-Ins có Add-Ins Manager cho phép bạn gắn thêm những menu con nhiệm ý để chạy các chương trình lợi ích cho việc lập trình
2.21 Hình ảnh Mennu Bar
• Toolbars (Debug, Edit, form Editor, Standard)
Các toolbars có hình các icons cho phép bạn click để thực hiện công việc tương đương với dùng một menu command, nhưng nhanh và tiện hơn Bạn dùng menu command View | Toolbars (click lên 3 menu command View cho popupmenu hiện ra rồi click command con Toolbars) để làm cho các toolbars hiện ra hay biến mất đi Bạn
có thể thay đổi vị trí một toolbar bằng cách nắm vào hai gạch vertical nằm bên trái toolbar rồi dời toolbar đi chỗ khác (nắm ởđây nghĩa là để pointer của mouse lên chỗ chấm đỏ trong hình phía dưới rồi bấm xuống và giữ nút bên trái của mouse, trong khi kéo pointer đi nơi khác)
2.22Hình ảnh Toolbars
• Toolbox
Đây là hộp đồ nghề với các công cụ, gọi là controls, mà bạn có thểđặt lên các form trong lúc thiết kế(design) Nếu Toolbox biến mất, bạn có thể display nó trở lại bằng cách dùng menu command View | Toolbox Bạn có thể khiến toolbox display nhiều controls hơn bằng cách chọn Components từcontext menu (chọn Toolbox rồi bấm nút phải của mouse để display context menu) hay dùng menu command Project | Components Ngoài việc trình bày Toolbox mặc định, bạn có thể tạo cách trình bày khác bằng cách chọn Add Tab từ context menu và bổ sung các control cho tab từ kết quả
Trang 342.22 Hình ảnh Toolbox
• Form Designer
(graphics), các hình ảnh và một form để tạo sự ma sát mà bạn muốn Mỗi form trong trình ứng dụng của bạn có designer form riêng của nó Khi bạn maximise một form designer, nó chiếm cả khu làm việc Muốn làm cho nó trởlại cở bình thường và đồng thời để thấy các form designers khác, click nút Restore Window ở góc bên phải, phía trên
2.23Hình ảnh Form Designer
• View Code button
Click lên nút nầy để xem code của một form mà bạn đã chọn Window của code giống như dưới đây:
2.24Hình ảnh View Code button
Trang 35• View form button
Click lên nút nầy để xem form của một form mà bạn đã chọn
Trong hình dưới đây, Properties Window và Form Layout đã được kéo ra ngoài cho floating
2.25Hình ảnh View form button
2.5.3 C ơ sở lập trình
tham trị)
Dim TênBiến as Kiểu Biến
Trang 36Tên biến phải:
** Hàm và toán tử cơ bản
* Abs(x): Tính giá trị tuyệt đối của x
* Atn(x): Tinh Arctang của x
* Cos(x): Tính Cosin của x
* Date: cho biết ngày tháng năm hiện tại
* DoEvent():Nhường cho Event khác được thực thi
* Exp(x):Hàm e mũ x
* Hex(numer): Đổi sang số Hexa(16)
* Len: Tính chiều dài chuỗi
* Fix(Number):Làm tròn hướng về 0
* Mid:Trích các phần tử của 1 chuỗi từ vị trí chỉ định
* Right(string,length):Trích các phần tử của 1 chuỗi từ bên phải
* Rnd[(Number)]: cho số ngẫu nhiên:0-1
* Sqr(Number): Tính căn bậc 2
* Str(Numer): Đổi số ra chuỗi
* +,-,*,/: Toán tử toán học
* And,Or,Xor,Not:Toán tử Logic điều kiện
* \: chia lấy phần nguyên
* Mod: chia lấy phần dư
* >,>=,<=: Toán tử so sánh
* End:Kết thúc chương trình
** Form và các Controls thông thường
• Sắp đặt controls lên Form
Standard EXE, môi trường triển khai lập trình (IDE) cho bạn sẵn một Form tên là Form1 Muốn đặt một Control lên Form, click hình cái Control trong Toolbox rồi Drag (bấm nút trái của con chuột rồi kéo cho thành hình chữ nhật trước khi buông nút trái ra) con chuột trên Form vẽ thành cở của Control Một cách khác để đặt một control lên Form là doubleclick cái Control trong Toolbox, một hình control sẽ hiện ra trên Form
Kế đó bạn dời control đi đến chỗ mình muốn và resize nó Nếu bất cứ lúc nào bạn
không thấy Túi đồ nghề (Toolbox) nằm bên trái, bạn có thể dùng mệnh lệnh Menu
View|Toolbox để bắt nó hiện ra Có một cách khác là click lên toolbox icon trên
Trang 37toolbar chính của VB6
2.26Hình ảnh Toolbox
• Resize và di chuyển control
Khi bạn select một control (click lên nó), chung quanh control sẽ hiện ra resize handle,
8 nút đen dọc theo chu vi của control
• Alignment Grid
Để giúp bạn sắp đặt ngay ngắn các controls trên một form, VB6 cho bạn Alignment Grid Nó là những dấu đen của các hàng dọc và xuôi trên form Bạn có thể làm cho các
dấu đen của grid trên form biến mất bằng cách dùng menu command Tools | Options
để display Option Dialog, kế đó chọn Tag General và clear checkbox "Show Grid"
• TextBox
TextBox là control đuợc dùng nhiều nhất để display text và nhận keystroke của Userđể
sửa đổi text có sẵn hay cho vào text mới Property chính và default của Textbox là text,
tức là thường thường Text2.text có thể được viết tắt là Text2 Ta có thể disable (khiến
nó bất lực, không phản ứng gì hết và không cho sửa đổi) một text box bằng cách set Property Enable ra False (chữ sẽ bị mờ đi), hay Lock (không cho sửa đổi) một text box bằng cách set Property Locked ra True (chữ không bị mờ) Text có thể được Align (Alignment Property) để display bên trái, chính giữa hay bên phải của hộp nó
Trang 38
2.28Hình ảnh Textbox
• CommandButton
click lên button Event ta dùng thường nhất cho CommanButton là Click Ta dùng
Property Caption của CommandButton để enter cái gì ta muốn display trên button Nếu muốn cho phép User dùng ALT+E (đè nút Atl trong lúc bấm nút E) để generate
event click thì nhét dấu "&" trước chữ E trong Caption của button Caption sẽ display
chữ E với một gạch dưới
chọn một icon cho property Picture và set Property Style ra Graphical, thay vì
Standard
2.29 Hình ảnh CommandButtom
• Label
Mục đích chính của Label là để display, không cho User Edit như Textbox Do đó ta có thể dùng
Property Font, ForeColor và Backcolor để làm cho nó đẹp
2.30Hình ảnh Label
Trang 39• CheckBox
Property Value của CheckBox có thể là Checked (làm cho hộp vuông có dấu, bằng 1), Unchecked (làm cho hộp vuông trống không, bằng 0) hay Grayed (làm cho hộp vuông
có dấu màu nhạt, bằng 2) Một khi biết rằng CheckBox có Value bằng 1, ta có
thể đọc Caption của CheckBox để dùng nếu cần
• OptionButton
hình vuông với một gạch ở giữa như CheckBox OptionButton luôn luôn được qui tụ thành một nhóm, chứa trong một container Container là một Control có khả năng chứa các controls khác Frame, PictureBox, hay chính Form đều là Container Sau khi đặt một Container lên Form, nếu muốn để một OptionButton lên Container, trước hết ta phải Select container, rồi kế đó chọn OptionButton
OptionButton rồi Paste nó vô container kia
Trang 40
CHƯƠNG 3: THIẾT KẾ MÔ PHỎNG HỆ THỐNG
SMART HOME
3.1 Sơ đồ khối tổng quát của hệ thống
Hình 3.1: Sơ đồ khối tổng quát của hệ thống
Vì các khối điều khiển, khối giao tiếp và khối xử lý trung tâm đã được giới thiệu ở trên các phần trước, nên ở chương này chúng ta sẽ tập trung vào làm
rõ các khối cảm biến và khối chấp hành
3.2 Các khối cảm biến
Hình 3.2: Cảm biến chuyển động PIR