You are on page 1of 28

Trường đại học Bách Khoa Hà Nội

Viện Điện tử-Viễn thông


----------

Báo cáo
THỰC TẬP KỸ THUẬT
Đề tài: Thiết kế mạch cảm biến và truyền, nhận dữ liệu
cho hệ thống giàn nuôi tảo thông minh trên nền tảng
IOT

Sinh viên thực hiện: Nguyễn Duy Quang


MSSV : 20152956
Lớp: ĐTTT 06-K60
Nơi thực tập: SPARC Lab

***Năm học 2018-2019****

1
MỤC LỤC
MỤC LỤC...................................................................................................................... 2
DANH MỤC BẢNG BIỂU............................................................................................3
DANH MỤC HÌNH ẢNH..............................................................................................3
A. LỜI NÓI ĐẦU...........................................................................................................4
B. NỘI DUNG................................................................................................................5
CHƯƠNG 1: CHỨC NĂNG, NHIỆM VỤ VÀ CƠ CẤU CỦA SPARC LAB..........5
1.1. SPARC LAB và cơ cấu tổ chức:......................................................................5
1.2. Chức năng và nhiệm vụ:..................................................................................7
1.3. Các lĩnh vực mà SPARC Lab đang thực hiện:.................................................8
CHƯƠNG 2: NỘI DUNG THỰC TẬP....................................................................10
2.1. Cơ sở lý thuyết:.............................................................................................10
2.1.1. Khái niệm về IoT:..................................................................................10
2.1.2. Công nghệ Wifi dùng trong IoT:............................................................11
2.1.3. Thingspeak:............................................................................................12
2.2. Thiết kế mạch cảm biến và truyền, nhận dữ liệu:..........................................13
2.2.1. Yêu cầu của mạch:.................................................................................13
2.2.2. Sơ đồ khối của mạch:.............................................................................14
2.2.3. Thiết kế chi tiết từng khối:.....................................................................15
2.3. Triển khai và kết quả đạt được:.....................................................................19
2.3.1. Triển khai:..............................................................................................19
2.3.2. Kết quả đạt được:...................................................................................21
CHƯƠNG 3: NHẬN XÉT, ĐỀ XUẤT....................................................................22
3.1. Ưu điểm:.......................................................................................................22
3.2. Nhược điểm:.................................................................................................22
3.3. Những kinh nghiệm rút ra và đề xuất:...........................................................22
C. KẾT LUẬN.............................................................................................................24
PHỤ LỤC.....................................................................................................................25
TÀI LIỆU THAM KHẢO............................................................................................28

DANH MỤC BẢNG BIỂU

2
Bảng 2.1: Thông số kỹ thuật của LM1117....................................................................15
Bảng 2.2: Thông số kỹ thuật của BH1750....................................................................16
Bảng 2.3: Thông số kỹ thuật của NodeMCU................................................................17
Bảng 2.4: Thông số kỹ thuật của Module Relay...........................................................18

DANH MỤC HÌNH ẢNH


Hình 1.1. Sinh viên trên Lab...........................................................................................6
Hình 1.2. Mạch dự án Air Sensor...................................................................................7
Hình 1.3. Dự án giàn nuôi tảo thông minh......................................................................7
Hình 1.4. Máy đo không khí.....................................................................................................................9
Hình 2.1: Internet Of Things…………………………………………………………..10
Hình 2.2: Wifi và IoT....................................................................................................11
Hình 2.3: Dao diện của ThingSpeak.............................................................................12
Hình 2.4: Ứng dụng của ThingSpeak...........................................................................13
Hình 2.5: Sơ đồ khối.....................................................................................................14
Hình 2.6: IC LM1117...................................................................................................15
Hình 2.7: BH1750........................................................................................................16
Hình 2.8: NodeMCU ESP8266 CH340........................................................................17
Hình 2.9: Module Relay...............................................................................................18
Hình 2.10: Giao diện Arduino IDE...............................................................................19
Hình 2.11: Sơ đồ nối chân NodeMCU và BH1750.......................................................20
Hình 2.12: Kết quả đo ánh sáng trên ThingSpeak.........................................................20
Hình 2.13. Mạch đo cường độ ánh sáng.......................................................................21
Hình 2.14. Mạch lấy điều khiển máy bơm thông qua Relay.........................................21

A. LỜI NÓI ĐẦU

