Tải bản đầy đủ (.docx) (46 trang)

Đồ án tốt nghiệp Điều khiển thiết bị điện bằng điện thoại di động Chuyên ngành CNTT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.8 MB, 46 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT HÀ NỘI
-----***-----

NGUYỄN THỊ HẠNH

ĐỒ ÁN TỐT NGHIỆP
CHUYÊN NGÀNH MẠNG MÁY TÍNH

ĐỀ TÀI
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN BẰNG
ĐIỆN THOẠI DI ĐỘNG
Sinh viên thực hiện

Cán bộ hướng dẫn

Nguyễn Thị Hạnh

ThS. Đặng Xuân Điệp

Hà Nội – 2018


LỜI CẢM ƠN
Trước tiên em xin gửi lời cảm ơn chân thành tới quý thầy, cô trường Đại Học Mỏ Địa Chất Hà Nội đã tận tình dạy dỗ em trong suốt những năm học vừa qua. Trong đó, phải
kể đến quý thầy, cô trong chuyên ngành Mạng Máy Tính - khoa Công Nghệ Thông Tin đã
tạo điều kiện cho em được học tập và thực hiện đồ án tốt nghiệp này. Đặc biệt, em xin gửi
lời cảm ơn sâu sắc đến giảng viên hướng dẫn của em là ThS. Đặng Xuân Điệp – giảng
viên bộ môn Mạng Máy Tính đã hết lòng giúp đỡ em trong quá trình lựa chọn đề tài và hỗ
trợ em trong suốt quá trình thực hiện đồ án.
Sau những ngày tháng học tập và làm việc dưới sự giúp đỡ, chỉ dẫn từ phía Thầy, bản thân


em đã đúc kết, tiếp thu, học hỏi được những kiến thức, kinh nghiệm quý báu để hoàn thành
đồ án này. Vì thời gian hạn hẹp và trình độ hiểu biết còn hạn chế, nên đồ án của em còn
nhiều thiếu sót, em rất mong nhận được những góp ý, sửa đổi từ phía thầy cô để đồ án của
em được hoàn thiện hơn.
Em xin chân thành cảm ơn!
Hà Nội, 4/2018

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58

Page 2


MỤC LỤC
LỜI CẢM ƠN...........................................................................................................2
MỤC LỤC................................................................................................................. 3
DANH MỤC HÌNH ẢNH.........................................................................................5
THÔNG TIN KẾT QUẢ NGHIÊN CỨU ĐỒ ÁN....................................................6
LỜI MỞ ĐẦU...........................................................................................................7
CHƯƠNG 1: TÌM HIỂU VỀ ARDUINO..................................................................8
I.

TỔNG QUAN VỀ ARDUINO........................................................................8
1. Khái niệm Arduino.......................................................................................8
2. Thành phần của Arduino..............................................................................8

II.

ĐẶC TÍNH VÀ ỨNG DỤNG CỦA ARDUINO........................................10

1. Ưu điểm - nhược điểm của Arduino...........................................................10

2. Ứng dụng của Arduino...............................................................................10
CHƯƠNG 2: MODULE WIFI ESP 8266 VÀ MODULE RƠ-LE...........................12
I.

MODULE WIFI ESP 8266............................................................................12
1. Khái niệm...................................................................................................12
2. Thông số kỹ thuật của ESP 8266................................................................12
4. Sơ đồ chân và chức năng............................................................................13
5. Các chế độ boot up của ESP8266...............................................................16

II.

MODULE RƠ-LE......................................................................................16

1. Tổng quan về rơ-le.....................................................................................16
2. Module Rơ-le.............................................................................................17
3. Cách sử dụng Rơle.....................................................................................18
CHƯƠNG 3: LẬP TRÌNH ARDUINO...................................................................19
I.

CÀI ĐẶT ARDUINO IDE............................................................................19
1. Cài đặt chương trình Arduino IDE.............................................................19
2. Giao diện của phần mềm Arduino IDE......................................................21
3. Cài đặt Arduino IDE để nạp code cho ESP8266........................................23

II.

LẬP TRÌNH ARDUINO............................................................................24

1. Cấu trúc của một chương trình trong IDE..................................................24

2. Một số hàm, câu lệnh thường gặp..............................................................26

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58

Page 3


3. Hướng dẫn sử dụng phần mềm Arduino IDE.............................................27
CHƯƠNG 4: CÁC MÔ HÌNH LẬP TRÌNH VỚI ESP8266...................................32
I.

SỬ DỤNG FIRMWARE CÓ SẴN GIAO TIẾP AT COMMAND................32
1. Nguyên lý hoạt động..................................................................................32
2. Tập lệnh AT cơ bản....................................................................................33

II.

LẬP TRÌNH TRỰC TIẾP TRÊN CHIP ESP8266......................................33

1. Nguyên lý hoạt động..................................................................................33
2. Đặc điểm của quá trình lập trình trên chip ESP8266..................................34
III.

