1. Trang chủ
  2. » Công Nghệ Thông Tin

Cơ sở lập trình nhúng: Xây dựng hệ thống tưới tự động

38 419 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 38
Dung lượng 1,83 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Xã hội ngày càng phát triển, công nghệ kỹ thuật với sự tiến bộ thần tốc đã mangđến nhiều tiện ích cho con người, từ công việc văn phòng, xây dựng, nội trợ cho đếnnhững công việc về nuôi trồng nông lâm thủy – hải sản. Đặc biệt là trong lĩnh vựcnông nghiệp. Công nghệ tin học đã giúp con người tiết kiệm sức lao động, thuận lợitrong chăm sóc và đạt năng suất cao trong thu hoạch.Công nghệ “Nhà trồng thông minh” đã tạo ra các sản phẩm trái mùa, giúp ngườidân có thực vật ăn quanh năm dù không phải chính vụ, tạo ra các sản phẩm nông nghiệptại những vùng có điều kiện khắc nghiệt mà cây trồng khó thể sinh tồn. Trong đó, hệthống tưới tiêu tự động là một phần quan trọng không thể thiếu trong hệ thống “Nôngnghiệp thông minh” nói chung và “Nhà trồng thông minh” nói riêng.Hệ thống tưới tự động được xây dựng trên nền tảng Arrduino và Arduino IDEđã đảm bảo được hầu hết các chức năng cần thiết cho hệ thống, bên cạnh đó là giá thànhrẻ và dễ dàng sử dụng. Nó đáp ứng được tiêu chí “Ngon Bổ Rẻ” của người sủ dụng.Dưới đây là bài báo cáo về việc xây dựng một hệ thống tưới nước tự động trongnhà trồng thông minh với đầy đủ các điều kiện về độ ẩm đất, độ ẩm và nhiệt độ trongkhông khí và ánh sáng trong môi trường trồng cây sử dụng các thiết bị phần cứng củaArduino và phần mềm lập trình trên nền tảng Arduino IDE. Nhóm đã xây dựng sảnphẩm dựa trên các kiến thức đã học được qua môn “Cơ Sở Lập Trình Nhúng”.

Trang 1

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

Khoa Công nghệ thông tin

-o0o -

Bài báo cáo môn: Cơ sở lập trình nhúng

Đề tài: Xây dựng hệ thống tưới tự động

Giáo viên: Phạm Văn Hà Nhóm: 5

Lớp: ĐH KTPM3 - K10

Hà Nội, 2018

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

Bài báo cáo môn: Cơ sở lập trình nhúng

Đề tài: Xây dựng hệ thống tưới tự động

Giáo viên: Phạm Văn Hà Sinh viên thực hiện:

Nguyễn Thành Nam

La Ngân Quang Bùi Hữu Quý

Lớp: ĐH KTPM3 – K 1 0

Hà Nội, 2018

Trang 3

MỤC LỤC

Lời nói đầu 4

Chương I: Giới thiệu chung 5

I Lập trình nhúng 5

II Khái quát về nhà trồng thông minh 7

III Thực tiễn áp dụng Arduino 8

Chương II: Arduino và lập trình Arduino 9

I Giới thiệu chung về Arduino 9

II Làm quen với KIT ESP8266 Wemos D1 R2 15

Chương III: Thiết kế, lập trình và cài đặt mạch 18

cho hệ thông tưới nước tự động 18

I Thiết kế phần cứng 18

II Phần mềm và chương trình: 24

Kết luận 38

Trang 4

Lời nói đầu

Xã hội ngày càng phát triển, công nghệ kỹ thuật với sự tiến bộ thần tốc đã mang đến nhiều tiện ích cho con người, từ công việc văn phòng, xây dựng, nội trợ cho đến những công việc về nuôi trồng nông - lâm - thủy – hải sản Đặc biệt là trong lĩnh vực nông nghiệp Công nghệ tin học đã giúp con người tiết kiệm sức lao động, thuận lợi trong chăm sóc và đạt năng suất cao trong thu hoạch

