Tải bản đầy đủ (.pdf) (35 trang)

Đề tài dự thi khoa học kĩ thuật dành cho học sinh THPT Hệ thống cảnh báo lũ sớm

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 (2.17 MB, 35 trang )

ĐỀ TÀI DỰ THI KHOA HỌC, KỸ THUẬT
DÀNH CHO HỌC SINH TRUNG HỌC CẤP TỈNH
(NĂM HỌC 2016 - 2017).

Tên đề tài: HỆ THỐNG CẢNH BÁO LŨ SỚM
Lĩnh vực: Vật lý – Thiên văn học
Tác giả: Hoàng Khánh Ly, Nguyễn Văn Đức
Người hướng dẫn: Giáp Văn Huy
Đơn vị dự thi: Trường THPT Sơn Động số 3

MỤC LỤC


MỤC LỤC
PHẦN 1: LÍ DO CHỌN ĐỀ TÀI
PHẦN 2: MỤC ĐÍCH NGHIÊN CỨU VÀ GIẢ THIẾT KHOA HỌC
1. MỤC ĐÍCH NGHIÊN CỨU
2. NHIỆM VỤ NGHIÊN CỨU
3. GIẢ THIẾT KHOA HỌC
PHẦN 3: ĐỐI TƯỢNG, PHẠM VI VÀ PHƯƠNG PHÁP NGHIÊN CỨU
1. ĐỐI TƯỢNG NGHIÊN CỨU
2. PHẠM VI NGHIÊN CỨU
3. PHƯƠNG PHÁP NGHIÊN CứU
PHẦN 4: CƠ SỞ LÍ LUẬN
1. KHÁI NIỆM, ĐẶC ĐIỂM VÀ ĐIỀU KIỆN HÌNH THÀNH CỦA LŨ QUÉT
2. CÁC HỆ THỐNG ĐÃ VÀ ĐANG ĐƯỢC ÁP DỤNG TẠI VIỆT NAM
3. CẤU TẠO VÀ NGUYÊN LÍ HOẠT ĐỘNG CỦA HỆ THỐNG
PHẦN 5: KẾT QUẢ NGHIÊN CỨU VÀ THẢO LUẬN
PHẦN 6: BÀN LUẬN
PHẦN 7: KẾT LUẬN
PHầN 8: PHỤ LỤC



PHẦN 1: LÍ DO CHỌN ĐỀ TÀI
Lũ quét xảy ra ở hầu khắp các nước trên thế giới, đặc biệt ở các lưu vực sông nằm trong
vùng nhiệt đới, chịu ảnh hưởng của khí hậu gió mùa và bão.Tại Việt Nam trong những năm gần đây,
những cơn lũ quét lớn, đến bất ngờ và có sức tàn phá lớn xuất hiện thường xuyên ở nhiều nơi trên
địa bàn cả nước, đặc biệt là ở vùng núi, gây thiệt hại nặng nề. Vì vậy, nhóm chúng tôi đã chọn đề tài
“Hệ thống cảnh báo lũ sớm” với mong muốn thiết lập được một hệ thống cảnh báo lũ sớm đơn
giản mà hiệu quả giúp phòng tránh lũ quét, giảm bớt thiệt hại cho người dân.
Đề tài được thực hiện xoay quanh một hệ thống cảnh báo lũ có thiết kế mang tính chất điện
học và cơ học, kết hợp với các số liệu về địa lý thu thập được ở những nơi hay xảy ra lũ quét như


lượng mưa, mực nước sông dâng lên hàng năm, đặc điểm địa hình,… qua đó xác định thời điểm lũ
quét sắp xảy ra để thông báo cho người dân di tản kịp thời.
Kết quả thu được từ đề tài:
-

Thu được những số liệu hữu ích, không chỉ tạo nên hệ thống cảnh báo mà còn có thể
giúp các địa phương xây dựng thêm cơ sở vật chất hợp lý nhằm phòng chống lũ.
Xây dựng nên hệ thống cảnh báo ban đầu chính xác, mở ra cơ hội khả quan phát triển
nên hệ thống mới có độ chính xác tốt hơn và được điều khiển tự động.