LẬP TRÌNH ESP 8266 SỬ DỤNG ARDUINO IDE.................................37

1. Nguyên lý hoạt động..................................................................................37
2. Các hàm chuẩn...........................................................................................38
IV.

SO SÁNH CÁC MÔ HÌNH LẬP TRÌNH ESP 8266..................................40


CHƯƠNG 5: ĐIỀU KHIỂN THIẾT BỊ ĐIỆN BẰNG ESP 8266 THÔNG QUA
ĐIỆN THOẠI DI ĐỘNG........................................................................................41
I.

XÂY DỰNG MÔ HÌNH HỆ THỐNG ĐIỆN................................................41
1. Mô tả hệ thống điện....................................................................................41
2. Sơ đồ hệ thống điều khiển..........................................................................41
3. Thiết bị phần cứng.....................................................................................41

II.

CHƯƠNG TRÌNH ĐIỀU KHIỂN BOARD ARDUINO............................41

III.

MÔ PHỎNG QUÁ TRÌNH ĐIỀU KHIỂN................................................45

KẾT LUẬN.............................................................................................................46
TÀI LIỆU THAM KHẢO.......................................................................................47

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58

Page 4


DANH MỤC HÌNH ẢNH
Hình 1.1 Board Arduino.................................................................................................8
Hình 1.2 Chi tiết mạch Arduino Uno.............................................................................9
Hình 2.1 Sơ đồ bảng mạch ESP 8266..........................................................................13

Hình 2.2 Sơ đồ vẽ chân ESP 8266...............................................................................14
Hình 2.3 Board ESP8266.............................................................................................15
Hình 2.4 Sơ đồ khối của Rơ – le điện từ......................................................................17
Hình 2.5 Module Rơ – le kiểu mẫu..............................................................................17
Hình 3.1 Trang chủ của Arduino..................................................................................19
Hình 3.2 Màn hình của phần Download......................................................................19
Hình 3.3 Màn hình download Arduino IDE 1.8.5........................................................20
Hình 3.4 Màn hình trang download phần mềm............................................................20
Hình 3. 5 Giao diện phần mềm IDE.............................................................................21
Hình 3.6 Các lệnh trên thanh công cụ của phần mền Ardunio IDE..............................21
Hình 3.7 Menu File......................................................................................................22
Hình 3.8 Menu Tools...................................................................................................22
Hình 3.9 Cài đặt Arduino IDE để nạp code cho ESP8266...........................................23
Hình 3.10 Cài đặt Arduino IDE để nạp code cho ESP8266 (tiếp theo)........................23
Hình 3.11 Cài đặt Arduino IDE để nạp code cho ESP8266 (tiếp theo)........................24
Hình 3.12 Cài đặt Arduino IDE để nạp code cho ESP8266 (tiếp theo)........................24
Hình 3.13 Cấu trúc của một chương trình Arduino IDE..............................................25
Hình 3.14 Hàm void setup().........................................................................................25
Hình 3.15 Hàm void loop()..........................................................................................26
Hình 3.16 Kết nối Arduino Uno R3 với máy tính qua cáp USB..................................28
Hình 3.17 Xác định cổng kết nối của Arduino với máy tính........................................29
Hình 3.18 Nạp thử chương trình mẫu Arduino IDE.....................................................30
Hình 3.19 Mã nguồn Blink trong Arduino IDE............................................................31
Hình 4.1 Nguyên lý hoạt động sử dụng firmware có sẵn giao tiếp AT command.......32
Hình 4.2 Cấu trúc thư mục của Non-OS SDK.............................................................35
Hình 4.3 Cấu trúc thư mục của RTOS SDK.................................................................36
Hình 4.4 Mô hình sử dụng IDE của Adruino lập trình cho Esp8266............................38
Hình 5.1 Sơ đồ hệ thống điều khiển.............................................................................41
SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58


Page 5


THÔNG TIN KẾT QUẢ NGHIÊN CỨU ĐỒ ÁN
1. Thông tin chung
Đề tài: điều khiển thiết bị điện bằng điện thoại di động.
Giảng viên hướng dẫn: ThS. Đặng Xuân Điệp.
Sinh viên thực hiện: Nguyễn Thị Hạnh – Mã sinh viên: 1321050519.
Lớp: Mạng Máy Tính Khóa 58 – Khoa: Công nghệ thông tin.
Trường: Đại học Mỏ - Địa Chất Hà Nội. – Hệ đào tạo: Đại học chính quy.
Điện thoại: 01683608321.
Gmail:
Năm thực hiện đồ án: Năm 2018.

2. Mục tiêu
Tìm hiểu về board mạch arduino, ESP8266, role... Các linh kiện liên quan và ứng dụng mô
hình sử dụng board mạch vi điều khiển để điều khiển thiết bị điện với lập trình arduino.
Tìm hiểu, nắm rõ các khái niệm, nền tảng, quy trình hoạt động… để điều khiển thiết bị điện
bằng điện thoại di động với role thông qua ESP 8266.