Công nghệ “Nhà trồng thông minh” đã tạo ra các sản phẩm trái mùa, giúp người dân có thực vật ăn quanh năm dù không phải chính vụ, tạo ra các sản phẩm nông nghiệp tại những vùng có điều kiện khắc nghiệt mà cây trồng khó thể sinh tồn Trong đó, hệ

thống tưới tiêu tự động là một phần quan trọng không thể thiếu trong hệ thống “Nông nghiệp thông minh” nói chung và “Nhà trồng thông minh” nói riêng

Hệ thống tưới tự động được xây dựng trên nền tảng Arrduino và Arduino IDE

đã đảm bảo được hầu hết các chức năng cần thiết cho hệ thống, bên cạnh đó là giá thành

rẻ và dễ dàng sử dụng Nó đáp ứng được tiêu chí “Ngon - Bổ - Rẻ” của người sủ dụng

Dưới đây là bài báo cáo về việc xây dựng một hệ thống tưới nước tự động trong nhà trồng thông minh với đầy đủ các điều kiện về độ ẩm đất, độ ẩm và nhiệt độ trong không khí và ánh sáng trong môi trường trồng cây sử dụng các thiết bị phần cứng của Arduino và phần mềm lập trình trên nền tảng Arduino IDE Nhóm đã xây dựng sản phẩm dựa trên các kiến thức đã học được qua môn “Cơ Sở Lập Trình Nhúng”

Nhóm sinh viên thực hiện!

Trang 5

Chương I: Giới thiệu chung

I Lập trình nhúng

Hệ thống nhúng là gì?

Hệ thống nhúng (Embedded system) là một thuật ngữ để chỉ một hệ thống có khả năng tự trị được nhúng vào trong một môi trường hay một hệ thống mẹ Đó là các hệ thống tích hợp cả phần cứng và phần phềm để thực hiện một hoặc một nhóm chức năng chuyên biệt cụ thể

Hệ thống nhúng (HTN) thường được thiết kế để thực hiện một chức năng chuyên biệt nào đó Khác với các máy tính đa chức năng, chẳng hạn như máy tính cá nhân, một

hệ thống nhúng chỉ thực hiện một hoặc một vài chức năng nhất định, thường đi kèm với những yêu cầu cụ thể và bao gồm một số thiết bị máy móc và phần cứng chuyên dụng mà ta không tìm thấy trong một máy tính đa năng nói chung Vì hệ thống chỉ được xây dựng cho một số nhiệm vụ nhất định nên các nhà thiết kế có thể tối ưu hóa nó nhằm giảm thiểu kích thước và chi phí sản xuất Các hệ thống nhúng thường được sản xuất hàng loạt với số lượng lớn HTN rất đa dạng, phong phú về chủng loại Đó có thể là những thiết bị cầm tay nhỏ gọn như đồng hồ kĩ thuật số và máy chơi nhạc MP3, hoặc những sản phẩm lớn như đèn giao thông, bộ kiểm soát trong nhà máy hoặc hệ thống kiểm soát các máy năng lượng hạt nhân Xét về độ phức tạp, hệ thống nhúng có thể rất đơn giản với một vi điều khiển hoặc rất phức tạp với nhiều đơn vị, các thiết bị ngoại vi

và mạng lưới được nằm gọn trong một lớp vỏ máy lớn

Các thiết bị PDA hoặc máy tính cầm tay cũng có một số đặc điểm tương tự với

hệ thống nhúng như các hệ điều hành hoặc vi xử lý điều khiển chúng nhưng các thiết

bị này không phải là hệ thống nhúng thật sự bởi chúng là các thiết bị đa năng, cho phép

sử dụng nhiều ứng dụng và kết nối đến nhiều thiết bị ngoại vi

Các đặc điểm của hệ thống nhúng