TÍNH CẤP THIẾT CỦA VẤN ĐỀ NGHIÊN CỨU
Lũ quét từ lâu đã là nạn thiên tai gây nên biết bao nỗi khổ đau cho người Việt. Theo thống kê
cho thấy: từ năm 2000 đến 2014 xảy ra 250 đợt lũ quét, làm chết 646 người, bị thương gần 351
người; hơn 9.700 căn nhà bị đổ trôi; hơn 100.000 căn nhà bị ngập; hơn 75.000 ha lúa và hoa màu bị
ngập; hàng trăm ha đất canh tác bị vùi lấp; nhiều công trình bị hư hỏng nặng nề, tổng thiệt hại ước
tính trên 3.300 tỷ đồng.Có thể điểm lại một số trận lũ quét, sạt lở điển hình, gây thiệt hại lớn về
người và tài sản như trận lũ quét năm 2000 tại bản Nậm Cóong ( xã Nậm Cuối, huyện Sìn Hồ, tỉnh
Lai Châu) làm 39 người chết, 18 người bị thương. Trận lũ quét năm 2002 xảy ra ở các huyện Hương

Sơn, Hương Khê và Vụ Quang, tỉnh Hà Tĩnh làm 53 người chết và mất tích, 111 người bị thương.
Lũ quét gây sạt lở đất núi tại tỉnh Lào Cai năm 2004 đã làm 22 người chết và mất tích, 16 người bị
thương, trong đó có trường hợp cả gia đình thiệt mạng. Lũ, lũ quét, sạt lở đất sau bão số 4 và số 6 tại
Lào Cai, Yên Bái năm 2008 làm 120 người chết và mất tích…
(Tránh chủ quan trong ứng phó lũ quét, sạt lở đất, báo baodientu.chinhphu.vn)4
Việt Nam hiện nay có trên 3000 hồ thủy điện lớn nhỏ. Đây thực sự là một con số khổng lồ.
Tuy nhiên thực trạng hiện nay cho thấy nhiều hồ không hề có bất cứ hệ thống cảnh báo mực nước
nào mà chỉ có các cột đo có kẻ sơn phát quang bình thường. Điều này khiến cho tính mạng của biết
bao người dân đặt lên vai của những người trông coi hồ. Vậy khi mà họ lơ là công việc thì sao?
Những sự việc thương tâm như ở huyện Đầm Hà, tỉnh Quảng Ninh ngày 30/10/2014 chính là hậu
quả…
Những con số thương tâm trên đã khiến rất nhiều người băn khoăn, trăn trở đi tìm cách thức
giải quyết cho vấn đề này nhằm bảo vệ tính mạng và tài sản của người dân, bảo vệ tài nguyên và hệ
sinh thái môi trường, đồng thời tiết kiệm hàng nghìn tỉ đồng cho ngân sách quốc gia.Đáng tiếc hiện
nay chưa có nhiều các hệ thống cảnh báo lũ quét được lắp đặt tại Việt Nam, đặc biệt là tại những nơi
vùng núi xa xôi, hiểm trở. Điều đó đã thôi thúc chúng tôi – nhóm tác giả đề tài này, phải làm sao để
tạo ra một hệ thống cảnh báo lũ quét thật chính xác, hoạt động thật là trơn tru mà vẫn nằm trong khả
năng kiến thức của một học sinh trung học phổ thông, và kết quả là “Hệ thống cảnh báo lũ sớm”
đã ra đời.


PHẦN 2: MỤC ĐÍCH NGHIÊN CỨU VÀ GIẢ THIẾT KHOA HỌC
1. Mục đích nghiên cứu:
Để tài này trước hết hướng tới việc thu thập số liệu địa lý và thông tin về các hệ thống cảnh
báo đã có từ trước để qua đó có cái nhìn tổng thể về thực trạng lũ quét tại Việt Nam. Từ đó tạo ra hệ
thống cảnh báo lũ quét của riêng mình sao cho hoạt động được tại mọi nơi, dưới mọi điều kiện khắc
nghiệt của thời tiết, đồng thời tiếp thu những ưu điểm cũng như khắc phục những yếu điểm của các
hệ thống trước đó, nhằm tạo ra sản phẩm tốt nhất, có tính hữu dụng cao, có thể đi vào đời sống.
2. Nhiệm vụ nghiên cứu:
- Nhận biết được chính xác đặc điểm từng vùng những nơi hay xảy ra lũ quét, những ưu –

