Hệ thống nhỏ giọt thông minh sử dụng ngôn ngữ lập trình C++

20 904 2
Hệ thống nhỏ giọt thông minh sử dụng ngôn ngữ lập trình C++

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trang chủSản phẩmSáng chế dụng cụSáng chế dụng cụ210 Hệ thống nhỏ giọt thông minh sử dụng ngôn ngữ lập trình C++Tên sản phẩm: 210 Hệ thống nhỏ giọt thông minh sử dụng ngôn ngữ lập trình C++Tác giả: Vũ Công PhongTên đơn vị: Bắc GiangSố lượt bình chọn: 3Giới thiệu về sản phẩm:BÌNH CHỌNMã xác nhận: Đổi mãChia sẻ với bạn bè qua: Chi tiết sản phẩmSự phát triển của cây tồng không thể thiếu nước, vì nước là thành phần bắt buộc của tế bào sống. Có nhiều nước thực vật mới hoạt động bình thường được. Nhưng hàm lượng nước trong thực vật không giống nhau, thay đổi tùy thuộc loài hay các tổ chức khác nhau của cùng một loài thực vật. Hàm lượng nước còn phụ thuộc vào thời kỳ sinh trưởng của cây và điều kiện ngoại cảnh mà cây sống. Để cây trồng phát triển được ổn định, cung cấp năng suất thu hoạch cao thì yếu tố nước là hàng đầu, việc cung cấp nước đủ, đúng thời điểm là vấn đề khó cho sự phát triển bền vững. Hiện nay, công nghệ tưới nhỏ giọt đang phát triển mạnh mẽ vì tiết kiệm nước, do nước tưới được cấp trực tiếp cho cây trồng, không bị thất thoát do bốc hơi và thấm sâu. Tưới nhỏ giọt còn có khả năng giữ được độ ẩm đồng đều trong tầng đất canh tác góp phần nâng cao năng suất cây trồng. Tưới cây, một việc tưởng chừng đơn giản đã được làm từ thuở nào, nhưng trước nguy cơ cạn kiệt nước và phải đảm bảo gia tăng năng suất với điều kiện tiết kiệm nhất về phân bón, nước tưới, đảm bảo chu kỳ sinh trưởng cây trồng, tiết kiệm nhân lực… đã tạo cơ hội cho công nghệ tưới nhỏ ngày càng hoàn thiện và phát triển. Tuy nhiên, việc điều khiển cung cấp nước cho cây trồng đang là nỗi băn khoăn cho nhiều người nông dân hiện nay. Vi điều khiển Arduino là một nền tảng mã nguồn mở được sử dụng để xây dựng các ứng dụng điện tử. Arduino gồm có board mạch có thể lập trình được ( thường gọi là vi điều khiển) và các phần mềm hỗ trợ phát triển tích hợp IDE (Integrated Development Environment) dùng để soạn thảo, biên dịch code và nạp chương trình cho board. Arduino ngày nay rất phổ biến cho những người mới bắt đầu tìm hiểu về điện tử vì nó đơn giản, hiệu quả và dễ tiếp cận. Không giống như các loại vi điều khiển khác, Arduino không cần phải có các công cụ chuyên biệt để phụ vục việc nạp code, đối với Arduino rất đơn giản, ta có thể kết nối với máy tính bằng cáp USB.Thêm vào đó việc lập trình cho Arduino rất dễ dàng, trình biên dịch Arduino IDE sử dụng phiên bản đơn giản hóa của ngôn ngữ C++. Nghiên cứu về arduino và vai trò của nước đối với sự phát triển của cây trồng, chúng tôi đã tiến hành nghiên cứu đề tài ―HỆ THỐNG NHỎ GIỌT THÔNG MINH SỬ DỤNG NGÔN NGỮ LẬP TRÌNH C++‖ cung cấp cho cây trồng lượng nước thích hợp phù hợp với từng thời kỳ phát triển của cây trồng, và sử dụng công 4 nghệ tưới nước tiết kiệm thông qua hệ thống nhỏ giọt tự động và được điều khiển thông minh trên bo mạch Arduino, với ngôn ngữ lập trình C++.