Hệ thống nhúng thường có một số đặc điểm chung như sau:

• Các hệ thống nhúng được thiết kế để thực hiện một số nhiệm vụ chuyên dụng chứ không phải đóng vai trò là các hệ thống máy tính đa chức năng Một số hệ thống đòi hỏi ràng buộc về tính hoạt động thời gian thực để đảm bảo độ an toàn và tính ứng dụng

Một số hệ thống không đòi hỏi hoặc ràng buộc chặt chẽ, cho phép đơn giản hóa

hệ thống phần cứng để giảm thiểu chi phí sản xuất • Một hệ thống nhúng thường không phải là một khối riêng biệt mà là một hệ thống phức tạp nằm trong thiết bị mà nó điều khiển

• Phần mềm được viết cho các hệ thống nhúng được gọi là firmwarevà được lưu trữ

Trang 6

không phải là trong một ổ đĩa Phần mềm thường chạy với số tài nguyên phần cứng hạn chế: không có bàn phím, màn hình hoặc có nhưng với kích thước nhỏ, bộ nhớ hạn chế

Hình 1: Cấu trúc bên trong Router

Router là một ví dụ của hệ thống nhúng Các hệ thống nhúng trong mô hình Router bao gồm: Microprocessor(4), RAM(6), vàFlash memory(7)

Các thiết bị trên các tàu vũ trụ được tích hợp rất nhiều các hệ thống nhúng

Hình 2: Tàu thăm dò Sao Hỏa

Trang 7

II Khái quát về nhà trồng thông minh

Hệ thống làm nhà trồng thông minh ngày càng được phổ biến trong vài năm trở lại đây tại Việt Nam Lắp đặt và sử dụng hệ thống nhà trồng thông minh sẽ giúp các sản phẩm nông nghiệp như rau, củ, hoa, quả… được chăm sóc đầy đủ góp phần tăng năng suất và cho chất lượng sạch Nhà trồng thông minh trồng rau sẽ giúp cho nguồn rau tránh bị các loại sâu bệnh và thời tiết xấu ngoài ra còn giúp xoay vụ nhanh hơn

Việt Nam là một nước có thế mạnh về các loại nông sản nông nghiệp, nhiều năm qua các sản phẩm nông nghiệp của Việt Nam đã đi ra rất nhiều thị trường trên thế giới với các sản phẩm chất lượng Điều này đã thúc dục bà con nông dân sử dụng công nghệ hiện đại để tăng năng suất và chất lượng sản phẩm vì sự kiểm tra nghiêm ngặt khi vào nước bạn

Hình 3: Hình ảnh về nhà trồng thông minh

Trang 8

III Thực tiễn áp dụng Arduino

Ứng dụng của Arduino về mô hình hệ thống tự động sử dụng một cảm biến độ

ẩm và nhiệt độ kết nối với một Arduino và điều khiển động cơ tạo ra hệ thống tưới tiêu

tự động Tất cả mọi việc đều tự động diễn ra trong quá trình cài đặt sẵn và qua các cảm biến để điều tiết việc tưới cây hợp lí trong mọi thời tiết Từ ví dụ thực tiễn cùng với sự giúp đỡ của giáo viên hướng dẫn, nhóm đã lựa chọn và phát triển đề tài theo hướng sử dụng kid Arduino để thực hiện đề tài của mình

Ứng dụng đơn giản qua thao tác nút bấm cài đặt thời gian hẹn giờ để tưới cây và làm việc thông minh qua các cảm biến Trước hết về cảm biến nhiệt độ và độ ẩm được

áp dụng với khí hậu thời tiết nhiệt đới ẩm gió mùa với 4 mùa rõ rệt vậy nên cảm biến nhiệt độ độ ẩm có tầm quan trọng trong khâu tự động Đo được các mức nhiệt độ cần thiết đáp ứng cho cây trồng cũng là ưu tiên hàng đầu trong ứng dụng