nhược điểm của các hệ thống đã có.
- Tạo ra hệ thống có tính tương tác cao, thân thiện với người sử dụng. Hướng đến mục tiêu
bất kì người dân nào cũng có thể sử dụng được nó.
- Đảm bảo hệ thống hoạt động hiệu quả, chính xác trong mọi điều kiện thời tiết, có giá thành
rẻ, kích thước nhỏ gọn, dễ lắp đặt, vận chuyển và hoàn toàn tự động.
3. Giả thiết khoa học:


Khi bắt đầu quá trình nghiên cứu, chúng tôi đã đặt ra giả thuyết như sau:
Ta biết rằng lũ quét được hình thành khi xuất hiện lượng nước rất lớn, lượng nước này chỉ có
thể xuất hiện do các cơn mưa, bão lớn hay vỡ đập ở các hồ chứa thủy điện. Vậy nếu coi lượng nước
mưa và mực nước sông hay đập thủy điện là những yếu tố then chốt nhất cấu thành nên lũ quét,
chúng ta sẽ đặt các mức cảnh báo đối với hai yếu tố này, kết hợp với một số yếu tố như địa hình,
thời điểm hay xảy ra lũ quét trong năm ở mỗi vùng, ta có thể đưa ra báo động kịp thời đến người dân
trước khi lũ quét bắt đầu đổ bộ.
 Như vậy, từ giả thuyết đó, nhóm chúng tôi cho rằng nếu cho lắp đặt hệ thống các cảm
biến mực nước đo nước mưa và mực nước dâng theo từng mức nhất định rồi cho truyền
tín hiệu qua bộ xử lí ( đã được tích hợp sẵn các số liệu địa lý của từng vùng), ta có thể
biết được chính xác khi nào cần phát tín hiệu báo động đến người dân.
PHẦN 3: ĐỐI TƯỢNG, PHẠM VI VÀ PHƯƠNG PHÁP NGHIÊN CỨU
1. Đối tượng nghiên cứu:
- Đối tượng nghiên cứu trong dự án là hệ thống cảnh báo lũ quét sớm
- Cấu tạo của hệ thống bao gồm 4 khối sau:
+ Khối 1: Cảm biến đặt ở bình đo
lượng nước mưa

+ Khối 2: Thanh gắn 4 cảm biến
đặt ở lòng sông hoặc hồ thủy điện



+ Khối 3: Bộ ghi nhận dữ liệu thu
được từ khối 1 sử dụng bo mạch
arduino và 2 cùng bộ phát sóng
radio

+ Khối 4: Bộ nhận sóng radio ở
khối 3 và bộ xử lí dữ liệu nhận
được sử dụng bo mạch arduino


2. Phạm vi nghiên cứu:
- Đặc điểm địa hình và khí
hậu ở Thị Trấn Thanh Sơn – Sơn Động – Bắc Giang
- Các hệ thống cảnh báo lũ đã và đang được áp dụng tại Việt Nam
- Giới hạn địa bàn: quá trình lắp đặt hệ thống được thực hiện tại trường THPT Sơn Động số
3
3. Phương pháp nghiên cứu:
Để thực hiện mục tiêu đề ra, nhóm đã sử dụng các phương pháp nghiên cứu sau:
- Phương pháp nghiên cứu lý luận: tìm kiếm, đọc và phân tích và tổng hợp các nguồn thông
tin liên quan đến đề tài trên Internet. Quá trình này nhằm phát hiện những yếu tố cần có để tạo nên
hệ thống, đồng thời nó cũng giúp hệ thống hoàn thiện hơn với những điểm mới thông qua việc chỉ ra
những nhược điểm của các hệ thống cũ.
- Phương pháp nghiên cứu thực tiễn: từ kiến thức có được từ phương pháp nghiên cứu lý
luận, nhóm đã thiết kế và lắp đặt hệ thống. Ngoài ra, để có được kiến thức chuyên sâu hơn về lập
trình xử lí số liệu nhóm đã tham khảo, học hỏi trên trang web: />PHẦN 4: CƠ SỞ LÝ LUẬN
1.Khái niệm và đặc điểm lũ quét:
a. Khái niệm lũ quét:
- Loại lũ có tốc độ mực nước lên rất nhanh khi một khối lượng nước khổng lồ di chuyển
nhanh từ địa hình cao xuống thấp
- Dòng chảy xiết và mang theo khối lượng chất rắn lớn.

(Lũ quét – thiệt hại và biện pháp phòng tránh, tiểu luận về địa chất môi trường, Đại học
nông nghiệp Hà Nội)1
b. Đặc điểm lũ quét:


- Xuất hiện bất ngờ, duy trì trong thời gian ngắn (từ 3-4 giờ hoặc chưa đến 1 ngày)
-

Lượng vật liệu rắn trong nước lũ từ 10%-60%
Lưu lượng từ 500-2500 m3/s
Tốc độ dòng nước rất lớn
 Sức công phá rất lớn

c. Điều kiện hình thành nên lũ quét:
+ Do một khối lượng nước khổng lồ được mang đến bởi những cơn mưa dông, bão hay bão
nhiệt đới.
+ Do một lượng lớn băng tuyết trên núi tan chảy một cách đột ngột.
+ Do đập bị vỡ hay xả lũ đập một cách vội vàng với khối lượng xả rất lớn.
+ Lũ quét được hình thành tại nơi có độ dốc trên 20% - 30%, độ che phủ của thực vật thưa,
độ ổn định của lớp đất kém.
 Như vậy ta xác định được các yêu tố chính cấu thành nên lũ quét là: lượng mưa, mực
nước của sông hay đập thủy điện và đặc điểm địa hình.
2. Các hệ thống đã và đang được áp dụng tại Việt Nam:
a. GIS - Geography Information System:
- Đặc điểm: một bản đồ GIS liên kết với google maps được lập tại 1 vùng sẽ xác định được
các yếu tố như mức độ rừng bị phá, độ dốc, diện tích của các sườn núi... => máy tính có thể
tính toán, dự đoán ra những khu vực có nguy cơ sạt lở đất, bị lũ quét cao, ước tính được với
lưu lượng mưa bao nhiêu, thời gian bao lâu thì có nguy cơ xảy ra lũ quét.
=> địa phương sẽ có thể di dời các khu dân cư ra khỏi vùng nguy hiểm, hoặc dự báo sớm về
các khả năng thiên tai xảy ra.

- Ưu điểm:
+ Liên kết với google maps nên dễ sử dụng
+ Độ chính xác cao
- Nhược điểm:
+ Cần có mạng interet, không phù hợp với nơi vùng sâu
+ Khó khăn khi thông báo cho người dân ở nơi hẻo lánh
b. Công nghệ M2M (machine-to-machine):
- Đặc điểm: bao gồm 3 cảm biến tốc độ, lưu lượng nước đặt tại 3 vị trí khác nhau dưới dòng
sông, một hệ thống máy chủ sử dụng điện mặt trời để thu thập thông tin từ các cảm biến và
tính toán đưa ra cảnh báo tới người dân qua hệ thống phát thanh. Nếu linh hoạt hơn, chính
quyền địa phương có thể gửi thông điệp về tình hình lũ lụt một cách nhanh chóng tới các nơi
khác trong huyện và thậm chí xuống cả vùng hạ lưu để người dân đề phòng.
- Ưu điểm:
+ Thời gian xử lí nhanh
+ Tăng tính chủ động khi dùng pin mặt trời
+ Phù hợp với điều kiện vùng sâu


- Nhược điểm:
+ Chi phí lắp đặt lớn
+ Chưa bao quát được hết các yếu tố tạo nên lũ quét
+ Tốn nhiều thời gian để thông báo cho người dân
 Từ những ưu điểm và hạn chế của các phương pháp trên, chúng tôi quyết định lựa chọn
đề tài nghiên cứu về hệ thống cảnh bão lũ mới với nhưng đặc điểm của hệ thống được
trình bày dưới đây:
3. Cấu tạo và nguyên lí hoạt động của hệ thống:
a. Cấu tạo hệ thống:
Khối 1: gồm hệ thống thiết bị đo mưa và cảm biến đo mực nước để đo lượng nước mưa trong một
khoảng thời gian nào đó nhất định. Mực nước này được cảm biến ghi nhận truyền về khối 3 được
khối (3) truyền về khối (4) – khối trung tâm xử lý số liệu.