3
Trong đợt thực tập tại SPARC Lab - Signal Processing and Radio
Communications, Viện điện tử - viễn thông, đại học Bách Khoa Hà Nội, nhờ có sự
quan tâm giúp đỡ nhiệt tình của thầy, các anh, các bạn đang làm việc trên phòng
nghiên cứu đã tạo điều kiện thuận lợi nhất giúp em hoàn thành tốt nhiệm vụ thực tập
của mình. Trước khi bước vào đợt thực tập, em đã xác định rõ mục đích của đợt thực
tập này: làm quen với môi trường làm việc chuyên nghiệp, cải thiện và nâng cao các
kĩ năng mềm cần thiết cho công việc sau nay như viết báo cáo, trình bày một vấn đề,
đọc tài liệu tiếng anh, và được củng cố, nâng cao các kĩ năng chuyên ngành.
SPARC Lab là một phòng nghiên cứu được trang bị đầy đủ thiết bị và điều
kiện để phục vụ cho việc học tập và nghiên cứu. Bước vào quá trình thực tập với rất
nhiều bỡ ngỡ khó khăn đặc biệt với giao tiếp với anh chị, mọi người trong nhóm và
phải tìm và đọc những tài liệu bằng Tiếng Anh vì tài liệu bằng Tiếng Việt rất ít thông
tin về IoT và những vấn đề về công việc của em được giao. Nhưng sau một thời gian
được sự hỗ trợ và cải thiện rất nhiều những khó khăn đó. Đợt thực tập kỳ hè này đã
giúp em học được rất nhiều điều, không chỉ các kĩ năng chuyên ngành mà còn cả về
thái độ, cách giải quyết khi gặp một vấn đề khó khăn, giúp em quen với môi trường
làm việc của kỹ sư, đòi hỏi sự tập trung, nghiêm túc giúp hoàn thành công việc và
nhiệm vụ được giao. Được làm việc với các bạn và các anh cũng đã giúp em cải
thiện được các kĩ năng làm việc nhóm.
Em xin chân thành cảm ơn TS Hàn Huy Dũng đã tận tình hướng dẫn và hỗ
trợ em trong quá trình thực tập. Em cũng xin gửi lời cảm ơn đến bạn bè, cùng tập thế
các anh, các chị trong SPARC Lab đã luôn ủng hộ, giúp đỡ và tạo điều kiện cho em
hoàn thành tốt đợt thực tập này.

4
B. NỘI DUNG

CHƯƠNG 1: CHỨC NĂNG, NHIỆM VỤ VÀ CƠ CẤU CỦA SPARC LAB

1.1. SPARC LAB và cơ cấu tổ chức:


Phòng nghiên cứu xử lý tín hiệu số và truyền thông Radio - Signal Processing
and Radio Communication Laboratory ( Gọi tắt là SPARC Lab ) được thành lập vào
năm 2013 và là một trong những phòng nghiên cứu thuộc viện Điện Tử - Viễn Thông,
đại học Bách Khoa Hà Nội.
Phòng nghiên cứu được đặt tại phòng 618 tại thư viện điện tử Tạ Quang Bửu, đại
học Bách Khoa Hà Nội, số 1, Đại Cồ Việt, Hai Bà Trưng, Hà Nội.
Người thành lập và hướng dẫn của TS.Hàn Huy Dũng.
Tốt nghiệp Đại học Bách Khoa Hà Nội K41, sau đó đi nghiên cứu ở Mỹ làm chủ
yếu về 4G-LTE, Massive MIMO, Telecommunication, Digital Signal Processing.
Một số công trình nghiên cứu :
- H. D. Han and P. A. Hoeher, "Predistortion and nonlinear detection for
OFDM signals in the presence of nonlinear high power amplification,"
European Transactions on Telecommunications (ETT).Volume 18, Issue 4,
pages 411–418, June 2007.
- Huy-Dung Han, Zhi Ding, “Steepest Descent Algorithm Implementation
for Multichannel Blind Signal Recovery,” IET Communications,
6(18):3196-3203, December 2012.
- Huy-Dung Han, Chenxi Zhu, Dorin Viorel, Akira Ito, “Resource
Allocation and Beamforming Algorithm Based on Interference Avoidance
Approach for Device-to-Device Communication Underlaying LTE
Cellular Network”,Communications and Network, Vol. 5 No. 3B, 2013,
pp. 367-373.

5
Trưởng Lab kiêm trưởng nhóm Y Sinh SV.Trần Lê Lân.
Công việc trên Lab:
- Người nắm dữ và thu thập thông tin chung của Lab, báo cáo công việc
chung của Lab cho TS Hàn Huy Dũng.
- Người phụ trách cho dự án y sinh trong Lab.
- Hướng dẫn và phân chia công việc cho những thực tập sinh mới vào
nhóm y sinh.
- Báo cáo tiến độ của nhóm Y Sinh hàng tuần cho TS Hàn Huy Dũng.
Kỹ năng:
- Có kiến thức chuyên ngành cao đặc biệt là chuyên về xử lý số tín hiệu,
thông tin số, và một số kiến thức khác liên quan đến lĩnh vực HealthCare
trong Lab.
- Sử dụng Tiếng Anh thành thạo, khả năng giao tiếp tốt.

