TỔNG QUAN VỀ ĐỀ TÀI
Đặt vấn đề
Robot đã có những bước tiến đáng kể hơn nửa thế kỷ qua Robot đầu tiên được ứng dụng trong công nghiệp vào những năm 60 để thay thế con người làm các công việc nặng nhọc, nguy hiểm trong môi trường độc hại Hình ảnh robot phục vụ trong đời sống con người ngày nay không còn là điều xa lạ, ở một số lĩnh vực như công nghiệp, dịch vụ,… đã trở nên rất phổ biến Cách mạng Công nghiệp 4.0 đã và đang tác động đến nhiều lĩnh vực, đặc biệt là nông nghiệp Cách mạng Công nghiệp lần thứ tư dựa trên đặc trưng của cuộc cách mạng kỹ thuật số, trí tuệ nhân tạo, internet, di động với các cảm biến thông minh kết hợp với công nghệ sinh học, công nghệ vật liệu mới… tạo ra nhiều sản phẩm mới, tối ưu hóa quy trình, phương thức quản trị để sản xuất nông nghiệp hiệu quả hơn Nhằm giúp mọi người không còn phải đau đầu và mất thời gian vào việc chăm sóc cây trồng, một nhóm nghiên cứu ở California (Mỹ) từ công ty Farmbot đã phát triển hệ thống nông nghiệp hoàn chỉnh có thể dùng tại nhà Người dùng có thể tự lắp ráp và sử dụng dễ dàng Dự án nhằm mục đích "Tạo ra một công nghệ cởi mở và dễ tiếp cận giúp đỡ mọi người trồng thực phẩm và phát triển thức ăn cho mọi người." Nhưng giá bán của Farmbot (2700 USD) so với mức sống của các gia đình tại Việt Nam là rất cao
Từ những vấn đề nêu trên, nhóm đã quyết định bắt đầu tìm hiểu cơ sở lý thuyết của hệ thống Robot trồng rau tự động cho hộ gia đình có kế thừa từ nền tảng của Farmbot với mục tiêu làm chủ được công nghệ, làm giảm giá thành sao cho phù hợp với nhu cầu của các gia đình Việt Nam quan tâm đến sức khỏe và thực phẩm sạch Với sản phẩm này, các gia đình có thể tự trồng rau sạch tại nhà hoàn toàn tự động mà không cần tốn nhiều thời gian chăm bón.
Mục tiêu đề tài
Với những vấn đề và ý tưởng nêu ở phần đặt vấn đề Trong đề tài này, nhóm nghiên cứu sẽ tìm hiểu Robot trồng rau tự động về:
Nghiên cứu động học của robot 3 trục, thiết kế quỹ đạo chuyển động của các trục cho các chức năng gieo hạt tưới nước
Nghiên cứu các thành phần, cấu trúc của một hệ thống IoT
Nghiên cứu về các loại cảm biến và vi điều khiển STM32F103RCT6 để lập trình robot
Nghiên cứu các phương pháp truyền nhận dữ liệu với máy chủ web.
Giới hạn đề tài
Với đề tài này, nhóm đã thiết kế, thi công robot trồng rau tự động với 3 trục sử dụng động cơ bước để kéo các trục chuyển động Động cơ bước được nhóm mua cũ lại với giá 35000 VNĐ/cái Máy chủ web trong lúc lập trình và chạy thử đặt tại laptop cá nhân Đầu gieo hạt, cảm biến đo độ ẩm đất và vòi tưới được thiết kế chung một đầu Vì thế trong quá trình điều khiển robot này ta có một số giới hạn nhất định :
Độ chính xác trong lấy hạt và gieo hạt chưa ổn định
Robot chỉ được điều khiển qua mạng wifi nội bộ
Chưa thể thêm các chức năng thông minh khác cho robot như diệt cỏ.
Nội dung đề tài
Đề tài “Robot trồng rau cho hộ gia đình, tự động gieo hạt, tưới nước, giám sát nhiệt độ, độ ẩm và ánh sáng qua thiết bị di động kết nối internet theo thời gian thực” bao gồm các chương sau :
Chương I: Tổng quan: Chương này trình bày tổng quan sơ bộ về các yêu cầu của cuốn báo cáo như đặt vấn đề, mục tiêu, giới hạn và nội dung đề tài
Chuơng II: Cơ sở lý thuyết: Chương này trình bày các định nghĩa về IoT, các thành phần trong một hệ thống IoT, các ứng dụng của IoT trong thực tế, các công nghệ và phần mềm đã sử dụng trong quá trình nghiên cứu và thực hiện đề tài này
Chương III: Thiết kế và lựa chọn thiết bị: Chương này trình bày thiết kế và thiết kế và lựa chọn thiết bị phần cứng cho robot
Chương IV: Kết quả thi công cơ khí và phần mềm: Chương này nhóm sẽ tiến hành thi công theo mô hình đã được thiết kế và kết quả đạt được
Chương V: Kết luận và hướng phát triển: Kết luận chung về ưu điểm và hạn chế của đề tài, khẳng định những kết quả đóng góp đạt được, đề xuất ý kiến để cải thiện khuyết điểm và định hướng phát triển đề tài
CƠ SỞ LÝ THUYẾT
Internet of Things là gì?
Internet of Things (IoT) dịch tiếng là mạng lưới các thiết bị như phương tiện giao thông và thiết bị gia dụng có chứa thiết bị điện tử, phần mềm, thiết bị truyền cho phép những thiết bị này kết nối, tương tác và trao đổi dữ liệu với nhau ở bất kỳ đâu và bất kỳ lúc nào.
IoT liên quan đến việc mở rộng kết nối Internet ngoài các thiết bị thường gặp, chẳng hạn như máy tính để bàn, máy tính xách tay, điện thoại thông minh và máy tính bảng, đến bất kỳ các thiết bị truyền thống nào không có internet cho đến các vật dụng quen thuộc hàng ngày như đèn ngủ, tủ lạnh, máy giặt, Các thiết bị này được nhúng các chứng năng công nghệ, giúp nó có thể giao tiếp và tương tác qua Internet và chúng có thể được theo dõi và kiểm soát từ xa.
Các thành phần trong hệ sinh thái IoT: Mô hình kết nối hoàn chỉnh
Trạm kết nối cho phép dễ dàng quản lý lưu lượng dữ liệu truyền giữa các giao thức và mạng Mặt khác, nó cũng là nơi trung gian giữa các giao thức mạng và đảm bảo rằng các thiết bị và cảm biến được kết nối đúng cách Nó cũng có thể hoạt động để xử lý trước dữ liệu từ các cảm biến và gửi chúng đến cơ sở dữ liệu cấp trên nếu đã được cấu hình phù hợp
Không những vậy, nó còn mã hóa thông tin phù hợp với lưu lượng mạng và truyền dữ liệu Dữ liệu được truyền qua nó được bảo vệ bằng cách sử dụng các kỹ thuật mã hóa mới nhất Bạn có thể giả sử nó giống như một lớp bổ sung giữa đám mây và các thiết bị giúp loại bỏ cuộc tấn công và truy cập mạng bất hợp pháp
Dữ liệu tương tự của thiết bị và cảm biến được chuyển đổi thành định dạng dễ đọc và phân tích Đây là tất cả những gì có thể do hệ sinh thái IoT quản lý và giúp cải thiện hệ thống Yếu tố chính bị ảnh hưởng là an ninh
Chức năng quan trọng nhất của công nghệ IoT là nó hỗ trợ phân tích thời gian thực, dễ dàng quan sát các bất thường và ngăn ngừa mọi mất mát hoặc lừa đảo Ngăn chặn những tất cả những nguy cơ lừa đảo hoặc có hại tấn công các thiết bị thông minh Điều đó sẽ không chỉ mang lại cho người dùng cảm giác an toàn mà còn lưu tất cả dữ liệu riêng tư của người dùng khỏi bị sử dụng cho mục đích bất hợp pháp
2.2.3 Thiết bị kết nối (Connectivity Of Devices)
Các thành phần chính cấu thành nên lớp kết nối là cảm biến và thiết bị Các cảm biến thu thập thông tin và gửi nó đến lớp tiếp theo nơi nó đang được xử lý Với sự tiến bộ của công nghệ, công nghệ bán dẫn được sử dụng cho phép sản xuất các cảm biến thông minh siêu nhỏ có thể được sử dụng cho một số hoàn cảnh phức tạp cần sự tinh vi
Các cảm biến và thiết bị thông minh hiện đại sử dụng nhiều cách khác nhau để được kết nối Các mạng không dây như LORAWAN, Wi-Fi và Bluetooth giúp họ dễ dàng kết nối Chúng có những ưu điểm và nhược điểm riêng được phân loại dưới nhiều hình thức khác nhau như tốc độ hiệu quả, truyền dữ liệu và sức mạnh
2.2.4 Dữ liệu đám mây (Cloud)
Với sự trợ giúp của hệ sinh thái internet vạn vật, các công ty có thể thu thập một lượng lớn dữ liệu từ các thiết bị và ứng dụng Có nhiều công cụ khác nhau được sử dụng cho mục đích thu thập dữ liệu có thể thu thập, xử lý và lưu trữ dữ liệu hiệu quả trong thời gian thực Tất cả điều này được thực hiện bởi một hệ thống đó là IoT Cloud Đây là một mạng hiệu suất cao đáng kinh ngạc kết nối các máy chủ lại với nhau để tối ưu hóa hiệu suất của quá trình xử lý dữ liệu bởi nhiều thiết bị cùng một lúc
Nó cũng giúp kiểm soát lưu lượng và cung cấp kết quả phân tích dữ liệu với độ chính xác rất cao
Một trong những thành phần quan trọng nhất của IoT Cloud là quản lý cơ sở dữ liệu được phân phối một cách tự nhiên Cloud về cơ bản kết hợp nhiều thiết bị, cổng, giao thức, thiết bị và lưu trữ dữ liệu có thể được phân tích hiệu quả Các hệ
5 thống này được sử dụng bởi nhiều công ty để phân tích dữ liệu phục vụ cho việc cải thiện và tăng tính hiệu quả của sản phẩm, giúp phát triển các dịch vụ và sản phẩm Ngoài ra, nó cũng giúp hình thành một chiến lược chính xác có thể giúp xây dựng một mô hình kinh doanh lý tưởng
2.2.5 Giao diện người dùng (User Interface) Đây là một yếu tố khác mà hệ sinh thái IoT phụ thuộc rất nhiều Nó cung cấp một phần trực quan và vật lý mà người dùng có thể dễ dàng truy cập Điều quan trọng đối với nhà phát triển là tạo ra một giao diện thân thiện với người dùng có thể truy cập được mà không cần phải cố gắng tìm hiểu nhiều trong đó và điều đó có thể giúp tương tác dễ dàng hơn
Với sự giúp đỡ của sự tiến bộ, có nhiều thiết kế tương tác khác nhau có thể được sử dụng dễ dàng và có thể dễ dàng giải quyết bất kỳ truy vấn phức tạp nào Ví dụ, ở nhà mọi người đã bắt đầu sử dụng bảng cảm ứng đầy màu sắc thay vì các công tắc điều khiển cứng nhắc đã được sử dụng trước đó Điều này đã đặt ra một xu hướng cho các thế hệ kỹ thuật số và đã tìm cách thổi phồng thị trường cạnh tranh ngày nay Giao diện người dùng là điều đầu tiên mà người dùng chú ý trước khi mua một thiết bị Thêm vào đó khách hàng cũng được định hướng mua các thiết bị thân thiện với người dùng và ít phức tạp hơn có thể được sử dụng với kết nối không dây
2.2.6 Tiêu chuẩn và giao thức (Standards And Protocols)
Các trang web hiện đang sử dụng định dạng HTML với Cascading Style Sheets (CSS) Điều này đã làm cho internet ổn định hơn và dịch vụ đáng tin cậy để sử dụng Chúng là các giao thức tiêu chuẩn được sử dụng nhiều nhất khiến nó không chỉ thân thiện mà còn dễ chấp nhận Tuy nhiên, IoT không có tiêu chuẩn đó Điều quan trọng là chọn một nền tảng mà IoT có thể giúp xác định cách thức nền tảng đang xây dựng sẽ tương tác với hệ thống Do đó, hệ thống được xây dựng sẽ có thể có tương tác với các thiết bị và mạng có cùng tiêu chuẩn như vậy Điều quan trọng là có cùng một giao thức để có thể tương tác thành công
2.2.7 Cơ sở dữ liệu (Database)
Internet of Things đang phát triển một cách linh hoạt và tất cả phụ thuộc vào dữ liệu được sử dụng rất nhiều trong các trung tâm dữ liệu Điều cần thiết là phải có một hệ thống cơ sở dữ liệu phù hợp có thể lưu trữ và quản lý dữ liệu đang được thu thập từ nhiều thiết bị và người dùng đầu cuối Ngoài ra còn có các công cụ quản lý khác nhau cung cấp nhiều tính năng tự động giúp tích lũy dễ dàng dữ liệu được lưu trữ và quản lý hàng loạt tại cùng một nơi
Như đã đề cập ở trên, hệ thống cơ sở dữ liệu đang sử dụng các tính năng tự động giúp quản lý dữ liệu và tích lũy dữ liệu Tuy nhiên, việc quản lý dữ liệu là điều hạn chế duy nhất được sử dụng bởi Internet of Things Hiện tại nó được sử dụng cho phiên bản cao cấp hơn nhiều cho phép điều chỉnh tự động những thứ không dây Ví dụ, người dùng có thể dễ dàng điều khiển ánh sáng bằng một cú nhấp chuột từ xa Điều hòa hiện được kết nối với điện thoại thông minh của họ và họ có thể bật và tắt bất cứ khi nào họ muốn
Internet vạn vật là sự tiến bộ mới nhất trong công nghệ Nhu cầu phát triển ngày càng tăng theo thời gian Mỗi người không phụ thuộc vào sự ra mắt của các thiết bị ô tô và cảm biến thông minh khác nhau Có nhiều nguyên mẫu khác nhau đang có trên thị trường đang được triển khai và đang chạy trong giai đoạn thử nghiệm Ngoài ra, Internet vạn vật không hoạt động chỉ với một thiết bị Do đó, điều quan trọng là các thiết bị phải được kiểm tra đầy đủ tính tương thích với hệ thống và được kiểm tra kỹ xem liệu các thiết bị có thể kết nối không dây hay không
Các ứng dụng của IoT
Internet of Things (Internet vạn vật), ngay từ cái tên đã cho thấy khả năng được ứng dụng rộng rãi của công nghệ này Sau đây, chúng tôi sẽ trình bày những gì tìm hiểu được từ một số lĩnh vực đang phát triển mạnh và ứng dụng rất nhiều công nghệ IoT vào các hoạt động chính như điều khiển, giám sát, quản lý,…Đấy là một điều quan trọng giúp nhóm có ý tưởng làm một đề tài đồ án tốt nghiệp về IoT
IoT có thể tạo ra sự tích hợp liền mạch của các thiết bị sản xuất khác nhau được trang bị cảm biến, nhận dạng, xử lý, giao tiếp, truyền động và khả năng kết nối mạng Dựa trên một không gian vật lý học thông minh tích hợp cao như vậy, nó mở ra cơ hội tạo ra các cơ hội kinh doanh và thị trường hoàn toàn mới cho sản xuất Với việc mang đến những chức năng điều khiển giám sát qua mạng và quản lý thiết bị sản xuất, quản lý tài sản và rủi ro hoặc kiểm soát quy trình sản xuất làm cho IoT ngày càng được ứng dụng nhiều trong lĩnh vực công nghiệp chế tạo và sản xuất thông minh Các hệ thống thông minh IoT cho phép sản xuất nhanh chóng các sản phẩm mới, đáp ứng năng động với nhu cầu từ thị trường đối với các sản phẩm và tối ưu hóa thời gian thực của mạng lưới sản xuất và chuỗi cung ứng sản xuất, bằng máy móc, cảm biến và các hệ thống điều khiển đồng bộ với nhau.
Thuật ngữ industrial Internet of things (IIoT) thường gặp trong các ngành sản xuất, đề cập đến các phân ngành nhỏ hơn của IoT trong công nghiệp IIoT trong sản xuất có thể tạo ra nhiều giá trị kinh doanh đến mức cuối cùng sẽ dẫn đến cuộc cách mạng công nghiệp lần thứ tư, từ đó sinh ra một trào lưu gọi là Công nghiệp 4.0 Người ta ước tính rằng trong tương lai, các công ty sẽ có thể tăng doanh thu của họ thông qua Internet bằng cách tạo ra các mô hình kinh doanh mới và cải thiện năng suất, phân tích để đổi mới và chuyển đổi nguồn lực lao
8 động của công ty Tiềm năng tăng trưởng qua việc ứng dụng IIoT trong sản xuất có thể tạo ra giá trị đến 12 nghìn tỷ đô la GDP toàn cầu vào năm 2030.
Giám sát và điều khiển hoạt động của các cơ sở hạ tầng đô thị và nông thôn như cầu, đường ray, đèn tín hiệu giao thông,… là một ứng dụng chính của IoT Cơ sở hạ tầng IoT có thể được sử dụng để theo dõi bất kỳ sự kiện hoặc thay đổi nào trong điều kiện cấu trúc có thể ảnh hưởng đến an toàn và tăng những rủi ro không ngờ tới IoT có thể mang lại lợi ích cho ngành xây dựng bằng cách tiết kiệm chi phí, giảm thời gian, hiệu quả một ngày làm việc cao hơn, quy trình làm việc không cần giấy tờ và tăng năng suất Nó có thể giúp đưa ra quyết định nhanh hơn và tiết kiệm tiền với phân tích dữ liệu thời gian thực Nó cũng có thể được sử dụng để lên lịch các hoạt động sửa chữa và bảo trì một cách hiệu quả, bằng cách phối hợp các nhiệm vụ giữa các nhà cung cấp dịch vụ khác nhau và người dùng của các cơ sở này
Các thiết bị IoT là một phần của khái niệm rộng nhà tự động hó, có thể bao gồm hệ thống chiếu sáng, sưởi ấm và điều hòa không khí, phương tiện truyền thông và hệ thống an ninh Lợi ích lâu dài có thể bao gồm tiết kiệm năng lượng bằng cách tự động đảm bảo đèn và thiết bị điện tử được tắt khi không sử dụng
Nhà thông minh hoặc nhà tự động có thể dựa trên nền tảng hoặc trung tâm điều khiển của các thiết bị thông minh Chẳng hạn như sử dụng HomeKit của Apple, các nhà sản xuất có thể kiểm soát các sản phẩm và phụ kiện gia đình của họ bằng một ứng dụng trong các thiết bị iOS như iPhone và Apple Watch Đây có thể là một ứng dụng chuyên dụng hoặc ứng dụng được cài sẵn trên iOS như Siri Điều này có thể được chứng minh trong trường hợp Smart Home Essentials của Lenovo, một dòng thiết bị nhà thông minh được điều khiển thông qua ứng dụng Home của Apple hoặc Siri mà không cần thông qua kết nối Wi-Fi.
Có rất nhiều ứng dụng IoT trong canh tác, chẳng hạn như thu thập dữ liệu về nhiệt độ, lượng mưa, độ ẩm, tốc độ gió, sự phá hoại của sâu bệnh, thành phần đất và hàm lượng các chất dinh dưỡng trong đất Dữ liệu này có thể được sử dụng để tự động hóa các kỹ thuật canh tác, đưa ra các quyết định đúng đắn để cải thiện chất lượng và sản lượng, giảm thiểu rủi ro và lãng phí và giảm nỗ lực cần thiết để quản lý cây trồng Ví dụ, nông dân hiện có thể theo dõi nhiệt độ và độ ẩm của đất từ xa, và thậm chí áp dụng dữ liệu thu được từ IoT vào các chương trình bón phân chính xác Đề tài robot trồng rau cho hộ gia đình của chúng tôi cũng được phát triển và ứng dụng theo xu hướng này.
Web server
Web server (Máy chủ web) là từ được dùng để chỉ phần mềm máy chủ, hoặc phần cứng dành riêng để chạy các phần mềm trên máy chủ, để từ đó có thể cung cấp các dịch vụ World Wide Web Một máy chủ web xử lí các yêu cầu (request) từ các client (trong mô hình server - client) thông qua giao thức HTTP và một số giao thức liên quan khác
Chức năng cơ bản nhất của máy chủ web là lưu trữ, xử lí và phân phối nội dung các trang web đến khách hàng, cụ thể ở đây là máy tính người dùng, hay còn gọi là client trong mô hình server-client Giao tiếp giữa của máy tính người dùng và máy chủ thực hiện thông qua giao thức HTTP Nội dung phân phối chính từ máy chủ web là các nội dung định dạng HTML, bao gồm hình ảnh, style sheets, các đoạn mã script hỗ trợ các nội dung văn bản thô
Các máy chủ web không chỉ được sử dụng để phục vụ World Wide Web Họ cũng có thể được tìm thấy nhúng trong các thiết bị như máy in, thiết bị định tuyến, webcam và chỉ phục vụ một mạng nội bộ Sau đó, máy chủ web có thể được sử dụng như một phần của hệ thống để theo dõi hoặc quản lý thiết bị được
10 đề cập Điều này thường có nghĩa là không có phần mềm bổ sung nào phải được cài đặt trên máy khách, vì chỉ cần một trình duyệt web
Apache Tomcat, thường được gọi là Tomcat Server, là một Container Servlet Java mã nguồn mở được phát triển bởi Apache Software Foundation (ASF).
Apache Tomcat là một phần mềm mã nguồn mở để chạy các ứng dụng web có nền tảng là ngôn ngữ Java EE bao gồm Java Servlet, JavaServer Pages (JSP), Java EL và WebSocket Tomcat cung cấp một máy chủ HTTP cho ngôn ngữ Java thuần túy Tomcat được hỗ trợ và tăng cường bởi một nhóm tình nguyện viên từ cộng đồng mã nguồn mở của Java Apache Tomcat rất ổn định và có tất cả các tính năng của một ứng dụng web thương mại nhưng đi kèm theo giấy phép mã nguồn mở của Apache Tomcat cũng cung cấp một số chức năng bổ sung như tomcat manager application, speciallized realm imlementation và tomcat valves Các phiên bản của apache tomcat trùng với phiên bản và đặc điểm kỹ thuật của servlet java hoặc java servlet API Tomcat 5.5X hỗ trợ Servlet API 2.3, tomcat 6.0X hỗ trợ servlet API 2.4 và tomcat 7.0 hỗ trợ servlet API 3.0 Ngoài Servlet versions API, phiên bản tomcat hỗ trợ phiên bản JSP API tương ứng
Apache Tomcat có các tính năng như chứng thực người dùng, virtual hosting, CGI, Java Servlet, SSI, hỗ trợ Ipv6, …
Apache Tomcat hỗ trợ các hệ điều hành như windows, linux, OS, BSD, solaris,…
Hình 2.1 Logo ngôn ngữ Java
Java là một ngôn ngữ lập trình và là một platform Ở khía cạnh là một ngôn ngữ lập trình, Java là một ngôn ngữ lập trình bậc cao, hướng đối tượng, bảo mật và mạnh mẽ Về khái niệm plattform, bất cứ môi trường phần cứng hoặc phần mềm nào mà trong đó có một chương trình chạy, thì được hiểu như là một platform Với môi trường runtime riêng cho mình (JRE) và API, Java được gọi là một platform
Phiên bản mới nhất của Java Standard Edition là Java SE 11 Với sự tiến bộ của Java và sự phổ biến rộng rãi của nó, nhiều cấu hình đã được xây dựng để phù hợp với nhiều loại nền tảng khác nhau Ví dụ: J2EE cho các ứng dụng doanh nghiệp, J2ME cho các ứng dụng di động
Những ưu điểm nổi bật của ngôn ngữ lập trình Java:
- Java là ngôn ngữ lập trình mã nguồn mở
- Java là ngôn ngữ lập trình hướng đối tượng với tiêu chí viết một lần, thực thi khắp nơi
- Java là nền tảng độc lập thực thi ứng dụng dựa trên máy ảo Virtual Machine (JVM)
- Java thực thi với hiệu suất cao và an toàn
- Java hỗ trợ đa luồng nhờ đó chương trình có thể thực hiện nhiều tác vụ cùng một lúc
- Java phát triển ứng dụng chạy với hiệu suất cao và an toàn
- Java hỗ trợ đa nền tảng như Windows, Mac, Linux…
- Java có API phong phú, Java cung cấp API cho I/O, mạng, kết nối cơ sở dữ liệu và nhiều thư viện nguồn mở như Apache Commons, Google Guava, Jackson, Gson, Apache POI…
- Java được thiết kế để dễ học và dễ hiểu nhờ đó giúp lập trình viên dễ dàng tiếp cận hơn
- Java có cộng đồng hỗ trợ đông đảo với hàng triệu nhà phát triển trên toàn thế giới
Một số lĩnh vực ứng dụng của Java:
- Desktop App như acrobat reader, media player, antivirus, …
- Web App như irctc.co.in, javatpoint.com, …
- Enterprise App như các ứng dụng về xử lý nghiệp vụ ngân hàng, …
Các giao thức kết nối
Khái niệm giao thức( protocol): là một tập hợp các quy tắc chuẩn dành cho việc biểu diễn dữ liệu, phát tín hiệu, chứng thực và phát hiện lỗi dữ liệu nhờ đó mà các máy tính (và các thiết bị) có thể kết nối và trao đổi thông tin với nhau.Nói một cách dễ hiểu giao thức là tiêu chuẩn giao tiếp giữa hai hệ thống giúp chúng hiểu và trao đổi dữ liệu được với nhau.
Như đã đề cập ở phần trước, giao thức kết nối là một phần rất quan trọng trong hệ thống IoT, giúp cho các thiết bị giao tiếp và truyền dữ liệu với nhau Phần này sẽ trình bày cơ sở lý thuyết căn bản của các giao thức được sử dụng trong hệ thống Robot trồng rau cho hộ gia đình của chúng tôi.
Hình 2.2 Mô hình phương thức kết nối của hệ thống robot trồng rau tự động
TCP (Transmission Control Protocol - "Giao thức điều khiển truyền vận") là một trong các giao thức cốt lõi của bộ giao thức TCP/IP Sử dụng TCP, các ứng dụng trên các máy chủ được nối mạng có thể tạo các "kết nối" với nhau, mà qua đó chúng có thể trao đổi dữ liệu hoặc các gói tin Giao thức này đảm bảo chuyển giao dữ liệu tới nơi nhận một cách đáng tin cậy và đúng thứ tự TCP còn phân biệt giữa dữ liệu của nhiều ứng dụng (chẳng hạn, dịch vụ Web và dịch vụ thư điện tử) đồng thời chạy trên cùng một máy chủ
Websocket là giao thức chuẩn cho trao đổi dữ liệu hai chiều giữa client và server Giao thức WebSocket không chạy trên HTTP, thay vào đó nó thực hiện trên giao thức TCP
Người ta thường dùng Websocket thay vì HTTP cho những trường hợp yêu cầu real time (thời gian thực) Ví dụ muốn hiện thị biểu đồ, chỉ số chứng khoán, web chat… thì không thể gửi lệnh AJAX liên tiếp tới server để lấy dữ liệu mới rồi cập nhật lên màn hình, như thế sẽ tốn nhiều tài nguyên, và lưu lượng
Gói tin của WebSockets nhẹ hơn HTTP rất nhiều, giảm độ trễ của network lên đến 3 lần, không cần phải gửi request liên tiếp như HTTP
Khi kết nối có kết nối Websocket tới Webserver, có thể gửi dữ liệu từ trình duyệt tới Server bằng cách gọi một phương thức send(), và nhận dữ liệu từ Server tới trình duyệt bằng một onmessage Event Handler
Socket.readyState Thuộc tính chỉ đọc readyState biểu diễn trạng thái kết nối Nó có các giá trị sau:
Giá trị 0 chỉ rằng kết nối vẫn chưa được thành lập Giá trị 1 chỉ rằng kết nối đã thành lập và có thể giao
Giá trị 2 chỉ rằng kết nối đang qua handshake đóng
Giá trị 3 chỉ rằng kết nối đã được đóng hoặc không thể được mở
Socket.bufferedAmount Thuộc tính chỉ đọc bufferedAmount biểu diễn số byte của UTF-8 mà đã được xếp hàng bởi sử dụng phương thức send()
Bảng 2.1 Các thuộc tính của Websocket
Event handlers đóng một vai trò quan trọng trong lập trình WebSockets Tất cả các dữ liệu nhận được, được xử lý bởi Event handlers (Bộ xử lý sự kiện) Dưới đây là các phương thức xử lý sự kiện trong Websocket
Bảng 2.2 Các sự kiện websocket
Socket.send() Phương thức send(data) truyền tải dữ liệu sử dụng kết nối đó
Socket.close() Phương thức close() sẽ được sử dụng để kết thúc bất
Sự kiện Event Handler Miêu tả open Socket.onopen Sự kiện này xảy ra khi kết nối Socket được thành lập message Socket.onmessage Sự kiện này xảy ra khi Client nhận dữ liệu từ Server error Socket.onerror Sự kiện này xảy ra khi có bất kỳ lỗi nào trong giao tiếp close Socket.onclose Sự kiện này xảy ra khi kết nối được đóng
15 kỳ kết nối đang tồn tại
Bảng 2.3 Các phương thức websocket
WebSockets truyền dữ liệu thông qua phương thức send() Phương thức send() có 3 kiểu dữ liệu
Khi phương thức send() được gọi, các dữ liệu đối số được đặt trong một bộ đệm Tuy nhiên, dữ liệu có thể không được gửi ngay lập tức Để kiểm tra số lượng byte trong bộ đệm ra, sử dụng "bufferedAmount"
UART - Universal synchronous asynchronous receiver transmitter là một ngoại vi cơ bản và thường dùng trong các quá trình giao tiếp với các module như : Zigbee, Wifi, Blutooth… Khi giao tiếp UART kết hợp với các IC giao tiếp như MAX232CP, SP485EEN… thì sẽ tạo thành các chuẩn giao tiếp RS232, RS485 Đây là các chuẩn giao tiếp thông dụng và phổ biến trong công nghiệp từ trước đến nay Ưu điểm của giao tiếp UART không đồng bộ: tiết kiệm chân vi điều khiển (2 chân), là ngoại vi mà bất kì một vi điều khiển nào cũng có, có khá nhiều module, cảm biến dùng UART để truyền nhận dữ liệu với vi điều khiển Nhược điểm của loại ngoại vi này là tốc độ khá chậm, tốc độ tối đa tùy thuộc vào từng dòng; quá trình truyền nhận dễ xảy ra lỗi nên trong quá trình truyền nhận cần có các phương pháp để kiểm tra(thông thường là truyền thêm bit hoặc byte kiểm tra lỗi) UART không phải là 1 chuẩn truyền thông, Khi muốn nó là 1 chuẩn truyền thông hoặc truyền data đi xa, chúng ta cần phải sử dụng các IC thông dụng để tạo thành các chuẩn giao tiếp đáng tin cậy như RS485 hay RS232 Dưới đây là các khái niệm quan trọng trong chuẩn giao tiếp UART:
Baudrate: Số bit truyền được trong 1s, ở truyền nhận không đồng bộ thì ở các bên truyền và nhận phải thống nhất Baudrate Các thông số tốc độ Baudrate
16 thường hay sử dụng dể giao tiếp với máy tính là 600, 1200, 2400, 4800, 9600,
Frame: Ngoài việc giống nhau của tốc độ baud 2 thiết bị truyền nhận thì khung truyền của bên cũng được cấu hình giống nhau Khung truyền quy định số bit trong mỗi lần truyền, bit bắt đầu “Start bit”, các bit kết thúc (Stop bit), bit kiểm tra tính chẵn lẻ (Parity), ngoài ra số bit quy định trong một gói dữ liệu cũng được quy định bởi khung truyền Có thể thấy, khung truyền đóng một vai trò rất quan trọng trong việc truyền thành công dữ liệu
- Idle frame: Đường truyền UART ở mức “1”, để xác nhận hiện tại đường truyền dữ liệu trống, không có frame nào đang được truyền đi
- Break frame: Đường truyền UART ở mức “0”, để xác nhận hiện tại trên đường truyền đang truyền dữ liệu, có frame đang được truyền đi
Start bit: Bit đầu tiên được truyền trong một frame, bit này có chức năng báo cho bên nhận rằng sắp có một gói dữ liệu truyền đến Đường truyền UART luôn ở trạng thái cao mức “1” cho đến khi chip muốn truyền dữ liệu đi thì nó gởi bit start bằng cách kéo xuống mức “0” Như vậy start bit giá trị điện áp 0V và phải bắt buộc có bit start trong khung truyền
Data: Data hay dữ liệu là thông tin mà chúng ta nhận được trong quá trình truyền và nhận Data trong STM32 có quy định khung truyền là 8bit hoặc 9bit Trong quá trình truyền UART, bit có trọng số thấp nhất (LSB – least significant bit – bên phải) sẽ được truyền trước và cuối cùng là bit có ảnh hưởng cao nhất (MSB – most significant bit – bên trái)
Parity bit: Parity dùng để kiểm tra dữ liệu truyền có đúng hay không Có 2 loại
Parity đó là Parity chẵn (even parity) và parity lẽ (odd parity) Parity chẵn nghĩa là số bit 1 trong trong data truyền cùng với bit Parity luôn là số chẵn, ngược lại nếu Parity lẽ nghĩa là số bit 1 trong data truyền cùng với bit Parity luôn là số lẽ Bit Parity không phải là bit bắt buộc và vì thế chúng ta có thể loại bỏ bit này ra khỏi khung truyền
Stop bits: Stop bits là một bit báo cáo để cho bộ truyền/nhận biết được gói dữ liệu đã được gởi xong Stop bits là bit bắt buộc phải có trong khung truyền Stop bits có thể là 1bit, 1.5bit, 2bit, 0.5bit tùy thuộc vào ứng dụng UART của người sử dụng
Phần mềm sử dụng
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 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, ví dụ để nạp code cho PIC cần phải có Pic Kit Đố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++
Hiện nay có khá nhiều trình biên dịch ngôn ngữ C cho 8051 như Mikro C, IAR, SDCC, Reads 51 … àVision là mụi trường phỏt triển tớch hợp (IDE: Integrated Development Environment) (trình soạn thảo ngôn ngữ C, trình biên dịch và debug) của công ty Keil Software, và thường được gọi là Keil C
Keil C là môi trường phát triển khá mạnh và được sử dụng rộng rãi hiện nay Keil C là một phần mềm hỗ trợ cho người sử dụng trong việc lập trình cho vi điều khiển các dòng khác nhau (Atmel, AVR,…) Keil C giúp người dùng soạn thảo và biên dịch chương trình C hay cả ASM thành ngôn ngữ máy để nạp vào vi điều khiển giúp tưởng tác giữa vi điều khiển và người lập trình
Apache Tomcat, thường được gọi là Tomcat Server, là một Container Servlet Java mã nguồn mở được phát triển bởi Apache Software Foundation (ASF).
Tomcat là một phần mềm mã nguồn mở để chạy các ứng dụng web có nền tảng là ngôn ngữ Java EE bao gồm Java Servlet, JavaServer Pages (JSP), Java EL và WebSocket Tomcat cung cấp một máy chủ HTTP cho ngôn ngữ Java thuần túy Tomcat được hỗ trợ và tăng cường bởi một nhóm tình nguyện viên từ cộng đồng mã nguồn mở của Java Apache Tomcat rất ổn định và có tất cả các tính năng của một ứng dụng web thương mại nhưng đi kèm theo giấy phép mã nguồn mở của Apache Tomcat cũng cung cấp một số chức năng bổ sung như tomcat manager application, speciallized realm imlementation và tomcat valves
Hình 2.7 Logo của Apache Software Foundation và Tomcat
2.6.4 Eclipse IDE for Java EE Developers
Eclipse là "công cụ hỗ trợ lập trình mã nguồn mở" được phát triển bởi IBM Eclipse như một môi trường phát triển Java tích hợp (IDE), với Eclipse chúng ta có thể mở rộng hơn mã nguồn bằng cách chèn thêm các plugins cho project (PDE- Plug-in)
Eclipse như một môi trường phát triển Java tích hợp (IDE), với Eclipse chúng ta có thể mở rộng hơn mã nguồn bằng cách chèn thêm các plugins cho project (PDE- Plug-in Development Environment) Mặc dù Eclipse được viết bằng ngôn ngữ lập trình Java, nhưng việc sử dụng nó không hạn chế chỉ cho ngôn ngữ Java Eclipse còn hỗ trợ cho lập trình viên code theo các mô hình phát triển như MVC, tạo thêm các thư viện hỗ trợ phát triển phần mềm
Công cụ lập trình Eclipse có rất nhiều tính năng giúp cho việc soạn thảo chương trình Java như :
Code Completion: Nhằm hỗ trợ người lập trình viết mã chương trình Java có độ chính xác hơn và không cần phải nhớ quá nhiều cú pháp và câu lệnh Người dùng chỉ cần ấn tổ hợp phím Ctr + Space để sổ ra các câu lệnh gợi ý tương ứng
Quick Fix: Khi bạn gặp phải lỗi thì Eclipse sẽ giúp bạn có một danh sách các phương pháp khắc phục lỗi tương ứng, và có những biện pháp hỗ trợ sữa lỗi một cách nhanh chóng và dễ dàng hơn
Refactor: Eclipse sẽ tự động cập nhật tòan bộ Project cho phù hợp với tên mới Đống thời, Refactor còn giúp người lập trình rút ra được lớp Interface từ các lớp dựng sẵn & tự động cài đặt Interface trên các lớp mà sử dụng giao diện này
Local History: Với mục đích là so sánh giữa phiên bản cũ cới phiên bản mới của tập tin bạn đang làm việc
Java Scrapbook pages: Nhằm giúp người lập trình viết một chương trình nhỏ rời ra bằng việc sử dụng trình soạn thảo đơn giản được thực thi dưới dạng command prompt Ưu điểm của Eclipse:
- Tích hợp liền mạch các công cụ bên trong
- Hỗ trợ các công cụ như : HTML ,C,Java, XML,JSP, GIF,EJB
- Hỗ trợ môi trường phát triển GUI
- Có thể chạy trên nhiều hệ điều hành : Windows , Linux
- Hỗ trợ xây dựng nhiều công cụ lập trình
- Không hạn chế các nhà cung cấp công cụ
- Load nhanh hơn nhờ việc sử dụng SWT/JFace
- Viết được nhiều các công cụ nhờ tính phổ biến Java
- Có nhiều plugins quá nên thiếu tính nhất quán
THIẾT KẾ VÀ LỰA CHỌN THIẾT BỊ
Thiết kế robot
3.1.1 Mô hình hoàn chỉnh sau khi kết nối các phụ kiện
Nhóm thiết kế mô hình robot trồng rau tự động bằng phần mềm SolidWorks
2015 Vật liệu được sử dụng rất đa dạng như: nhôm định hình, thép được gia công CNC, xích nhựa đi cáp và một số bộ phận nhỏ được in 3D Mô hình đảm bảo độ cứng cáp và tính thẩm mỹ Các chi tiết được kết nối bằng ốc vít, bulông, thuận tiện cho việc tháo lắp, sửa chữa
Hình 3.1 Mô hình robot trồng rau tự động trên SolidWork
3.1.2 Thiết kế các bộ phận robot
Hình 3.2 Trục x của mô hình robot trồng rau tự động x z y
25 Hình 3.3 Trục y của mô hình robot trồng rau tự động
Hình 3.4 Cơ cấu hút hạt và đo độ ẩm đất của robot
26 Hình 3.5 Trục z của robot trồng rau tự động
Lựa chọn thiết bị phần cứng
3.2 Lựa chọn thiết bị phần cứng
STT Tên thiết bị Số lượng
1 Vi điều khiển STM32F103RCT6 1
3 Cảm biến đo độ ẩm đất analog 1
4 Cảm biến cường độ ánh sáng TSL2561 1
6 Động cơ bước size 42 NEMA 17 STP-43D2033 4
7 Van nước điện tử Solenoid 1
9 Mạch điều khiển động cơ bước TB6560 3
10 Module 2 relay với opto cách ly 5V 1
Bảng 3.1 Các thiết bị, chi tiết được sử dụng trong mô hình robot
Phần này sẽ giới thiệu về thiết bị phần cứng và được chọn để sử dụng trong mô hình robot (Bảng 3.1) Từng thành phần của robot sẽ được giới thiệu một cách ngắn gọn cùng với những thông số kỹ thuật
3.2.1 Vi điều khiển STM32F103RCT6
Những đặc điểm nổi trội của dòng ARM Cortex đã thu hút các nhà sản xuất IC, hơn 240 dòng vi điều khiển dựa vào nhân Cortex đã được giới thiệu Không nằm ngoài xu hướng đó, hãng sản xuất chip ST Microelectronic đã nhanh chóng đưa ra dòng STM32 STM32 là vi điều khiển dựa trên nền tảng lõi ARM Cortex-M3 thế hệ mới do hãng ARM thiết kế Lõi ARM Cortex-M3 là sự cải tiến từ lõi ARM7 truyền thống từng mang lại thành công vang dội cho công ty ARM
Kit phát triển STM32F103RCT6 ARM Cortex-M3 Mini được thiết kế với các phần thí nghiệm cơ bản và ra chân đầy đủ vi điều khiển STM32F103RCT6: Cổng
USB, led, button, bộ nhớ Flash ngoài,…, ngoài ra kit còn tích hợp cổng nạp chuẩn Jtag, cổng UART, NRF24L01, LCD để có thể mở rộng vô số các thí nghiệm k hác nhau, phù hợp cho các bạn mới tìm hiểu về STM32
Hình 3.6 Vi điều khiển STM32F103RCT6 Thông số kĩ thuật:
- Vi điều khiển chính: STM32F103RCT6 ARM Cortex-M3
- Nguồn sử dụng: 5VDC từ cổng Mini USB hoặc chân GPIO
- Thiết kế ra chân GPIO đầy đủ
- Tích hợp mạch chuyển USB-UART
- Tích hợp bộ nhớ Flash
- Tích hợp cổng nạp chuẩn Jtag
- Tích hợp khe cắm mạch RF NRF24L01+, UART, LCD,…
Hình 3.7 Sơ đồ mạch kit điều khiển STM32F103RCT6
ESP8266 NodeMCU Lua là kit phát triển dựa trên nền chip Wifi SoC ESP8266 với thiết kế dễ sử dụng và đặc biệt là có thể sử dụng trực tiếp trình biên dịch của Arduino để lập trình và nạp code, điều này khiến việc sử dụng và lập trình các ứng dụng trên ESP8266 trở nên rất đơn giản
ESP8266 NodeMCU Lua được dùng cho các ứng dụng cần kết nối, thu thập dữ liệu và điều khiển qua sóng Wifi, đặc biệt là các ứng dụng liên quan đến IoT
ESP8266 NodeMCU Lua sử dụng chip nạp và giao tiếp UART mới và ổn định nhất là CP2102 có khả năng tự nhận Driver trên tất cả các hệ điều hành Window và Linux, đây là phiên bản nâng cấp từ các phiên bản sử dụng IC nạp giá rẻ CH340
Hình 3.9 Sơ đồ chân của Kit wifi ESP8266 NodeMCU Lua
- IC chính: ESP8266 Wifi SoC
- Phiên bản firmware: NodeMCU Lua
- Chip nạp và giao tiếp UART: CP2102
- GPIO tương thích hoàn toàn với firmware Node MCU
- Cấp nguồn: 5VDC MicroUSB hoặc Vin
- GIPO giao tiếp mức 3.3VDC
- Tích hợp Led báo trạng thái, nút Reset, Flash
- Tương thích hoàn toàn với trình biên dịch Arduino
3.2.3 Cảm biến đo độ ẩm đất analog
Cảm biến độ ẩm đất điện dung đầu ra analog Cảm biến độ ẩm đất arduino là loại cảm biến độ ẩm đất mới - cảm biến điện dung với độ bền và tuổi thọ cao hơn nhiều các loại cảm biến điện trở thông thường Cảm biến đo độ ẩm đất này hoạt động với điện áp 3.3V đến 5.5V, đặc biệt nó hoạt động tương thích với rất nhiều loại vi điều khiển Chỉ cần sử dụng một máy tính thu nhỏ như Raspberry Pi hay bất kỳ các loại vi điều hiển nào có mô-đun chuyển đổi ADC (analog để tín hiệu số) để hoạt động
Hình 3.10 Cảm biến đô độ ẩm đất analog
Thông số kỹ thuật của cảm biến độ ẩm của đất:
- Điện áp hoạt động: 3.3 ~ 5.5 VDC
- Điện áp đầu ra: 0 ~ 3.0 VDC
Nguyên lý hoạt động của cảm biến độ ẩm đất kiểu điện dung:
Mạch cảm biến sử dụng mạch tạo xung NE555 với tụ điện trong mạch để tính tần số là hai bản cực được thiết kế về hai mặt PCB Khi ở môi trường ẩm, hơi nước bao quanh 2 bản cực như môi trường điện môi Mật độ hơi nước càng lớn thì hằng số điện môi càng cao dẫn tới tụ dung của mạch tạo tần số tăng nên tần số sẽ giảm xuống ( f = 1/(R.C) - tham khỏa datasheet của NE555) và ngược lại Tần số này đưa qua mạch lọc thông thấp sẽ xuất mức điện áp tương ứng với giá trị độ ẩm đất ở chân OUT
3.2.4 Cảm biến cường độ ánh sáng TSL2561
Cảm biến cường độ ánh sáng (lux) TSL2561 được sử dụng để đo cường độ ánh sáng thường, hồng ngoại theo đơn vị lux với độ ổn định và độ chính xác cao, càm biến có ADC nội và bộ tiền xử lý nên giá trị được trả ra là giá trị trực tiếp cường độ ánh sáng lux mà không phải qua bất kỳ xử lý hay tính toán nào thông qua giao tiếp I2C
Hình 3.11 Cảm biến cường độ ánh sáng TSL2561
- Dòng điện tiêu thụ: 0.6mA
- Đo được cường độ ánh sáng thường và hồng ngoại (IR)
- Giao tiếp: I2C mức TTL 3.3~5VDC
Hình 3.12 Sơ đồ nối dây cảm biến cường độ ánh sáng TSL2561
Hình 3.13 Cảm biến đo nhiệt độ, độ ẩm DHT22 Cảm biến độ ẩm và nhiệt độ DHT22 là cảm biến rất thông dụng hiện nay vì chi phí rẻ và rất dễ lấy dữ liệu thông qua giao tiếp 1 wire (giao tiếp digital 1 dây truyền dữ liệu duy nhất)
- Dòng sử dụng: 2.5mA max (khi truyền dữ liệu)
- Đo tốt ở độ ẩm 0-100%RH, sai số ±2%RH
- Đo tốt ở nhiệt độ -40 to 80°C sai số ±0.5°C
- Tần số lấy mẫu tối đa 0.5Hz (2 giây 1 lần)
- Kích thước 27mm x 59mm x 13.5mm (1.05" x 2.32" x 0.53")
3.2.6 Động cơ bước size 42 NEMA 17 STP-43D2033 Động cơ bước là một loại động cơ điện có nguyên lý và ứng dụng khác biệt với đa số các động cơ điện thông thường Chúng thực chất là một động cơ đồng bộ dùng để biến đổi các tín hiệu điều khiển dưới dạng các xung điện rời rạc kế tiếp nhau thành các chuyển động góc quay hoặc các chuyển động của rôto có khả năng cố định rôto vào các vị trí cần thiết Về cấu tạo, động cơ bước có thể được coi là tổng hợp của hai loại động cơ: Đông cơ một chiều không tiếp xúc và động cơ đồng bộ giảm tốc công suất nhỏ Động cơ bước không quay theo cơ chế thông thường, chúng quay theo từng bước nên có độ chính xác rất cao về mặt điều khiển học Chúng làm việc nhờ các bộ
35 chuyển mạch điện tử đưa các tín hiệu điều khiển vào stato theo thứ tự và một tần số nhất định Tổng số góc quay của rôto tương ứng với số lần chuyển mạch, cũng như chiều quay và tốc độ quay của rôto phụ thuộc vào thứ tự chuyển đổi và Trong điều khiển chuyển động kỹ thuật số, động cơ bước là một cơ cấu chấp hành đặc biệt hữu hiệu bởi nó có thể thực hiện trung thành các lệnh đưa ra dưới dạng số Động cơ bước được ứng dụng nhiều trong ngành Tự động hoá, chúng được ứng dụng trong các thiết bị cần điều khiển chính xác Ví dụ: Điều khiển robot, điều khiển tiêu cự trong các hệ quang học, điều khiển định vị trong các hệ quan trắc, điểu khiển bắt, bám mục tiêu trong các khí tài quan sát, điều khiển lập trình trong các thiết bị gia công cắt gọt, điều khiển các cơ cấu lái phương và chiều trong máy bay… Trong công nghệ máy tính, động cơ bước được sử dụng cho các loại ổ đĩa cứng, ổ đĩa mềm, máy in tần số chuyển đổi
Hình 3.14 Động cơ bước size 42 1.8 step Thông số kỹ thuật
Hình 3.15 Thông số kích thước của động cơ bước
3.2.7 Van nước điện tử Solenoid
Van nước điện tử Solenoid là thiết bị đóng ngắt nước tự động Được ứng dụng nhiều trong hệ thống tưới tự động, chiết rót tự động, thiết bị vê sinh… Van là dạng thường đóng , khi chưa có điện vào cuộn dây thì van khoá , khi có điện van mở
Trong mô hình Robot trồng rau tự động này, van nước điện tử Solenoid được sử dụng làm thiết bị đóng ngắt nước trong quá trình tưới
Hình 3.16 Van nước điện tử Solenoid Thông số kỹ thuật:
- Điện áp cấp cho cuộn dây: 12VDC
- Áp lực nước: 0.2 Mpa - 0.8 Mpa
- Thời gian đáp ứng: ON ≤0.15s OFF ≤0.3s
3.2.8 Động Cơ Bơm P385 12VDC 3W Được sử dụng làm động cơ hút hạt giống từ khay hạt giống mang đến vị trí cần gieo khi robot thực hiện chức năng gieo hạt Động cơ bơm P385 12VDC 3W có kích thước nhỏ gọn, được sử dụng để bơm nước, dung dịch với khả năng bơm tối đa lên đến 1.8L / 1 phút, động cơ sử dụng điện áp 12VDC, thích hợp với các thiết kế sử dụng máy bơm nhỏ: bơm hồ cá, tưới nước cho cây,
- Điện áp sử dụng: 12VDC
- Thời gian làm việc liên tục tối đa trong 1 ngày: không quá 8h
- Đường kính ngoài ống dẫn: 7mm
3.2.9 Mạch điều khiển động cơ bước TB6560
Mạch driver động cơ bước TB6560 3A là module chuyên dụng để điều khiển động cơ bước lưỡng cực Module TB6560 có khả năng điều khiển các chế độ: full step, half step, vi bước (1/8 và 1/16 step) Các chế độ được set bởi phần cứng.
Hình 3.18 Mạch điều khiển động cơ bước TB6560
- Running Current(tùy chỉnh dòng ) : 0,3-3A(SW1,SW2,SW3,S1)
Ưu điểm so với Farmbot bản gốc
Với mục tiêu làm giảm giá thành và cải tiến cơ cấu, nhóm đã thiết kế và chọn những linh kiện điện tử khác rẻ tiền hơn so với bản Farmbot gốc
- Mạch STM32C8T6 với sức mạnh đủ để thực hiện tốt các tác vụ điều khiển và giao tiếp với các linh kiện khác và kết nối thời gian thực với hệ thống
45 thông qua ESP8266 vô cùng ổn định Về giá thành của 2 linh kiện loại này rẻ hơn bộ KIT Raspberry Pi 3B của Farmbot phiên bản gốc 6 lần
- Động cơ step được sử dụng trong Robot trồng rau tự động là các động cơ đã qua sử dụng từ máy in 3D Nhiệm vụ chính của các cơ cấu cơ khí dùng để gieo hạt, tưới nước tự động, độ chính xác không cần đạt đến khoảng milimet nên sử dụng các động cơ step đã qua sử dụng nhưng vẫn còn độ chính xác ổn định là điều chấp nhận được Giá thành của các động cơ này là 35000 đồng một động cơ, rẻ hơn động cơ step được sử dụng trong
- Cơ cấu gieo hạt tưới nước và đo độ ẩm đất được tích hợp lên chỉ một đầu cơ cấu Có thể sử dụng đồng thời vòi tưới và cảm biến để đo độ ẩm đồng thời tưới nước theo độ ẩm Farmbot bản gốc có các cơ cấu riêng và mỗi lần đầu cơ cấu chỉ mang một công cụ khi thực hiện nhiệm vụ
- Giao diện web điều khiển được thiết kế thân thiện, dữ liệu nhiệt độ, được ghi và thể hiện ra màn hình giao diện dưới dạng biểu đồ, giúp người dùng dễ quan sát và nắm bắt các thông số hệ thống
KẾT QUẢ THI CÔNG CƠ KHÍ VÀ PHẦN MỀM
Thi công cơ khí
Sau khoảng thời gian nghiên cứu thiết kế và chọn vật liệu, nhóm đã thi công xong mô hình robot trồng rau tự động cho hộ gia đình Dưới đây là một số hình ảnh của robot sau khi hoàn thành
Hình 4.1 Mô hình robot trồng rau tự động thực tế
4.1.2 Cách giao tiếp giữa các module
Hình 4.2 Cách giao tiếp giữa các module
- Vi điều khiển cấp xung cho các driver động cơ bước điều khiển các động cơ bước hoạt động kéo các trục của robot chuyển động thực hiện các chức năng
- Van điện tử để đóng mở tưới nước và máy bơm hút hạt giống được điều khiển bởi module 2 relay có apto cách ly
Cảm biến Stepper motor drivers Động cơ bước
- Các cảm biến giao tiếp với vi điều khiển theo nhiều phương thức khác nhau Cảm biến cường độ ánh sáng TSL2561 giao tiếp với vi điều khiển theo chuẩn I2C, cảm biến độ ẩm đất trả về vi điều khiển tín hiệu tương tự, cảm biến DHT22 trả về vi điều khiển tín hiệu số
- Các công tắc hành trình được bố trí ở đầu các trục để giới hạn hành trình, và xác định điểm bắt đầu khi hệ thống khởi động
- Vi điều khiển STM32F103RCT6 giao tiếp với ESP8266 NodeMCU Lua CP2102 theo chuẩn giao tiếp UART
- ESP8266 NodeMCU Lua CP2102 truyền nhận dữ liệu với web server theo giao thức websocket
Hình 4.3 Sơ đồ nối dây các linh kiện với vi điều khiển Giao tiếp UART:
UART1 PIN OUT: /* Truyền nhận thông tin với ESP8266 */
UART2 PIN OUT: /* Dùng để debug */
I2C2 PIN OUT: /* Đọc từ cảm biến cường độ ánh sáng TSL2561 */
PB10 : SDA PB11 : SCL Giao tiếp ADC:
ADC PIN OUT: /* Cảm biến đo nhiệt độ và độ ẩm đất */
PC4 : Soil Moisture V1.2 PC5: Nhiệt độ LM35 Công tắc hành trình :
PA1 : Công tắc hành trình cho trục x
PB4 : Công tắc hành trình cho trục y
PC5 : Công tắc hành trình cho trục z
PC6, PC8, PC10: Lần lượt vào chân CW+ của các board TB6560 điều khiển động cơ các trục x, y, z
PC7, PC9, PC11: Lần lượt vào các chân CLK+ của các board TB6560 điều khiển động cơ các trục x, y, z
Các chân CLK- và CW- của board 6560 nối GND.
Lập trình
4.2.2 Sơ đồ giải thuật chương trình
4.2.2.1 Giải thuật truyền nhận dữ liệu
Hình 4.4 Giải thuật truyền nhận dữ liệu
Truyền nhận dữ liệu giữa STM32 và ESP8266
+ STM32 thu thập dữ liệu từ cảm biến rồi chuyển đổi thành chuỗi json trước khi truyền dữ liệu cho ESP8266
+ STM32 nhận tín hiệu điều khiển các động cơ bước thực hiện các chức năng của robot từ ESP8266
Truyền nhận dữ liệu giữa ESP8266 và Server
+ ESP8266 nhận dữ liệu từ STM32 sau đó truyền lên Server, kiểu dữ liệu truyền là chuỗi json
+ ESP nhận lệnh điều khiển từ Server sau đó truyền xuống cho STM32 thực thi, kiểu dữ liệu thường
Truyền nhận dữ liệu giữa Server và web người dùng
+ Server nhận các dữ liệu từ tuyến dưới và những dữ liệu này được hiển thị trực quan trên trang web để người dùng dễ dàng truy cập, điều khiển và giám sát + Server nhận lại dữ liệu từ web do người dùng điều khiển, sau đó gửi xuống cho STM32 thực thi thông qua ESP8266, kiểu dữ liệu truyền đi cũng là kiểu json
Hình 4.5 Giải thuật tưới nước
- Khi bắt đầu tưới, cơ cấu đầu tưới nước sẽ ở vị trí home (gốc tọa độ)
- Khi bắt đầu tưới nước, đầu tưới sẽ đi tưới sẽ đi lần lượt các vị trí có trồng rau trên từng hàng để tưới, và tưới lần lượt đến hết các hàng thì xong nhiệm vụ
- Khi xong nhiệm vụ, đầu tưới sẽ quay lại vị trí home
- Đầu tưới quay trở lại vị trí home bằng cách động cơ quay theo chiều đã xác định trước cho đến khi nào cơ cấu về đến gốc và tác động vào các công tắc hành trình được lắp sẵn ở đó
Hình 4.6 Giải thuật gieo hạt
Giải thuật cho quá trình gieo hạt cũng tương tự như tưới nước Nhưng khác ở chỗ, mỗi lần lấy hạt tại khay hạt giống để sẵn, chỉ đủ gieo cho một vị trí Cơ cấu gieo hạt phải quay lại khay để lấy hạt để gieo cho vị trí tiếp theo Kết thúc quá trình gieo hạt Đầu gieo hạt cũng quay trở lại vị trí home chờ lệnh tiếp theo
4.2.3 Giao diện web điều khiển
Hình 4.7 Giao diện điều khiển chế độ bằng tay và tự động tưới nước gieo hạt
Hình 4.8 Giao diện giám sát các dữ liệu từ cảm biến
KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN
Kết quả đạt được
5.1.1 Những công việc đã thực hiện
- Nghiên cứu những lý thuyết cơ bản về IoT
- Nghiên cứu những lý thuyết cơ bản về web server
- Lập trình cho robot hoạt động tốt với các chức năng tự động gieo hạt, tưới nước, giám sát nhiệt độ, độ ẩm và ánh sáng qua thiết bị di động kết nối internet theo thời gian thực
- Thiết kế giao diện web để điều khiển hệ thống một cách trực quan và dễ sử dụng nhất
- Mô hình có tính ứng dụng rất cao, có thể dễ dàng lắp ráp và sử dụng được cho các hộ gia đình
- Cơ cấu cơ khí khi thiết kế không cần đạt độ chính xác quá cao
- Có thể điều chỉnh các thông số giúp robot hoạt động mượt mà và ổn định, đồng thời phù hợp với các loại hạt giống rau khác nhau
- Có thể điều khiển tự động hoàn toàn qua trang web, từ đó dẫn tới tiết kiệm thời gian của người sử dụng
- Cơ cấu cơ khí giúp dễ dàng phát hiện và sữa chữa hơn khi gặp sự cố
- Giao diện điều khiển đơn giản và thân thiện với người dùng
- Đặc biệt robot có rất nhiều hướng phát triển mang tính hứa hẹn và có tiềm năng phát triển to lớn trong tương lai
- Do cơ cấu truyền động lớn, khung chưa được sử dụng bởi các thiết bị tốt nhất, dẫn tới robot vẫn còn bị rung lắc và chưa đạt độ chính xác cao nhất
- Kích thước lớn làm cho robot khó di chuyển với điều kiện không gian chật hẹp
- Robot hoạt động vẫn còn gây tiếng động khá lớn gây ô nhiễm tiếng ồn
- Mô hình có phần đi dây chưa được chuyên nghiệp và gọn gàng nhất
- Các linh kiện của robot chưa được thiết kế cho điều kiện thời thiết khắc nghiệt hơn như mưa to, nắng, bão.
Hướng phát triển
Dựa trên việc nghiên cứu thành công của đề tài: “Robot trồng rau cho hộ gia đình, tự động gieo hạt, tưới nước, giám sát nhiệt độ, độ ẩm và ánh sáng qua thiết bị di động kết nối internet theo thời gian thực”, thì nhóm em đưa ra đề xuất phát triển của đề tài :
- Tách rời cơ cấu gieo hạt, tưới nước, và đo độ ẩm đất Sử dụng cơ cấu nam châm để hút các đầu cơ cấu cần thiết cho các chức năng riêng
- Cải thiện hệ thống cơ khí để robot hoạt động ít gây tiếng ồn hơn và chính xác hơn
- Bổ sung nhiều chức năng điều khiển hơn trên web người dùng như: tùy chọn loại hạt giống gieo, tùy chọn khoảng cách gieo
- Diệt cỏ tự động theo thời gian thực, áp dụng xử lý ảnh và trí tuệ nhân tạo