3. Nội dung chính
Đồ án gồm 5 chương:
Chương 1: Tìm hiểu về Arduino.
Chương 2: Module Wifi ESP8266 và module Rơle.
Chương 3: Lập trình Arduino.
Chương 4: Các mô hình lập trình với ESP8266.
Chương 5: Điều khiển thiết bị điện bằng ESP8266 thông qua điện thoại di động.

4. Kết quả chính đạt được
Nghiên cứu lý thuyết về vi điều khiển, mạch điện tử công nghệ mới. Đặc biệt là Arduino,

ESP8266 và module Rơle.
Triển khai thực hiện điều khiển thiết bị điện bằng vi mạch điện tử: tắt mở các thiết bị bằng
Arduino: như đèn led, điều khiển tốc độ sáng, phản ứng chạy của đèn led.
Học được phương pháp lập trình mới: lập trình vi điều khiển (cụ thể: lập trình ArduinoESP8266).
Sản phẩm mô phỏng là ứng dụng điều khiển hai role qua điện thoại di động thông qua
module ESP 8266.

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58

Page 6


LỜI MỞ ĐẦU
Công nghệ thông tin và công nghệ tự động hóa đang là hai lĩnh vực có tốc độ phát
triển rất mạnh mẽ, đạt được nhiều thành tựu đáng kể trong thời gian gần đây. Chính vì
những yếu tố đó mà kinh tế phát triển nên nhu cầu của con người cũng được nâng cao, việc
điều khiển một cách tự động và hệ thống hóa các thiết bị trong gia đình là sự ưu tiên hàng
đầu.
Cùng với xu hướng phát triển của thế giới, Việt Nam trong thời gian gần đây cũng đã từng
bước phát triển hệ thống nhà thông minh điều khiển bằng các thiết bị Smartphone hay
Webserver. Hệ thống nhà thông minh đang được ưu tiên và phát triển rộng rãi. Một trong
những yếu tố quan trọng và nền móng dể hướng đến phát triển với một ngôi nhà thông
minh hiện nay là một hệ thống điều khiển các thiết bị thông minh mà không phụ thuộc vào
phạm vi khoảng cách.
Như chúng ta cũng đã biết, gần như các thiết bị tự động trong nhà máy, trong đời sống của
các gia đình ngày nay đều hoạt động độc lập với nhau, mỗi thiết bị có một quy trình sử
dụng khác nhau tuỳ thuộc vào sự thiết lập, cài đặt của người sử dụng. Chúng chưa có một
sự liên kết nào với nhau về mặt dữ liệu. Nhưng đối với hệ thống điều khiển thiết bị điện
thông qua hệ thống điều khiển bằng điện thoại di động thì lại khác. Ở đây, các thiết bị điều
khiển tự động được kết nối với nhau thành một hệ thống hoàn chỉnh qua một một thiết bị

trung tâm và có thể giao tiếp với nhau về mặt dữ liệu. Điều khiển thiết bị bằng điện thoại di
động là một ứng dụng mang tính hiện đại và có giá trị thực tiễn cao. Với chỉ một chiếc điện
thoại di động trên tay, bất cứ ở đâu hay đang làm gì thì vẫn có thể quản lý, giám sát và điều
khiển được các thiết bị điện trong gia đình. Qua đây cho thấy giải pháp điều khiển thiết bị
thông qua điện thoại di động là một giải pháp hữu dụng trong thực tiễn hiện nay.
Chính những nhu cầu thực tiễn này, em đã lựa chọn đề tài tốt nghiệp nghiên cứu về việc
“điều khiển thiết bị điện bằng điện thoại di động”, đây là một đề tài mà đáp ứng được
thực tiễn cao từ phía người sử dụng, có tính khả thi và phù hợp với xu thế của nhân loại.

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58

Page 7


CHƯƠNG 1: TÌM HIỂU VỀ ARDUINO
I.

TỔNG QUAN VỀ ARDUINO
1. Khái niệm Arduino

Arduino là một nền tảng thiết bị điện tử mã nguồn mở được sử dụng để xây dựng
các ứng dụng điện tử. Nói cách khác, Arduino là một board mạch vi xử lý được dùng để lập
trình tương tác với các thiết bị phần cứng (như cảm biến, động cơ, đèn hoặc các thiết bị
khác).

Hình 1.1 Board Arduino
Arduino ra đời tại thị trấn Ivrea thuộc nước Ý và được đặt theo tên 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 và không
ngừng mở rộng trong những năm qua với nhiều nhà sản xuất và nhà phân phối trên toàn thế
giới.