Cấu tạo khối 1 bao gồm 2 cảm biến mưa. Các cảm biến này gắn với khối 3
Cảm biến hoạt động nhờ sự dẫn điện của nước (do nước mưa không phải là nước tinh khiết nên có
khả năng dẫn điện), khi mực nước mưa làm ngập cảm biến thì nước sẽ đóng vai trò như một dây dẫn
nối 2 dây lại với nhau và truyền điện (tức tín hiệu) về khối 3.
Khối (2): gồm các cảm biến đo mực nước được xây dựng trên các dòng sông, suối đầu nguồn hoặc
nơi cần theo dõi lũ.
Cấu tạo các cảm biến: gồm 4 cảm biến. Ở mỗi cảm biến gắn 2 miếng đồng lá. Các cảm biến này gắn
với khối 3
Cảm biến hoạt động tương tự như khối 1 (do nước lũ có nhiều tạp chất nên dẫn điện tốt), nước làm
ngập cảm biến nào sẽ có tín hiệu tương ứng truyền về khối 3.
Khối 3: khối thu nhận dữ liệu do khối (1) và (2) truyền đến
Cấu tạo bao gồm: 1 adruino, 1 bộ phát sóng radio
- Chương trình nạp cho bo mạch arduino của khối 3 như sau:
#include <Servo.h>
#define SERVO_PIN 2

Servo gServo;

unsigned long time1;
unsigned long time2;
int sensor1 = A0;
int sensor2 = A1;
int sensor3 = A2;
int sensor4 = A3;
int sensor5 = A4;
int sensor6 = A5;
int value1;
int value2;



int value3;
int value4;
int value5;
int value6;
int d;
int i;
int pin1 = 3;
int pin2 = 4;
int pin3 = 5;
int pin4 = 6;
int on = 7;
int a=0;
int b=0;
int msg[6] ; //={i,j,k,x,y,z};
int lu1[6] = {1,0,0,0,0,0}; // lu cap 1
int lu2[6] = {1,1,0,0,0,0}; // lu cap 2
int lu3[6] = {1,1,1,0,0,0}; // lu cap 3
int lu4[6] = {1,1,1,1,0,0}; // lu cap 4
int mua1[6] = {0,0,0,0,1,0}; // bat dau mua
int mua2[6] = {0,0,0,0,1,1}; // bao luong mua
int mualu1[6] = {1,0,0,0,1,0}; // vua mua vua lu cap 1
int mualu2[6] = {1,0,0,0,1,1}; // mua + lu nhung mua bao truoc
int mualu3[6] = {1,1,0,0,1,0}; // mua + lu nhung lu len cap 2
int mualu4[6] = {1,1,1,0,1,0}; // mua + lu nhung lu len cap 3
int mualu5[6] = {1,1,1,1,1,0}; // mua + lu nhung lu len cap 4
int mualu6[6] = {1,1,0,0,1,1}; // mua + lu nhung lu cap 2 roi bao mua
int mualu7[6] = {1,1,1,0,1,1}; // mua + lu nhung lu cap 3 roi bao mua
int mualu8[6] = {1,1,1,1,1,1}; // mua + lu nhung lu cap 4 roi bao mua

void setup() {

gServo.attach(SERVO_PIN);
delay(1000);
analogWrite(on,255);
delay(1000);
gServo.write(90);
}