Hệ thống đảm bảo về mảng thời gian cài đặt, đảm bảo về nhiệt độ thay đổi qua mùa, độ ẩm theo khí hậu tất cả được kết hợp tạo thành hệ thống thông minh đáp ứng đúng yêu cầu người trồng cây Vì vậy việc tưới tiêu cây trồng với con người trong công nghệ này đã thay thế hoàn toàn cho sức lao động của con người

Một hệ thống trồng thông minh đáp ứng về thời tiết kết hợp việc cài đặt thời gian tưới phù hợp cây trồng tất cả chỉ trong một thiết bị vi điều khiển Arduino Phù hợp với người bận công việc, phù hợp với việc sản xuất nông nghiệp cao đưa ra chất lượng cây trồng tốt

Hình 4: Hệ thống tưới tự động

Trang 9

Chương II: Arduino và lập trình Arduino

I Giới thiệu chung về Arduino

1 Giới thiệu về Arduino và Arduino IDE

Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác với nhau hoặc với môi trường được thuận lợi hơn Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau

Được giới thiệu vào năm 2005, Những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những thiết bị có khả năng tương tác với môi trường thông qua các cảm biến và các cơ cấu chấp hành Những ví dụ phổ biến cho những người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động Đi cùng với nó là một môi trường phát triển tích hợp (IDE) chạy trên các máy tính cá nhân thông thường và cho phép người dùng viết các chương trình cho Aduino bằng ngôn ngữ C hoặc C++

Giá của các board Arduino dao động xung quanh €20 - $27, nếu được "làm giả" thì giá có thể giảm xuống thấp hơn $9 Các board Arduino có thể được đặt hàng ở dạng được lắp sẵn hoặc dưới dạng các kit tự-làm-lấy Thông tin thiết kế phần cứng được cung cấp công khai để những ai muốn tự làm một mạch Arduino bằng tay có thể tự mình thực hiện được (mã nguồn mở) Người ta ước tính khoảng giữa năm 2011 có trên

300 ngàn mạch Arduino chính thức đã được sản xuất thương mại, và vào năm 2013 có khoảng 700 ngàn mạch chính thức đã được đưa tới tay người dùng

Phần cứng

Một mạch Arduino Uno chính thức với các mô tả về các cổng I/O

Trang 10

Một board Arduino đời đầu gồm một cổng giao tiếp RS-232 (góc phía trên-bên trái)

và một chip vi xử lý Atmel ATmega8 (màu đen, nằm góc phải-phía dưới); 14 chân

I/O số nằm ở phía trên và 6 chân analog đầu vào ở phía đáy

Hình 5: Phần cứng Arduino

Một mạch Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổ sung giúp dễ dàng lập trình và có thể mở rộng với các mạch khác Một khía cạnh quan trọng của Arduino là các kết nối tiêu chuẩn của nó, cho phép người dùng kết nối với CPU

của board với các module thêm vào có thể dễ dàng chuyển đổi, được gọi là shield Vài

shield truyền thông với board Arduino trực tiếp thông qua các chân khách nhau, nhưng nhiều shield được định địa chỉ thông qua serial bus I²C-nhiều shield có thể được xếp chồng và sử dụng dưới dạng song song Arduino chính thức thường sử dụng các dòng chip megaAVR, đặc biệt là ATmega8, ATmega168, ATmega328, ATmega1280, và ATmega2560 Một vài các bộ vi xử lý khác cũng được sử dụng bởi các mạch Aquino tương thích Hầu hết các mạch gồm một bộ điều chỉnh tuyến tính 5V và một thạch anh dao động 16 MHz (hoặc bộ cộng hưởng ceramic trong một vài biến thể), mặc dù một vài thiết kế như LilyPad chạy tại 8 MHz và bỏ qua bộ điều chỉnh điện áp onboard do hạn chế về kích cỡ thiết bị Một vi điều khiển Arduino cũng có thể được lập trình sẵn với một boot loader cho phép đơn giản là upload chương trình vào bộ nhớ flash on-chip, so với các thiết bị khác thường phải cần một bộ nạp bên ngoài Điều này giúp cho việc sử dụng Arduino được trực tiếp hơn bằng cách cho phép sử dụng 1 máy tính gốc như là một bộ nạp chương trình