Hiện tại, SPARC Lab đang có 30 sinh viên đang theo học tập và nghiên cứu trên
nhiều lĩnh vực, dữ án khác nhau dưới sự hướng dẫn của TS Hàn Huy Dũng.

Hình 1.1. Sinh viên trên Lab

6
1.2. Chức năng và nhiệm vụ:
SPARC Lab được thành lập với mục đích ban đầu ra để tập hợp lại thành một
nhóm những người làm đồ án 1,2,3 và đồ án tốt nghiệp, giúp họ có được môi trường
giao tiếp và làm việc một cách chuyên nghiệp. Sau này phát triển lên thành một phòng
Lab không chỉ làm đồ án nữa mà còn chuyển sang nghiên cứu về nhiều đề tài khoa học
với mục tiêu là tạo ra được thứ có thể hữu ích và tốt cho con người.
Một số dự án mà SPARC Lab đang thực hiện:

Hình 1.2. Mạch dự án Air Sensor

Hình 1.3. Dự án giàn nuôi tảo thông minh

7
1.3. Các lĩnh vực mà SPARC Lab đang thực hiện:
Trí tuệ nhân tạo và học máy (Machine learning):
- Trí tuệ nhân tạo – Artificial Intelligence (AI) và Công nghệ học máy –
Machine Learning (ML) là hai xu hướng công nghệ được phát triển mạnh
mẽ trong thời gian gần đây. Các hãng công nghệ lớn như Google,
Facebook, Amazon, Microsoft... đều đầu tư rất lớn vào lĩnh vực này và
đã tạo ra nhiều sản phẩm hữu ích phục vụ con người.
- Thực hiện cùng thầy Dương Bá Hồng Thuận (tốt nghiệp Tiến sĩ tại Đại
học Oregon, Mỹ).
- Phát triển các thuật toán sử dụng machine learning trong các ứng dụng
cho Y tế, điều khiển, có sử dụng FPGA.
Mảng viễn thông:
- Công nghệ đa ăng-ten (MIMO) đang trở nên trưởng thành đối với truyền
thông không dây và đã được tích hợp vào các chuẩn băng rộng không dây
như LTE và Wi-Fi. Về cơ bản, càng nhiều ăng-ten máy phát / máy thu
được trang bị càng nhiều thì đường dẫn tín hiệu càng tốt và hiệu suất
càng tốt về tốc độ dữ liệu và độ tin cậy của liên kết. Giá phải trả là tăng
độ phức tạp của phần cứng (số lượng bộ khuếch đại RF frontend) và mức
độ phức tạp và tiêu thụ năng lượng.
- Thực hiện các thuật toán xử lý tín hiệu viễn thông OFDM, Massive
MIMO (5G) trên Matlab. Thử nghiệm các thuật toán đó trên board
Software Defined Radio(USRP/gnuradio) hoặc Kit FPGA.
Mảng điện tử công suất:
- Thiết kế chế tạo xe lăn điện cho người tàn tật. Nghiên cứu và khai thác
những ứng dụng của cảm biến gia tốc, con quay hồi chuyển trên
Smartphone và thiết kế các hệ thống cân bằng dùng con quay hồi chuyển.

8
Mảng HealthCare:
- Nghiên cứu và thiết kế các thiết bị cầm tay như đo điện tâm đồ, huyết áp,
Spo2... và kết nối với Smartphone.

Hình 1.4. Máy đo không khí


Các hệ thống Internet of Things:
- Hệ thống đo chất lượng không khí (PM2.5).
- Hệ thống đo dòng điện, điện áp.
Một số dự án kết hợp với các lab hoặc các công ty bên ngoài:
- Hệ thống Touch Screen, hệ thống cảnh báo cháy NS2 cho bệnh viện.

9
CHƯƠNG 2: NỘI DUNG THỰC TẬP

2.1. Cơ sở lý thuyết:

2.1.1. Khái niệm về IoT:

Hình 2.1: Internet Of Things

IoT là khái niệm còn rât mới mẻ đối với nhiều người, nhưng ứng dụng của nó
vào các hoạt động của con người thì rất phong phú và hữu ích. “Mạng lưới vạn vật
kết nối Internet hoặc là Mạng lưới thiết bị kết nối Internet viết tắt là IoT(Internet of
Things) là một kịch bản của thế giới, khi mà mỗi đồ vật, con người được cung cấp một
định danh của riêng mình, và tất cả có khả năng truyền tải, trao đổi thông tin, dữ
liệu qua một mạng duy nhất mà không cần đến sự tương tác trực tiếp giữa người với
người, hay người với máy tính. IoT đã phát triển từ sự hội tụ của công nghệ không dây,
công nghệ vi cơ điện tử và Internet[1].
Hệ thống IoT cho phép vật được cảm nhận hoặc được điều khiển từ xa thông
qua hạ tầng mạng hiện hữu, tạo cơ hội cho thế giới thực được tích hợp trực tiếp hơn
vào các hệ thống điện toán, hệ quả là hiệu năng, độ tin cậy và lợi ích kinh tế được tăng
cường bên cạnh việc giảm thiểu sự can thiệp của con người.
Chúng ta có thể hiểu một cách đơn giản IoT là tất cả các thiết bị có thể kết nối
với nhau. Việc kết nối có thể qua Wifi, 3G, 4G, Bluetooth… các thiết bị có thể là điện
thoại thông minh, tai nghe, thậm chí cả tivi, tủ lạnh, bóng đèn…