void loop() {
N99:
value1 = analogRead(sensor1);
value2 = analogRead(sensor2);
value3 = analogRead(sensor3);
value4 = analogRead(sensor4);


value5 = analogRead(sensor5);
value6 = analogRead(sensor6);
delay(50);
if(value1 > 400) msg[0]=1; else msg[0]=0;
if(value2 > 400) msg[1]=1; else msg[1]=0;
if(value3 > 400) msg[2]=1; else msg[2]=0;
if(value4 > 400) msg[3]=1; else msg[3]=0;
if(value5 > 300) msg[4]=1; else msg[4]=0;
if(value6 > 250) msg[5]=1; else msg[5]=0;
N1: //lu1
for(d=0;d<6;d++){
if(msg[d]==lu1[d]){

if(d==5)
{

while(a==0)
{
analogWrite(pin1,255);
analogWrite(pin2,255);
delay(300);
analogWrite(pin1,0);
analogWrite(pin2,0);
delay(200);
a=1;
goto N99;
}
}
} else goto N2;
}
N2: //lu2
for(d=0;d<6;d++){
if(msg[d]==lu2[d]){
if(d==5)
{
while(a==1)
{
analogWrite(pin1,255);
analogWrite(pin3,255);
delay(300);


analogWrite(pin1,0);
analogWrite(pin3,0);
delay(200);
a=2;

goto N99;
}
}
} else goto N3;
}
N3: //lu3
for(d=0;d<6;d++){
if(msg[d]==lu3[d]){

if(d==5)
{
while(a==2)
{
analogWrite(pin1,255);
analogWrite(pin4,255);
delay(300);
analogWrite(pin1,0);
analogWrite(pin4,0);
delay(200);
a=3;
goto N99;
}
}
} else goto N4;
}
N4: // lu4
for(d=0;d<6;d++){
if(msg[d]==lu4[d]){

if(d==5)

{
while(a==3)
{
analogWrite(pin2,255);
analogWrite(pin3,255);


delay(300);
analogWrite(pin2,0);
analogWrite(pin3,0);
delay(200);
a=4;
goto N99;
}
}
} else goto N5;
}
N5: // mua1
for(d=0;d<6;d++){
if(msg[d]==mua1[d]){

if(d==5)
{
while(b==0)
{
analogWrite(pin1,255);
analogWrite(pin2,255);
analogWrite(pin3,255);
delay(300);
analogWrite(pin1,0);

analogWrite(pin2,0);
analogWrite(pin3,0);
delay(200);
b=1;
goto N99;
}
}
} else goto N6;
}
N6: // mua1 => mua2
for(d=0;d<6;d++){
if(msg[d]==mua2[d]){

if(d==5)
{
while(b==1)


{
analogWrite(pin2,255);
analogWrite(pin3,255);
analogWrite(pin4,255);
delay(300);
analogWrite(pin2,0);
analogWrite(pin3,0);
analogWrite(pin4,0);
delay(200);
for(i=0;i<6;i++){
gServo.write(0);
delay(1000);

gServo.write(25);
delay(1000);
}
gServo.write(90);
b=0;
goto N99;
}
}
} else goto N7;
}
N7: // mua1->lu1
for(d=0;d<6;d++){
if(msg[d]==mualu1[d]){

if(d==5)
{
while(a==1&&b==0)
{
analogWrite(pin1,255);
analogWrite(pin2,255);
analogWrite(pin3,255);
delay(300);
analogWrite(pin1,0);
analogWrite(pin2,0);
analogWrite(pin3,0);
delay(200);
b=1;
goto N99;



}
while(b==1&&a==0)
{
analogWrite(pin1,255);
analogWrite(pin2,255);
delay(300);
analogWrite(pin1,0);
analogWrite(pin2,0);
delay(200);
a=1;
goto N99;
}
}
} else goto N8;
}
N8: // lu1+mua1 => mua2
for(d=0;d<6;d++){
if(msg[d]==mualu2[d]){
if(d==5)
{
while(a==1&&b==1)
{
analogWrite(pin2,255);
analogWrite(pin3,255);
analogWrite(pin4,255);
delay(300);
analogWrite(pin2,0);
analogWrite(pin3,0);
analogWrite(pin4,0);
delay(200);

for(i=0;i<6;i++){
gServo.write(0);
delay(1000);
gServo.write(25);
delay(1000);
}
gServo.write(90);
b=0;
goto N99;
}
}


} else goto N9;
}
N9: // lu1+mua1 =>lu2
for(d=0;d<6;d++){
if(msg[d]==mualu3[d]){

if(d==5)
{
while(a==1&&b==1)
{
analogWrite(pin1,255);
analogWrite(pin3,255);
delay(300);
analogWrite(pin1,0);
analogWrite(pin3,0);
delay(200);
a=2;

goto N99;
}
}
} else goto N10;
}
N10: // lu1+mua1+lu2 => lu3
for(d=0;d<6;d++){
if(msg[d]==mualu4[d]){

if(d==5)
{
while(a==2&&b==1)
{
analogWrite(pin1,255);
analogWrite(pin4,255);
delay(300);
analogWrite(pin1,0);
analogWrite(pin4,0);
delay(200);
a=3;
goto N99;
}
}


} else goto N11;
}
N11: // lu1+mua1+lu2+lu3 => lu4
for(d=0;d<6;d++){
if(msg[d]==mualu5[d])

{
if(d==5)
{
while(a==3&&b==1)
{
analogWrite(pin2,255);
analogWrite(pin3,255);
delay(300);
analogWrite(pin2,0);
analogWrite(pin3,0);
delay(200);
a=4;
goto N99;
}
}
} else goto N12;
}
N12: // mua1 + lu1+lu2 => mua2
for(d=0;d<6;d++){
if(msg[d]==mualu6[d]){
if(d==5)
{
while(a==2&&b==1)
{
analogWrite(pin2,255);
analogWrite(pin3,255);
analogWrite(pin4,255);
delay(300);
analogWrite(pin2,0);
analogWrite(pin3,0);

analogWrite(pin4,0);
delay(200);
for(i=0;i<6;i++){
gServo.write(0);


delay(1000);
gServo.write(25);
delay(1000);
}
gServo.write(90);
b=0;
goto N99;
}
}
} else goto N13;
}
N13: // mua1 + lu1 +lu2+lu3 => mua2
for(d=0;d<6;d++){
if(msg[d]==mualu7[d]){
if(d==5)
{
while(a==3&&b==1)
{
analogWrite(pin2,255);
analogWrite(pin3,255);
analogWrite(pin4,255);
delay(300);
analogWrite(pin2,0);
analogWrite(pin3,0);

analogWrite(pin4,0);
delay(200);
for(i=0;i<6;i++){
gServo.write(0);
delay(1000);
gServo.write(25);
delay(1000);
}
gServo.write(90);
b=0;
goto N99;
}
}
} else goto N14;
}
N14: // mua1+lu1+lu2+lu3+lu4 => mua2
for(d=0;d<6;d++){


if(msg[d]==mualu8[d]){
if(d==5)
{
while(a==4&&b==1)
{
analogWrite(pin2,255);
analogWrite(pin3,255);
analogWrite(pin4,255);
delay(300);
analogWrite(pin2,0);
analogWrite(pin3,0);

analogWrite(pin4,0);
delay(200);
for(i=0;i<6;i++){
gServo.write(0);
delay(1000);
gServo.write(25);
delay(1000);
}
gServo.write(90);
b=0;
goto N99;
}
}
} else goto N99;
}

}
Khối 4 gồm: 1 adruino,1 bộ thu sóng radio,1 relay gắn với còi hú, 1 cảm biến nhiệt độ và màn hình
để hiện thị thông tin ở khối 4
- Chương trình nạp cho bo mạch arduino của khối 4 như sau:
#include <LiquidCrystal.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 10
OneWire ourWire(ONE_WIRE_BUS);
DallasTemperature sensors(&ourWire);
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int sensor1 = A0;
int sensor2 = A1;



