HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA KỸ THUẬT ĐIỆN TỬ I
__________***__________
BÁO CÁO ĐỒ ÁN
MÔN: Đồ án Hệ thống nhúng
Đề tài : Lò ấp trứng tự động, giám sát và điều khiển từ Wed
Học kỳ II - Năm học 2021 - 2022
Lị ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
MỤC LỤC
LỜI NĨI ĐẦU ......................................................................................... 3
CHƯƠNG I. NGHIÊN CỨU TỔNG QUAN ......................................... 4
1.1. Ý tưởng và các điều kiện thực tế.................................................... 4
1.2. Giới thiệu về IoT ............................................................................. 5
1.3. Mục tiêu đề tài. ............................................................................... 6
CHƯƠNG II. CƠ SỞ LÝ THUYẾT ĐỀ TÀI ........................................ 7
2.1.Các linh kiện sử dụng và chức năng .............................................. 7
2.2. Các phần mềm thực hiện............................................................. 13
CHƯƠNG III. THIẾT KẾ HỆ THỐNG .............................................. 19
3.1. Sơ đồ khối mô tả hệ thống ............................................................ 19
3.2. Khối vật lý ..................................................................................... 20
3.3. Khối MQTT, khối MySQL, khối ứng dụng ................................ 20
CHƯƠNG IV. THIẾT KẾ SẢN PHẨM ............................................. 22
4.1. Kết nối ESP và các Module .......................................................... 23
4.2. Cơ sở dữ liệu ................................................................................. 27
4.3. Khối ứng dụng .............................................................................. 28
CHƯƠNG V. KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN ....................... 33
5.1. Kết quả .......................................................................................... 33
5.2. Hướng phát triển .......................................................................... 34
LỜI CẢM ƠN ........................................................................................ 37
2
Lị ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
LỜI NĨI ĐẦU
Trong thời đại phát triển hiện nay, các công cụ, máy móc dần được đưa vào
phục vụ cho cuộc sống của con người ngày càng nhiều và phổ biến. Đặc biệt là
Việt Nam đang bước vào cuộc cách mạng công nghiệp lần thứ tư, một cuộc cách
mạng sản xuất gắn với những đột phá chưa từng có về cơng nghệ, liên quan
đến kết nối Internet, công nghệ cảm biến,… Là một nước có truyền thống về
chăn ni và nơng nghiệp nên việc áp dụng các công nghệ mới để làm ra các hệ
thống tự động phục vụ cho việc sản xuất dễ dàng hơn cũng được quan tâm và phát
triển.
Từ những như cầu cũng như sự phát triển của các hệ thống tự động hóa, Việt
Nam đã xuất hiện nhiều hệ thống tự động hóa phục vụ cho việc sản xuất nông
nghiệp như “Vườn cây tự động tưới tiêu, Hệ thống giám sát quá trình sinh trưởng
của cây,…” Trong báo cáo hơm nay, nhóm 16 chúng em muốn trình bày với cô
về một hệ thống tự động hỗ trợ cho các gia đình đang thực hiện việc ấp trứng để
nở ra các giống gà con. Đề tài “Lò ấp trứng tự động, gám sát và điều khiển từ
Wed” của bọn em giúp người chủ lị ấp gà có thể theo dõi được quá trình ấp nở
của trứng để đảm bảo các điều kiện về nhiệt độ, độ ẩm và đảo trứng.
Đề tài này gồn 4 chương:
Chương 1: Nghiên cứu tổng quan
Chương 2: Cơ sở lý thuyết đề tài
Chương 3: Thiết kế sơ đồ hệ thống
Chương 4: Thiết kế sản phẩm
Trong quá trình thực hiện đề tài này, nhóm chúng em đã nhận được sự quan
tâm, giúp đỡ tận tình của thầy Nguyễn Ngọc Minh cùng các thầy cô giáo trong
khoa Kỹ thuật Điện tử I để chúng em có thể hồn thành được đề tài này. Tuy nhiên
do thời gian cũng như trình độ bản thân cịn hạn chế nên đề tài khơng tránh khỏi
những thiếu sót, rất mong sự góp ý từ thầy cơ. Nhóm em xin chân thành cảm ơn!
3
Lò ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
CHƯƠNG I. NGHIÊN CỨU TỔNG QUAN
Chương này trình bày tổng quan về đề tài, bao gồm ba phần chính. Phần thứ
nhất trình bày về ý tưởng của đề tài và các điều kiện thực tế. Phần thứ hai sẽ trình
bày các khái niệm cơ bản về mơ hình Internet of Thing (IoT) và giới thiệu hệ
thống giám sát từ xa. Phần thứ ba sẽ trình bày về mục tiêu của đề tài.
1.1. Ý tưởng và các điều kiện thực tế
Từ thực tế hiện nay trong các lò ấp trứng, các lò ấp vẫn cịn sử dụng rất thủ
cơng trong việc giám sát các điều khiện để có thể ấp từ một quả trứng ra một con
gà. Từ đó cùng với sự phát triển của điện tử đi kèm với cơng nghệ, nhóm chúng
em đã đưa ra ý tưởng về một hệ thống có thể giúp những chủ lị ấp có thể giám
sát và điều khiển lị ấp của mình từ xa với độ chính xác cao. Hệ thống “Lị ấp
trứng tự động, giám sát và điều khiển từ Wed” có cả 2 chế độ tự động và thủ cơng
để có thể tạo ra một điều khiện sử dụng thuận lợi nhất cho chủ lị. Chế độ tự động
có thể hoạt động với quyền điều khiển của các vi điều khiển song song với đó
chính người chủ lị cũng có thể điều khiển trực tiếp từ trên Wed, trên mạng để
điều khiển.
Điều kiện cho việc ấp trứng cũng khá là phức tạp khi luôn phải đảm bảo nhiệt
độ cho quả trứng ở nhiệt độ tốt nhất. Nhiệt độ thấp nhất trong lò 35 độ, nhiệt độ
tối đa là 38 độ và mức duy trì tốt nhất là khoảng 37 độ 3 đến 38 độ. Nhiệt độ
khơng nên q 38 độ 2 vì như vậy ảnh hưởng nhiều đến trứng và những con nở
ra. Lò ấp cũng cần có thời gian để đảo trứng để tránh tình trạng phơi trứng để lâu
một chỗ bị chết phơi. Lị sẽ ấp trong khoảng 7 ngày thì sẽ đem đi soi để lọc trứng.
Sau 11 ngày tiếp theo, trứng sẽ được mang đi nở, lúc này trứng sẽ khơng cần đảo
nữa và sẽ được duy trì ở mức nhiệt độ khác. Nhiệt độ lúc nở là khoảng từ 36 độ 7
đến 37 độ 5. Và sau 3 ngày mang đi nở, trứng nở ra được gà. Từ những điều kiện
luôn phải đảm bảo ở mức tốt nhất nên việc giám sát thủ công rất là vất vả, đặc biệt
là vào đêm hoặc những mùa điển hình như mùa hè thường nhiệt độ sẽ lên rất cao
và mùa đông nhiệt độ sẽ xuống rất nhanh.
4
Lò ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
1.2. Giới thiệu về IoT
Từ khi khái niệm IoT ra đời vào năm 1999, Internet of things (IoT) đã đi từ
một giấc mơ đơn thuần và mông lung tới sự thực hiện hữu và rõ ràng. Ngun nhân
chính có thể là việc sử dụng rộng rãi giao thức Internet (IP), sự phát triển phổ cập của
máy tính, và sự phát triển khơng ngừng của phân tích dữ liệu. Ngồi ra cịn một số
nhân tố khác cũng tạo ra sự phát triển của ngành.
Internet of Thing (IoT) hay cụ thể hơn là 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 là một liên mạng, trong đó các thiết bị kết
nối với nhau. Việc kết nối thì có thể thực hiện qua Wifi, mạng viễn thông băng rộng
(3G, 4G), Bluetooth, ZigBee, hồng ngoại… Các thiết bị có thể là điện thoại thông
minh, máy pha cafe, máy giặt, tai nghe, bóng đèn và nhiều thiết bị khác. Cisco, nhà
cung cấp giải pháp và thiết bị mạng hàng đầu hiện nay dự báo: Đến năm 2020, sẽ
có khoảng 50 tỷ đồ vật kết nối vào Internet, thậm chí con số này còn gia tăng nhiều
hơn nữa. IoT sẽ là mạng khổng lồ kết nối tất cả mọi thứ, bao gồm cả con người và
sẽ tồn tại các mối quan hệ giữa người và người, người và thiết bị, thiết bị và thiết bị.
Hình 1.1: Internet of Things
IoT là một mạng lưới mà trong đó, mỗi đồ vật, con người được cung cấp một
định danh riêng của 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.
5
Lị ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
Ngồi ra IoT có khá nhiều ứng dụng trong cuộc sống xung quanh mỗi chúng ta như:
Nhà thơng minh (Smart Home):
Hình 1.2: Smart Home
Nông nghiệp thông minh (Smart Farm): Áp dụng các hệ thống cảm biến tự
động hóa và các q trình từ chuẩn bị, ni dưỡng đến phân phối
Hình 1.3: Smart Farm
1.3. Mục tiêu đề tài.
- Thiết kế thành công được một hệ thống máy ấp trứng tự động sẽ cung
cấp nhiệt độ ấp khi cần thiết, nếu thừa nhiệt sẽ có quạt xả nhiệt và tự
động đảo trứng.
- Giám sát được các thông số nhiệt độ, thời gian đảo, báo hiệu khi thừa
nhiệt trên Wed.
- Hệ thống có thể hoạt động với mức ổn định cao như mục tiêu
- Đáp ứng đủ nhu cầu, điều kiện về nhiệt độ, đảo trong việc ấp nở trứng.
6
Lò ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
CHƯƠNG II. CƠ SỞ LÝ THUYẾT ĐỀ TÀI
Chương này bắt đầu trình bày về nội dung thiết bị và các phần mềm ngôn ngữ
lập trình giúp chúng em tạo nên đồ án này như Html, Css, Bootstrap5,
Nodejs, Arduino, Altium, MQTT Mysql. Phần thứ nhất tập trung trình bày tổng quan
về các thiết bị sử dụng cho đồ án. Cụ thể bao gồm vi điều khiển ESP8266, Arduino,
cảm biến nhiệt độ, độ ẩm DHT11, màn hình LCD, Relay, động cơ bước... Phần thứ
hai của chương sẽ giới thiệu tổng quát về các ngôn ngữ lập trình và hỗ trợ cho đồ án
trong việc đọc giá trị nhiệt độ, độ ẩm gửi lên broker và sau đó lưu vào database, lấy
dữ liệu từ database ra xử lí và hiển thị lên web cho chúng ta quan sát, sử dụng.
2.1.Các linh kiện sử dụng và chức năng
1. ESP8266
ESP8266 là một hệ thống trên chip (SoC), do cơng ty Espressif của Trung
Quốc sản xuất. Nó bao gồm bộ vi điều khiển Tensilica L106 32-bit (MCU) và bộ
thu phát Wi-Fi. Nó có 11 chân GPIO (Chân đầu vào / đầu ra đa dụng) và một đầu
vào analog, có nghĩa là bạn có thể lập trình nó giống như với Arduino hoặc vi điều
khiển khác. Bản thân chip ESP8266 có 17 chân GPIO, nhưng 6 trong số các chân
này (6-11) được sử dụng để giao tiếp với chip nhớ flash trên bo mạch. Ngồi ra
nó có kết nối Wi-Fi, vì vậy bạn có thể sử dụng nó để kết nối với mạng Wi-Fi, kết
nối Internet, lưu trữ máy chủ web với các trang web thực, để điện thoại thông
minh của bạn kết nối với nó, ... Khả năng là vơ tận! Khơng có gì lạ khi con chip
này đã trở thành thiết bị IoT phổ biến nhất hiện có.
ESP8266 dùng để làm gì
7
Lị ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
ESP8266 có thể được dùng làm module Wifi bên ngoài, sử dụng firmware tập
lệnh AT tiêu chuẩn bằng cách kết nối nó với bất kỳ bộ vi điều khiển nào sử dụng
UART nối tiếp hoặc trực tiếp làm bộ vi điều khiển hỗ trợ Wifi, bằng cách lập trình
một chương trình cơ sở mới sử dụng SDK được cung cấp.
Các chân GPIO cho phép IO Analog và Digital, cộng với PWM, SPI, I2C, v.v.
ESP8266 có nhiều ứng dụng khi nói đến IoT. Đây chỉ là một số chức năng mà
chip này được sử dụng
Kết nối mạng: Ăng-ten Wi-Fi của module cho phép các thiết bị nhúng kết nối
với bộ định tuyến và truyền dữ liệu
Xử lý dữ liệu: Bao gồm xử lý đầu vào cơ bản từ cảm biến analog và kỹ thuật số
để tính tốn phức tạp hơn nhiều với RTOS hoặc SDK không phải hệ điều hành
Kết nối P2P: Tạo giao tiếp trực tiếp giữa các ESP và các thiết bị khác bằng kết
nối IoT P2P
Máy chủ Web: Truy cập các trang được viết bằng HTML hoặc ngôn ngữ phát
triển.
2. Relay
Là một công tắc điện từ được vận hành bởi một dịng điện tương đối nhỏ có
thể bật hoặc tắt một dòng điện lớn hơn nhiều. Trái tim của relay là một nam
châm điện (một cuộn dây trở thành một nam châm tạm thời khi dịng điện chạy
qua nó). Bạn có thể nghĩ về relay như một loại đòn bẩy điện: Khi bật nó bằng
một dịng điện nhỏ và nó bật (“đòn bẩy”) một thiết bị khác sử dụng dòng điện
lớn hơn nhiều.
3. Động cơ Servo SG90
Hiện nay, có nhiều loại động cơ servo với những tính năng chính là điều khiển
chính xác được vị trí của trục. Việc điều khiển động cơ servo giúp cho một hệ
thống vịng kín có thể sử dụng phản hồi vị trí để điều khiển được chuyển động và
vị trí cuối cùng của nó. Động cơ thường được sử dụng là bộ truyền động có kích
8
Lò ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
thước nhỏ được sử dụng để điều khiển những phương tiện như xe ô tô, thuyền,
máy bay,... Chúng cũng được các sinh viên ngành kỹ thuật dùng để chế tạo robot,
tạo ra bộ phận cánh tay robot, chế tạo ra robot lấy cảm hứng sinh học hay robot
có hình người,...
Động cơ servo SG90 180 độ là động cơ DC có tốc độ phản ứng nhanh, các
bánh răng được làm bằng nhựa nên cần lưu ý khi nâng tải nặng vì có thể làm hư
bánh răng, động cơ RC Servo 9G có tích hợp sẵn Driver điều khiển động cơ bên
trong nên có thể dễ dàng điều khiển góc quay bằng phương pháp điều độ rộng
xung PWM.
Phương pháp điều khiển PWM:
•
•
Độ rộng xung 0.5ms ~ 2.5ms tương ứng 0-180 độ
Tần số 50Hz, chu kỳ 20ms
4. DHT11
- DHT11 có cấu tạo 4 chân như hình. Nó sử dụng giao tiếp số theo chuẩn 1 dây.
- Thơng số kỹ thuật:
• Do độ ẩm: 20%-95%
• Nhiệt độ: 0-50ºC
• Sai số độ ẩm ±5% o Sai số nhiệt độ: ±2ºC 2.
Nguyên lý hoạt động:
9
Lò ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
- Sơ đồ kết nối vi xử lý:
- Nguyên lý hoạt động: Để có thể giao tiếp với DHT11 theo chuẩn 1 chân vi xử
lý thực hiện theo 2 bước:
• Gửi tin hiệu muốn đo (Start) tới DHT11, sau đó DHT11 xác nhận
lại.
• Khi đã giao tiếp được với DHT11, Cảm biến sẽ gửi lại 5 byte dữ
liệu và nhiệt độ đo được.
- Bước 1: gửi tín hiệu Start
• MCU thiết lập chân DATA là Output, kéo chân DATA xuống 0 trong khoảng
thời gian >18ms. Trong Code mình để 25ms. Khi đó DHT11 sẽ hiểu MCU
muốn đo giá trị nhiệt độ và độ ẩm.
• MCU đưa chân DATA lên 1, sau đó thiết lập lại là chân đầu vào. o Sau khoảng
20-40us, DHT11 sẽ kéo chân DATA xuống thấp. Nếu >40us mà chân DATA
ko được kéo xuống thấp nghĩa là ko giao tiếp được với DHT11.
• Chân DATA sẽ ở mức thấp 80us sau đó nó được DHT11 kéo nên cao trong
80us. Bằng việc giám sát chân DATA, MCU có thể biết được có giao tiếp
được với DHT11 ko. Nếu tín hiệu đo được DHT11 lên cao, khi đó hồn thiện
q trình giao tiếp của MCU với DHT. - Bước 2: đọc giá trị trên DHT11
• DHT11 sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 byte. Trong đó:
❖ Byte 1: giá trị phần nguyên của độ ẩm (RH%)
❖ Byte 2: giá trị phần thập phân của độ ẩm (RH%)
10
Lò ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
❖ Byte 3: giá trị phần nguyên của nhiệt độ (TC)
❖ Byte 4 : giá trị phần thập phân của nhiệt độ (TC)
❖ Byte 5 : kiểm tra tổng. ð Nếu Byte 5 = (8 bit) (Byte1 +Byte2 +Byte3 +
Byte4) thì giá trị độ ẩm và nhiệt độ là chính xác, nếu sai thì kết quả đo
khơng có nghĩa.
• Đọc dữ liệu: Sau khi giao tiếp được với DHT11, DHT11 sẽ gửi liên tiếp 40
bit 0 hoặc 1 về MCU, tương ứng chia thành 5 byte kết quả của Nhiệt độ và độ
ẩm.
• Bít 0
• Bít 1
• Sau khi tín hiệu được đưa về 0, ta đợi chân DATA của MCU được DHT11
kéo lên 1. Nếu chân DATA là 1 trong khoảng 26-28 us thì là 0, cịn nếu tồn tại
70us là 1. Do đó trong lập trình ta bắt sườn lên của chân DATA, sau đó delay
50us. Nếu giá trị đo được là 0 thì ta đọc được bit 0, nếu giá trị đo được là 1 thì
giá trị đo được là 1. Cứ như thế ta đọc các bit tiếp theo.
5. LCD và giao tiếp I2C
• Màn hình LCD 16x2
11
Lị ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
LCD 16x2 có 16 chân trong đó 8 chân dữ liệu (D0-D7) và 3 chân điều khiển
(RS, RW, EN). Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh
hoặc chế độ dữ liệu.
LCD16x2 xanh sử dụng driver HD44780, có khả năng hiển thị 2 dịng với
mỗi dịng 16 ký tự, màn hình có độ bền cao, rất phổ biến, nhiều code mẫu và dễ
sử dụng thích hợp cho những người mới học và làm dự án
• Giao tiếp I2C
I2C là một chuẩn giao tiếp theo mơ hình master/slave được phát triển vào
năm 1982 bởi hãng Philips cho việc giao tiếp ngoại vi giữa các vi điều khiển, IC
trong khoảng cách ngắn. Chuẩn giao tiếp I2C được sử dụng rất phổ biến trong
các thiết bị điện tử bởi đặc tính dễ thực hiện với giao tiếp giữa một hoặc nhiều
thiết bị làm master với một hoặc hoặc nhiều thiết bị làm slave. Các hãng sản
xuất IC ngày nay đều hỗ trợ giao tiếp I2C trên các IC có ứng dụng cần giao tiếp
với các IC hay các vi điều khiển khác.
Giao tiếp I2C chỉ sử dụng 2 dây cho việc giao tiếp giữa 128 thiết bị với việc
định địa chỉ 7 bit và 1024 thiết bị với việc định địa chỉ 10 bit. Mỗi thiết bị trong
mơ hình master/slave sẽ có một địa chỉ cố định và duy nhất và master sẽ lựa
chọn thiết bị nào cần giao tiếp.
Hoạt động
I2C sử dụng 2 dây giao tiếp là SCL và SDA. Dây SCL (viết tắt của Serial
Clock Data) là dây truyền xung clock phát từ thiết bị master đồng bộ với việc
truyền dữ liệu. Dây SDA (Serial Data) là dây truyền dữ liệu.
Mạch vật lý I2C là mạch cực thu hở, do đó để mạng I2C có thể hoạt động
được, cần tối thiểu 2 cặp điện trở pull-up như trên hình, thơng thường các giá trị
điện trở 4k7 hoặc 1k2 được sử dụng, tùy thuộc vào tốc độ truyền và khoảng cách
truyền
12
Lị ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
.
• Truyền nhận bit trong I2C:
Các dữ liệu được truyền trong I2C dạng các chuỗi 8 bit. Sau khi bit Start
đầu tiên được truyền, 8 bit tiếp theo chứa thông tin về địa của thiết bị sẽ được
truyền tiếp. Sau đó, một bit ACK sẽ được truyền để xác nhận việc truyền bit
thành công. Sau khi truyền bit ACK, 8 bit tiếp theo chứa thông tin địa chỉ
thanh ghi nội của thiết bị slave sẽ được truyền. Sau khi hoàn tất việc định địa
chỉ với 8 bit này, một bit ACK nữa sẽ được truyền để xác nhận. Sau đó, 8 bit
Data sẽ được truyền tiếp theo. Cuối cùng, quá trình truyền kết thúc với 1 bit
ACK và 1 bit Stop xác nhận việc truyền dữ liệu kết thúc.
2.2. Các phần mềm thực hiện
1. Giao thức MQTT
MQTT (Message Queuing Telemetry Transport) là một giao thức nhắn tin
tiêu chuẩn OASIS cho Internet of Things (IoT). Được thiết kế như một phương tiện
truyền tải tin nhắn publish/subscribe (xuất bản/đăng ký) cực kỳ nhẹ, lý tưởng để kết
nối các thiết bị từ xa với băng thông mạng thấp. MQTT ngày nay được sử dụng
trong nhiều ngành công nghiệp, chẳng hạn như ô tô, sản xuất, viễn thơng, dầu khí,
nhà thơng minh...
MQTT là một trong những giao thức được sử dụng phổ biến nhất liên quan
đến IoT. MQTT cho phép các thiêt bị IoT hạn chế về tài nguyên gửi hoặc xuất bản
thông tin về một chủ đề nhất định tới một máy chủ có chức năng như một message
broker MQTT. Sau đó, broker sẽ đẩy thơng tin ra ngoài cho những máy khách đã
subscribe chủ đề trước đó. Đối với con người, một chủ đề trong giống như một
đường dẫn tệp phân cấp. Máy khách có thể subscribe một cấp cụ thể trong hệ thống
phân cấp của chủ đề hoặc sử dụng kí tự đại diện để subscribe nhiều cấp.
Cơ chế publish/subscribe hoạt động dựa trên 3 yếu tố:
• Publisher: kết nối tới broker và gửi gói tin
• Subscriber: kết nối tới một broker tương tự, nhận bản tin mà thiết bị theo dõi.
13
Lị ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
• Message Broker: bộ điều khiển trung tâm, luân chuyển bản tin giữa các thiết
bị trong hệ thống.
Client gửi và nhận – publish/subscribe thông điệp thông qua các Topic – chủ
đề. Một Client có thể publish hay subscribe vào nhiều topic. MQTT Broker sẽ tự động
phân phối bất cứ thông điệp nào được publish – xuất bản vào một topic đến tất
cả Client đã subscribe vào topic này.
MQTT Topic thực chất là một chuỗi kí tự (UTF-8) được sử dụng bởi Broker
để phân loại thông điệp trước khi gửi đến Client. MQTT Topic có thể bao gồm nhiều
mức – level, phân cách với nhau bởi dấu gạch ‘/’, ví dụ: IoT/May_say. Mỗi topic phải
có ít nhất một kí tự, cho phép khoảng trống – space và có phân
biệt chữ hoa và thường; ‘/’ là một topic hợp lệ.
Đặc tính nhẹ và chi phí tối thiểu của kiến trúc giao thức MQTT giúp đảm bảo
truyền dữ liệu trơn tru với băng thông thấp và giảm tải cho CPU và RAM. Trong số
các lợi thế của MQTT so với các giao thức cạnh tranh là:
• Truyền dữ liệu hiệu quả và thực hiện nhanh chóng, do nó là một giao thức nhẹ
• Mức sử dụng mạng thấp, do gói dữ liệu bị giảm thiểu
• Phân phối dữ liệu hiệu quả
• Triển khai thành cơng viễn thám và điều khiển
• Truyền tải thơng điệp nhanh chóng, hiệu quả
• Sử dụng lượng điện năng nhỏ, tốt cho các thiết bị được kết nối, và
• Tối ưu hóa băng thông mạng
Những nhược điểm tiềm ẩn đối với MQTT bao gồm những điều sau:
• MQTT có chu kỳ truyền chậm hơn so với Giao thức ứng dụng bị ràng buộc
(CoAP).
• Khám phá tài nguyên của MQTT hoạt động dựa trên đăng ký chủ đề linh hoạt,
trong khi CoAP sử dụng hệ thống khám phá tài nguyên ổn định.
• MQTT khơng được mã hóa. Thay vào đó, nó sử dụng TLS / SSL (Bảo mật lớp
truyền tải / Lớp cổng bảo mật) để mã hóa bảo mật.
• Rất khó để tạo ra một mạng MQTT có thể mở rộng tồn cầu.
• Các thách thức MQTT khác liên quan đến bảo mật, khả năng tương tác và xác
thực.
2. Tìm hiểu nodejs
NodeJS là một nền tảng xây dựng trên nền tảng Javascript V8 Engine, phần
mềm này được sử dụng để tạo nên các ứng dụng website như các trang video clip,
các diễn đàn và các trang mạng xã hội trong phạm vi hẹp. Node JS là một trong những
mà nguồn mở được nhiều lập trình viên sử dụng trên tồn thế giới.
14
Lị ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
Các đặc tính của NodeJS Sở hữu những đặc tính vượt trội, tin rằng trong tương
lai NodeJS sẽ là một trong những ngôn ngữ lập trình hàng đầu.
Khơng đồng bộ: None blocking – khơng đồng bộ có trên tất cả các API của Node
JS nó chủ yếu dựa trên server giúp trả dữ liệu về. Việc di chuyển trên máy chủ của
các API theo sau khi cơ chế thông báo các sự kiện của NodeJS Server và chờ đợi
server trả dữ liệu về. Việc di chuyển máy chủ đến các API sau khi gọi và cơ chế thông
báo các sự kiện của Node JS giúp máy chủ có thể phản ứng từ các cuộc gọi API trước
( thời gian thực ) Chạy rất nhanh: Node được phát triển vững chắc dựa trên nền tảng
Java Script Engine do vậy việc thực thi chương trình diễn ra nhanh chóng. Đơn luồng
tuy nhiên khả năng mở rộng cao:
• Node.js mang đến một mơ hình luồng dữ liệu duy nhật với sự kiện lặp với
cơ chế tổ chức sự kiện giúp các máy chủ đáp ứng một cách ngăn chặn và
làm cho máy chủ có khả năng mở rộng với các máy chủ truyền thống và tạo
đề hạn chế để xử lý yêu cầu.
• Node.js sử dụng một chương trình đơn luồng và các chương trình tương tự
giúp thể cung cấp dịch vụ cho một số lượng lớn hơn nhiều so với yêu cầu
tại
các
máy
chủ
truyền
thống
như
Apache
HTTP
Server.
Không đệm: NodeJS không đệm bất kỳ một dữ liệu thông qua các ứng dụng này
chủ yếu là đầu ra của dữ liệu
Ưu điểm của nodeJS mang lại vơ cùng lớn:
+ Có tốc độ xử lý nhanh nhờ cơ chế xử lý bất đồng bộ (non-blocking). Bạn
có thể dễ dàng xử lý hàng ngàn kết nối trong khoảng thời gian ngắn nhất.
+ Giúp bạn dễ dàng mở rộng khi có nhu cầu phát triển website.
+ Nhận và xử lý nhiều kết nối chỉ với một single-thread. Nhờ đó, hệ thống xử
lý sẽ sử dụng ít lượng RAM nhất và giúp quá trình xử Nodejs lý nhanh hơn
rất nhiều.
Có khả năng xử lý nhiều Request/s cùng một lúc trong thời gian ngắn nhất
+ Có khả năng xử lý hàng ngàn Process cho hiệu suất đạt mức tối ưu nhất.
+ Phù hợp để xây dựng những ứng dụng thời gian thực như các ứng dụng
chat, mạng xã hội …
Một số nhược điểm của nodeJS
15
Lò ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
+ Nodejs gây hao tốn tài nguyên và thời gian. Nodejs được viết bằng C++ và
JavaScript nên khi xử lý cần phải trải qua một quá trình biên dịch. Nếu bạn
cần xử lý những ứng dụng tốn tài ngun CPU thì khơng nên sử dụng
Nodejs.
+ Nodejs so với các ngôn ngữ khác như PHP, Ruby và Python sẽ khơng có
sự chênh lệch q nhiều. Nodejs có thể sẽ phù hợp với việc phát triển ứng dụng
mới. Tuy nhiên khi xây dựng và triển khai dự án quan trọng thì Nodejs khơng
phải là sự lựa chọn hồn hảo nhất.
3. Tìm hiểu CSDL Mysql
Mysql là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và
được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì Mysql
là hệ quản trị cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển,
hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất
mạnh. Với tốc độ và tính bảo mật cao, Mysql rất thích hợp cho các ứng dụng có truy
cập CSDL trên internet. Người dùng có thể tải về Mysql miễn phí từ trang chủ.
Mysql có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win 32 cho
các hệ điều hành dòng Windows, Linux, Mac OSX, Unix, FreeBSD, NetBSD,
Novell NetWare, SGI Irix, Solaris, SunOS… Mysql là một trong những ví dụ rất cơ
bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc
(SQL).
Mysql được sử dụng cho việc bổ trợ NodeJs, PHP, Perl, và nhiều ngôn ngữ
khác, làm nơi lưu trữ những thông tin trên các trang web viết bằng NodeJs, PHP hay
Perl,... Và cơng cụ này có phiên bản được sử dụng hồn tồn miễn phí.
Mysql là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến hàng đầu trên thế
giới
Mysql có sự tương đồng với ngơn ngữ SQL về cách truy xuất và mã lệnh. Công
cụ này được phát hành từ những năm 90 của thế kỷ 20.
Mysql hiện có 2 phiên bản:
- Phiên bản miễn phí (Mysql Community Server)
- Phiên bản trả phí (Enterprise Server)
Database là tập hợp dữ liệu theo cùng một cấu trúc. Hãy thử nghĩ về việc chụp
hình tự sướng, bạn nhấn nút chụp ảnh về chính bản thân bạn. Hình ảnh là dữ liệu,
thư viện lưu ảnh là cơ sở dữ liệu. Cơ sở dữ liệu, hay database, là nơi chứa và sắp đặt
16
Lò ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
dữ liệu. Dữ liệu được đặt trong một bộ dữ liệu chung, dataset, được tổ chức sắp xếp
giống như một bảng tính vậy. Mỗi “bảng” này có liên hệ với nhau theo cách nào đó.
Vì vậy từ Relational (liên hệ) trong RDBMS có ý nghĩa như vậy. Nếu phần mềm
không hỗ trợ mô hình dữ liệu quan hệ với nhau như vậy thì gọi là DBMS.
Mysql Server là máy tính hay một hệ các máy tính cài đặt phần mềm Mysql
dành cho server để giúp bạn lưu trữ dữ liệu trên đó, để máy khách có thể truy cập
vào quản lý. Dữ liệu này được đặt trong các bảng, và các bảng có mối liên hệ với
nhau.
Mysql server nhanh, an toàn, đáng tin cậy. Phần mềm Mysql cũng miễn phí
và được phát triển, phân phối và hỗ trợ bởi Oracle Corporation
Cấu trúc cơ bản về việc giao tiếp giữa client-server model. Một máy client sẽ
liên lạc với máy server trong một mạng nhất định. Mỗi client có thể gửi một request
từ giao diện người dùng (Graphical user interface – GUI) trên màn hình, và server
sẽ trả về kết quả như mong muốn. Miễn là cả hai hiểu nhau. Cách vận hành chính
trong mơi trường Mysql cũng như vậy:
• Mysql tạo ra bảng để lưu trữ dữ liệu, định nghĩa sự liên quan giữa các
bảng đó.
• Client sẽ gửi u cầu SQL bằng một lệnh đặc biệt trên Mysql.
• Ứng dụng trên server sẽ phản hồi thông tin và trả về kết quả trên máy
client.
Từ máy client, việc chọn GUI Mysql khá quan trọng. GUI càng nhẹ chừng
nào, thì các thao tác quản lý data sẽ càng dễ dàng và nhanh chừng đó. Mysql GUI
phổ biến nhất Mysql WorkBench, SequelPro, DBVisualizer, và Navicat DB Admin
Tool. Một vài trong số chúng miễn phí, một vài bản thương mại, một vài bản chỉ
chạy được trên macOS, và một vài ứng dụng chạy được hết trên các hệ điều hành
phổ biến. Clients nên chọn GUI tùy vào nhu cầu của họ. Để quản lý web database, ví
dụ như một trang web WordPress, rõ ràng nên chọn phpMyAdmin
Mysql client không hẵn phải cài phần mềm Mysql của Oracle mà là nói chung
của mọi phần mềm có thể thực hiện truy vấn lên một Mysql server và nhận kết quả
trả về. Mysql client điển hình là đoạn mã PHP script trên một máy tính hay trên cùng
server dùng để kết nối tới cơ sở dữ liệu Mysql database. Phpmyadmin cũng là một
Mysql client có giao diện người dùng. Một số cơng cụ miễn phí dùng làm Mysql là:
• Mysql Workbench (Mac, Windows, Linux), Miễn phí, mã nguồn mở
• Sequel Pro (Mac), miễn phí, mã nguồn mở
• HeidiSQL (Windows; chạy trên Mac hoặc Linux bằng WINE emulator), miễn
phí
• phpMyAdmin (web app), miễn phí, mã nguồn mở
Ưu điểm
Được sử dụng rộng rãi bởi các website lớn với lượt truy cập ‘khủng’, Mysql có
được những ưu điểm và tiện ích nổi bật vượt xa các phần mềm khác như:
17
Lị ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
• Dễ sử dụng: Mysql đơn giản, dễ sử dụng. Ngoài ra, phần mềm này có thể hoạt
động trên khá nhiều hệ điều hành nhằm cung cấp nhiều hàm tiện ích mạnh
mẽ.
• Bảo mật cao: Mysql sở hữu khá nhiều tính năng bảo mật, bao gồm các loại
hình bảo mật cấp cao.
• Đa tính năng: Mysql cung cấp nhiều tính năng mà bất cứ hệ quản trị CSDL
quan hệ nào cũng phải mong đợi.
• Vận hành mạnh mẽ và mở rộng dễ dàng: Mysql có khả năng xử lý một lượng
lớn dữ liệu. Bên cạnh đó, người dùng có thể mở rộng nó nếu có nhu cầu.
• Nhanh chóng: Tốc độ hoạt động của Mysql nhanh hơn các phần mềm khác
nhờ các tiêu chuẩn được tích hợp sẵn.
• Có thể khơi phục dữ liệu: Mysql cho phép người dùng khôi phục dữ liệu, tránh
khỏi ảnh hưởng của các sự cố.
Nhược điểm
Tuy nhiên, nên cân nhắc về các nhược điểm của Mysql trước khi quyết định liệu
có nên dùng nó hay khơng.
• Bị giới hạn: Mysql bị hạn chế về một vài tính năng mà các ứng dụng có thể
sẽ cần đến
• Độ tin cậy không quá cao: So với các hệ quản trị CSDL quan hệ khác, độ tin
cậy của Mysql không quá cao.
• Bị hạn chế về dung lượng: Số bản ghi trong Mysql càng tăng thì truy xuất dữ
liệu càng trở nên khó khăn do hạn chế về dung lượng
4. Tìm hiểu HTML và CSS
HTML/CSS đều là hai ngôn ngữ lập trình. Trong khi HTML (HyperText
Markup Language – ngơn ngữ đánh dấu) được dùng để xây dựng cấu trúc cho
từng phần nội dung thì CSS (Cascading Style Sheet- ngơn ngữ định dạng theo
từng lớp) được dùng để tạo định dạng hiển thị cho HTML. Nói cách khác, HTML
là cơng cụ để thêm nội dung và mô tả ý nghĩa cho bố cục, cịn CSS là cơng cụ để
trang trí, thiết lập cỡ chữ, màu sắc, các kiểu chữ, hiệu ứng đơn giản… cho giao
diện trang web.
18
Lò ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
CHƯƠNG III. THIẾT KẾ HỆ THỐNG
Chương trước đã trình bày các khái quát về nhu cầu, thiết bị sử dụng cũng
như các công cụ phần mềm hỗ trợ và phục vụ cho đồ án. Chương này sẽ tập trung
trình bày về phần thiết kế sơ đồ khối tổng quát của cả hệ thống, cụ thể bao gồm trình
bày về sơ đồ tổng quát, chi tiết các khối trong sơ đồ. Cũng trình bày về các giao tiếp
như MQTT, Mysql, giúp cho nhóm có định hướng cũng như cách triển khai dự án tốt
nhất
3.1. Sơ đồ khối mô tả hệ thống
Hệ thống bao gồm 2 khối chính là khối vật lý và khối ứng dụng:
Hình 3.1. Sơ đồ tổng qt
Trong đó:
Khối vật lí: có chức năng chính là đọc giá trị nhiệt độ, độ ẩm, hiển thị LCD
16x2, điều khiển các nút ấn, motor.
MQTT, Mosquitto: có chức năng là gửi và nhận gói tin giữa 2 khối vật lí,
khối ứng dụng. Cung cấp dữ liệu để lưu mà Mysql làm cơ sở dữ liệu giúp người
dùng quan sát, và theo dõi sản phẩm
MYSQL: là quá trình lấy dữ liệu trên Mosquitto và lưu vào trong Database
Khối ứng dụng: hiển thị dữ liệu lên Web, và cài đặt thiết bị gửi xuống khối
vật lí
19
Lò ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
3.2. Khối vật lý
Sơ đồ khối vật lý sẽ được trình bày ở dưới đây:
Hình 3.2: Sơ đồ khối vật lý
Trong khối vậy lý này ESP8266 sẽ có chức năng sau:
-
Thực hiện việc đọc giá trị nhiệt độ độ ẩm từ DHT11.
Hiển thị giá trị nhiệt độ, độ ẩm lên màn hình LCD.
Đẩy các giá trị lên Database và thực hiện việc truyền nhận các Topic từ khối
ứng dụng.
Giao tiếp UART với Arduino. Truyền các chuỗi Json để Arduino điều khiển
các thiết bị
Arduino có các chức năng sau:
-
Nhận các chuỗi Json từ ESP8266
Thơng qua các chuỗi Json điều khiển bật tắt Relay để điều khiển hệ thống
Sử dụng Button để bật tắt thiết bị điều khiển khi hệ thống ở chế độ thủ công
3.3. Khối MQTT, khối MySQL, khối ứng dụng
Khối MQTT, Mosquitto
MQTT là phương thức truyền nhận các gói tin thơng qua internet dưới dạng
các gói tin có dung lượng nhỏ phù hợp với các thiết bị IoT, sử dụng một MQTT
Broker làm server trung gian để chuyển tiếp các gói tin giữa các thiết bị, MQTT có
2 phương thức để thao tác với gói tin như là publish, subscribe. Ở đồ án này chúng
em lựa chọn một Broker miễn phí trên mạng là Mosquitto để thiết lập một Broker
trên máy tính.
20
Lị ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
Hình 3.3: Khối MQTT, Mosquitto
Khối cơ sở dữ liệu(Mysql)
Mysql nhiệm vụ chính lưu trữ dữ liệu, hỗ trợ một số phương thức xuất dữ liệu ra
ngoài dưới dạng các bảng, các cột hay hàng…
Khối ứng dụng
Hình 3.4: Khối ứng dụng
Gồm hai phần chính:
NodeJS: sử dụng NodeJS để tạo Server ảo trên máy tính cá nhân.
Client : đóng vai trị như một thiết bị truy cập vào server được tạo ở
bước trên.
21
Lò ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
CHƯƠNG IV. THIẾT KẾ SẢN PHẨM
Ở chương 3 đã đưa ra được sơ đồ khối tổng quát cho cả hệ thống cũng như
chi tiết về chức năng nhiệm vụ của từng khối trong sơ đồ. Nội dung chương này
sẽ trình bày chi tiết về quá trình quá trình tạo ra một sản phẩm của nhóm, cụ thể
Và đi vào thực hiện chi tiết các khối như đã nêu ra ở chương 3, quá trình thu thập
dữ liệu để cài đặt hoặc gửi lên Mosquitto để thực hiện lưu vào Database và hiển
thị lên trên web, cũng như quá trình điều khiển trên Web gửi xuống Mosquitto và
xuống khối vật lí để điều khiển
Hình 4.1: Sơ đồ khối tổng quát hệ thống
22
Lò ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
4.1. Kết nối ESP và các Module
-
Khai báo thư viện sử dụng cho ESP8266, các chân và kết nối với mạng wifi
-
Hàm thực hiện kết nối wifi và khai báo các chân
23
Lò ấp trứng tự động
-
GVHD: Nguyễn Ngọc Minh
Hàm kết nối Wifi và setup màn LCD
24
Lò ấp trứng tự động
GVHD: Nguyễn Ngọc Minh
-
Hàm nhận dữ liệu khi có Topic từ Wed gửi về
-
Hàm kết nối lại khi mất kết nối với MQTT và gửi các Topic được đăng ký để
nhận dữ liệu
-
Kiểm tra kết nối mạng
25