10
2.1.2. Công nghệ Wifi dùng trong IoT:

Hình 2.2: Wifi và IoT

Định nghĩa và đặc điểm:


Wi-Fi viết tắt từ Wireless Fidelity hay mạng 802.11 là hệ thống mạng không dây
sử dụng sóng vô tuyến, giống như điện thoại di động, truyền hình và radio.
Tên gọi 802.11 bắt nguồn từ viện IEEE (Institute of Electrical and Electronics
Engineers). Viện này tạo ra nhiều chuẩn cho nhiều giao thức kỹ thuật khác nhau, và nó
sử dụng một hệ thống số nhằm phân loại chúng; 6 chuẩn thông dụng của WiFi hiện nay
là 802.11a/b/g/n/ac/ad.
Các sóng vô tuyến sử dụng cho WiFi gần giống với các sóng vô tuyến sử dụng
cho thiết bị cầm tay, điện thoại di động và các thiết bị khác. Nó có thể chuyển và nhận
sóng vô tuyến, chuyển đổi các mã nhị phân 1 và 0 sang sóng vô tuyến và ngược lại.
Tuy nhiên, sóng WiFi có một số khác biệt so với các sóng vô tuyến khác ở chỗ:
Chúng truyền và phát tín hiệu ở hai dải tần số 2.4 GHz hoặc 5 GHz. Tần số này cao
hơn so với các tần số sử dụng cho điện thoại di động, các thiết bị cầm tay và truyền
hình. Tần số cao hơn cho phép tín hiệu mang theo nhiều dữ liệu hơn.

11
2.1.3. Thingspeak:
ThingSpeak là một ứng dụng Internet (IET) và API nguồn mở (IoT) để lưu trữ
và lấy dữ liệu từ những thứ bằng cách sử dụng giao thức HTTP qua Internet hoặc thông
qua mạng cục bộ. ứng dụng theo dõi vị trí và mạng xã hội của những thứ có cập nhật
trạng thái.
ThingSpeak ban đầu được đưa ra bởi ioBridge vào năm 2010 như một dịch vụ
hỗ trợ các ứng dụng IoT.
ThingSpeak đã tích hợp hỗ trợ từ phần mềm tính toán số MATLAB từ
MathWorks, cho phép người dùng ThingSpeak phân tích và trực quan hóa dữ liệu đã
tải lên bằng cách sử dụng Matlab mà không yêu cầu mua giấy phép Matlab từ
Mathworks.
ThingSpeak có mối quan hệ chặt chẽ với MathWorks , Inc. Trong thực tế, tất cả
các tài liệu ThingSpeak được đưa vào tài liệu Matlab của MathWorks trang web và
thậm chí cho phép đăng ký MathWorks tài khoản người dùng thông tin đăng nhập là
hợp lệ trên trang web ThingSpeak. Các điều khoản dịch vụ và chính sách bảo mật của
ThingSpeak.com là giữa người dùng đồng ý và Mathworks, Inc[2].

Hình 2.3: Dao diện của ThingSpeak.

12
Thingspeak là một cloud sevice khá phổ biến trong cộng đồng IoT, được ứng
dụng rộng rãi trong các hệ thống IoT. Với dao diện thông minh và hỗ trợ người dung có
thể theo dõi trực tiếp dữ liệu được gửi lên, và có thể lấy dữ liệu được gửi lên đó để có
thể xử lý.

Hình 2.4: Ứng dụng của ThingSpeak

2.2. Thiết kế mạch cảm biến và truyền, nhận dữ liệu:

2.2.1. Yêu cầu của mạch:


Yêu cầu chức năng:
Mạch phải đo đạc được chỉ số cường độ ánh sáng môi trường. Sau khi đo, bộ
thiết bị cần phải được kết nối internet để gửi dữ liệu đo được lên server lưu trữ và gửi
về ứng dụng di động cho người sử dụng theo dõi.
Độ chính xác của mạch đo phải <10%. Chu kỳ gửi và nhận dữ liệu là 10p.
Mạch có thể hoạt động ở chế độ tự động. Mạch sẽ tự động điều khiển thiết bị
như máy bơm sao cho đảm bảo môi trường sống tối ưu của tảo.
Mạch phải hoạt động ổn định liên tục trong vòng sáu tháng và 24/7.
Tiêu thụ năng lượng thấp.