int sensor3 = A2;
int sensor4 = A3;
int value1;
int value2;
int value3;
int value4;
int d;
int i;
int a=0;
int relay = 7;
int on = 6;
unsigned long time1;
unsigned long time2;
unsigned long timer;
unsigned long timet;
unsigned long timea;
unsigned long timeb;
unsigned long timetb;
unsigned long luongmua=0.00;
unsigned long cotnuoc=30; // mm
unsigned long chieucao=4; // cm
//chieu cao cot nuoc tinh toc do nuoc dang mac dinh 4cm
unsigned long tocdo;
int msg[4];
int lu1[4] = {1,1,0,0};
int lu2[4] = {1,0,1,0};
int lu3[4] = {1,0,0,1};
int lu4[4] = {0,1,1,0};
int mua1[4] = {1,1,1,0};

int mua2[4] = {0,1,1,1};
int nhieu[4] = {0,0,0,0};

void setup() {
lcd.begin(20, 4);
lcd.clear();
delay(1000);
//lcd.clear();
//delay(1000);
lcd.print("THPT SON DONG so 3");
delay(500);
sensors.begin();
delay(100);
sensors.requestTemperatures();
delay(100);
lcd.setCursor(0,3);
delay(100);


lcd.print("Nhiet Do = ");
lcd.print(sensors.getTempCByIndex(0));
lcd.print(" oC");
delay(1000);
analogWrite(on,255); // BAT RF
}
void loop() {

N99:
value1 = analogRead(sensor1);
value2 = analogRead(sensor2);

value3 = analogRead(sensor3);
value4 = analogRead(sensor4);
delay(50);
if(value1 > 400) msg[0]=1; else msg[0]=0;
if(value2 > 400) msg[1]=1; else msg[1]=0;
if(value3 > 400) msg[2]=1; else msg[2]=0;
if(value4 > 400) msg[3]=1; else msg[3]=0;

N1:
//lu1
for(d=0;d<4;d++) {
if(msg[d]==lu1[d]){
if(d==3){
timea= millis();
lcd.clear();
delay(1000);
//lcd.clear();
//delay(1000);
lcd.print("Lu Cap 1");
for(i=0;i<1;i++)
{
analogWrite(relay,255); // BAT ROLE CANH BAO
delay(2000);
analogWrite(relay,0);
delay(1000);
}
analogWrite(on,0); //RESET RF
delay(200);
analogWrite(on,255);



a=1;
goto N99;
}
} else goto N2;
}
N2:
// lu2
for(d=0;d<4;d++) {
if(msg[d]==lu2[d]){
if(d==3)
{
timeb = millis();
lcd.clear();
delay(1000);
// lcd.clear();
// delay(1000);
lcd.print("Lu Cap 2");
timetb = timeb - timea;
tocdo = (chieucao*3600000)/(timetb*100);
lcd.setCursor(0,1);
delay(500);
lcd.print("toc do dang: ");
lcd.print(tocdo);
lcd.print(" m/h");
for(i=0;i<2;i++)
{
analogWrite(relay,255);
delay(2000);
analogWrite(relay,0);

delay(1000);
}
analogWrite(on,0);
delay(200);
analogWrite(on,255);
a=2;
goto N99;
}
} else goto N3;
}

N3:


//lu3
for(d=0;d<4;d++) {
if(msg[d]==lu3[d]){
if(d==3)
{
timea = millis();
lcd.clear();
delay(1000);
//lcd.clear();
// delay(1000);
lcd.print("Lu Cap 3");
timetb = timea - timeb;
tocdo = (chieucao*3600000)/(timetb*100); // m/h
lcd.setCursor(0,1);
delay(500);
lcd.print("toc do dang: ");

lcd.print(tocdo);
lcd.print(" m/h");
for(i=0;i<3;i++)
{
analogWrite(relay,255); // BAT ROLE CANH BAO
delay(2000);
analogWrite(relay,0);
delay(1000);
}
analogWrite(on,0); // RESET RF
delay(200);
analogWrite(on,255);
a=3;
goto N99;
}
} else goto N4;
}
N4:
//lu4
for(d=0;d<4;d++) {
if(msg[d]==lu4[d]){
if(d==3)
{
timeb = millis();


lcd.clear();
delay(1000);
//lcd.clear();
//delay(1000);

lcd.print("Lu Cap 4");
timetb = timeb - timea;
tocdo = (chieucao*3600000)/(timetb*100);
lcd.setCursor(0,1);
delay(500);
lcd.print("toc do dang: ");
lcd.print(tocdo);
lcd.print(" m/h");
for(i=0;i<4;i++)
{
analogWrite(relay,255); // BAT ROLE CANH BAO
delay(2000);
analogWrite(relay,0);
delay(1000);
}
analogWrite(on,0); // RESET RF
delay(200);
analogWrite(on,255);
a=4;
goto N99;
}
} else goto N5;
}
N5:
// MUA1

for(d=0;d<4;d++) {
if(msg[d]==mua1[d]){
if(d==3)
{

time1 = millis();
lcd.clear();
delay(1000);
//lcd.clear();
//delay(1000);
if(a==1) lcd.print(" LU CAP 1");
if(a==2) lcd.print(" LU CAP 2");
if(a==3) lcd.print(" LU CAP 3");


if(a==4) lcd.print(" LU CAP 4");
delay(500);
lcd.setCursor(0,3);
// HIEN THI HANG 4
delay(300);
lcd.print("Troi Dang Mua");
analogWrite(on,0); // RESET RF
delay(200);
analogWrite(on,255);
a=5;
goto N99;
}
} else goto N6;
}
N6:
// mua2
for(d=0;d<4;d++) {
if(msg[d]==mua2[d]){
if(d==3){
time2 = millis();

timer = (time2 - time1);
luongmua = (cotnuoc*3600000)/timer; // mm/h
if(luongmua > 10)
{
lcd.clear();
delay(1000);
// lcd.clear();
// delay(1000);
if(a==1) lcd.print(" LU CAP 1");
if(a==2) lcd.print(" LU CAP 2");
if(a==3) lcd.print(" LU CAP 3");
if(a==4) lcd.print(" LU CAP 4");
delay(500);
lcd.setCursor(0,2);
// HIEN THI HANG 4
delay(300);
lcd.print("MUA RAT TO"); // HIEN THI O HANG 1
lcd.setCursor(0,3);
// HIEN THI HANG 4
delay(300);
lcd.print("LUONG MUA:");
lcd.print(luongmua);
lcd.print(" mm/h");
for(i=0;i<2;i++)
{


×