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

Đo độ rọi sáng bằng cảm biến và gửi lên INTERNET. ESP8266.File word FILE code ở phụ lục

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 (1.54 MB, 40 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN

ĐỒ ÁN CHUYÊN NGÀNH
ĐỀ TÀI: ĐO ĐỘ RỌI SÁNG VÀ ĐƯA DỮ LIỆU
LÊN INTERNET

Hà Nội, tháng 5/2019


Đồ án chuyên ngành

SVTH: Phạm Văn Công

Mục Lục

2


Đồ án chuyên ngành

SVTH: Phạm Văn Công

Lời mở đầu
Internet Of Things (IoT) là một trong những lĩnh vực phát triển mạnh mẽ nhất của
cuộc cách mạng công nghiệp 4.0. Kỷ nguyên Vạn vật kết nối (IoT) là một kịch bản
của Thế giới khi mà mỗi thiết bị, vật dụng được gắn kết với phần mềm cảm biến,
kết nối mạng, … và tất cả có thể thu thập, truyền tải và trao đổi thông tin, dữ liệu.
IoT giúp cho các thiết bị vật dụng có thể được cảm nhận và điều khiển từ xa dựa
trên nền tảng hạ tầng công nghệ không dây, công nghệ vi cơ điện tử và internet.
Với mục địch tìm hiểu IoT là gì? Dưới sự hướng dẫn của thầy PGS.TS Nguyễn


Quốc Cường, em triển khai thực hiện đề tài Đo độ rọi sáng và đưa dữ liệu lên
internet.

3


Đồ án chuyên ngành

SVTH: Phạm Văn Công

Chương I: Tiêu chuẩn chiếu sáng và Phương pháp
đo độ rọi sáng
1.1 Ánh sáng và các đại lượng quang học
Ánh sáng là các bức xạ điện từ có bước sóng nằm trong vùng quang phổ nhìn
thấy được bằng mắt thường (tức là từ khoảng 400 nm đến 700 nm). Giống như mọi
bức xạ điện từ, ánh sáng có thể được mô tả như những đợt sóng hạt chuyển động
gọi là photon.
Ánh sáng do Mặt Trời tạo ra còn được gọi là ánh nắng (hay còn gọi là ánh sáng
trắng bao gồm nhiều ánh sáng đơn sắc biến thiên liên tục từ đỏ đến tím); do đèn tạo
ra còn được gọi là ánh đèn (ánh sáng nhân tạo); do các loài vật phát ra gọi là ánh
sáng sinh học.
“Ánh sáng lạnh” là ánh sáng có bước sóng tập trung gần vùng quang phổ tím. “Ánh
sáng nóng” là ánh sáng có bước sóng nằm gần vùng đỏ. Ánh sáng có quang phổ trải
đều từ đỏ đến tím là ánh sáng trắng; còn ánh sáng có bước sóng tập trung tại vùng
quang phổ rất hẹp gọi là “ánh sáng đơn sắc”.

Hình 1.1: Phân bố tần số và bước sóng của ánh sáng

4



Đồ án chuyên ngành

SVTH: Phạm Văn Công

1.1.1 Tính chất của ánh sáng
Ánh sáng có hai tính chất cơ bản là sóng và hạt.
a, Tính chất sóng
Sóng ánh sáng là sóng điện từ phát ra khi có sự chuyển mức năng lượng của các
điện tử của nguyên tử nguồn sáng.
Tốc độ của sóng ánh sáng truyền đi trong không gian là c = 299792 km/s.
Trong môi trường có chiết suất n, ánh sáng có vận tốc:

v=

Tần số ánh sáng

γ

và bước sóng

λ=

λ

c
n
có biểu thức liên hệ:

v


γ

b, Tính chất hạt
Ánh sáng bao gồm các hạt photon mang năng lượng, phụ thuộc vào tần số:

Wφ = hγ

Trong đó:

.
h – hằng số Planck (h = 6,6256.10-34 Js)

1.1.2 Các đơn vị đo quang
− Năng lượng bức xạ (Q) là năng lượng phát xạ, lan truyền hoặc hấp thụ
dưới dạng bức xạ, đơn vị đo là J.
Φ

− Thông lượng ánh sáng ( ) là công suất phát xạ, lan truyền hoặc hấp thụ:
Φ=

dQ
dt

, đơn vị đo là W.

− Cường độ ánh sáng (I) là dòng năng lượng phát ra theo một hướng dưới một
I=

đơn vị góc khối:


dQ
dΩ

, đơn vị đo là W/steradian.

− Độ chói (L) là tỷ số giữa cường độ ánh sáng từ một phần tử bề mặt dA theo
hướng xác định và diện ích hình chiếu của phần tử này lên mặt phẳng P

5


Đồ án chuyên ngành

SVTH: Phạm Văn Công

L=

dI
dA

m2

vuông góc với hướng đó :
, đơn vị đo là W/steradian ,
trong đó: dAn = dA.cosϕ ( ϕ - góc hợp bởi mặt phẳng P và mặt phẳng chứa
dA)
− Độ rọi (E) là tỷ số giữa dòng năng lượng thu được bởi một phần tử bề mặt và
E=


diện tích của phần tử đó:


dA

, đơn vị đo là W/m2 (lux).

1.2 Độ rọi sáng tiêu chuẩn tại các khu vực chiếu sáng
Hệ thống chiếu sáng hợp lý sẽ giúp cho con người quan sát dễ dàng hơn, từ đó hiệu
quả lao động, học tập cũng sẽ được cải thiện. Mặt khác, các nhà khoa học đã nghiên
cứu cho thấy ánh sáng ảnh hưởng đến tâm lý của con người. Do vậy, hệ thống chiếu
sáng nơi làm việc, học tập cần đảm bảo được bố trí đúng tiêu chuẩn để tạo ra tâm lý
thoải mái cho người lao động.
Tiêu chuẩn Việt Nam TCVN 7114-3:2008. Tiêu chuẩn này quy định về chiếu sáng
khu vực làm việc, trong đó bao gồm: độ rọi (E), độ đồng đều của độ rọi, chỉ số hoàn
màu của ánh sáng.
Mỗi không gian sẽ có mức yêu cầu ánh sáng khác nhau. Vì thế độ rọi sáng giữa các
khu vực cũng có sự khác biệt.
1.2.1 Tiêu chuẩn ánh sáng trong sản xuất
a, Tiêu chuẩn chiếu sáng khu vực làm việc
 Yêu cầu ánh sáng phòng làm việc:
• Yêu cầu đầu tiên để đảm bảo thực hiện tốt các công việc trong khu vực làm

việc đó là về chất lượng ánh sáng. Ánh sáng tốt sẽ đảm bảo hoạt động của
nhân viên diễn ra bình thường. Đó là yếu tố quyết định đến năng suất làm


việc của nhân viên. Cũng là yếu tố chính thúc đẩy sự phát triển của công ty.
Ánh sáng khu vực làm việc phải đảm bảo đáp ứng cả 04 tiêu chí. 04 tiêu chí


đó là hiệu quả – an toàn – tiết kiệm và thẩm mỹ.
• Tuy nhiên thực tế cho thấy không phải khu vực làm việc nào cũng đáp ứng
được chất lượng ánh sáng. Chính vì thế trong bộ tiêu chuẩn chiếu sáng đã
quy định rất rõ về độ rọi yêu cầu trong khu vực làm việc là bao nhiêu. Để từ
đó làm cơ sở cho việc thiết kế ánh sáng
 Tiêu chuẩn ánh sáng trong phòng làm việc:

6


Đồ án chuyên ngành

SVTH: Phạm Văn Công

Độ rọi yêu cầu (cường độ ánh sáng lux) của từng khu vực trong chiếu sáng không
gian làm việc được thê hiện trong bảng 1.1.

Bảng 1.1 Tiêu chuẩn chiếu sáng trong khu vực làm việc
STT

Không gian chức năng

Độ rọi yêu cầu (lux)

1

Văn phòng làm việc

> 400


2

Sảnh, phòng đợi

200

3

Nhà bảo vệ

200

4

Hành lang cầu thang

100

5

Thang cuốn

150

b, Tiêu chuẩn chiếu sáng nhà xưởng
Yêu cầu ánh sáng nhà xưởng
Cũng giống như khu vực làm việc, độ rọi sáng (lux) trong khu vực xưởng
sản xuất cũng là yếu tố quan trọng quyết định đến năng suất lao động.
• Thiết kế ánh sáng đủ dùng. Độ chói không quá cao đảm bảo sự thoải mái cho
thị giác.



Tiêu chuẩn ánh sáng nhà xưởng:
Bảng 1.2 Tiêu chuẩn chiếu sáng nhà xưởng
STT

Không gian chức năng

Độ rọi yêu cầu (lux)

1

Kho

>=100

2

Khu vực, kiểm tra, phân loại sản phẩm

>=500

3

Khu vực chung của nhà máy

>=200

4


Khu vực sản xuất của nhà máy

>=300

5

Khu vực nhà vệ sinh

>=200

1.2.2 Tiêu chuẩn cường độ ánh sáng nhà ở
 Yêu cầu ánh sáng nhà ở
• Thiết kế hệ thống chiếu sáng vốn đã khó nhưng thiết kế hệ thống chiếu sáng

nhà ở lại càng khó hơn. Nhà là nơi chúng ta dừng chân sau bao nhiêu vất vả
7


Đồ án chuyên ngành

SVTH: Phạm Văn Công

bên ngoài của cuộc sống. Hệ thống chiếu sáng trong nhà làm thế nào để vừa
cung cấp đủ ánh sáng vừa tạo cảm giác thoải mái khi bước chân vào. Như thế
mới được coi là hệ thống chiếu sáng hoàn hảo.
• Hầu hết chúng ta đều tự thiết kế hệ thống chiếu sáng nhà của mình. Chỉ có
những gia đình có điều kiện kinh tế, hay những ngôi nhà biệt thì mới có sự
hỗ trợ của các kiến trúc sư. Vì thế có thể nói rằng phần lớn hệ thống chiếu
sáng nhà ở đều chưa đạt tiêu chuẩn.
Đó là cơ sở vì sao cần sự giúp đỡ của bộ tiêu chuẩn chiếu sáng nhà ở. Đây sẽ




là nền tảng để chúng ta thiết kế hệ thống chiếu sáng nhà ở hoàn hảo hơn.
 Tiêu chuẩn ánh sáng nhà ở

Bảng 1.3 Tiêu chuẩn chiếu sáng nhà ở
STT

Không gian chức năng

Độ rọi yêu cầu (lux)

1

Phòng ngủ

150

2

Phòng khách

400

3

Phòng bếp

600


4
5

Phòng học
Phòng tắm

700
400

6

Ban công

150

7

Cầu thang

100

1.2.3 Tiêu chuẩn cường độ ánh sáng học đường
 Yêu cầu ánh sáng học đường

Bảo vệ thị lực đôi mắt chính là điều quan trọng nhất mà hệ thống chiếu sáng
học đường hướng đến.
• Ánh sáng phải đảm bảo an toàn, không gây chói không gây nhức mắt, mỏi
mắt.



 Tiêu chuẩn ánh sáng học đường cho dưới bảng 1.4

Bảng 1.4 Tiêu chuẩn chiếu sáng nhà xưởng
STT

Không gian chức năng

Độ rọi yêu cầu (lux)

1

Phòng học

>=300

2

Phòng thí nghiệm, thực hành

>=500

3

Bảng đen

>= 500
8



Đồ án chuyên ngành

SVTH: Phạm Văn Công

4

Phòng thể dục thể thao (bể bơi)

>=300

5

Hành lang, sảnh, ban công, cầu thang

>= 100

6

Nhà vệ sinh, phòng tắm

>= 200

1.3 Phương pháp đo độ rọi sáng
Có nhiều hướng đi để đo độ rọi sáng như dùng tế bào quang dẫn, Phototransistor,
Phototransistor trường ứng (PhotoFET), Cảm biến quang phát xạ, Photodiode, ….
Trong đề tài này chúng ta chỉ tập trung nghiên cứu sử dụng Photodiode trong
việc đo độ rọi sáng
1.3.1 Nguyên lý hoạt động của Photodiode
Photodiode cấu tạo gồm có hai lớp bán dẫn loại n và p (hình 1.1), giữa hai lớp này
tạo nên một vùng hiếm hạt dẫn. Nên khi không có nguồn sáng chiếu vào photodiode

thì dòng điện qua chuyển tiếp P-N chỉ có dòng điện tối rất nhỏ so với dòng qua
chuyển tiếp khi photodiode được chiếu sáng. Khi chiếu sáng photodiode bằng một
bức xạ có bước sóng nhỏ hơn bước sóng ngưỡng, do hiệu ứng quang điện tạo ra cặp
điện tử-lỗ trống. Dưới tác dụng của điện trường ngược chúng nhanh chóng bị tách
ra và lỗ trống sẽ dịch chuyển về anode còn điện tử dịch chuyển về cathode, làm phát
sinh dòng điện Ip là tổng dòng quang điện và dòng tối. Dòng Ip tỉ lệ tuyến tính với
thông lượng hay cũng tuyến tính với độ rọi sáng.

9


Đồ án chuyên ngành

SVTH: Phạm Văn Công

Hình 1.2. Nguyên lý hoạt động của Photodiode.
1.3.2 Sơ đồ sử dụng
Dòng Ip tỷ tuyến với thông lượng và độ nhạy phổ được tính như sau:
S ( λ) =

∆I p
∆Φ

=

qη ( 1 − R ) e −α x
hc

λ


Độ nhạy phụ thược vào bước sóng
α
hập thụ
.

λ

, hiệu suất lượng tử

η

, hệ số phản xạ R, hệ số

Mạch (hình 1.2) cho thấy một mạch chuyển đổi từ tín hiệu dòng điện sang điện áp
sử dụng bộ khuếch đại hoạt động như thiết bị khuếch đại.

E-

s

R2

+

Rm
I

p

-


Vo

R1

Hình 1.3 Sơ đồ khuếch đại Photodiode.
Điện Vo được tính như sau:
 R 
Vo = Rm 1 + 2 ÷I p
 R1 

Khi tăng Rm sẽ làm giảm nhiễu. Tổng trở vào của bộ khuếch đại phải lớn để tránh
làm giảm điện trở tải hiệu dụng của diode.
1.3.3 Cảm biến BH1750FVI
Trong đề tài cảm được lựa chọn để đo độ rọi sáng là cảm biến BH1750FVI
BH1750FVI là một cảm biến ánh sáng số sử dụng photodiode, dữ liệu đầu ra được
truyền tải thông qua bus I2C. Cấu trúc của cảm biến cho dưới hình 1.3
10


Đồ án chuyên ngành

SVTH: Phạm Văn Công

Hình 1.4 Cảm biến ánh sáng BH1750FVI.
Một số đặc điểm của cảm biến BH1750FVI.





Sử dụng BUS I2C
Dải đo 0-54612 lux.
Nguồn cấp: 5V

Trong sơ đồ hình 1.4:
PD
Là Photodiode
• AMP
bộ chuyển đổi từ tín hiệu dòng quang điện Ip sang tín hiệu điện áp.
• ADC
bộ chuyển tín hiệu tương tự sang tín hiệu số
• Logic + I2C Interface
Khối tính toán giá trị độ rọi sáng và bộ tạo giao tiếp I2c
• OSC
Khối tạo xung clock nội
 Cách thức đọc giá trị độ rọi sáng từ cảm biến BH1750FVI.


Địa chỉ của cảm biến trong BUS I2C được xác định như sau:
Nếu chân ADDR nối lên mức cao, cảm biến có địa chỉ là “1011100“
Nếu chân ADDR nối lên mức thấp, cảm biến có địa chỉ là “0100011“
Cấu trúc bản tin gửi từ vi xử lý lên cảm biến để lấy kết đo như sau:
Bước 1:
Star
t

7bit địa chỉ cảm biến

R/W
1 bit


Ack

Mã lệnh
(opecode)

Ack

Stop

Gửi tín hiệu Start từ vi xử lý, sau đó gửi 1byte dữ liệu trong đó 7bit cao là địa chỉ
11


Đồ án chuyên ngành

SVTH: Phạm Văn Công

của cảm biến và bit cuối cùng bit R/W (“1” là đọc dữ liệu từ cảm biến, “0” là ghi dữ
liệu lên cảm biến). Đợi tín hiệu phản hồi Ack từ cảm biến, tiếp tục gửi mã lệnh để
thiết lập các chế độ đo cho cảm biến (mã lệnh ở Bảng 1.5). Gửi tín hiệu Stop để kết
thúc.
Bước 2:
Start

7bit địa chỉ cảm biến

Byte thấp

R/W

1 bit
____

Ack

Ack

Byte cao

Ack

Stop

Sau khi cấu hình xong cho cảm biến ta tiến hành đọc dữ liệu đo được. Gửi tín hiệu
Start, 1byte gồm 7bit địa chỉ cảm biến và 1 bit R/W. Tiến hành đọc lần lượt 2 byte
mà cảm biến trả về, cuối cùng là gửi tín hiệu Stop
Giá trị đọc được chia cho 1.2 ra được độ rọi sáng thu được từ cảm biến
Bảng 1.5 Mã lệnh điều khiển cảm biến

12


Đồ án chuyên ngành

SVTH: Phạm Văn Công

Chương 2: Truyền dữ liệu lên internet
Với mong muốn là đưa dữ liệu đo được từ cảm biến lên internet, từ đó ta có thể thu
thập dữ liệu và đưa ra các điều chỉnh đối với các thiết bị ở hiện trường một cách dễ
dàng thuận tiện thông qua kết nối mạng. Với đề tài này ta sẽ sử dụng một loai vi xử

lí có tích hợp sẵn module wifi là Esp8266 làm thiết bị trung gian trung chuyển dữ
liệu từ cảm biến lên internet.

Esp8266

Hình 2.1 Mô hình truyền tải dữ liệu qua internet
Như Hình 2.1 mô tả cấu trúc của mô hình internet of thing thì Esp8266, Mobile, PC/
Laptop là các Client có chức năng truyền tải dữ liệu lên server, và hiển thị các dữ
liệu cần thiết. Server thực chất là một phần mềm có chức năng thu nhận các dữ liệu,
các yêu cầu từ phía Client, Server sẽ xử lý các yêu cầu sau đó gửi trả lại kết quả cho
Client.
Để có thể kết nối giữa Server và Client thì giữa chúng cần có một giao
thức(protocol). Có nhiều giao thức Server và Client như: HTTP sử dụng trong dịch
vụ web; FTP, MQTT sử dụng trong dịch vụ truyền file, trong đề tài này chỉ sử dụng
giao thức HTTP (HyperText Transfer Protocol). HTTP là giao thức truyền tải siêu
văn bản được sử dụng trong www dùng để truyền tải dữ liệu giữa Web server đến
các trình duyệt Web và ngược lại.

13


Đồ án chuyên ngành

SVTH: Phạm Văn Công

2.1 Module Wifi Esp8266
Module Wifi Esp8266 thiết bị giá rẻ được sử dụng rộng rãi trong các hệ thống IoT.
ESP8266 (Hình 2.2) là một vi xử lí hợp cao - System on Chip (SoC), có khả năng
xử lý và lưu trữ tốt, cung cấp khả năng vượt trội để trang bị thêm tính năng wifi cho
các hệ thống khác hoặc đóng vai trò như một giải pháp độc lập. Module

wifi ESP8266 cung cấp khả năng kết nối mạng wifi đầy đủ và khép kín, có thể sử
dụng nó để tạo một web server đơn giản hoặc sử dụng như một access point.

a

Hình 2.2 Dạng đóng gói và cấu trúc của Module Wifi Esp8266
 Các thông số cơ bản của Module Wifi Esp8266:
• CPU của module là loại Tensilica L106 32-bit RISC processor, có tốc độ tối



đa là 160Mhz.
Bộ nhớ Ram tối đa là 50kB, bộ nhớ Rom 1MB.
Có đầy đủ các module thông dụng như các vi điều khiển thịnh hành như:







UART, ADC, PWM, I2C, SPI, …
Hỗ trợ chuẩn Wifi 802.11 b/g/n, Wifi 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
14



Đồ án chuyên ngành



SVTH: Phạm Văn Công

Hỗ trợ cả 2 giao tiếp TCP và UDP
Tích hợp công suất thấp 32-bit CPU có thể được sử dụng như là bộ vi xử lý

ứng dụng
• SDIO 1.1 / 2.0, SPI, UART
• Làm việc như các máy chủ có thể kết nối với 5 máy trạm.
Để dễ dàng cho việc nạp chương trình và sử dụng module Esp8266 được tích hợp
thêm chip nap CP2102 được phát triển thành một kit có tên là NodeMCU có sơ đồ
chân như Hình 2.3.

Hình 2.3 Sơ đồ chân của kit phát triển NodeMCU
 Phần mềm lập trình cho Esp8266

Esp8266 có hai cách để lập trình:
− Dùng tập lệnh AT mà nhà sản xuất đưa ra để cấu hình cũng như truyền nhận
dữ liệu qua Esp8266. Lệnh AT được nạp vào Esp8266 từ một vi xử lí hoặc từ
máy tính thông chuẩn giao tiếp UART. Phương pháp hiện tại không còn được
sử dụng nhiều trong lập trình Esp8266 bởi thời gian nạp lệnh AT khá lớn, bất
tiện trong việc lập trình cho các vi xử lí, ….

15



Đồ án chuyên ngành

SVTH: Phạm Văn Công

− Để khắc phục các khó khăn khi sử dụng tập lệnh AT để lập trình cho
Esp8266 ta đưa ra các giải pháp mới là ta lập trình Esp8266 như các vi điều
khiển thông thường và sử dụng trình biên dịch Arduino IDE để lập trình.

Hình 2.4 Trình biên dịch Arduino IDE

16


Đồ án chuyên ngành

SVTH: Phạm Văn Công

2.2 Nền tảng Nodejs

Hình 2.5 Nodejs
Node.js là một hệ thống phần mềm được thiết kế để viết các ứng dụng internet có
khả năng mở rộng, đặc biệt là máy chủ web.
Nodejs là một nền tảng (Platform) phát triển độc lập được xây dựng ở trên Javascript
Runtime của Chrome mà chúng ta có thể xây dựng được các ứng dụng mạng một
cách nhanh chóng và dễ dàng mở rộng. Nodejs được xây dựng và phát triển từ năm
2009, bảo trợ bởi công ty Joyent, trụ sở tại California, Hoa Kỳ. Phần Core bên dưới
của Nodejs được viết hầu hết bằng C++ nên cho tốc độ xử lý và hiệu năng khá cao.
Nodejs tạo ra được các ứng dụng có tốc độ xử lý nhanh, realtime thời gian thực.
Các ứng dụng có thể và nên viết bằng Nodejs:



Websocket server: Các máy chủ web socket như là Online Chat, Game
Server…



Fast File Upload Client: là các chương trình upload file tốc độ cao.



Ad Server: Các máy chủ quảng cáo.

17


Đồ án chuyên ngành

SVTH: Phạm Văn Công



Cloud Services: Các dịch vụ đám mây.



RESTful API: đây là những ứng dụng mà được sử dụng cho các ứng dụng
khác thông qua API.




Any Real-time Data Application: bất kỳ một ứng dụng nào có yêu cầu về tốc
độ thời gian thực. Micro Services: Ý tưởng của micro services là chia nhỏ
một ứng dụng lớn thành các dịch vụ nhỏ và kết nối chúng lại với nhau.
Nodejs có thể làm tốt điều này.

Trong đề tài sử Nodejs để thiết kế một Websocket server: Để có thể sử dụng được
Nodejs đầu tiên ta phải dowload và cài đặt môi trường Nodejs cho máy tính. Sử
dụng các trình biên dịch như Visual Studio Code, Adobe Dreamweave, sublime text,
Notepad, … để viết code cho server.

2.3 Đưa server ra ngoài internet
Sau khi viết được server Nodejs để có sử dụng server đó ở mọi nơi thì ta cần phải
đưa server đó ra ngoài internet.Và Heroku là một nền tảng làm được điều đó.
Heroku là một nền tảng đám mây dựa trên ứng dụng container dưới dạng dịch
vụ(PaaS) và Heroku cung cấp phương tiện để các nhà phát triển dễ dàng đưa các
ứng dụng của họ ra ngoài thị trường.

18


Đồ án chuyên ngành

SVTH: Phạm Văn Công

Chương 3: Thiết kế

Esp8266

Arduino


BH1750

Hình 3.1 Sơ đồ thiết kế
Trong đề tài vi điều khiên được sử dụng là Atmega328p, được phát triển thành một
board Arduino Uno. Arduino có giá thành rẻ, dễ dàng lập trình phù hợp với các dự
án nhỏ,

19


Đồ án chuyên ngành

SVTH: Phạm Văn Công

3.1 Đo giá độ rọi sáng
Sơ đồ kết nối giữa cảm biến BH1750 với Arduino được mô tả hình 3.2

Hình 3.2 Cách kết nối giữa Arduino và BH1750
Cảm biến BH1750 gai tiếp với arduino thông qua chuẩn I2C.
Cách đọc giá trị độ rọi sáng từ cảm biến bằng chuẩn I2C trong Arduino như sau:
Bước 1:
Star
0100011
t
Bước 2:
Start

0100011

Byte thấp


0

Ack

1
____

Ack

Mã lệnh (opecode)

Ack

Byte cao

Ack

Stop

Ack

Stop

20


Đồ án chuyên ngành

SVTH: Phạm Văn Công


Như cách kết nối ở hình 3.2 thì chân ADD được nối với GND nên địa chi của cảm
biến BH1750 là 0100011B.
Dưới đây là một cách đọc dữ liệu từ cảm biến bằng Arduino.
Bảng 3.1. Cách đọc dữ liệu từ cảm biến

C code

Comments
Gửi tín hiệu Start.
Trong đó:

TWCR = (1<(1<while (!(TWCR & (1<
• 1<set khi công việc hoàn tất. Ghi “1” vào bit này để
clear
• 1<chuyển đổi
• 1<• while (! (TWCR & (1<TWINT được set.

TWDR=0x46: 0x46=01000110B, với 7 bit


TWDR=0x46;
TWCR = (1<

while (!(TWCR & (1<
đầu là địa chỉ của cảm biến



TWCR = (1<ngắt.
while (! (TWCR & (1<TWINT được set.




TWDR=0x10;
TWCR = (1<while (!(TWCR & (1<
Gửi mã lệnh 0x10 = 00010000B lên cảm biến.
Cấu hình cảm biến đo giá trị có độ phân giải 1
lux, thời gian đo là 120ms. Các mã lệnh cấu
hình cho cảm biến cho bảng 1.5
TWCR = (1<ngắt.
while (! (TWCR & (1<TWINT được set.





TWCR= (1<(1<
TWCR = (1<(1<while (!(TWCR & (1<


Gửi tín hiệu Stop



Gửi tín hiệu Start.

21


Đồ án chuyên ngành
TWDR=0x47;
TWCR = (1<while (!(TWCR & (1<
SVTH: Phạm Văn Công




TWCR =
(1<


TWDR=0x47: 0x47=01000111B, với 7 bit

đầu là địa chỉ của cảm biến
TWCR = (1<ngắt.
while (! (TWCR & (1<TWINT được set.




Đọc byte cao
Giá trị trả về là giá trị của thanh ghi TWDR




Đọc byte thấp
Giá trị trả về là giá trị của thanh ghi TWDR



Gửi tín hiệu Stop

while (!(TWCR & (1<return TWDR;

TWCR = (1<while (!(TWCR & (1<

return TWDR;
TWCR= (1<(1<
Sau khi đo được giá trị độ rọi sáng ta cần gửi giá trị đó đến Esp8266. Và được gửi
thông qua chuẩn giao tiếp UART với tốc độ Baud là 115200.
Luu đồ thuật toán của quá trình đo và gửi dữ liệu trên Arduino được mô tả ở hình
3.2

22


Đồ án chuyên ngành

SVTH: Phạm Văn Công

Hình 3.3 Lưu đồ thuật toán thực hiện trên Arduino.
Thuật toán chi tiết được trình bày ở phần Phụ Lục.

3.2 Gửi dữ liệu lên internet.
Cách kết nối giữa Arduino và Node MCU như hình 3.3. Arduino truyền nhận dữ
liệu với NodeMCU thông qua chuẩn giao tiếp UART. Sử dụng thư viện
“SoftwareSerial” để tạo giả lập một UART trong đó, chân 2 và 3 trên Arduino là
chân đóng vai trò là TX và RX, D1 và D2 trên NodeMCU đóng vai trò như chân
RX và TX.
Sau khi nhận được dữ liệu từ Arduino, NodeMCU sẽ gửi dữ liệu lên server. Câu
lệnh client.send("tên sự kiện ", "key", "value") trong thư viện “SocketIOClient”
dùng để gửi dữ liệu lên server.
Trong câu lệnh client.send("tên sự kiện ", "key", "value"): “ tên sự kiện”: là chuỗi
kí tự mà từ đó server phân biệt với các sự kiện gửi, nhân dữ liệu khác.

Dữ liệu gửi lên server có dạng là chuỗi Json. Ví dụ như { “giá trị 1”: “20”}, trong
đó "key" :“giá trị 1”, "value":“20”.
23


Đồ án chuyên ngành

SVTH: Phạm Văn Công

Hình 3.3 Cách kết nối giữa Arduino và Node MCU
Để có thể gửi dữ liệu lên server thì NodeMCU cần biết địa chỉ hay tên của server đó
và NodeMCU cần kết nối vào một mạng Wifi để truy cập vào server đó.
cambien.herokuapp.com là tên miền dịch vụ.
Hình 3.4 là lưu đồ thuật toán cho NodeMCU.
 Khai báo thư viện: Các thư viện cần khai báo đó là:

SoftwareSerial: thư viện liên quan đến các tác vụ UART
SocketIOClient: là thư viện cung cấp các cung cụ thao tác với server Nodejs
ESP8266WiFi: Thư viện dùng để thiết lập các chế độ hoạt động cho NodeMCU
ESP8266WebServer: Thư viện cun cấp các công cụ để thao tác với server do chính
NodeMCU tạo ra.

24


Đồ án chuyên ngành

SVTH: Phạm Văn Công

Hình 3.4 Lưu đồ thuật toán cho NodeMCU

 Setup bộ UART và chế độ hoạt động của NodeMCu

Bộ UART hoạt động với tốc độ Baud là 115200.
NodeMCu được thiết lập hoạt động ở cả chế station và access point.
 Sau khi thiết lập xong các chế hoạt động ta tiến hành vào trong vong lặp vô

tận.
25


×