5. Thành phần của Arduino
Arduino gồm hai phần: Phần cứng gồm một board mạch mã nguồn mở (vi điều
khiển): có thể lập trình được. Hiện phần cứng của Arduino có tất cả 6 phiên bản, tuy nhiên
phiên bản được sử dụng nhiều nhất là Arduino Uno và Arduino Mega. Phần mềm để lập
trình cho mạch Arduino là phần mềm IDE (Integrated Development Environment) dùng để
soạn thảo, biên dịch code và nạp chương cho board: đây là phần mềm mã nguồn mở và có
thể được download từ trang web của Arduino: arduino.cc.
Cổng cắm USB: dùng để kết nối với cap USB, đây là cổng giao tiếp để upload code từ PC
lên vi điểu khiển. Đồng thời nó cũng là giao tiếp serial để truyền dữ liệu giữa vi điểu khiển
với máy tính.
SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58

Page 8

Hình 1.2 Chi tiết mạch Arduino Uno


Cổng cấp nguồn điện: để chạy Arduino thì có thể lấy nguồn từ cổng USB ở trên, nhưng
không phải lúc nào cũng có thể cắm với máy tính được. Cổng cấp nguồn điện nhằm sử
dụng nguồn điện bên ngoài như pin, bình acquy hay các adapter cho board Arduino hoạt
động. Nguồn điện cấp vào cổng này là nguồn DC có hiệu điện thế từ 6V đến 20V, tuy nhiên
hiệu điện thế tốt nhất mà nhà sản xuất khuyên dùng là từ 7 đến 12V.
Chân tín hiệu Analog (0-5): Các chân này lấy tín hiệu Analog (tín hiệu tương tự) từ cảm
biến để IC Atmega 328 xử lý. Có tất cả 6 chân lấy tín hiệu Analog, từ A0 đến A5.
Chân cấp nguồn cho cảm biến: Các chân này dùng để cấp nguồn cho các thiết bị bên
ngoài như role, cảm biến… trên khu vực này có sẵn các chân GND (chân nối đất, chân âm),
chân 5V, chân 3.3V như được thể hiện ở hình 1.2. Nhờ những chân này mà người sử dụng
không cần thiết bị biến đổi điện khi cấp nguồn cho cảm biến, role… Ngoài ra trên khu vực
này còn có chân Vin (nguồn vào) và chân reset. Tuy nhiên các chân này thường ít được

sử dụng.
IC điều khiển ATmega 328: là linh hồn của board mạch Arduino Uno, IC này được sử
dụng trong việc thu thập dữ liệu từ cảm biến, xử lý dữ liệu, xuất tín hiệu ra…
Chân ICSP (In-Circuit Serial Programming) của ATmega 328: Các chân ICSP của
ATmega 328 được sử dụng cho các giao tiếp SPI (Serial Peripheral Interface), một số ứng
dụng của Arduino có sử dụng chân này, ví dụ như sử dụng module RFID RC522 với
Arduino hay Ethernet Shield với Arduino.
Nút reset: sử dụng để reset lại chương trình đang chạy. Đôi khi chương trình chạy gặp lỗi,
người dùng có thể reset lại chương trình.
SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58

Page 9


Chân tín hiệu số (2-13) những chân có dấu ~ là những chân có thể băm xung (PWM), tức
có thể điều khiển tốc độ động cơ hoặc độ sáng của đèn. Hình 1.2 thể hiện rất rõ những chân
để băm xung này.
Pin điện áp tham chiếu (AREF Pin).

II.

ĐẶC TÍNH VÀ ỨNG DỤNG CỦA ARDUINO
1. Ưu điểm - nhược điểm của Arduino

Hiện tại ở Việt Nam và trên thế giới cũng có nhiều board mạch vi điều khiển khác
nhau. Tuy nhiên Arduino có một số ưu điểm mà khiến nó trở nên nổi tiếng và hiện đang
được sử dụng rộng rãi. Các ưu điểm đó là: Rẻ, dễ mua, đơn giản và nhanh (rất dễ dàng lắp
ráp, lập trình và sử dụng thiết bị), Arduino chạy trên đa nền tảng (lập trình Arduino có thể
thực hiện trên nhiều hệ điều hành khác nhau như Windows, Mac OS, Linux, Android). Hơn
thế ngôn ngữ lập trình đơn giản, dễ hiểu (ngôn ngữ tương tự như C++). Nền tảng mở:

Arduino được phát triển trên nguồn mở nên phần mềm chạy trên Arduino được chia sẻ dễ
dàng và tích hợp vào các nền tảng khác nhau. Dễ dàng chia sẻ: mọi người dễ dàng chia sẻ
mã nguồn với nhau mà không lo lắng về ngôn ngữ hay hệ điều hành mình đang sử dụng.
Khả năng kết nối của board mạch Arduino cao: có thể hoạt động độc lập cũng có thể kết nối
với một máy tính. Máy tính ấy sẽ được phép truy cập dữ liệu cảm biến từ thế giới bên ngoài
và cung cấp thông tin phản hồi. Các Arduino cũng có thể kết nối với nhau. Hay Arduino có
thể kết nối với thiết bị điện tử, chip điều khiển khác nên việc mở rộng phần cứng cũng dễ
dàng hơn.
Tuy nhiên, Arduino cũng có những nhược điểm nhất định như ảnh hưởng đến kích thước
dự án ví dụ như board mạch Arduino Due với kích thước 101.5×53.5mm, không quá to,
nhưng khi đặt vào một mô hình điện tử đơn giản thì nó cũng sẽ chiếm vị trí khá ngốn so với
mô hình. Ngoài ra, đòi hỏi người sử dụng có kiến thức nhất định về điện, điện tử và hướng
lập trình đối tượng mới có thể sử dụng tốt các board mạch vi điều khiển.