13
Yêu cầu phi chức năng:
Bộ thiết bị phần cứng phải nhỏ gọn, có thể đặt vừa trong hộp nhựa có kích thước
10 cm x 20 cm x 5 cm. Hơn nữa, thiết bị phải dễ dàng tháo lắp phục vụ cho quá trình
lắp đặt sửa chữa. Hộp chứa mạch và chứa cảm biến cần phải chống nước tốt để bảo vệ
mạch khỏi các tác động xấu từ môi trường. Đảm bảo tiêu chuẩn chống nước IP 67.
Về cơ khí, hệ thống phải đảm bảo được tính chắc chắn, hạn chế được độ rung do
tác động của môi trường. Diện tích giàn nhỏ gọn, không quá 2m2.

2.2.2. Sơ đồ khối của mạch:

Hình 2.5: Sơ đồ khối

Khối cảm biển ( Cảm biến ánh sáng ) sẽ có nhiệm vụ đo đạc cường độ ánh sáng
theo độ Lux rồi truyền qua khối xử lý và truyền dữ liệu để gửi lên Thinkspeak. Từ đó
khối xử lý và truyền, nhận dữ liệu sẽ gửi dữ liệu lên Thingspeak.
Khối xử lý và nhận dữ liệu sẽ lấy dữ liệu được gửi lên đó và xử lý rồi đưa ra tín
hiệu điều khiển cho khối điều khiển để điều khiển các thiết bị như bơm nước và rèm
che.

14
2.2.3. Thiết kế chi tiết từng khối:
Khối nguồn:
Với yêu cầu mạch có thể chạy 24/7, em sẽ sử dụng nguồn áp 220V, kết hợp với
Adapter 5v 1A để có thể hạ áp xuống 5v cung cấp nguồn nuôi cho những linh kiện cho
linh kiện sử dụng điện áp nhỏ.
Hầu hết các linh kiện trong mạch đều sử dụng nguồn 3.3V như NodeMCU,
BH1750,… Để tạo nguồn 3.3 VDC từ 5 VDC em đã sử dụng IC LM1117.

Hình 2.6: IC LM1117

Nguồn 3.3V là nguồn rất quan trọng để nuôi vi điều khiển và khối cảm biến. Em
lựa chọn sử dụng IC LM1117 với các thông số phù hợp với yêu cầu cần thiết kế.

Điện áp đầu ra 3.3V


Điện áp đầu vào Dưới 15V
Dòng đầu ra 1A
Operates Down 1V Dropout
Line Regulation 0.2% Max
Load Regulation 0.3% Max
Bảng 2.1: Thông số kỹ thuật của LM1117

Khối cảm biến: Cảm biến ánh sáng BH1750

15
Trên thị trường hiện nay, module cảm biến cường độ ánh sáng BH1750 là có sẵn
rất nhiều trên thị trường, và nó đơn giản hóa các bước cho người thiết kế vậy nên
module cảm biến BH1750 là sự lựa chọn thích hợp cho yêu cầu của hệ thống.

Hình 2.7: BH1750.

BH1750 là một cảm biến ánh sáng kỹ thuật số. Gồm một linh kiện điện tử IC
cảm biến ánh sáng cho giao tiếp I2C. IC này là thích hợp nhất để nhận diện các dữ liệu
ánh sáng xung quanh cho việc điều chỉnh màn hình LCD và bàn phím đèn nền sức
mạnh của điện thoại di động. Nó có thể phát hiện nhiều ở độ phân giải cao (0 - 65535
lux)[3].
Điện áp 3.3V
Dải đo 0 - 65535 lux
Độ Phân Giải ADC 16Bit.
Đầu ra I2C
Bảng 2.2: Thông số kỹ thuật của BH1750

Linh kiện điện tử BH1750 có các ưu điểm sau:


- Chuyển từ tín hiệu ánh sáng sang kỹ thuật số.
- Nhận tín hiệu trong phạm vi rộng với độ phân giải cao: từ 0 - 65535 lux.
- Tiêu thụ điện năng rất thấp nhờ tính năng tự ngắt.
- Tính năng giảm nhiễu ánh sáng 50 Hz/60 Hz.
- Giao diện I2C bus.Không yêu cầu phụ kiện bổ sung ngoài.
Khối xử lý và truyền, nhận dữ liệu:
Khối module wifi có nhiệm vụ quan trọng trong việc truyền nhận dữ liệu giữa
các node với server. Theo chu kì (10 phút) nó sẽ nhận ,xử lý dữ liệu và gửi lên server

16
thông qua mạng wifi. Đồng thời cũng có thể nhận dữ liệu, xử lý và gửi tín hiệu điều
khiển cho khối điều khiển.

Hình 2.8: NodeMCU ESP8266 CH340

