Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 61 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
61
Dung lượng
7,66 MB
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG KHOA CÔNG NGHỆ ĐIỆN TỬ & TRUYỀN THÔNG BÁO CÁO TIỂU LUẬN MÔN HỌC: MẠNG CẢM BIẾN VÀ ỨNG DỤNG ĐỀ TÀI: ỨNG DỤNG MẠNG CẢM BIẾN KHÔNG DÂY TRONG SẢN XUẤT NÔNG NGHIỆP Giáo viên hướng dẫn: TS Vũ Chiến Thắng Lớp : ĐTƯD K18A Sinh viên thực hiện: Tạ Việt Anh Nông Đức Duy Đồng Thị Hạnh Nguyễn Thị Trang VONGPHAKDY Phetsamone Thái Nguyên, tháng 12 năm 2022 MỤC LỤC MỤC LỤC DANH MỤC HÌNH ẢNH .3 LỜI MỞ ĐẦU PHÂN CÔNG NHIỆM VỤ .6 CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI .7 1.1 Đặt vấn đề 1.2 Các khái niệm .8 1.2.1 Mạng cảm biến không dây .8 1.2.2 Nông nghiệp thông minh .9 1.3 Mơ hình hệ thống 12 1.4 Các giao thức sử dụng 14 1.4.1 Wifi 14 1.4.2 Ethernet 15 1.4.3 SPI .16 CHƯƠNG 2: THỰC THI THIẾT KẾ 19 2.1 Mục tiêu thiết kế 19 2.2 Ngơn ngữ lập trình phần mềm phụ trợ 19 2.2.1 Ngơn ngữ lập trình C 19 2.2.2 Phần mềm biên dịch Arduino IDE .20 2.2.3 Phần mềm mô Proteus 28 2.2.4 Phần mềm thiết kế mạch điện tử Altium Design 29 2.2.5 Blynk 33 2.3 Thiết kế phần cứng .37 2.3.1 Sơ đồ khối 37 2.3.2 Linh kiện sử dụng 37 2.3.3 Sơ đồ nguyên lý 46 2.3.4 Sơ đồ mạch in 47 2.4 Thiết kế phần mềm .49 2.4.1 Lưu đồ thuật toán 49 2.4.2 Giải thuật .49 2.4.3 Mã nguồn chương trình 50 2.5 Kết .56 2.5.1 Hình ảnh sản phẩm thực tế 56 2.5.2 Hiển thị SmartPhone .57 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .58 TÀI LIỆU THAM KHẢO .59 DANH MỤC HÌNH ẢNH Hình 1 Mạng cảm biến khơng dây với nút cảm biến phân bố rải rác .8 Hình Các thành phần cấu trúc nút mạng cảm biến không dây Hình Mơ hình hệ thống 12 Hình Mô t m ảt thiếết ộ b Master ị (B x ộlý)ửđ cượ kếết nôếi v i thiếết b ị Slave (Ngo ại vi) s d ụng bus SPI 17 Hình Phần mềm Arduino……………………………………………………………21 Hình 2 Chu trình hoạt động chương trình 21 Hình Giao diện phần mềm lập trình Arduino 22 Hình Code ví dụ cài sẵn ứng dụng 23 Hình Lựa chọn kiểu board .24 Hình Lựa chọn cổng COM 25 Hình Giao diện cửa sổ Preferences phần mềm Arduino IDE 25 Hình Giao diện cửa sổ Board manager phần mềm Arduino IDE 26 Hình Giao diện cửa sổ chọn Board phần mềm Arduino IDE 26 Hình 10 Giao diện cửa sổ chọn cổng COM phần mềm Arduino IDE 27 Hình 11 Giao diện thơng báo nạp thành công code phần mềm Arduino IDE .27 Hình 12 Proteus Labcenter Electronics 28 Hình 13 Giao diện Proteus 29 Hình 14 Phần mềm Altium 30 Hình 15 Các bước tạo project .31 Hình 16 Các bước lưu project 31 Hình 17 Lưu project 32 Hình 18 Các bước để tạo sơ đồ nguyên lý 32 Hình 19 Các bước tạo sơ đồ mạch in 33 Hình 20 Blynk 34 Hình 21 Tạo tài khoản đăng nhập .34 Hình 22 Thiết lập tài khoản 35 Hình 23 Cài đặt 36 Hình 24 Sơ đồ khối hệ thống 37 Hình 25 NodeMCU V3 37 Hình 26 Sơ đồ chân nodeMCU V3 38 Hình 27 Arduino Nano V3.0 ATmega328P 39 Hình 28 Sơ đồ chân Arduino Nano V3.0 ATmega328P 40 Hình 29 Module Cảm biến độ ẩm, nhiệt độ DHT11 41 Hình 30 Sơ đồ chân Module Cảm biến độ ẩm, nhiệt độ DHT11 41 Hình 31 Cảm biến độ ẩm đất 42 Hình 32 Module thu phát RF NRF24L01 2.4Ghz 43 Hình 33 Sơ đồ chân Module thu phát RF NRF24L01 2.4Ghz 43 Hình 34 Máy bơm mini 44 Hình 35 Module relay .45 Hình 36 Sơ đồ ngun lí cảm biến .46 Hình 37 Sơ đồ ngun lí nodegetway 47 Hình 38 Mạch in 48 Hình 39 Lưu đồ thuật toán 49 Hình 40 Hình ảnh sản phẩm .56 Hình 41 Hiển thị smartphone 57 LỜI MỞ ĐẦU Ngày khoa học k} thuât~ ngày phát triển, ứng dụng góp phần to lớn vào sống người, giới ngày mô t~ thay đổi, văn minh đại Sự phát triển k} thuâ ~t điê ~n tử tạo hàng loạt thiết bị với đăc~ điểm bâ ~t xác cao, tốc đô ~ nhanh, gọn nh‚ Sự phát triển hệ thống mạng truyền liệu gắn kết giới lại với Tất phát triển yếu tố cần thiết cho hoạt đô ~ng người áp dụng vào lĩnh vực đời sống Ở Việt Nam trình áp dụng khoa học kĩ thuật vào đời sống Vốn lên từ nước có nơng nghiệp lạc hậu, tốn sức lao động, suất, sản lượng thấp nay, nhờ áp dụng khoa học kĩ thuật, nông nghiệp ổn định phát triển Cho thấy việc áp dụng khoa học kĩ thuật vào sản xuất nơng nghiệp cần thiết Dựa theo chủ trương áp dụng khoa học kĩ thuật vào sản xuất nơng nghiệp, nhóm em nghiên cứu thiết kế mơ hình ứng dụng mạng cảm biến không dây vào sản xuất nông nghiệp nhằm thu thập xác ảnh hưởng từ mơi trường qua điều khiển hệ thống bơm, chiếu sáng… tự động giúp nâng cao suất, giảm chi phí lao động PHÂN CÔNG NHIỆM VỤ STT Họ Tên Nhiệm vụ Tạ Việt Anh Lập trình cho vi điều khiển Nông Đức Duy Thiết kế hệ thống phần cứng Đồng Thị Hạnh Nguyễn Thị Trang Tìm hiểu linh kiện công nghệ sử dụng Lên ý tưởng viết báo cáo VONGPHAKDY Phetsamone Tìm hiểu công nghệ kết nối điểu khiển app blynk Mức độ hoàn thành CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Đặt vấn đề Nước ta trình cơng nghiệp hóa đại hóa đất nước khơng phải mà loại bỏ nơng nghiệp dày truyền thống thay chủ lực nước nhà Ngồi ra, nghành nơng nghiệp nước ta có độ mở lớn với hàng loạt sản phẩm nông sản xuất nhiều nước vùng lãnh thổ giới Ngày với ứng dụng khoa học k} thuâ ~t tiên tiến, giới ngày mô t~ thay đổi, văn minh đại Sự phát triển k} thuâ t~ điê ~n tử tạo hàng loạt thiết bị với đă ~c điểm bâ ~t xác cao, tốc đô ~ nhanh, gọn nh‚ yếu tố cần thiết cho hoạt đô ~ng người áp dụng vào nông nghiệp công nghiệp đạt hiê ~u cao.Điê n~ tử trở thành mô ~t ngành công nghiê ~p đa nhiê ~m vụ Điê ~n tử đáp ứng đŒi hỏi không ngừng tất lĩnh vực, đặc biệt phổ biến nông nghiệp Thực tế vườn nông nghiệp hay nông trại chăn nuôi nước ta cŒn sơ khai, sử dụng trang thiết bị thô sơ thủ công phải nhiều chi phí nhân cơng, dịch bệnh, thiên tai diễn nhiều dẫn đến hao hụt suất cho vườn nông nghiệp trang trại chăn nuôi Để hạn chế hậu nêu nâng cao xuất nông sản chúng em đưa giải pháp hệ thông giám sát môi trường thông minh Với liệu thu thập từ cảm biến sensor, giám sát 24/24 để biết tình trạng mơi trường ni trồng để có biện pháp khắc phục xử lý tức thời để có kết nơng sản tốt đến người Hệ thống lấy việc giám sát làm chủ sử dụng nông trường trồng trọt, nông trại chăn nuôi gia súc gia cầm lắp đặt sử dụng Bên cạnh chức giám sát theo dõi thông số biến đổi môi trường nơng nghiệp hệ thống dễ dàng cài đặt điều khiển cá hệ thống máy móc sử dụng nông nghiệp, điều khiển tưới nước,… Hiện thị trường có nhiều sản phẩm có ứng dụng tương tự có độ xác cao, hệ thống liền mạch kèm với ứng dụng điều khiển thiết bị thông minh, nhiên giá cao không tùy biến 1.2 Các khái niệm 1.2.1 Mạng cảm biến không dây Mạng cảm biến không dây (Wireless Sensor Network) kết cấu hạ tầng bao gồm thành phần cảm nhận (đo lường), tính tốn truyền thơng nhằm cung cấp cho người quản trị khả đo đạc, quan sát tác động lại với kiện, tượng mơi trường xác định Các ứng dụng điển hình mạng cảm biến không dây bao gồm thu thập liệu, theo dõi, giám sát y học… Một mạng cảm biến không dây bao gồm nhiều nút mạng Các nút mạng thường thiết bị đơn giản, nhỏ gọn, giá thành thấp, có số lượng lớn, thường phân bố diện tích rộng, sử dụng nguồn lượng hạn chế (thường dùng pin), có thời gian hoạt động lâu dài (từ vài tháng đến vài năm) hoạt động mơi trường khắc nghiệt (như môi trường độc hại, ô nhiễm, nhiệt độ cao,…) Các nút cảm biến thường nằm rải rác trường cảm biến Mỗi nút cảm biến có khả thu thập định tuyến liệu đến Sink/Gateway người dùng cuối Các nút giao tiếp với qua mạng vô tuyến ad-hoc truyền liệu Sink k} thuật truyền đa chặng Sink truyền thông với người dùng cuối/người quản lý thông qua Internet vệ tinh hay mạng không dây (như WiFi, mạng di động, WiMAX…) không cần đến mạng mà Sink kết nối trực tiếp với người dùng cuối Lưu ý rằng, có nhiều Sink/Gateway nhiều người dùng cuối kiến trúc thể hình sau Hình 1 Mạng cảm biến không dây với nút cảm biến phân bố rải rác Chiều dài động cơ: 32mm Đường kính động cơ: 28mm Chiều dài bơm: 36mm Tổng chiều dài: 69mm Bơm đường kính: 35mm – 40mm Trọng lượng lượng: 111g 2.3.2.7 Relay Module Relay gồm rơ le hoạt động điện áp 5VDC, chịu hiệu điện lên đến 250VAC 10A Module relay kích mức thấp thiết kế chắn, khả cách điện tốt Trên module có sẵn mạch kích relay sử dụng transistor IC cách ly quang giúp cách ly hoàn toàn mạch điều khiển (vi điều khiển) với rơ le bảo đảm vi điều khiển hoạt động ổn định Hình 35 Module relay Thông số kỹ thuật: Mức logic : 0V (GND) Điều khiển đóng ngắt điện DC AC, bạn điều khiển tải AC 220 V 10A Có tiếp điểm thường mở thường đóng: 45 NO : thường mở (khi kích tiếp điểm đóng lại) COM : chung NC : Thường đóng (khi kích tiếp điểm mở ra) Đầu vào: + Điện áp ni : 5VDC + Tín hiệu vào điều khiển: 0V + Tín hiệu 0: Relay đóng + Tín hiệu : Relay mở Đầu ra: + Tiếp điểm relay 220V 10A ( Lưu ý tiếp điểm , điện áp ra) + NC : Thường đóng + NO: Thường mở + COM: Chân chung 2.3.3 Sơ đồ nguyên lý Node cảm biến: Hình 36 Sơ đồ ngun lí cảm biến 46 Node getway: Hình 37 Sơ đồ ngun lí nodegetway 2.3.4 Sơ đồ mạch in Node cảm biến: Arduino nano DHT11 5V GND D1 A0 10 - SS 11 - MOSi 12 - MISO 13 - SCK 3.3V VCC GND DATA x x x x x x x Cảm biến độ ẩm đất VCC GND x A0 x x x x x x 47 NRF24l01 x - GND x x - CE - CSN - MOSI - MISO - SCK - VCC Node getway: Arduino nano GND 10 - SS 11 - MOSi 12 - MISO 13 - SCK 3.3V NRF24l01 - GND - CE - CSN - MOSI - MISO - SCK - VCC Hình 38 Mạch in 48 2.4 Thiết kế phần mềm 2.4.1 Lưu đồ thuật tốn Hình 39 Lưu đồ thuật toán 2.4.2 Giải thuật Đầu tiên thông số môi trường loại cảm biến tương ứng thu nhận chuyển thành tín hiệu điện, vi điều khiển đọc đưa thông số, Sauk hi có đầy đủ thơng số vi điều khiển node sensor gửi cho GateWay tín hiệu song RF thông qua NRF24L01 49 Công việc gate way chờ nhận liệu từ nút, Nhận data từ sensor gateway có nhiệm vụ tải liệu lên server thông qua truyền thông không dây wifi, thông số tải lên bao gồm độ ẩm khơng khí, nhiệt độ khơng khí, độ ẩm đất, cường độ ánh sáng Trên server Blynk cài đặt ghi title cho thông số nhận bắt đầu chạy lựa chọn màu sắc hiển thị hay giới hạn hạn mức thông số, thời gian cập nhật 2.4.3 Mã nguồn chương trình * Chương trình Gateway: #define BLYNK_TEMPLATE_ID "TMPLPMQbxlfb" #define BLYNK_DEVICE_NAME "Nongnghiep" #define BLYNK_AUTH_TOKEN "5PojTGxM7hXIlK6n980qjE1_J9RTj6W2" // Comment this out to disable prints and save space #define BLYNK_PRINT Serial int value[2]; #include #include #include #include #include RF24 radio(D4,D2); // CE, CSN const byte addresses[][6] = {"00001", "00002"}; char auth[] = "5PojTGxM7hXIlK6n980qjE1_J9RTj6W2"; // Your WiFi credentials // Set password to "" for open networks char ssid[] = "vanh"; char pass[] = "11113333"; void sendSensor(); 50 void sendSensor() { radio.startListening(); while (!radio.available()); float t[3]; radio.read(t, sizeof(t)); Serial.println(t[0]); Serial.println(t[1]); Serial.println(t[2]); delay(5); radio.stopListening(); radio.write(value, sizeof(value)); delay(5); Blynk.virtualWrite(V5, t[0]); Blynk.virtualWrite(V6, t[1]); Blynk.virtualWrite(V7, t[2]); } BLYNK_WRITE(V0) { // Set incoming value from pin V0 to a variable value[0] = param.asInt(); } BLYNK_WRITE(V1) { // Set incoming value from pin V0 to a variable value[1] = param.asInt(); } void setup() { Blynk.begin(auth, ssid, pass); while (!Serial); Serial.begin(115200); 51 radio.begin(); radio.openWritingPipe(addresses[0]); // 00001 radio.openReadingPipe(1, addresses[1]); // 00002 radio.setPALevel(RF24_PA_MIN); } void loop() { Blynk.run(); sendSensor(); } * Chương trình node cảm biến: #include #include #include #include "DHT.h" #define DHTPIN D1 #define SOIL_MOIST_1_PIN A0 // Chân A1 nối với cảm biến độ ẩm DHT dht(DHTPIN, DHT11); RF24 radio(D4,D2); // CE, CSN const byte addresses[][6] = {"00001", "00002"}; float t[3]; int nutbam[2]; void setup() { pinMode(D8, OUTPUT); nutbam[1]=0; nutbam[0]=0; while (!Serial); Serial.begin(115200); radio.begin(); radio.openWritingPipe(addresses[1]); // 00002 radio.openReadingPipe(1, addresses[0]); // 00001 52 radio.setPALevel(RF24_PA_MIN); dht.begin(); } int getSoilMoist() { int i = 0; int anaValue = 0; for (i = 0; i < 10; i++) // { anaValue += analogRead(SOIL_MOIST_1_PIN); //Đọc giá trị cảm biến độ ẩm đất delay(50); // Đợi đọc giá trị ADC } anaValue = anaValue / (i); anaValue = map(anaValue,0, 1023,0, 100); //Ít nước:0% ==> Nhiều nước 100% return anaValue; } void loop() { if(nutbam[1]==0){ Serial.print(F(" bang tay: ")); {t[0] = dht.readHumidity(); // Read temperature as Celsius (the default) t[1] = dht.readTemperature(); t[2] = getSoilMoist(); if (isnan(t[1]) || isnan(t[0])) { Serial.println(F("Failed to read from DHT sensor!")); return; }} delay(1000); radio.stopListening(); radio.write(t, sizeof(t)); Serial.print(F("do am: ")); Serial.print(t[0]); 53 Serial.print(F("% nhiet do: ")); Serial.print(t[1]); Serial.print(F("°C ")); Serial.print(F("% am dat: ")); Serial.print(t[2]); Serial.print(F("°% ")); Serial.println(); delay(5); radio.startListening(); while (!radio.available()); radio.read(nutbam, sizeof(nutbam)); Serial.println(nutbam[0]); Serial.println("123"); delay(5); if(nutbam[0]==1) { digitalWrite(D8, 1); Serial.println("bat"); } else{ Serial.println("tat"); digitalWrite(D8, 0);} } else { Serial.print(F("Tu dong : ")); {t[0] = dht.readHumidity(); // Read temperature as Celsius (the default) t[1] = dht.readTemperature(); if (isnan(t[1]) || isnan(t[0])) { Serial.println(F("Failed to read from DHT sensor!")); 54 return; }} delay(1000); radio.stopListening(); radio.write(t, sizeof(t)); Serial.print(F("do am: ")); Serial.print(t[0]); Serial.print(F("% nhiet do: ")); Serial.print(t[1]); Serial.print(F("°C ")); Serial.print(F("% am dat: ")); Serial.print(t[2]); Serial.print(F("°% ")); Serial.println(); delay(5); radio.startListening(); while (!radio.available()); radio.read(nutbam, sizeof(nutbam)); Serial.println(nutbam[0]); Serial.println("123"); delay(5); if(t[1]>=26|| t[2]