6. Ứng dụng của Arduino
Làm Robot: Arduino có khả năng đọc các thiết bị cảm biến, điều khiển động cơ nên thường
được dùng để làm bộ xử lý trung tâm của rất nhiều loại robot.
Game tương tác: Arduino có thể được sử dụng để tương tác với Joystick, màn hình… khi
chơi các game như Tetrix, phá gạch, Mario…
Máy bay không người lái, làm máy in 3D, làm đàn bằng ánh sáng, làm lò nướng bánh biết
đưa ra tín hiệu kêu để báo hiệu khi bánh chín.
Điều khiển các thiết bị điện, thiết bị cảm biến ánh sáng, âm thanh. Điều khiển đèn tín hiệu
giao thông, làm hiệu ứng đèn Led nhấp nháy trên các biển quảng cáo…
Khai thác trí sáng tạo, tìm tòi, học hỏi của con người. Ngoài ra, Arduino còn rất nhiều ứng
dụng hữu ích khác tùy vào sự sáng tạo và mục đích của người dùng.

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58

Page 10



CHƯƠNG 2: MODULE WIFI ESP 8266 VÀ MODULE RƠ-LE
I.

MODULE WIFI ESP 8266
1. Khái niệm

ESP 8266 là một mạch vi điều khiển nhằm điều khiển các thiết bị điện tử được sản
xuất bởi một công ty bán dẫn Trung Quốc: Espressif Systems. ESP 8266 là một dòng chip
tích hợp cao – System on chip, có khả năng xử lý lưu trữ tốt cung cấp khả năng vượt

trội để trang bị thêm tính năng wifi trong hệ thống khác hoặc đóng vai trò như một
giải pháp độc lập.
7. Thông số kỹ thuật của ESP 8266
ESP8266 cung cấp khả năng kết nối wifi đầy đủ khép kín có thể dùng nó để tạo một
web server đơn giản hoặc sử dụng accsess point. Module ESP8266 là module wifi giá rẻ và
được đánh giá rất cao cho các ứng dụng liên quan đến Internet và Wifi cũng như các ứng
dụng truyền nhận sử dụng thay thế cho các module RF khác với khoảng cách truyền lên tới
100 mét (Môi trường không có vật cản) và trên 400m với anten và router thích hợp.
Thông số kỹ thuật của ESP 8266:
- Hỗ trợ chuẩn 802.11 b/g/n.
- Wi-Fi 2.4 GHz, hỗ trợ WPA/WPA2.
- Chuẩn điện áp hoạt động: 3.3V.
- Chuẩn giao tiếp nối tiếp UART với tốc độ Baud lên đến 115200.
- Có 3 chế độ hoạt động: Client, Access Point, Both Client and Access Point.
- Hỗ trợ các chuẩn bảo mật như: OPEN, WEP, WPA_PSK, WPA2_PSK,
WPA_WPA2_PSK.
- Hỗ trợ cả 2 giao tiếp TCP và UDP.
- Làm việc như các máy chủ có thể kết nối với 5 máy con.
- LED chỉ báo truyền nhận TX / RX.


8. Phân loại module ESP
Ngoại trừ module ESP-WROOM-02 được phát triển bởi chính Espressif cho mục
đích nghiên cứu các tính năng của ESP8266, các module ứng dụng phổ biến hiện nay của
ESP8266 đều được phát triển bởi công ty AI-Thinker. Hiện tại có khá nhiều module khác
nhau cho ESP8266 được sản xuất bởi công ty AI-Thinker.
Đặc điểm khác nhau giữa các module này bao gồm:
- Loại anten sử dụng (PCB anten, chip anten hoặc gắn anten ngoài).
- Dung lượng của chip Flash SPI trên board.
- Kích thước board của module.
- Có gắn khung nhôm chống nhiễu hay không.
SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58

Page 11


-

Số lượng pin GPIO đưa ra chân kết nối.

Hiện tại AI-Thinker sản xuất 14 loại module cho ESP từ module ESP-01 đến ESP-14. Ở thị
trường VN thì 3 module là ESP-01, ESP-07 và ESP-12F khá phổ biến.

9. Sơ đồ chân và chức năng

Hình 2.1 Sơ đồ bảng mạch ESP 8266

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58

Page 12