TÁC GIẢ: VŨ CÔNG PHONG SINH NGÀY 21/ 08/ 1983 CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc BẢN ĐỀ XUẤT THAM GIA CHƢƠNG TRÌNH “TRI THỨC TRẺ VÌ GIÁO DỤC” Kính gửi: Ban tổ chức chương trình ―TRI THỨC TRẺ VÌ GIÁO DỤC‖ Hưởng ứng vận động, động viên, cổ vũ tạo môi trường để niên, đặc biệt tri thức trẻ cống hiến, đóng góp vào nghiệp giáo dục đất nước, tạo hội để tuyên truyền, ứng dụng nhân rộng công trình sáng kiến góp phần đổi phương pháp dạy học, nâng cao chất lượng giáo dục Tôi xin tham gia chương trình tri thức trẻ giáo dục với nội dung sau: I LÝ LỊCH TRÍCH NGANG - Họ tên: VŨ CÔNG PHONG - Ngày 21 tháng 08 năm sinh 1983 - Chứng minh thư nhân dân số:121474402 Công an tỉnh Bắc Giang cấp ngày 08 tháng 06 năm 2016 - Quê quán:Phượng Sơn – Lục Ngạn – Bắc Giang - Chức vụ, đơn vị công tác: Giáo viên trường THCS Quý Sơn số - Hộ thường trú: Phượng Sơn – Lục Ngạn – Bắc Giang - Điện thoại: 0983 031 583 II NỘI DUNG SÁNG KIẾN Giải trình tính cấp thiết sáng kiến: Sự phát triển tồng thiếu nước, nước thành phần bắt buộc tế bào sống Có nhiều nước thực vật hoạt động bình thường Nhưng hàm lượng nước thực vật không giống nhau, thay đổi tùy thuộc loài hay tổ chức khác loài thực vật Hàm lượng nước phụ thuộc vào thời kỳ sinh trưởng điều kiện ngoại cảnh mà sống Để trồng phát triển ổn định, cung cấp suất thu hoạch cao yếu tố nước hàng đầu, việc cung cấp nước đủ, thời điểm vấn đề khó cho phát triển bền vững Hiện nay, công nghệ tưới nhỏ giọt phát triển mạnh mẽ tiết kiệm nước, nước tưới cấp trực tiếp cho trồng, không bị thất thoát bốc thấm sâu Tưới nhỏ giọt có khả giữ độ ẩm đồng tầng đất canh tác góp phần nâng cao suất trồng Tưới cây, việc tưởng chừng đơn giản làm từ thuở nào, trước nguy cạn kiệt nước phải đảm bảo gia tăng suất với điều kiện tiết kiệm phân bón, nước tưới, đảm bảo chu kỳ sinh trưởng trồng, tiết kiệm nhân lực… tạo hội cho công nghệ tưới nhỏ ngày hoàn thiện phát triển Tuy nhiên, việc điều khiển cung cấp nước cho trồng nỗi băn khoăn cho nhiều người nông dân Vi điều khiển Arduino tảng mã nguồn mở sử dụng để xây dựng ứng dụng điện tử Arduino gồm có board mạch lập trình ( thường gọi vi điều khiển) phần mềm hỗ trợ phát triển tích hợp IDE (Integrated Development Environment) dùng để soạn thảo, biên dịch code nạp chương trình cho board Arduino ngày phổ biến cho người bắt đầu tìm hiểu điện tử đơn giản, hiệu dễ tiếp cận Không giống loại vi điều khiển khác, Arduino không cần phải có công cụ chuyên biệt để phụ vục việc nạp code, Arduino đơn giản, ta kết nối với máy tính cáp USB.Thêm vào việc lập trình cho Arduino dễ dàng, trình biên dịch Arduino IDE sử dụng phiên đơn giản hóa ngôn ngữ C++ Nghiên cứu arduino vai trò nước phát triển trồng, tiến hành nghiên cứu đề tài ―HỆ THỐNG NHỎ GIỌT THÔNG MINH SỬ DỤNG NGÔN NGỮ LẬP TRÌNH C++‖ cung cấp cho trồng lượng nước thích hợp phù hợp với thời kỳ phát triển trồng, sử dụng công nghệ tưới nước tiết kiệm thông qua hệ thống nhỏ giọt tự động điều khiển thông minh bo mạch Arduino, với ngôn ngữ lập trình C++ II, MỤC TIÊU SÁNG KIẾN - Nghiên cứu thiết kế mô hình tưới nhỏ giọt thông minh trồng sử dụng module điều khiển arduino uno - Xây dựng mã chương trình điều khiển mô dun cảm biến mô đun điều khiển dựa ngôn ngữ lập trình C++ - Thiết kế đo lưu lượng độ ẩm trồng phù hợp với khoảng thời gian mùa vụ - Đánh giá hiệu hệ thống mô hình thực tế triển khai thực nghiệm III, ĐỐI TƯỢNG NGHIÊN CỨU Bo mạch vi điều khiển Arduino Uno R3 mua thị trường có chức điều khiển relay, thu nhận thông tin từ cảm biến Cảm biến độ ẩm đất có thị trường dùng để cung cấp liệu thu từ môi trường cung cấp cho bo mạch vi điều khiển arduino Bộ đóng ngắt mạch điện điều khiển qua relay bo mạch arduino Ngôn ngữ lập trình C++ thiết kế phù hợp với phần mềm arduino Bộ thu phát wifi ESP8266 cung cấp liệu cho mạng internet đảm bảo quan sát hệ thống thông qua wifi Hệ thống tưới nhỏ giọt tự động bán thị trường có van điều chỉnh áp lực Một số trồng vụ thu đông, ngắn ngày, trồng điều kiện mùa khô thiếu nước ảnh hưởng tới phát triển IV, PHƯƠNG PHÁP NGHIÊN CỨU - Xây dựng mô hình tưới nhỏ giọt thông minh điều khiển thông qua ngôn ngữ lập trình C++ - Đánh giá giá trị độ ẩm đất trồng thời kỳ thích hợp, đảm bảo giá trị phù hợp với độ ẩm cần thiết cho phát triển trồng V KẾT QUẢ NGHIÊN CỨU 1, Xây dựng cảm biến độ ẩm đất với bo mạch Arduino 1.1 Mô tả nguyên lý hoạt động cảm biến độ ẩm đất Cảm biến độ ẩm đất, trạng thái đầu mức thấp (0V), đất thiếu nước đầu mức cao (5V), độ nhạy cao điều chỉnh biến trở Phần đầu đo cắm vào đất để phát độ ẩm đất, độ ầm đất đạt ngưỡng thiết lập, đầu DO chuyển trạng thái từ mức thấp lên mức cao Nhờ thế, bạn sử dụng Analog Digital Arduino để đọc giá trị từ cảm biến Ứng dụng + Đọc độ ẩm đất + Hệ thống tưới tiêu tự động Thông số kỹ thuật + Điện áp hoạt động: 3.3V-5V + Kích thước PCB: 3cm * 1.6cm + Led đỏ báo nguồn vào, Led xanh báo độ ẩm + IC so sánh : LM393 + VCC: 3.3V-5V + GND: 0V + DO: Đầu tín hiệu số (0 1) + AO: Đầu Analog (Tín hiệu tương tự) 1.2, Nguyên lý hoạt động Theo sơ đồ mạch nguyên lý dưới: Khi module cảm biến độ ẩm phát hiện, có thay đổi điện áp đầu vào ic LM393 Ic nhận biết có thay đổi đưa tín hiệu 0V để báo hiệu thay đổi tính toán để đọc độ ẩm đất + Cảm biến độ ẩm đất nhạy với độ ẩm môi trường xung quanh, thường sử dụng để phát độ ẩm đất + Khi độ ẩm đất vượt giá trị thiết lập, ngõ module D0 mức giá trị 0V + Ngõ D0 kết nối trực tiếp với vi điều khiển (Arduino,PIC,AVR,STM), để phát cao thấp, để phát độ ẩm đất + Đầu Analog AO kết nối với chuyển đổi ADC, bạn nhận giá trị xác độ ẩm đất 1.3, Sơ đồ nối dây 1.4 Mã Lập trình ngôn ngữ lập trình C++ int relay = 6; void setup() { Serial.begin(9600);//Mở cổng Serial mức 9600 pinMode (2, INPUT_PULLUP); pinMode(A0, INPUT_PULLUP); pinMode (13, OUTPUT); pinMode (relay, OUTPUT); } void loop() { int value = analogRead(A0); // Ta đọc giá trị hiệu điện cảm biến // Giá trị số hóa thành số nguyên có giá trị // khoảng từ đến 1023 Serial.print("DANG HOAT DONG: "); Serial.print("Do am dat la: "); int percent = map(value, 0, 1023, 0, 100); Serial.print(100-percent); Serial.println('%'); Serial.print("Gia tri cam bien: "); Serial.println(value); //Xuất serial Monitor delay(5000); // Đọc giá trị D0 điều khiển Led 13 Các bạn điều khiển bơm nước thông qua rơle if (digitalRead (2) == 100) { digitalWrite (13, HIGH); } else{ digitalWrite (13, LOW); } if (value >= 900) // value = 0-1023 { digitalWrite (relay, LOW); // relay ON Serial.println(" => Thieu nuoc, can tuoi cay"); } else { digitalWrite (relay, HIGH); // relay OFF Serial.println(" = > Cay du nuoc"); } } 1.5 Kết Bảng hiển thị giá trị cảm biến đo độ ẩm đất Hệ thống hoạt động: Bao gồm máy tính, vi điều khiển Arduino, hệ thống cung cấp lượng mặt trời hệ thống bơm nước 2, Xây Dựng Kết Nôi wifi ESP8266 với bo mạch Arduino 2.1Giới thiệu ESP8266 chip tích hợp cao - System on Chip (SoC), có khả xử lý lưu trữ tốt, cung cấp khả vượt trội để trang bị thêm tính wifi cho hệ thống khác đóng vai trò giải pháp độc lập Module wifi ESP8266 v1 cung cấp khả kết nối mạng wifi đầy đủ khép kín, bạn sử dụng để tạo web server đơn giản sử dụng access point 2.2 Thông số kỹ thuật Wifi 802.11 b/g/n Wifi 2.4 GHz, hỗ trợ WPA/WPA2 Chuẩn điện áp hoạt động 3.3V Chuẩn giao tiếp nối tiếp UART với tốc độ Baud lên đến 115200 Có chế độ hoạt động: Client, Access Point, Both Client and Access Point Hỗ trợ chuẩn bảo mật như: OPEN, WEP, WPA_PSK, WPA2_PSK, WPA_WPA2_PSK Hỗ trợ giao tiếp TCP UDP Tích hợp công suất thấp 32-bit CPU sử dụng vi xử lý ứng dụng SDIO 1.1 / 2.0, SPI, UART Làm việc máy chủ kết nối với máy 2.3 Sơ đồ chân chức nối dây 10 URXD(RX) — dùng để nhận tín hiệu giao tiếp UART với vi điều khiển VCC — đầu vào 3.3V GPIO — kéo xuống thấp cho chế độ upload bootloader RST — chân reset cứng module, kéo xuống mass để reset GPIO debug lỗi — thường dùng cổng TX giao tiếp UART để CH_PD — kích hoạt chip, sử dụng cho Flash Boot updating lại module, nối với mức cao GND — nối với mass UTXD (TX) — dùng để truyền tín hiệu giao tiếp UART với vi điều khiển Sơ đồ lắp đặt mạch Arduino giao tiếp với ESP8266 điều khiển bật tắt LED thông qua wifi Ở sử dụng trực tiếp LED nối với chân D13 tích hợp sẵn board Arduino 11 Môi trường thử nghiệm Trình duyệt web Mozilla Firefox 48.0.1 Window 10 Pro Arduino IDE 1.6.4 Module wifi ESP 8266 v1 Board Arduino Uno Đối với môi trường khác bạn vui lòng tự điều chỉnh cho phù hợp Những điểm cần lưu ý nạp code cho Arduino Uno để giao tiếp với ESP8266 Arduino Uno nạp code bootloader sử dụng USB UART Arduino Uno gửi lệnh điều khiển (tập lệnh AT) cho ESP8266 giao tiếp UART Tuy nhiên board Arduino có chân RX chân TX cho phép thực giao tiếp UART Điều dẫn đến lựa chọn: Sử dụng chân RX TX có sẵn Arduino để nạp code sau nạp code xong kết nối chân với ESP8266 Với phương pháp bạn phải thêm khoảng thời gian delay hàm setup() để đảm bảo sau kết nối ESP8266 với Arduino, ESP8266 nhận đầy đủ tập lệnh AT từ Arduino Tuy nhiên, bạn debug qua cổng Serial cổng đóng vai trò kết nối với ESP8266 Sử dụng SoftwareSerial để giả lập thêm cổng Serial để gửi tập lệnh AT cho ESP8266 Thư viện SoftwareSerial trang bị sẵn Arduino 12 IDE nên bạn không cần phải tải thêm Với cách debug thông qua Serial nhiên code phức tạp Ở ví dụ chọn phương án thứ chọn thời gian delay 5s để kết nối chân TX RX Arduino với chân RX TX ESP8266 sau nạp code thành công Code ESP8266 làm web server gửi lệnh bật tắt công tắc Led13 2.4 Mã lập trình ngôn ngữ C++ #define LED_PIN 13 #define CMD_SEND_BEGIN "AT+CIPSEND=0" #define CMD_SEND_END "AT+CIPCLOSE=0" #define STDIO_PROTOCOL_HTTP 80 #define STDIO_PROTOCOL_HTTPS 443 #define STDIO_PROTOCOL_FTP 21 #define STDIO_PROTOCOL_CURRENT STDIO_PROTOCOL_HTTP #define STDIO_CHAR_CR 0x0D #define STDIO_CHAR_LF 0x0A #define STDIO_STRING_EMPTY "" #define STDIO_DELAY_SEED 1000 #define STDIO_DELAY_1X (1*STDIO_DELAY_SEED) #define STDIO_DELAY_2X (2*STDIO_DELAY_SEED) #define STDIO_DELAY_3X (3*STDIO_DELAY_SEED) #define STDIO_DELAY_4X (4*STDIO_DELAY_SEED) #define STDIO_DELAY_5X (5*STDIO_DELAY_SEED) bool hasRequest = false; 13 void setup() { delay(STDIO_DELAY_5X); Serial.begin(115200); pinMode(LED_PIN, OUTPUT); digitalWrite(LED_PIN, LOW); initESP8266(); } void loop() { while(Serial.available()) { bufferingRequest(Serial.read()); } if(hasRequest == true) { String htmlResponse = "" "" "" "HE_THONG_NHO_GIOT_THONG_MINH" "" "" "HE_THONG_NHO_GIOT_THONG_MINH" "" 14 " BAT_MAY ON" " TAT_MAY OFF" name='STDIO' "" "" "" ""; String beginSendCmd htmlResponse.length(); = String(CMD_SEND_BEGIN) + "," + deliverMessage(beginSendCmd, STDIO_DELAY_1X); deliverMessage(htmlResponse, STDIO_DELAY_1X); deliverMessage(CMD_SEND_END, STDIO_DELAY_1X); hasRequest = false; } } void initESP8266() { deliverMessage("AT+RST", STDIO_DELAY_2X); deliverMessage("AT+CWMODE=2", STDIO_DELAY_3X); deliverMessage("AT+CWSAP=\"NhogiotthongminhNano\",\"12345678\",1,4", STDIO_DELAY_3X); deliverMessage("AT+CIFSR", STDIO_DELAY_1X); deliverMessage("AT+CIPMUX=1", STDIO_DELAY_1X); deliverMessage(String("AT+CIPSERVER=1,") STDIO_PROTOCOL_CURRENT, STDIO_DELAY_1X); } 15 + void bufferingRequest(char c) { static String bufferData = STDIO_STRING_EMPTY; switch (c) { case STDIO_CHAR_CR: break; case STDIO_CHAR_LF: { STDIOProcedure(bufferData); bufferData = STDIO_STRING_EMPTY; } break; default: bufferData += c; } } void STDIOProcedure(const String& command) { hasRequest = command.startsWith("+IPD,"); if(command.indexOf("STDIO_OFF") != -1) { digitalWrite(LED_PIN, LOW); } else if(command.indexOf("STDIO_ON") != -1) { 16 digitalWrite(LED_PIN, HIGH); } } void deliverMessage(const String& msg, int dt) { Serial.println(msg); delay(dt); } 2.5 Kết Lần lượt thực bước sau để kiểm tra việc điều khiển bật tắt LED 13 thông qua wifi với module ESP8266 Kết nối đến thiết bị kiểm tra tín hiệu Kết nối đến module wifi ESP8266 v1 Mở cmd gõ lệnh sau để kiểm tra kết nối: ping 192.168.4.1 Nếu kết nối thành công bạn nhận kết sau: Truy cập vào địa IP module (mặc định 192.168.4.1) kiểm tra tính 17 Kết trồng cung cấp nước thông minh theo độ ẩm lập trình máy tính Cà chua cung cấp nước thông qua hệ thống nhỏ giọt thông minh 18 VI, KẾT LUẬN VÀ KIẾN NGHỊ 1, KẾT LUẬN - Đã xây dựng hệ thống nhỏ giọt thông minh điều khiển qua hệ thống cảm biến vi điều khiển Arduino - Thiết kế mã lập trình để hệ thống nhỏ giọt hoạt động hiệu ngôn ngữ lập trình C++ - Đánh giá tìm hiểu hoạt động trống giá trị đo độ ẩm với thời kỳ khác điều khiển qua mạng wifi ESP8266 2, KIẾN NGHỊ - Cần thiết kế hệ thống thông minh nhiều khả kết nối từ xa thông qua địa IP mạng internet - Cần hợp tác để tìm độ ẩm tối ưu cho trồng phù hợp với thời kỳ phát triển 19 TÀI LIỆU THAM KHẢO [1] Bas Wijnen, G C Anzalone and Joshua M Pearce, Open-source mobile water quality testing platform Journal of Water, Sanitation and Hygiene for Development, 4(3) pp 532–537 (2014) doi:10.2166/washdev.2014.137 open access [2] CNC V2.0 Homofaciens.de Retrieved on 2016-02-24 [3] Arduino Robot – Motor Control DarkBlueBit.com Retrieved on 2016-04-16 [4] "Home" arduinohistory.github.io 2016-01-01 Retrieved 2016-03-06 [5] David Kushner (26 Oct 2011) "The Making of Arduino" IEEE Spectrum [6] Justin Lahart (27 November 2009) "Taking an Open-Source Approach to Hardware" The Wall Street Journal Retrieved September 2014 [7] Rhizome - Interview with Casey Reas and Ben Fry" 2009-09-23 Retrieved 2014-08-23 [8] Alasdair (6 March 2015) "Arduino Wars: Group Splits, Competing Products Revealed?" makezine.com Maker Media, Inc Retrieved 21 April 2015 [9] Lê Sâm (2005) Kỹ thuật tưới tiết kiệm nước, NXB Nông nghiệp, TP Hồ Chí Minh [10] Phạm thị Minh Thư (2006) Nghiên cứu công nghệ tưới giữ ẩm cho dứa vùng đồi Bắc Trung Bộ nhằm nâng cao giá trị thương phẩm‖, đề tài khoa học cấp Bộ (Bộ NN&PTNT) [11] Nguyễn Quang Trung (2008) Nghiên cứu ứng dụng công nghệ tưới tiết kiệm nước cho nho long vùng khô hạn Nam Trung Bộ, đề tài cấp (Bộ NN&PTNT) 20

Ngày đăng: 15/10/2016, 20:33

Tài liệu cùng người dùng

Tài liệu liên quan