NodeMCU ESP8266 CH340 dựa trên sự phát triển của ESP8266, là một module
UART-WIFI công suất cực thấp. NodeMCU được thiết kế áp dụng cho Internet, mạng
LAN truyền thông và đặc biệt IoT. Ngoài ra, NodeMCU còn hỗ trợ các chuẩn giao tiếp
I2C, SPI rất thích hợp cho mạch và đạt đủ yêu cầu phi chức năng của mạch [4].

Điện áp 5V
Dòng tiêu thụ 70 mA
Wifi Chuẩn Wireless 802.11 b / g / n
Nhiệt độ hoạt động -40*C ~ 125*C
IC chính ESP8266 Wifi SoC
Chip giao tiếp UART CP2102
GIPO giao tiếp Mức 3.3V
Bảng 2.3: Thông số kỹ thuật của NodeMCU

Khối điều khiển:


Mục tiêu điều khiển ở đây là có thể tắt, bật máy bơm, tùy vào nhiệt độ nước đo
được trong môi trường tảo sinh sống. Vì vậy, Module Relay 5v là giải pháp an toàn và
tốt nhất cho trường hợp này.

17
Hình 2.9: Module Relay

Module Relay 5v sẽ nhận tín hiệu điều khiển từ NodeMCU và sẽ ngắt bật nguồn
220v cung cấp cho máy bơm nước, từ đó có thể điều khiển tùy ý máy bơm thông qua
NodeMCU.

Tín hiệu điều khiển 3.3V – 5V


Nguồn 5V
Transistor kích dòng C1815
Diot chống ngược 1N4007
Kích thước 55mm x 25mm
Bảng 2.4: Thông số kỹ thuật của Module Relay

2.3. Triển khai và kết quả đạt được:

2.3.1. Triển khai:


Phần mềm Arduino IDE được sử dụng để lập trình cho NodeMCU:
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[5]. Ngoài ra, Arduino IDE
hỗ trợ để lập trình trực tiếp cho một số linh kiện như ESP8266, NodeMCU,.. Một

18
trương trình viết bởi Arduino IDE được gọi là sketch, sketch được lưu dưới định
dạng .ino.

Hình 2.10: Giao diện Arduino IDE


Arduino IDE có những thư viện chuyên dụng, khiến cho người sử dụng có thể
dễ dàng lập trình rất phù hợp để sử dụng để lập trình cho NodeMCU với mục đích
nhận, xử lý dữ liệu từ cảm biến và gửi dữ liệu lên ThingSpeak. Đồng thời, cũng có thể
thu về dữ liệu, xử lý và đưa ra tín hiệu điều khiển với Relay.

Cắm mạch cảm biến và kiểm tra kết quả thu được:

19
Hình 2.11: Sơ đồ nối chân NodeMCU và BH1750
Như ta thấy chân D1 được kết nối với chân SCL, D2 được kết nối với chân SDA
và nguồn cung cấp cho BH1750 là 3.3v. Sau khi cắm mạch và nạp code cho
NodeMCU, ta thu được kết qua đo cường độ ánh sáng như sau:

Hình 2.12: Kết quả đo ánh sáng trên ThingSpeak


Kết quả so được so với thực tế có độ chính xác <10%. Mặc dù đã xảy một số lỗi
như nhận được dữ liệu từ BH1750 nhưng không thể gửi lên ThingSpeak, xác xuất để
kết quả đo khác xa thực tế rất thấp nhưng vẫn có nhưng em đã xử lý được bằng phương
pháp trung bình kết quả đo trong 1 giờ đo.

20
2.3.2. Kết quả đạt được:

Hình 2.13. Mạch đo cường độ ánh sáng

Hình 2.13 là mạch đo cường độ ánh sáng và gửi dữ liệu lên ThingSpeak theo
chu kỳ là 10p sẽ gửi dữ liệu lên 1 lần.

Hình 2.14. Mạch lấy điều khiển máy bơm thông qua Relay

Hình 2.14 là mạch nhận dữ liệu nhiệt độ nước từ ThingSpeak và điều khiển máy
bơm nước thông qua Relay. Trong mỗi chu kỳ là 2.5 giây sẽ lấy dữ liệu từ ThingSpeak
một lần để so sánh với điều kiện bất máy bơm ( 35*C ).

21
CHƯƠNG 3: NHẬN XÉT, ĐỀ XUẤT
Trong quá trình thực tập tại SPARC Lab em nhận thấy mình có những ưu điểm
nhược điểm sau:

3.1. Ưu điểm:.
- Kỹ năng thiết kế mạch, xây dựng kế hoạch làm việc.
- Có những hiểu biết cơ bản về IoT.
- Chăm chỉ, chịu khó tìm hiểu vấn đề.

3.2. Nhược điểm:


- Kỹ năng trình bày, thuyết trình ý tưởng của bản thân trước mọi người còn nhiều
thiếu sót.
- Khả năng đọc tài liệu tiếng anh còn kém.
- Còn nhiều hạn chế về các kỹ năng làm việc nhóm.

3.3. Những kinh nghiệm rút ra và đề xuất:


Kinh nghiệm rút ra:
Sau khi được thực tập làm việc cùng anh, chị trong công ty cũng như các bạn
trong nhóm, em đã rút ra được kinh nghiệm cho bản thân sau đây:
- Cách làm việc nhóm hiệu quả, cách trình bày ý tưởng sao cho để tất cả các
thành viên đều có thể hiểu được phần nào những dự định cũng như công việc
sắp tới của nhóm.
- Trong quá trình làm mạch sẽ gặp rất nhiều khó khăn nhưng chúng ta cần phải
kiên trì đến cùng, khắc phục những khó khăn đó để đi tới đích cuối cùng. Mỗi
lần như vậy chúng ta sẽ có thêm nhiều kinh nghiệm cho những vấn đề sẽ gặp
phải sau này.
- Nhóm trưởng đóng vai trò quan trọng trong sự làm việc hiệu quả cũng như tinh
thần làm việc của các thành viên trong nhóm. Họ là người cần có hiểu biết về sự
phân chia công việc cho hợp lý, biết được điểm mạnh, yếu của các thành viên
trong nhóm để đưa ra kế hoạch làm việc phù hợp với từng người.
- Khả năng tìm kiếm tài liệu cơ bản tiếng anh phục vụ cho đề tài nghiên cứu khoa
học.

22
- “Từ khóa” là yếu tố quan trọng trong việc tìm kiếm thông tin trên mạng. Cần
xác định được vấn đề đang mình đang tìm hiểu để có thể đưa ra được từ khóa
hợp lý nhất.
- Trong quá trình thực hiện tìm hiểu về đề tài em được học thêm về cách trình bày
vấn đề tìm hiểu được cũng như các vấn đề mình đang mắc phải cho mọi người
để được giúp đỡ và tìm hướng giải quyết.

Đề xuất:
- Trong quá trình thực tập em cũng được tìm hiểu thêm về nhiều lĩnh vực mới mà
trước đó mình chưa biết đến. Định hướng tương lai của em là theo học chuyên
ngành điện tử vì vậy em mong mình có thể tham gia học tập, tìm hiểu các đề tài
có liên quan đến phần mềm.
- SPARC Lab nên tạo thêm điều kiện để những sinh viên có đam mê về lập trình,
phần cứng, IoT có phả năng phát triển và hoàn thiện bản thân.

C. KẾT LUẬN
Thời gian thực tập tại SPARC Lab đã mang lại cho em nhiều kiến thức về
chuyên môn cũng như những kỹ năng làm việc làm việc chuyên nghiệp, biết được
những nhược điểm bản thân và khắc phục nó.. Do thời gian có hạn nên đề tài mà em và
nhóm của mình mới chỉ hoàn thành được 80% và vẫn chưa hoàn thiện cũng như khắc
phục được lỗi phát sinh. Mặc dù vậy em cũng đã học được quy trình thiết kế mạch và
có tính ứng dụng thực tế cao.

23
PHỤ LỤC

Code IDE cho NodeMCU nhận dữ liệu từ BH1750 và gửi dữ liệu lên ThingSpeak:
1. #include <ESP8266WiFi.h>
2. #include <Wire.h>
3.
4. // ================== defines and variables ========================
5. #define thoigianquet 600 // tao thoi gian quet de tao chu ky
6.