Hình 2.2 Sơ đồ vẽ chân ESP 8266
Chip ESP 8266 được phát triển bởi Espressif để cung cấp giải pháp giao tiếp Wifi
cho các thiết bị IoT. Điểm đặc biệt của dòng ESP8266 là nó được tích hợp các mạch RF
như balun, antenna switches, TX power amplifier và RX filter ngay bên trong chip với kích
thước rất nhỏ chỉ 5x5mm nên các board sử dụng ESP8266 không cần kích thước board lớn
cũng như không cần nhiều linh kiện xung quanh. Ngoài ra, giá thành của ESP8266 cũng đủ
để hấp dẫn các nhà phát triển sản phẩm IoT.
Cấu trúc phần cứng của dòng chip ESP8266 có thể tóm tắt như sau:
- Sử dụng 32-bit MCU core có tên là Tensilica.
- Tốc độ system clock có thể set ở 80MHz hoặc 160MHz.
- Không tích hợp bộ nhớ Flash để lưu chương trình.
- Tích hợp 50KB RAM để lưu dữ liệu ứng dụng khi chạy.
- Có đầy đủ các ngoại vi chuẩn đê giao tiếp như 17 GPIO, 1 Slave SDIO, 3 SPI, 1
I2C, 1 I2S, 2 UART, 2 PWM.
- Tích hợp các mạch RF để truyền nhận dữ liệu ở tần số 2.4GHz.
- Hỗ trợ các hoạt động truyền nhận các IP packages ở mức hardware như
Acknowledgement, Fragmentation và Defragmentation, Aggregation, Frame
Encapsulation… (và phần stack TCP/IP sẽ được thực hiện trên firmware của
ESP8266).
SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58

Page 13


-

Do không hỗ trợ bộ nhớ Flash nên các board sử dụng ESP8266 phải gắn thêm chip
Flash bên ngoài và thường là Flash SPI để ESP8266 có thể đọc chương trình ứng

dụng với chuẩn SDIO hoặc SPI.

Dưới đây là mạch nguyên lý đầy đủ cho ESP8266:

Board ESP8266 chỉ cần thạch anh và SPI flash chip và vài linh kiện điện trở rất đơn giản.
Hìnhvào
2.3board
Board
Do đó việc tích hợp giao tiếp Wifi
ứngESP8266
dụng với ESP8266 rất dễ dàng và nhanh
chóng. Công ty Espressif cũng cung cấp khá đầy đủ tài liệu và software tools để các nhà
phát triển sản phẩm có thể nhanh chóng làm quen và phát triển ứng dụng với ESP8266. Có
thể tải về từ trang:
/>Về mô hình lập trình ứng dụng với ESP8266, chúng ta có thể chia làm 2 loại như sau:
- Sử dụng firmware được cung cấp bởi Espressif và giao tiếp thông qua AT
commands.
- Lập trình firmware trực tiếp vào ESP8266 sử dụng bộ thư viện SDK cung cấp
bởi Espressif.

10.Các chế độ boot up của ESP8266

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58

Page 14


Do ESP8266 không tích hợp Flash bên trong chip để lưu code ứng dụng nên chúng
ta phải lưu code ứng dụng trong bộ nhớ ngoài bao gồm chip SPI Flash hoặc SDCard.
Chúng ta có thể kết nối 1 số chân GPIO để báo cho ESP8266 nơi lưu code ứng dụng để từ

đó ESP8266 có thể đọc code và thực thi.

Các chế độ boot up của ESP và cấu hình chân GPIO tương ứng như sau:

Chân MTD0 chính là chân GPIO15 của ESP8266. Chúng ta có thể kết nối điện trở kéo
lên/kéo xuống hoặc dùng nút nhấn... trên board tạo tín hiệu High/Low cho các chân để chọn
bộ nhớ chứa code trên board mà ESP8266 có thể đọc vào và thực thi (ví dụ như SPI Flash
chip, SDCard). Ngoài ra ESP8266 còn chế độ cho phép truyền code ứng dụng từ máy tính
thông qua UART và lưu vào bộ nhớ SPI Flash trên board. Chúng ta sẽ dùng chế độ này để
nạp code mới cho các board ESP8266.

III.

MODULE RƠ-LE
1. Tổng quan về rơ-le

Rơ-le là một loại thiết bị điện tự động mà tín hiệu đầu ra thay đổi nhảy cấp khi tín
hiệu đầu vào đạt những giá trị xác định. Rơle là thiết bị điện dùng để đóng cắt mạch điện
điều khiển, bảo vệ và điều khiển sự làm việc của mạch điện động lực. Nói cách khác, Rơ-le
là một công tắc (khóa K). Nhưng khác với công tắc ở một chỗ cơ bản, rơ-le được kích hoạt
bằng điện thay vì dùng tay người.
Rơle gồm có 3 bộ phận (các khối) chính:
Cơ cấu tiếp thu (khối tiếp thu): Có nhiệm vụ tiếp nhận những tín hiệu đầu vào và biến đổi
nó thành đại lượng cần thiết cung cấp tín hiệu phù hợp cho khối trung gian.
Cơ cấu trung gian (khối trung gian): Làm nhiệm vụ tiếp nhận những tín hiệu đưa đến từ
khối tiếp thu và biến đổi nó thành đại lượng cần thiết cho rơle tác động.
Cơ cấu chấp hành (khối chấp hành): Làm nhiệm vụ phát tín hiệu cho mạch điều khiển.

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58


