Đo độ rọi sáng bằng cảm biến và lên mạng. File code arduino,ESP8266cảm biến ánh sáng bh1750.Đo độ rọi sáng bằng cảm biến và lên mạng. File code arduino,ESP8266cảm biến ánh sáng bh1750.Đo độ rọi sáng bằng cảm biến và lên mạng. File code arduino,ESP8266cảm biến ánh sáng bh1750.Đo độ rọi sáng bằng cảm biến và lên mạng. File code arduino,ESP8266cảm biến ánh sáng bh1750.
Trang 2Mục Lục
Lời mở đầu 3
Chương I: Tiêu chuẩn chiếu sáng và Phương pháp 4
1.1 Ánh sáng và các đại lượng quang học 4
1.1.1 Tính chất của ánh sáng 5
1.1.2 Các đơn vị đo quang 5
1.2 Độ rọi sáng tiêu chuẩn tại các khu vực chiếu sáng 6
1.2.1 Tiêu chuẩn ánh sáng trong sản xuất 6
1.2.2 Tiêu chuẩn cường độ ánh sáng nhà ở 7
1.2.3 Tiêu chuẩn cường độ ánh sáng học đường 8
1.3 Phương pháp đo độ rọi sáng 9
1.3.1 Nguyên lý hoạt động của Photodiode 9
1.3.2 Sơ đồ sử dụng 10
1.3.3 Cảm biến BH1750FVI 10
Chương 2: Truyền dữ liệu lên internet 13
2.1 Module Wifi Esp8266 14
2.2 Nền tảng Nodejs 17
2.3 Đưa server ra ngoài internet 18
Chương 3: Thiết kế 19
3.1 Đo giá độ rọi sáng 20
3.2 Gửi dữ liệu lên internet 23
3.3 Thiết kế webserver 26
3.4 Đưa ứng dụng lên Heroku 28
Kết luận 30
Danh mục tài liệu tham khảo 30
Phụ Lục 31
Trang 3Lờ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ủacuộ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ảncủ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ựatrê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.
Trang 4Chươ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ìnthấy được bằng mắt thường (tức là từ khoảng 400 nm đến 700 nm) Giống như mọibức xạ điện từ, ánh sáng có thể được mô tả như những đợt sóng hạt chuyển độnggọ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ángtrắ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à ánhsá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 “Ánhsá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ùngquang 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
Trang 5Tố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:
c v n
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ụ:
, đơ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 vuông góc với hướng đó :
dI L dA
, đơn vị đo là W/steradianm2, trong đó: dAn = dA.cos ( - góc hợp bởi mặt phẳng P và mặt phẳng chứa
Trang 6 Độ 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àdiện tích của phần tử đó:
d E 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ệuquả 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êncứ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ếusá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ángkhu vực làm việc, trong đó bao gồm: độ rọi (E), độ đồng đều của độ rọi, chỉ số hoànmà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áckhu 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àmviệc đó là về chất lượng ánh sáng Ánh sáng tốt sẽ đảm bảo hoạt động củanhân viên diễn ra bình thường Đó là yếu tố quyết định đến năng suất làmviệ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:
Độ 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
Trang 7Bả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)
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ảnxuấ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 chothị 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)
2 Khu vực, kiểm tra, phân loại sảnphẩ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
Trang 8mớ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ếusá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.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)
2 Phòng thí nghiệm, thực hành >=500
Trang 94 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àytạ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 photodiodethì 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 quachuyển tiếp khi photodiode được chiếu sáng Khi chiếu sáng photodiode bằng mộtbứ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átsinh dòng điện I p là tổng dòng quang điện và dòng tối Dòng I p tỉ lệ tuyến tính vớithông lượng hay cũng tuyến tính với độ rọi sáng
Trang 10Hì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:
1
x p
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
Vo
Hình 1.3 Sơ đồ khuếch đại Photodiode
Điện Vo được tính như sau:
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
R2
+ -
RmI
R1
p
Trang 11bộ 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:
Trang 12t 7bit địa chỉ cảm biến R/W1 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ỉ
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 R/W
1 bit Ack Byte cao AckByte thấp 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
Trang 14Chươ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
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ả choClient
Để có thể kết nối giữa Server và Client thì giữa chúng cần có một giaothứ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ụnggiao thức HTTP (HyperText Transfer Protocol) HTTP là giao thức truyền tải siêuvăn bản được sử dụng trong www dùng để truyền tải dữ liệu giữa Web server đếncác trình duyệt Web và ngược lại
Esp8266
Trang 152.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 chocác hệ thống khác hoặc đóng vai trò như một giải pháp độc lập Modulewifi 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
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
a
Trang 16 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
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ợpthê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ừ
Trang 17má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í, ….
Để khắc phục các khó khăn khi sử dụng tập lệnh AT để lập trình choEsp8266 ta đưa ra các giải pháp mới là ta lập trình Esp8266 như các vi điềukhiể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
Trang 182009, bảo trợ bởi công ty Joyent, trụ sở tại California, Hoa Kỳ Phần Core bên dướicủ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, GameServer…
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
Cloud Services: Các dịch vụ đám mây
Trang 19 RESTful API: đây là những ứng dụng mà được sử dụng cho các ứng dụngkhá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 đượcNodejs đầ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ịchvụ(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
Trang 213.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
t 0100011 0 Ack Mã lệnh (opecode) Ack StopBước 2:
Byte thấp Ack Stop
Trang 22while (!(TWCR & (1<<TWINT)));
Gửi tín hiệu Start.
Trong đó:
1<<TWINT: Bit TWINT của thanh ghi TWCR được set khi công việc hoàn tất Ghi “1” vào bit này để clear
1<<TWSTA: Ghi “1” vào bit TWSTA để bắt đầu chuyển đổi
1<<TWEN: Cho phép Module I2C hoạt động
while (! (TWCR & (1<<TWINT))): đợi khi cờ TWINT được set.
TWDR=0x46;
TWCR = (1<<TWINT) |(1<<TWEN);
while (!(TWCR & (1<<TWINT)));
TWDR=0x46: 0x46=01000110B, với 7 bit đầu là địa chỉ của cảm biến
TWCR = (1<<TWINT) |(1<<TWEN): Clear cờ ngắt.
while (! (TWCR & (1<<TWINT))): đợi khi
cờ TWINT được set.
TWDR=0x10;
TWCR = (1<<TWINT) |(1<<TWEN);
while (!(TWCR & (1<<TWINT)));
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<<TWINT) |(1<<TWEN): Clear cờ ngắt.
while (! (TWCR & (1<<TWINT))): đợi khi
cờ TWINT được set.