24
7. int BH1750_Device = 0x23; // dia chi ket noi I2C
8. unsigned int Lux;
9. const char* server = "api.thingspeak.com";
10. String apiKey = "WBRS99Y2T3Z13T2R"; // nhap API key cua Channel
11. const char* MY_SSID = "CNCTM"; // Ket noi Wifi
12. const char* MY_PWD = "38692440";
13. int sent = 0;
14.
15. // ================== subroutines =====================================
16.
17. void connectWifi() // Ham ket noi Wifi cho NodeMCU
18. {
19. Serial.println ("START connectWifi");
20. Serial.print("Connecting to ");
21. Serial.print(*MY_SSID);
22.
23. WiFi.begin(MY_SSID, MY_PWD);
24. delay(1000);
25. while (WiFi.status() != WL_CONNECTED)
26. {
27. delay(1000);
28. Serial.print(".");
29. }
30.
31. Serial.println("");
32. Serial.println("Connected");
33. Serial.println("");
34. } //end connect
35.
36. void setup()
37. {
38. Wire.begin ();
39. Serial.begin (115200);
40. Serial.println ("\n START setup");
41. Wire.beginTransmission(BH1750_Device);
42. Wire.write (0x10); // set resolution to 1 Lux
43. Wire.endTransmission();
44. delay (200);
45. connectWifi();
46. }
47.
48. unsigned int BH1750_Read()
49. {
50. unsigned int i=0;
51. Wire.beginTransmission (BH1750_Device); // Khoi tao I2C
52. Wire.requestFrom (BH1750_Device, 2); // Cau hinh chan ket noi la D2
53. while(Wire.available ())
54. {
55. i <<=8;
56. i|= Wire.read();
57. }
58. Wire.endTransmission ();
59. return i/1.2; // Convert to Lux
60. }
61.
62. void sendLux(float Lux) // Ham gui du lieu len ThingSpeak
63. {
64. WiFiClient client;
65.
66. if (client.connect(server, 80))
67. { // use ip 184.106.153.149 or api.thingspeak.com

25
68. Serial.println("WiFi Client connected ");
69.
70. String postStr = apiKey; // Ghep chuoi ky tu can gui
71. postStr += "&field2=";
72. postStr += String(Lux);
73. postStr += "\r\n\r\n";
74.
75. client.print("POST /update HTTP/1.1\n");
76. client.print("Host: api.thingspeak.com\n"); // Ket noi voi Sever ThingSpeak
77. client.print("Connection: close\n");
78. client.print("X-THINGSPEAKAPIKEY: ");
79. client.print(apiKey); // Ket noi Channel voi Key ung voi Channel do
80. client.print("\n");
81. client.print("Content-Type: application/x-www-form-urlencoded\n");
82. client.print("Content-Length: ");
83. client.print(postStr.length()); // Gui lenh cap nhat Field va gia tri cua Field
84. client.print("\n\n");
85. client.print(postStr);
86. delay(1000);
87. }
88.
89. sent++;
90. client.stop();
91. }
92.
93. void loop()
94. {
95. Serial.println ("START loop");
96. char buffer[10];
97. int i;
98. Lux = BH1750_Read(); // Nhan du lieu thong qua giao thuc I2C voi BH1750
99. Serial.println (Lux); // in ra ket qua
100.
101. Serial.print (Lux,DEC); //in du lieu nhan duoc voi don vi Lux
102. Serial.println ("[lx]");
103.
104. sendLux (Lux);
105. int count = thoigianquet; // dat thoi gian gui du lieu la 60s
106. while(count--) // tao chu ky gui du lieu la 10p
107. {
108. delay(1000);
109. }
110.}

Code IDE cho NodeMCU lấy dữ liệu từ ThingSpeak va xử lý:


1. #include <ThingSpeak.h>
2. #include <ESP8266WiFi.h>
3.
4. const char* ssid = "SPARC Lab 2"; //Nhap ID và mật khẩu của wifi
5. const char* password = "LabSPARC2";
6. unsigned long channel = 493844; //Nhập ID của Channel
7. unsigned int channel1 = 1; // Nhập Field cần lấy dữ liệu
8. WiFiClient client;
9.
10. void setup() {

26
11. Serial.begin(115200);
12. delay(100);
13.
14. pinMode(D1, OUTPUT);
15. digitalWrite(D1, 0);
16. // We start by connecting to a WiFi network
17.
18. Serial.println();
19. Serial.println();
20. Serial.print("Connecting to ");
21. Serial.println(ssid);
22.
23. WiFi.begin(ssid, password);
24.
25. while (WiFi.status() != WL_CONNECTED) {
26. delay(500);
27. Serial.print(".");
28. }
29. Serial.println("");
30. Serial.println("WiFi connected");
31. Serial.println("IP address: ");
32. Serial.println(WiFi.localIP());
33. Serial.print("Netmask: ");
34. Serial.println(WiFi.subnetMask());
35. Serial.print("Gateway: ");
36. Serial.println(WiFi.gatewayIP());
37. ThingSpeak.begin(client); // Kết nối với Thingspeak với API Request cho trước
38. }
39. void loop() {
40. int Resout1;
41. do
42. {
43. Resout1 = ThingSpeak.readFloatField(channel, channel1); // Lấy dữ liệu từ field và ID Channel đã được nhập
44. delay(2500);
45. }
46. while(Resout1 == 0);
47. Serial.print("Nhiet do hien tai la : ");
48. Serial.println(Resout1);
49. if(Resout1 < 35){ // So sánh nó với 35*C và thực hiện truyền tín hiệu điều khiển
50. digitalWrite(D1, 0);
51. Serial.println("Tat may bom...");
52. }
53. else {
54. digitalWrite(D1, 1);
55. Serial.println("Mo may bom...");
56. }
57. delay(5000);
}

TÀI LIỆU THAM KHẢO


[1] http://aqicn.org/

[2] https://en.wikipedia.org/wiki/ThingSpeak

[3] http://mualinhkien.vn/

27
[4] http://banlinhkien.vn/

[5] http://arduino.vn/

28

You might also like