Page 15


Hình 2.4 Sơ đồ khối của Rơ – le điện từ
Ví dụ các khối trong cơ cấu rơle điện từ hình 2.4: Cơ cấu tiếp thu ở đây là cuộn dây. Cơ cấu
trung gian là mạch từ nam châm điện. Cơ cấu chấp hành là hệ thống tiếp điểm.

2. Module Rơ-le

Hình 2.5 Module Rơ – le kiểu mẫu
Một module rơ-le được tạo nên bởi 2 linh kiện thụ động cơ bản là rơ-le và transistor. Các
mức hiệu điện thế tối đa và cường độ dòng điện tối đa của đồ dùng điện khi nối vào module
rơ-le:
- 10A - 250VAC: Cường độ dòng điện tối đa qua các tiếp điểm của rơ-le với hiệu điện
thế <= 250V (AC) là 10A.
- 10A - 30VDC: Cường độ dòng điện tối đa qua các tiếp điểm của rơ-le với hiệu điện
thế <= 30V (DC) là 10A.
- 10A - 125VAC: Cường độ dòng điện tối đa qua các tiếp điểm của rơ-le với hiệu điện
thế <= 125V (AC) là 10A.
- 10A - 28VDC: Cường độ dòng điện tối đa qua các tiếp điểm của rơ-le với hiệu điện
thế <= 28V (DC) là 10A.
- SRD-05VDC-SL-C: Hiện điện thế kích tối ưu là 5V

3. Cách sử dụng Rơle
Rơ-le bình thường gồm có 6 chân. Trong đó có 3 chân để kích, 3 chân còn lại nối
với đồ dùng điện công suất cao.
3 chân dùng để kích:

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58


Page 16


+: cấp hiệu điện thế kích tối ưu vào chân này.
-: nối với cực âm.
S: chân tín hiệu, tùy vào loại module rơ-le mà nó sẽ làm nhiệm vụ kích rơ-le.
Nếu đang dùng module rơ-le kích ở mức cao và chân S cấp điện thế dương vào thì module
rơ-le sẽ được kích, ngược lại thì không. Tương tự với module rơ-le kích ở mức thấp.
3 chân còn lại nối với đồ dùng điện công suất cao:
COM: chân nối với 1 chân bất kỳ của đồ dùng điện, nhưng mình khuyên bạn nên mắc vào
đây chân lửa (nóng) nếu dùng hiệu điện thế xoay chiều và cực dương nếu là hiệu điện một
chiều.
ON hoặc NO: chân này bạn sẽ nối với chân lửa (nóng) nếu dùng điện xoay chiều và cực
dương của nguồn nếu dòng điện một chiều.
OFF hoặc NC: chân này bạn sẽ nối chân lạnh (trung hòa) nếu dùng điện xoay chiều và cực
âm của nguồn nếu dùng điện một chiều.

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58

Page 17


CHƯƠNG 3: LẬP TRÌNH ARDUINO
I.

CÀI ĐẶT ARDUINO IDE
1. Cài đặt chương trình Arduino IDE

Arduino IDE (Arduino Integrated Development Environment) là một trình soạn thảo văn
bản, giúp bạn viết code để nạp vào bo mạch arduino. Một chương trình viết bởi Arduino

IDE được gọi là sketch, sketch được lưu dưới định dạng .ino.
Truy cập trang chủ của Arduino: />
Chọn mục Software/Download
đó kéochủ
xuống
dưới trang hiện lên để chọn hệ
Hình sau
3.1 Trang
củaphía
Arduino
điều hành.

Hình 3.2 Màn hình của phần Download.

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58

Page 18


Hình 3.3 Màn hình download Arduino IDE 1.8.5.
Kích chọn hệ điều hành tương ứng sau đó download chương trình về để cài đặt. Arduino có
đưa ra hai lựa chọn: bao gồm chỉ download về (just download) và download về cùng quyên
góp (contribute and download), như được thể hiện ở hình dưới. Arduino mong muốn người
dùng nếu có điều kiện hãy quyên góp ủng hộ hãng, với các mức quyên góp khác nhau.
Cài đặt: sử dụng phiên bản mới nhất tính đến tháng 4/2018 (phiên bản Arduino IDE 1.8.5):

Sau khi load về sẽ có một file .exe. Người dùng sử dụng file đó để cài đặt.
Hình 3.4 Màn hình trang download phần mềm.

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58


Page 19


Hình 3. 5 Giao diện phần mềm IDE

2. Giao diện của phần mềm Arduino IDE
Vùng thanh công cụ:

Hình 3.6 Các lệnh trên thanh công cụ của phần mền Ardunio IDE.
Hiển thị màn hình giao tiếp với máy tính: Khi nhấp vào biểu tượng cái kính lúp thì phần
giao tiếp với máy tính sẽ được mở ra. Phần này sẽ hiển thị các thông số mà người dùng
muốn đưa lên màn hình. Muốn đưa lên màn hình phải có lệnh Serial.print() mới có thể đưa
thông số cần hiển thị lên màn hình.

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58

Page 20


Vùng viết chương trình: Vùng này để người lập trình thực hiện việc lập trình cho chương
trình của mình.
Vùng thông báo: Có chức năng thông báo các thông tin lỗi của chương trình hoặc các vấn
đề liên quan đến chương trình được lập.
Sử dụng một số menu thông dụng trên phần mềm IDE:
Menu File: ngoài những tính năng như mở một file mới hay lưu một file, phần menu này
có một mục đáng chú ý là Example. Phần Example (ví dụ) đưa ra các ví dụ sẵn để người lập
trình có thể tham khảo, giảm bớt thời gian lập trình.

Hình 3.7 Menu File

Menu Tools: Khi mới kết nối bo Arduino với máy tính ta click vào Tools/Board để chọn
loại board sử dụng. Phần mềm chọn sẵn kiểu board là board Arduino Uno.

Hình 3.8 Menu Tools

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58

Page 21


11.Cài đặt Arduino IDE để nạp code cho ESP8266
Để tiến hành cài đặt thư viện và chức năng nạp code cho IDE các bạn làm như sau:
Vào File→ Preferences, vào textbox Additional Board Manager URLs thêm đường link sau
vào:
/>Click OK để chấp nhận.

Hình 3.9 Cài đặt Arduino IDE để nạp code cho ESP8266
Tiếp theo vào Tool→Board→Boards Manager

Hình 3.10 Cài đặt Arduino IDE để nạp code cho ESP8266 (tiếp theo)
SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58

Page 22


Đợ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.

Hình 3.11 Cài đặt Arduino IDE để nạp code cho ESP8266 (tiếp theo)
Kết nối mudule USB-to-UART vào máy tính. Vào Tool→Board→Generic ESP8266

Module, chọn cổng COM tương ứng với module USB-to-UART tương ứng.

Hình 3.12 Cài đặt Arduino IDE để nạp code cho ESP8266 (tiếp theo)

IV.

LẬP TRÌNH ARDUINO
1. Cấu trúc của một chương trình trong IDE

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58

Page 23


Ngôn ngữ lập trình cho Arduino cũng tên là Arduino (được xây dựng trên ngôn ngữ C).

Hình 3.13 Cấu trúc của một chương trình Arduino IDE
Hình trên là tiêu biểu của một cấu trúc chương trình cơ bản trong Arduino, bao gồm
hai 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ự { }), các câu lệnh
trong void setup() và void loop() được chạy như sau:
Hàm void setup(): Là hàm được chạy đầu tiên mỗi khi chương trình khởi động, nhưng chỉ
chạy một lần duy nhất vào đầu trương trình, được sử dụng để khai báo các biến số, cấu hình
chân truyền/ nhận, khởi tạo giao thức truyền, hay khai báo sử dụng bộ thư viện, nếu muốn
một lệnh thực thi nào đó chỉ chạy duy nhất một lần ở đầu trương trình thì cũng có thể cho
vào hàm void setup().

Hình 3.14 Hàm void setup()

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58


Page 24


Hàm void loop(): Là hàm được khởi động ngay sau hàm void setup(), cũng chính là phần
chính và 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 3.15 Hàm void loop()

12.Một số hàm, câu lệnh thường gặp
Toán tử logic: && (và), || (hoặc), ! (phủ định), ^ (loại trừ).
Toán tử so sánh: == (bằng), != (không bằng), > (lớn hơn), < (nhỏ hơn), <= (nhỏ hơn hoặc
bằng), >= (lớn hơn hoặc bằng).
Câu lệnh

Ý nghĩa câu lệnh

#define biến chân

Define nghĩa là định nghĩa, xác định. Lệnh này nhằm
gán tên một biến vào một chân nào đó. Ví dụ #define
led 13
Dùng để tắt hoặc mở một chân ra.
Chân: led.
Trạng thái: HIGH hoặc LOW.
Có ý nghĩa dùng để băm xung (PWM), thường dùng để
điều khiển tốc độ động cơ, độ sáng led.


digitalWrite(chân, trạng thái);
analogWrite(chân, giá trị);
digitalRead(chân);
analogRead(chân);
Serial.begin();

Đọc giá trị digital tại chân muốn đọc.
Đọc giá trị analog tại chân muốn đọc.
Lệnh khởi tạo giao tiếp COM-UART trên Arduino, giúp
Arduino có 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).
Lệnh Serial.begin(); thường được đặt trong hàm void
setup() vì chỉ cần khởi tạo chạy 1 lần duy nhất trong

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58

Page 25


×