Theo nguyên tắc, khi sử dụng ngăn xếp phần mềm Arduino, tất cả các board được

đời phần cứng Các board Serial Arduino có chứa một mạch chuyển đổi giữa RS232 sang TTL Các board Arduino hiện tại được lập trình thông qua cổng USB, thực hiện thông qua chip chuyển đổi USB-to-serial như là FTDI FT232 Vài biến thể, như Arduino Mini và Boarduino không chính thức, sử dụng một board adapter hoặc cáp nối USB-to-serial có thể tháo rời được, Bluetooth hoặc các phương thức khác (Khi sử dụng một công cụ lập trình vi điều khiển truyền thống thay vì ArduinoIDE, công cụ lập trình AVR ISP tiêu chuẩn sẽ được sử dụng.)

Trang 11

Board Arduino sẽ đưa ra hầu hết các chân I/O của vi điều khiển để sử dụng cho những mạch ngoài Diecimila, Duemilanove, và bây giờ là Uno đưa ra 14 chân I/O kỹ

analog, có thể được sử dụng như là 6 chân I/O số Những chân này được thiết kế nằm phía trên mặt board, thông qua các header cái 0.10-inch (2.5 mm) Nhiều shield ứng

Arduino-compatible Bare Bones Board và Boarduino có thể cung cấp các chân header đực ở mặt trên của board dùng để cắm vào các breadboard

Có nhiều biến thể như Arduino-compatible và Arduino-derived Một vài trong

số đó có chức năng tương đương với Arduino và có thể sử dụng để thay thế qua lại Nhiều mở rộng cho Arduino được thực thiện bằng cách thêm vào các driver đầu ra,

thường sử dụng trong các trường học để đơn giản hóa các cấu trúc của các 'con rệp' và các robot nhỏ Những board khác thường tương đương về điện nhưng có thay đổi về hình dạng-đôi khi còn duy trì độ tương thích với các shield, đôi khi không Vài biến thể

sử dụng bộ vi xử lý hoàn toàn khác biệt, với các mức độ tương thích khác nhau

Các board chính thức

Phần cứng Arduino gốc được sản xuất bởi công ty Italy tên là Smart Projects Một vài board dẫn xuất từ Arduino cũng được thiết kế bởi công ty của Mỹ tên là SparkFun Electronics Sáu phiên bản phần cứng của Arduino cũng đã được sản xuất thương mại tính đến thời điểm hiện tại

Các board Arduino mẫu

Trang 12

(rev 2007)

Hình 6: Một số board Arduino mẫu

Shield (Bo mạch mở rộng)

Các board Arduino và Arduino-compatible sử dụng các shield— các board mạch

