Ngành nông nghiệp của nước ta trong một thập niên vừa qua có tốc độ tăng trưởng tương đối cao nhưng không đáp ứng được yêu cầu an ninh lương thực toàn cầu. Với dân số đã cán mốc 9 tỷ người, tình hình lương thực để đáp ứng được tiêu thụ sẽ là một bài toán lớn không chỉ riêng cho một quốc gia nào, bên cạnh cả những vấn đề phòng trị dịch bệnh , an toàn thực phẩm gia tăng đột biến trong tương lai. Vì vậy em chọn đề tài ” Xây dựng một hệ thống thông minh sử dụng cho trang trại gà”. Trong quá trình thực hiện tuy có rất nhiều khó khăn nhưng nhờ sự hướng dẫn tận tình của thầy giáo TS. Hán Trọng Thanh cũng như nỗ lực của bản thân mà chúng em đã hoàn thành được đề tài này, nhưng do thời gian cũng như trình độ sinh viên có hạn nên không thể tránh khỏi một vài sai sót. Chúng em mong nhận được 3 những lời khuyên của thầy để chúng em có thể hiểu thêm về bài tập này nói riêng và môn học này nói chung. Chương I: Tổng quan về đề tài 1.1 Giới thiệu Viêt Nam l ̣ à một nước nông nghiêp có nguồn tài nguyên gi ̣ àu có và phong phú. Tuy nhiên, sự trù phú này đang cạn kiêt dần do một nền nông nghiê ̣ p nghèo ̣ nàn, lạc hậu và manh mún. Điều này đã dẫn tới năng suất của nền nông nghiêp rất ̣ thấp. Thêm vào đó, nông dân thiếu kiến thức khoa học trong viêc trồng tr ̣ ọt và chăn nuôi mà chú yếu áp dụng các kinh nghiêm dân gian, c ̣ ũng như các kế hoạch sản xuất chất lượng cao. Trong sự phát triển của các giải pháp ứng dụng công nghê ̣ thông tin mới, quá trình tự động hóa một phần nền nông nghiêp l ̣ à một hướng đi đúng đắn với xu hướng toàn cầu hóa [1].
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG - - BÁO CÁO BÀI TẬP LỚN MÔN: ĐO LƯỜNG TỰ ĐỘNG ĐIỀU KHIỂN ĐỀ TÀI: Xây dựng mơ hình quản lý trang trại chăn nuôi gà thông minh Giảng viên hướng dẫn: Sinh viên thực hiện: TS Hán Trọng Thanh Mai Văn Nam 20152560 Chrat Sambath 20154462 Trần Văn Phú 20152851 Nguyễn Đình Tùng 20154250 Mục Lục Lời nói đầu Chương I: Tổng quan đề tài 1.1 Giới thiệu 1.2 Yêu cầu đề tài Chương 2: Phân tích hệ thống .6 2.1 Mô hình hệ thống 2.2 Khối cảm biến .7 2.2.1 Module cảm biến nhiệt độ DHT11 .7 2.2.2 Cảm biến chất lượng khơng khí MQ-135 2.2.3 Cảm biến cường độ ánh sáng BH1750 10 2.3 Khối điều khiển trung tâm 11 2.4 LCD 14 2.5 Phần mềm lập trình 15 Chương 3: Kết hướng phát triển .16 3.1 Kết .16 3.2 Hướng phát triển đề tài .17 Phụ lục .19 Lời nói đầu Việt Nam đất nước thời kì cơng nghiệp hóa, đại hóa, ứng dụng khoa học kĩ thuật vào phát triển đất nước mạnh mẽ Ứng dụng học kỹ thuật đại tạo cơng nghệ hồn toàn động lực thúc đẩy cho sản phất phát triển theo chiều sâu, thúc đẩy mạnh mẽ phát triển sản xuất Đặc biệt, với tình hình biến đổi khí hậu biến đổi ngày tiêu cực đến mặt đời sống xã hội, thập niên tới, biến đổi khí hậu ảnh hưởng trực tiếp đến ngành nơng nghiệp tồn cầu Ngành nơng nghiệp nước ta thập niên vừa qua có tốc độ tăng trưởng tương đối cao khơng đáp ứng yêu cầu an ninh lương thực toàn cầu Với dân số cán mốc tỷ người, tình hình lương thực để đáp ứng tiêu thụ tốn lớn khơng riêng cho quốc gia nào, bên cạnh vấn đề phịng trị dịch bệnh , an tồn thực phẩm gia tăng đột biến tương lai Vì em chọn đề tài ” Xây dựng hệ thống thông minh sử dụng cho trang trại gà” Trong trình thực có nhiều khó khăn nhờ hướng dẫn tận tình thầy giáo TS Hán Trọng Thanh nỗ lực thân mà chúng em hoàn thành đề tài này, thời gian trình độ sinh viên có hạn nên khơng thể tránh khỏi vài sai sót Chúng em mong nhận lời khuyên thầy để chúng em hiểu thêm tập nói riêng mơn học nói chung Chương I: Tổng quan đề tài 1.1 Giới thiệu Viê ̣t Nam là nước nơng nghiê ̣p có nguồn tài nguyên giàu có và phong phú Tuy nhiên, trù phú này cạn kiê ̣t dần nông nghiê ̣p nghèo nàn, lạc hậu và manh mún Điều này dẫn tới suất nơng nghiê ̣p thấp Thêm vào đó, nơng dân thiếu kiến thức khoa học viê ̣c trồng trọt và chăn nuôi mà yếu áp dụng kinh nghiê ̣m dân gian, cũng kế hoạch sản xuất chất lượng cao Trong phát triển giải pháp ứng dụng công nghê ̣ thông tin mới, q trình tự động hóa phần nơng nghiê ̣p là hướng đắn với xu hướng toàn cầu hóa [1] Theo báo cáo Bộ Nơng nghiê ̣p và Phát triển nông thôn, kim ngạch xuất nông lâm thủy sản tháng ước đạt 2,9 tỷ USD đưa tổng giá trị xuất tháng đầu năm 2017 đạt 10,8 tỷ USD, tăng 9,1% so với kỳ năm 2016 [2] Nhận thức trước nhu cầu thực phẩm sạch và quy trình tiêu chuẩn phục vụ cho nơng nghiê ̣p có trang trại gia đình, loạt giải pháp hỗ trợ trồng trọt và chăn nuôi ứng dụng công nghê ̣ thông tin đề xuất và thực hiê ̣n Từ ̣ thống ươm mầm rau sạch tự động [3], ̣ thống trang trại nhà kính [4] hay sản phầm tưới tự động cho khu vườn nhỏ [4] Các giải pháp đem lại nhiều lợi ích quản lý và phát triển sản phẩm nông nghiê ̣p giai đoạn hiê ̣n Viê ̣t Nam là nước có khí hậu nhiê ̣t đới ẩm gió mùa, đó, có chênh lê ̣nh thời tiết lớn mùa năm, chí là ngày Ví dụ, thời điểm mùa hè, nhiê ̣t độ có thể lên tới 40 oC, đó, nhiê ̣t độ có thể x́ng tới 0C vào mùa đông Vì vậy, trang trại nuôi gia súc, gia cầm cần phải có biê ̣n pháp chớng nóng và chống lạnh cho vật nuôi Một số biê ̣n pháp điển hình là sử dụng giàn phun sương làm mát, đèn sưởi Ngoài ra, chất thải chăn ni cũng là ́u tớ góp phần gây nhiễm môi trường và bê ̣nh tật cho gia súc, gia cầm [6].Trong đó, khí NH3 chiếm tới 65% thành phần khí th ải chuồng ni [7] Do đó, chuồng trại ln phải đảm bảo thơng thống cách sử dụng ̣ thống lọc không khí đơn giản là dùng quạt Tuy nhiên, thực tế chăn ni Viê ̣t Nam, giải pháp chăm sóc cho vật nuôi trình bày hầu hết điều khiển thủ công người dựa cảm nhận định tính Trong đề tài này, em đề xuất xây dựng mơ hình quản lý trang trại chăn nuôi gà thông minh dựa bo mạch phát triển thông dụng thị trường nhằm thu thập thông tin môi trường và điều khiển thiết bị quạt, đèn sưởi,… chuồng nuôi 1.2 Yêu cầu đề tài Đề tài:"Đo nhiệt độ, độ ẩm cường độ ánh sáng, nồng độ khí thải(NH3),cảm biến mưa hiển thị lên LCD, điều khiển quạt, rèm đèn mơ hình trang trại gà" Chi tiết: - Sử dụng cảm biến DHT11 đo nhiệt độ, độ ẩm lấy giá trị trung bình - Sử dụng cảm biến đo cường độ ánh sáng BH1570 theo đơn vị lux điều khiển độ sáng đèn - Sử dụng module MQ135 đo nồng độ khí thải NH3.uần Từ nồng độ khí thải, nhiệt độ độ ẩm, mưa điều khiển quạt, rèm cửa Chương 2: Phân tích hệ thống 2.1 Mơ hình hệ thống LCD Khối điều Khối cảm biến Khiển trung tâm Động Nguyên lý hoạt động: Quy trình hoạt động hệ thống quy trình khép kín Khi có tượng biến đổi thông số(chẳng hạn nhiệt độ gia tăng đột ngột, nồng độ khí NH3 khơng khí cao) thiết bị đầu vào (cảm biến nhiệt độ, cảm biến chất lượng khơng khí) nhận tín hiệu truyền cho khối điều khiển Tại khối điều khiển xử lý thông tin nhận được, xác định ngưỡng quy định nguy xảy xảy cháy truyền thông tin đến thiết bị đầu (LCD, đèn), thiết bị thông báo đồng thời điều khiển động hoạt đông để xử lý kịp thời 2.2 Khối cảm biến Khối cảm biến bao gồm: Module DHT11: cảm biến đô nhiệt độ độ ẩm khơng khí Module BH1750: cảm biến đo cường độ ánh sáng Module MQ135: Cảm biến đo chất lượng khồn khí (nồng độ NH3) 2.2.1 Module cảm biến nhiệt độ DHT11 Thông số kĩ thuật: Điện áp hoạt động: 3.3 ÷ 5V Dải nhiệt độ đo: ÷ 55°C với độ xác ±2°C Ngưỡng nhiệt độ cao đo được: 105°C Dải độ ẩm đo: 20 ÷ 90% với độ xác 5% Kích thước: 15.5mm x 12mm x 5.5mm Tần số lấy mẫu: 1Hz , nghĩa giây DHT11 lấy mẫu lần chân: VCC( cực (+) nguồn ), DATA(chân tín hiệu), GND(cực (-) nguồn) Hình 1: Module DHT11 Điều khiển: DHT11 gửi nhận liệu với dây tín hiệu DATA, với chuẩn liệu truyền dây này, phải đảm bảo cho chế độ chờ (idle) dây DATA có giá trị mức cao, nên mạch sử dụng DHT11, dây DATA phải mắc với trở kéo bên ngồi(thơng thường giá trị 4.7kΩ) Dữ liệu truyền DHT11 gồm 40 bit liệu theo thứ tự: bit biểu thị phần nguyên độ ẩm + bit biểu thị phần thập phân độ ẩm + bit biểu thị phần nguyên nhiệt độ + bit biểu thị phần thập phân nhiệt độ + bit check sum Ví dụ: ta nhận 40 bit liệu sau: 0011 0101 0000 0000 0001 1000 0000 0000 0100 1101 Tính tốn: bit checksum: 0011 0101 + 0000 0000 + 0001 1000 + 0000 0000 = 0100 1101 Độ ẩm: 0011 0101 = 35H = 53% (ở phần thập phân có giá trị 0000 0000, nên ta bỏ qua khơng tính phần thập phân) Nhiệt độ: 0001 1000 = 18H = 24°C (ở phần thập phân có giá trị 0000 0000, nên ta bỏ qua khơng tính phần thập phân) 2.2.2 Cảm biến chất lượng khơng khí MQ-135 Mơ tả: thường dùng thiết bị kiểm tra chất lượng khơng khí cao ốc, văn phịng, thích hợp để phát khí gas, khói, NH3, ancol,… Thơng số kĩ thuật: Điện áp nguồn cấp: ≤24V DC Điện áp heater: 5V±0.1 AC/DC Điện trở tải: thay đổi (2kΩ-47kΩ) Điện trở heater: 33Ω±5% Cơng suất tiêu thụ heater: 800mW Khoảng phát hiện: 10 - 300 ppm NH3, 10 - 1000 ppm Benzene, 10 - 300 Alcol Kích thước: 32mm*20mm Khoảng đo rộng Bền, tuổi thọ cao Phát nhanh, độ nhạy cao Mạch adapter thiết kế đơn giản chân: VCC (cực (+) nguồn), GND (cực (-) nguồn, A0 tín hiệu đầu tương tự, D0 tín hiệu đầu số Hình Module MQ135 Điều khiển: + Đầu tương tự ( AOUT):Điện áp tương tự thay đổi tuyến tính khoảng từ 0.5V-4.5V phụ thuộc vào nồng độ khí xung quanh + Đầu số (DOUT): Đầu số 0-1 tiện cho bạn thực ứng dụng nhỏ mà không cần vi điều khiển.Kết hợp với module relay để bật tắt thiết bị còi, đèn để cảnh báo khí mà cảm biến nhận biết 2.2.3 Cảm biến cường độ ánh sáng BH1750 BH1750-GY30 là 1 cảm biến ánh sáng kĩ thuật số, sử dụng giao tiếp I2C BH1750 cảm biến phổ biến nhất, thu thập liệu nhiệt độ môi trường xung quanh,có thể điều chỉnh bàn phím điện thoại thơng qua màn LCD -LCD-16x2 Nó phát ánh sáng với dải rộng( 165535 lx ) Thông số kĩ thuật: 10 2.3 Khối điều khiển trung tâm Mô tả: Arduino UNO R3 dùng vi điều khiển AT Mega328 Bộ não xử lí tác vụ đơn giản điều khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm trạm đo nhiệt độ - độ ẩm hiển thị lên hình LCD,… hay ứng dụng khác [5] Thông số kĩ thuật: Vi điều khiển: AT Mega 328 họ bit Điện áp hoạt động: VDC (chỉ cấp qua cổng USB) Tần số hoạt động: 16 MHz Dòng tiêu thụ: 30 mA Điện áp vào khuyên dùng: 7-12 VDC Điện áp vào giới hạn: 6-20 VDC Số chân Digital I/O: 14 ( chân hardware PWM) Số chân analog: ( độ phân giải 10 bit) Dòng tối đa chân I/O: 30 mA Dòng tối đa (5V): 500mA Dòng tối đa (3.3V): 50mA Bộ nhớ flash: 32KB với 0.5KB dùng để bootloader SRAM: 2KB EEROM: 1KB 11 Hinh 3: Arduino Uno Bộ nhớ: 32KB nhớ Flash: đoạn lệnh bạn lập trình lưu trữ nhớ Flash vi điều khiển Thường có khoảng vài KB số dùng cho bootloader 2KB cho SRAM (Static Random Access Memory): giá trị biến bạn khai báo lập trình lưu Bạn khai báo nhiều biến cần nhiều nhớ RAM Tuy vậy, thực nhớ RAM lại trở thành thứ mà bạn phải bận tâm Khi điện, liệu SRAM bị 1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): giống ổ cứng mini – nơi bạn đọc ghi liệu vào mà khơng phải lo bị cúp điện giống liệu SRAM Các cổng vào ra: Arduino UNO có 14 chân digital dùng để đọc xuất tín hiệu Chúng có mức điện áp 0V 5V với dòng vào/ra tối đa chân 40mA Ở chân có điện trở pull-up từ cài đặt 12 vi điều khiển ATmega328 (mặc định điện trở không kết nối) Ngõ I/O: chân Serial: (RX) (TX): dùng để gửi (transmit – TX) nhận (receive – RX) liệu TTL Serial Arduino Uno giao tiếp với thiết bị khác thông qua chân Kết nối bluetooth thường thấy nói nơm na kết nối Serial không dây Nếu không cần giao tiếp Serial, bạn không nên sử dụng chân không cần thiết Chân PWM (~): 3, 5, 6, 9, 10, 11: cho phép bạn xuất xung PWM với độ phân giải 8bit (giá trị từ → 28-1 tương ứng với 0V → 5V) hàm analogWrite() Nói cách đơn giản, bạn điều chỉnh điện áp chân từ mức 0V đến 5V thay cố định mức 0V 5V chân khác Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngồi chức thơng thường, chân cịn dùng để truyền phát liệu giao thức SPI với thiết bị khác LED 13: Arduino UNO có đèn led màu cam (kí hiệu chữ L) Khi bấm nút Reset, bạn thấy đèn nhấp nháy để báo hiệu Nó nối với chân số 13 Khi chân người dùng sử dụng, LED sáng Arduino UNO có chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 → 210-1) để đọc giá trị điện áp khoảng 0V → 5V Với chân AREF board, bạn để đưa vào điện áp tham chiếu sử dụng chân analog Tức bạn cấp điện áp 2.5V vào chân bạn dùng chân analog để đo điện áp khoảng từ 0V → 2.5V với độ phân giải 10bit Đặc biệt, Arduino UNO có chân A4 (SDA) A5 (SCL) hỗ trợ giao tiếp I2C/TWI với thiết bị khác 13 Lập trình cho arduino: Các thiết bị dựa tảng Arduino lập trình ngôn riêng Ngôn ngữ dựa ngôn ngữ Wiring viết cho phần cứng nói chung Và Wiring lại biến thể C/C++ Một số người gọi Wiring, số khác gọi C hay C/C++ Để lập trình gửi lệnh nhận tín hiệu từ mạch Arduino, nhóm phát triển dự án cấp đến cho người dùng mơi trường lập trình Arduino gọi Arduino IDE (Intergrated Development Environment) 2.4 LCD Màn hình LCD1 602 xanh lá sử dụng driver HD44780, có khả hiển thị dịng với dịng 16 ký tự, hình có độ bền cao, phổ biến, nhiều code mẫu dễ sử dụng thích hợp cho người học làm dự án Hình 4: LCD 1602 Thơng số chi tiết: Điện áp hoạt động V Kích thước: 80 x 36 x 12.5 mm Chữ đen, nên xanh Khoảng cách chân kết nối 0.1 inch Tiện dụng kết nối với Breadbroad 14 2.5 Phần mềm lập trình Để lập trình gửi lệnh nhận tín hiệu từ mạch Arduino, nhóm phát triển dự án cấp đến cho người dùng môi trường lập trình Arduino gọi Arduino IDE (Intergrated Development Environment) Về giao diện: Vùng lệnh: Bao gồm nút lệnh menu (File, Edit, Sketch, Tools, Help) Phía icon cho phép sử dụng nhanh chức thường dùng IDE miêu tả sau: Vùng viết chương trình: Bạn viết đoạn mã 15 Vùng thông báo ( debug): Những thông báo từ IDE hiển thị Để ý góc bên phải hiển thị loại board Arduino cổng COM sử dụng Luôn ý tới mục chọn sai loại board cổng COM, bạn upload code Chương 3: Kết hướng phát triển 3.1 Kết Sau thời gian nỗ lực học tập, tìm hiểu tài liệu tiến hành mua linh kiện thiết kế mạch, chúng em hoàn thành thời hạn quy định, giải yêu cầu đặt ban đầu: Tìm hiểu Kit Arduino Tìm hiểu cảm biến nhiệt độ DHT11 Tìm hiểu cảm biến chất lượng khơng khí MQ135 16 Cảm biến cường độ ánh sáng BH1570 3.2 Hướng phát triển đề tài - Thay cảm biến DHT11 cảm biến Thermocouples để đọc giá trị nhiệt độ ổn định xác khả chịu nhiệt độ cao tốt - Sử dụng thêm cảm biến MG811 thu thập thêm lượng khói xảy cháy - Khai thác tính điều kiển qua tin nhắn qua Module sim - Sử dụng module wifi ESP8266 để cập nhật liệu liên tục cloud server 17 18 Phụ lục [1] http://vnreview.vn/tin-tuc-khoa-hoccongnghe/-/view_content/content/1128732/15cong-nghe-nong-nghiep-cua-tuong-lai [2] http://hpa.gov.vn/nong-nghiep/ho-so-nganhhang/san-pham-nong-nghiep/co-hoimo-rongthi-truong-cho-rau-qua-viet-nam-a4144 [3][4] T.M HAI, T D DỰ, N H CHÂU, “Nghiên cứu xử lý NH3 không khí chuồng chăn nuôi lợn dung dịch siêu oxy hóa”, 2015, [5] Hướng dẫn sử dụng arduino- Nguyễn Trung Tín, Học Viện Hàng Khơng Tr.1 19 Code #include "DHT.h" #include "MQ135.h" #include #include #include BH1750 lightMeter; LiquidCrystal_I2C lcd(0x27,16,2); #define IN1 #define IN2 #define IN3 #define IN4 #define MAX_SPEED 255 //từ 0-255 #define MIN_SPEED #define PIN_MQ135 A2 MQ135 mq135_sensor = MQ135(PIN_MQ135); int DHTPIN1 = 2; int DHTPIN2 =3; int DHTTYPE = DHT11; //Khai báo loại cảm biến, có loại DHT11 DHT22 int led = 9; // cổng digital mà LED nối vào 20 int brightness = 0; // mặc định độ sáng đèn int fadeAmount = 5; // lần thay đổi độ sáng thay đổi với giá trị byte degree[8] = { 0B01110, 0B01010, 0B01110, 0B00000, 0B00000, 0B00000, 0B00000, 0B00000 }; DHT dht1(DHTPIN1, DHTTYPE); DHT dht2(DHTPIN2, DHTTYPE); void setup() { Serial.begin(9600); dht1.begin(); // Khởi động cảm biến dht2.begin(); lcd.begin(); lightMeter.begin(); Wire.begin(); pinMode(IN1, OUTPUT); 21 pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); pinMode(led, OUTPUT); lcd.backlight(); lcd.print("T:"); //lcd.setCursor(9,0); //lcd.print("F: "); lcd.setCursor(8,0); lcd.print("DA:"); lcd.createChar(1, degree); } void motor_1_Tien(int speed) { //speed: từ - MAX_SPEED speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đảm báo giá trị nằm khoảng từ - MAX_SPEED - http://arduino.vn/reference/constrain digitalWrite(IN1, HIGH);// chân khơng có PWM analogWrite(IN2, 255 - speed); } void loop() { float h1 = dht1.readHumidity(); //Đọc độ ẩm float t1 = dht1.readTemperature(); //Đọc nhiệt độ 22 float h2 = dht2.readHumidity(); //Đọc độ ẩm float t2 = dht2.readTemperature(); //Đọc nhiệt độ float t = (t1+t2)/2-1; float h = (h1+h2)/2-1; if (isnan(t) || isnan(h)) { } else { lcd.setCursor(2,0); lcd.print(round(t)); lcd.print(" "); lcd.write(1); lcd.print("C"); lcd.setCursor(11,0); lcd.print(round(h)); lcd.print(" %"); } uint16_t lux = lightMeter.readLightLevel(); lcd.setCursor(0,1); lcd.print(lux); lcd.println(" LUX"); 23 float correctedPPM = mq135_sensor.getCorrectedPPM(t, h); lcd.setCursor(8,1); lcd.print(correctedPPM); lcd.print("ppm"); //Serial.print("\t Corrected PPM: "); //Serial.print(correctedPPM); //Serial.println(" ppm"); if(t>=35||h>=90){ motor_1_Tien(MAX_SPEED/7); // motor tiến } else{ motor_1_Tien(MAX_SPEED/10); // motor tiến } if(lux