in mở rộng được dùng bằng cách cắm vào các chân header của Arduino Các shield có thể là module điều khiển cho động cơ, GPS, ethernet, LCD, hoặc cũng có thể là breadboard Một số lượng lớn các shield cũng có thể được chế tạo bởi DIY (những

Các shield Arduino điển hình

Nhiều shield có thể được xếp chồng lên nhau Trong

ví dụ này shield ở trên cùng

Shield Adafruit Motor với

Trang 13

có chứa một breadboard chưa hàn

các đầu domino dùng để kết

nối với động cơ

Shield này sử dụng các đầu domino bắt vít dùng để đấu các đầu dây vào

Shield Adafruit Datalogging

Hình 7: Một số shield Arduino điển hình

Phần mềm

Arduino Software IDE

Bảng 1: Giới thiệu về phần mềm Arduino

để dành cho những người mới tập làm quen với lĩnh vực phát triển phần mềm Nó bao gồm một chương trình code editor với các chức năng như đánh dấu cú pháp, tự

Arduino được gọi là một sketch

Trang 14

Các chương trình Arduino được viết bằng C hoặc C++ Arduino IDE đi kèm với

• setup(): hàm này chạy mỗi khi khởi động một chương trình, dùng để thiết lập các cài đặt

• loop(): hàm này được gọi lặp lại cho đến khi tắt nguồn board mạch

Một chương trình điển hình cho một bộ vi điều khiển đơn giản chỉ là làm cho một bóng đèn Led sáng/tắt Trong môi trường Arduino, ta sẽ phải viết một chương trình giống như sau

Hình 8: Đèn LED tích hợp với chân 13

• digitalWrite (LED_PIN, HIGH); // Bật LED on

• delay (1000); // chờ trong 1 giây (1000 mili giây)

• digitalWrite (LED_PIN, LOW); // Tắt LED off

• delay (1000); // chờ trong 1s+

Một đặc điểm của hầu hết các board Arduino là chúng có một đèn LED và điện trở nối giữa chân 13 với đất; một đặc điểm thuận tiện cho nhiều ứng dụng đơn giản Đoạn

đúng, vì vậy khi ta click vào nút "Upload to I/O board" trong IDE này, một bản copy của đoạn code này sẽ được ghi vào một file tạm với một extra include header ở phía

Trang 15

trên cùng và một hàm main () đơn giản nằm ở phía đáy, để làm cho thàn một chương trình C++ khả dụng

Vì nền tảng của Arduino là các vi điều khiển của Atmel, cho nên môi trường phát

được sử dụng để làm phần mềm phát triển cho Arduino

II Làm quen với KIT ESP8266 Wemos D1 R2

WEMOS D1 R2 là kit phát triển phiên bản mới nhất từ WeMos, kit được thiết kế với hình dáng tương tự Arduino Uno nhưng trung tâm lại là module wifi Soc ESP8266EX được build lại firmware để có thể chạy với chương trình Arduino Kit thích hợp và dễ dàng thực hiện các ứng dụng thu thập dữ liệu và điều khiển qua Wifi

Hình 9: Wemos D1 R2

Trang 16

Vi điều khiển ESP8266EX

Điện áp hoạt động 3V3

Analog Pin 1 (Max input=3V2) Xung clock 80MHz/160MHz

Trang 17

Wemos D1 R2 PINs ESP8266 PINs Grove Arduino Base Shield

Bảng 3: Bảng chuyển đổi chân KIT sang Shield

Lí do cần có bảng này là để dễ dàng trong việc viết code Bởi khi viết code nếu muốn xuất tín hiệu HIGH cho pin số 3 trên kit thì ta ko thể viết "digitalWrite(3, HIGH);" mà phải viết là "digitalWrite(0, HIGH);" (Theo trên bảng thì chân D3 trên kit là chân 0 của ESP) Hay nói cách khác là ta phải điều khiển chân trên ESP8266

Và khi ta code xuất chân D3 mức HIGH thì chân D15 cũng được xuất HIGH, lí do là vì: các chân từ D11=>D15 là các chân "giả" để kit trông giống arduino hơn (ESP chỉ

có 11 pin digital), vì vậy các pin D11=>D15 được nối lần lượt với D7=>D3

Trang 18

Chương III: Thiết kế, lập trình và cài đặt mạch

cho hệ thông tưới nước tự động

• DO: Đầu ra tín hiệu số (0 và 1)

• AO: Đầu ra Analog (Tín hiệu tương tự)

Trang 19

Nguyên lý hoạt động:

Hình 12: Sơ đồ nguyên lý hoạt động

1.2 Grove Temperature & Humidity Sensor

Hình 13: Cảm biến nhiệt độ độ ẩm trong không khí

Ngày đăng: 03/05/2020, 11:43

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w