Biết được những khó khăn trên, tôi đã tìmkiếm các giải pháp có trên thị trường và máng ăn tự động/bán tự động ứng dụngcông nghệ IoT và GSM để điều khiển chính là một giải pháp rất thiết
Trang 1THIẾT KẾ HỆ THỐNG MÁNG ĂN
TRONG CHĂN NUÔI
Trang 2ADC Analog Digital Converter
App Application
EEPROM Erasable Programmable Read Only MemoryGND Ground
GSM Global System for Mobile
I2C Inter Intergrated Circuit
IoT Internet of Things
PWM Pulse Width Modulation
RAM Random Access Memory
SCL Serial Clock
SDA Serial Data
SIM Subscriber Identity Module
UART Universal Asynchronous Serial
USART Universal Synchronous and Asynchronous SerialVcc Voltage Colector to Colector
Wifi Wireless Fidelity
WPA Wifi Protected Access
Trang 3CHƯƠNG 1 MỞ ĐẦU
1.1 Tên đề tài
Đề tài thiết kế hệ thống máng ăn trong chăn nuôi được tiến hành nghiên cứu
ứng dụng công nghệ IoT và công nghệ GSM trong lĩnh vực điện tử đối với chănnuôi Việc tự động hóa quy trình cho lợn ăn sẽ giúp tăng năng suất, giảm sức laođộng của người chăn nuôi từ đó đem lại hiệu quả kinh tế so với những mô hình bán
tự động hay thủ công có sẵn trên thị trường
1.2 Hiện trạng và lí do chọn đề tài
- Hiện nay chăn nuôi lợn sử dụng thức ăn dạng viên với rất nhiều hãng sảnxuất trên thị trường Mỗi hãng lại sản xuất nhiều loại thức ăn khác nhau phùhợp với từng giai đoạn sinh trưởng của lợn, mỗi loại thức ăn lại có một lộtrình dinh dưỡng riêng biệt Lộ trình dinh dưỡng là vào từng giai đoạn sinhtrưởng của lợn sẽ dùng một loại thức ăn tương ứng với quy định về thờiđiểm, khối lượng số bữa cho ăn trong ngày
- Quá trình chăn nuôi ở các hộ gia đình gặp nhiều bất cập do khó có thể tuânthủ đúng và thường bỏ qua lộ trình dinh dưỡng mà nhà sản xuất thức ăn cungcấp, hướng dẫn và yêu cầu Thiếu dưỡng chất ở từng giai đoạn sẽ làm khungxương phát triển chậm, ít thịt, hệ cơ yếu, ngắn đòn… Còn nếu ăn quá mứcquy định sẽ gây lãng phí thức ăn và tăng chi phí chăn nuôi, cùng với dưprotein sẽ bị đào thải dưới dạng urê gây hại cho môi trường, tích lũy mỡsớm, lợn to nhưng nhẹ cân, lợn dễ bị viêm khớp và bán với giá thấp Hoặc dưmột số chất dinh dưỡng sẽ ảnh hưởng và gây các bệnh về đường tiêu hóa làmtốn kém thêm chi phí chữa bệnh, chậm xuất chuồng
1.3 Ý nghĩa thực tiễn của đề tài
Việc sử dụng thức ăn dạng viên rất tiện lợi và mang nhiều lợi ích nhưng vô tìnhgây thêm khó khăn cho những người chăn nuôi ở phương thức cho lợn ăn Còn đối
Trang 4với những trang trại chăn nuôi mức độ trung và lớn thì việc cho lợn ăn đúng theoquy trình rất tốn thời gian và nhân lực Biết được những khó khăn trên, tôi đã tìmkiếm các giải pháp có trên thị trường và máng ăn tự động/bán tự động ứng dụngcông nghệ IoT và GSM để điều khiển chính là một giải pháp rất thiết thực.
1.4 Ưu nhược điểm của các thiết bị cho ăn có trên thị trường
- Ưu điểm của các thiết bị cho ăn có trên thị trường:
Giúp giải phóng phần nào đó sức lao động của người chăn nuôi Ngườichăn nuôi chỉ việc đổ bột vào bồn chứa, khi nào hết thì lại thêm vào
Thức ăn luôn có sẵn trong máng và được cung cấp liên tục, chống việclợn bị đói
Dễ dàng sử dụng với người chăn nuôi
- Những điều trên vừa là ưu điểm, lại vừa là nhược điểm của các thiết bị đã có:
Những thiết bị này không kiểm soát được khối lượng thức ăn mà lợn ănvào mỗi ngày Lợn có thể ăn tùy ý vào mọi lúc vì lượng thức ăn có sẳntrong máng
Những thiết bị đã có cũng không kiểm soát được số bữa ăn và thời điểmcho ăn, do vậy đã không tuân theo lộ trình dinh dưỡng của nhà sản xuất
Lúc lợn đã ăn no, thức ăn vẫn còn trong máng, điều này làm thức ăn tiếpxúc với môi trường, gây biến chất thức ăn, rất có hại
Nếu người chăn nuôi cho ăn theo cách đổ thức ăn vừa đủ cho mỗi lần cho
ăn, điều này trở thành cho ăn thủ công, máng ăn không còn mang tính tựđộng nữa Với các trang trại tầm trung và lớn thì rất tốn nhân công, hơn làviệc con người thường xuyên ra vào trang trại cũng có nguy cơ lây truyềndịch bệnh
1.5 Hướng giải quyết
- Từ những bất cập còn tồn đọng của các thiết bị đã có, hai điều cần giải quyết:
Định lượng thức ăn, có nghĩa là người chăn nuôi sẽ xác định khối lượng
Trang 5 Định thời cho ăn, có nghĩa là người chăn nuôi xác định thời điểm lợn ăn
và số bữa ăn lợn ăn trong ngày
- Từ đó tìm kiếm các giải pháp cần thiết để thực hiện hai ý tưởng trên và hìnhthành nên thiết bị máng ăn hoàn toàn tự động theo công nghệ mới Bên cạnh
đó, còn xây dựng thêm khả năng giao tiếp với người dùng cho thiết bị thôngqua App
1.6 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu được hướng đến trong đề tài là công nghệ IoT và côngnghệ GSM Ứng dụng công nghệ IoT và GSM trong nông nghiệp rất phù hợp với xuhướng hiện nay của thị trường Trong bối cảnh Việt Nam đang chuyển đổi sang kinh
tế số và hội nhập với cuộc cách mạng công nghiệp 4.0 thì ứng dụng các công nghệ
là rất quan trọng, đặc biệt trong lĩnh vực thế mạnh của Việt Nam là chăn nuôi
CHƯƠNG 2 TỔNG QUAN VỀ CÔNG NGHỆ IOT và GSM
1.7 Công nghệ IoT
1.1.1 IoT là gì?
Hình 2-1: Công nghệ IoT trong đời sống [3]
Trang 6IoT (Internet of Things) mạng lưới mọi thứ kết nối Internet là một liên kết mạng,trong đó các thiết bị kết nối, phòng ốc và các trang thiết bị khác được nhúng với các
bộ phận điện tử, phần mềm, cảm biến, cơ cấu chấp hành cùng với khả năng kết nốimạng máy tính (Internet) giúp cho các thiết bị này có thể thu thập dữ liệu về vàtruyền tải dữ liệu lên Ví dụ như ứng dụng công nghệ IoT để bật tắt các thiết bị nhưđèn, quạt… trong nhà, hay người dùng có một trang trại chăn nuôi ứng dụng côngnghệ IoT thì người này cũng có thể điều khiển cho vật nuôi ăn ở một nơi khác (nơi
có thể truy cập Internet) thông qua thiết bị thông minh mà không cần ở ngay trangtrại
- Thay đổi linh hoạt: trạng thái của các thiết bị tự động thay đổi, kết nối hoặc
bị ngắt, vị trí thiết bị thay đổi và tốc độ thay đổi… Số lượng thiết bị cũng cóthể tự động thay đổi
- Quy mô lớn: một số lượng lớn các thiết bị được quản lý chung và giao tiếpvới nhau Số lượng này có thể lớn hơn so với số lượng máy tính kết nốiInternet hiện nay Số lượng các thông tin được truyền bởi thiết bị sẽ lớn hơn
so với số lượng thông tin được truyền bởi con người
- Mua sắm thông minh
- Quản lí điều khiển vườn thông minh
Trang 7Trong đề tài này, công nghệ IoT được ứng dụng để cài đặt, điều khiển và quansát từ xa hệ thống máng ăn cho lợn thông qua một giao diện App Từ đó, đem lạinhiều lợi ích cho người chăn nuôi.
1.8 Công nghệ truyền dữ liệu qua GSM
- Hệ thống thông tin di động toàn cầu (GSM) là một công nghệ dùngcho mạng thông tin di động Các mạng thông tin di động GSM cho phép cóthể kết nối với nhau do đó những máy điện thoại di động GSM của các mạngGSM khác nhau có thể sử dụng được nhiều nơi trên thế giới
- GSM là chuẩn phổ biến nhất cho điện thoại di động trên thế giới Khả năngphủ sóng rộng khắp nơi của chuẩn GSM làm cho nó trở nên phổ biến trên thếgiới, cho phép người sử dụng có thể sử dụng điện thoại di động của họ ởnhiều vùng trên thế giới GSM khác với các chuẩn tiền thân của nó về cả tínhiệu và tốc độ, chất lượng cuộc gọi Nó được xem như là một hệ thốngĐTDĐ thế hệ thứ hai (2G) Lợi thế chính của GSM là chất lượng cuộc gọi tốthơn, giá thành thấp và dịch vụ tin nhắn Thuận lợi đối với nhà điều hànhmạng là khả năng triển khai thiết bị từ nhiều người cung ứng GSM cho phépnhà điều hành mạng có thể sẵn sàng dịch vụ ở khắp nơi, vì thế người sử dụng
có thể sử dụng điện thoại của họ ở khắp nơi trên thế giới
- Trong đề tài này, công GSM được ứng dụng để cài đặt, điều khiển hệ thốngmáng từ xa bằng cách gửi tin nhắn SMS đến một thiết bị Module Sim đãđược gắn thẻ Sim theo cú pháp tin nhắn đã được định trước
CHƯƠNG 3 CÁC LINH KIỆN VÀ PHẦN MỀM LIÊN QUAN1.9 Các linh kiện
Trang 81.1.4 Vi điều khiển Arduino Mega 2560
Hình 3-2: Vi điều khiển Arduino Mega 2560
Arduino Mega 2560 là một vi điều khiển hoạt động dựa trên chip ATmega2560.Bao gồm:
- 54 chân digital (trong đó có 15 chân có thể được sử dụng như những chânPWM là từ chân số 2 → 13 và chân 44 45 46)
- 6 ngắt ngoài: chân 2 (interrupt 0), chân 3 (interrupt 1), chân 18 (interrupt 5), chân 19 (interrupt 4), chân 20 (interrupt 3), and chân 21 (interrupt 2)
- 4 cổng Serial giao tiếp với phần cứng
- 16 chân vào analog (từ A0 đến A15)
- 1 thạch anh với tần số dao động 16MHz
- 1 cổng kết nối USB
- 1 jack cắm điện
- 1 nút reset
Trang 91.1.5 Module thu phát Wifi ESP8266 V12
- Module ESP8266 V12 dùng để thu phát, kết nối Wifi cho hệ thống, là mộtchíp được tích hợp cao, có thể nạp code và dùng như vi điều khiển Moduleđược thiết kế nhỏ gọn, đẹp mắt cộng với giá thành rẻ Module ESP8266 thíchhợp cho các ứng dụng liên quan đến truyền qua Internet và Wifi cũng nhưcác ứng dụng truyền nhận sử dụng thay thế cho các Module RF khác Đặcbiệt ứng dụng trong IoT (Internet of Things)
Giao tiếp: UART, SDIO 2.0, SPI
Chân GPIO: 16 chân
Hổ trợ bảo mật: WPA/WPA2
Tốc độ Baud mặc định: 9600 hoặc 115200
Các chế độ: Station, Access Point, Both Station and Access Point
Trang 10- Sơ đồ chân: gồm 3 chân 3.3V, 3 chân GND, 16 chân GPIO và các chân giaotiếp khác.
Hình 3-4: Sơ đồ chân ESP8266 V12 [4]
Hình 3-5: Tập lệnh AT của ESP8266 [5]
Trang 11 Hỗ trợ 4 băng tần phổ biến ở Việt Nam, dùng cho các mạng.
Khe cắm Sim: chuẩn Micro Sim
- Chức năng các chân:
Chân NET: lắp anten, có thể dùng anten đi kèm hoặc anten mở rộng
Chân VCC-GND: cấp nguồn dương-âm
RST: chân reset, sử dụng khi cần khởi động lại Module Sim
RXD – TXD: giao tiếp chuẩn Serial đặc trưng của Module Sim
RING: đổ chuông khi có cuộc gọi đến
Trang 12 DTR: Chân UART DTR.
SPKP, SPKN: ngõ ra âm thanh, nối với loa để phát âm thanh
MICP, MICN: ngõ vào âm thanh, gắn thêm Micro để thu âm thanh.1.1.7 Vi điều khiển Arduino Uno R3
Hình 3-7: Vi điều khiển Arduino Uno R3
- Arduino Uno R3 là một vi điều khiển hoạt động dựa trên chip Atmega328.Bao gồm:
14 chân digital (trong đó có 6 chân có thể được sử dụng như những chânPWM)
1 cổng Serial giao tiếp với phần cứng
6 chân vào analog (từ A0 đến A5)
1 thạch anh với tần số dao động 16MHz
1 cổng kết nối USB
1 jack cắm điện
Trang 13 1 nút reset.
- Các thông số của Arduino Uno R3:
Điện áp hoạt động: 5VDC
Điện áp khuyên dùng: 7-12VDC
Dòng tiêu thụ: khoảng 30mA
Bộ nhớ flash: 32KB (ATmega328) với 0.5KB dùng bởi bootloader
Trang 14 Tốc độ quay:
0.17sec / 60degrees (4.8V không tải)
0.13sec / 60degrees (6.0V không tải)
1.1.9 Module HX711 và cảm biến khối lượng
Module HX711:
Hình 3-9: Module HX711
- Module HX711 dùng để chuyển đổi tương tự sang số, đọc giá trị của cảmbiến khối lượng với độ phân giải 24 bit và chuyển sang giao tiếp 2 dây (SCK,DT) và gửi về vi điều khiển
- Sơ đồ chân:
GND: chân nối GND
VCC: chân cấp nguồn 5V
DT: chân dữ liệu
SCK: chân xung Clock để gửi dữ liệu về vi điều khiển dạng nối tiếp
Các chân E+, E-, A-, A+, B-, B+: các chân nối với cảm biến cân năng
- Thông số kỹ thuật:
Điệp áp cấp: 2.8V - 5.2V
Dòng điện tiêu thụ: < 1.5mA
Độ phân giải điện áp: 40mV
Độ phân giải: 24 bit ADC
Trang 15Cảm biến khối lượng:
Hình 3-10: Cảm biến khối lượng
- Cấu tạo: gồm các điện trở strain gauges nối thành 1 cầu Wheatstone và đượcdán vào bề mặt của thân cảm biến
Hình 3-11: Cấu tạo cảm biến khối lượng [6]
- Điện áp đầu vào được cấp vào cảm biến (góc 1 và góc 4), điện áp đầu rađược đo ở 2 góc còn lại (góc 2 và góc 3)
- Ở trạng thái cân bằng (cảm biến không có lực tác dụng) tín hiệu điện áp đầu
ra là không
- Khi có lực tác động lên cảm biến này làm cho thân cảm biến bị biến dạng (bị
co nén), dẫn tới sự thay đổi chiều dài và tiết diện của các sợi kim loại của
Trang 16điện trở strain gauges gắn trên thân cảm biến dẫn đến một sự thay đổi giá trịcác điện trở, làm thay đổi điện áp đầu ra.
1.10 Giới thiệu App Blynk
Hình 3-12: Giới thiệu App Blynk [7]
- Blynk là một ứng dụng có thể chạy trên hệ điều hành Android và iOS, ngườidùng có thể tạo ra một giao diện trên App và điều khiển thiết bị theo ý thích,cho phép người dùng kiểm soát Arduino, Module ESP8266 hoặc có thể làmột thiết bị nào đó trên Internet
- Blynk thiết kế cho các ứng dụng về IoT, nó có thể điều khiển phần cứng ở rất
xa chỉ cần là nơi có thể kết nối Internet, có thể lưu trữ và gửi dữ liệu tại nơiphần cứng được lắp đặt và hiển thị lên App Blynk thông qua Blynk Server
- Để có thể sử dụng người dùng phải tạo một tài khoản, lấy các linh kiện tươngứng với phần cứng được thay thế trên App, tải các thư viện của các phầncứng liên quan, tham khảo chương trình và viết lại theo ý mình
Trang 17- Blynk có giao diện đẹp và bắt mắt, giúp người dùng dễ dàng sử dụng nếunhư chưa có đủ kiến thức về làm App trên điện thoại Ứng dụng có thể dễdàng tìm kiếm trên CH Play đối với Android.
- Một hệ thống Blynk cơ bản gồm các thành phần sau:
Blynk app: Cho phép bạn tạo giao diện để điều khiển hoặc hiển thị
giá trị từ phần cứng
Blynk server: chịu trách nhiệm hoàn toàn nhiệm vụ giao tiếp giữa
phần cứng và App Ở đồ án này ta sử dụng server do Blynk cung cấp
là cloud Blynk Nếu không sử dụng cloud Blynk thì người dùng có thể
tự tạo và sử dụng server của riêng mình và có thể chạy trên các máytính nhúng như Rasspberry Pi
Thư viện Blynk: Được hỗ trợ bởi Blynk cho phép phần cứng giao
tiếp với server qua các tập lệnh cho phép nhập và xuất dữ liệu từ phầncứng
Phần cứng: Ở đây ta sử dụng Module thu phát Wifi ESP8266 để
truyền và nhận dữ liệu thông qua Wifi đến server Vi điều khiểnATMEGA328 để xử lý xuất nhận dữ liệu ra các chân I/O
- Các tập lệnh Blynk cơ bản được sử dụng:
char auth[] = "YourAuthToken": Lệnh lấy mã xác nhận từ ứng dụngBlynk
char ssid[] = "tenWifi":Lệnh này cho phép phần cứng lấy tên Wifi tại
Blynk.virtualWrite(): Virtual Pins là các chân ảo được thiết kế để gửi
dữ liệu từ phần cứng đến Blynk App và ngược lại Virtual Pins là các
Trang 18kênh để gửi bất kỳ dữ liệu nào từ Virtual Pins được phân biệt với cácchân vật lý của phần cứng.
1.11 Ngôn ngữ và phần mềm hỗ trợ lập trình
1.1.10 Giới thiệu về phần mền Arduino IDE
Arduino IDE là một trình biên dịch được dùng cho các board Arduino hay chocác vi điều khiển ATmega328P, ATmega2560… và trình biên dịch này sử dụngngôn ngữ chính là ngôn ngữ C, trong đề tài này trình biên dịch Arduino IDE sẽđược sử dụng để viết chương trình điều khiển hệ thống máng ăn
Hình 3-13: Logo của trình biên dịch Arduino IDE
1.1.11 Khởi tạo một chương trình
Trang 19Hình 3-14: Chức năng các biểu tượng chính
- Các bước căn bản để lập trình với Arduino IDE:
Tạo file biên dịch mới
Lưu file lập trình
Lập trình code điều khiển
Biên dịch file để kiểm tra lỗi
Nạp chương trình vào vi điều khiển
- Trong phần mềm Arduino IDE có hỗ trợ các thư viện và ví dụ mở với cácchủ đề khác nhau
1.1.12 Cấu trúc một chương trình trong Arduino IDE
Tất cả chương trình được viết bằng Arduino IDE thường sẽ có 2 hàm chính đó làvoid setup() và void loop() Hàm void setup() dùng để khai báo các cài đặt ban đầucủa chương trình như khai báo chân ngõ ra, chân ngõ vào hay thiết lập tốc độ baudkhi giao tiếp nối tiếp và chỉ chạy hàm này một lần duy nhất Hàm void loop() thì
Trang 20được xem như là một chương trình chính, thực hiện các thao tác, các thứ mà ngườidùng đã lập trình và hàm này được lặp đi lặp lại liên tục.
Hình 3-15: Cấu trúc của một chương trình trong Arduino IDE
CHƯƠNG 4 SƠ ĐỒ CỦA HỆ THỐNG VÀ THIẾT KẾ MẠCH1.12 Sơ đồ của hệ thống
1.1.13 Sơ đồ khối
Trang 21Hình 4-16: Sơ đồ khối của hệ thống Chức năng của từng khối:
- Cảm biến loadcell: thu thập dữ liệu cân nặng trong máng ăn và truyền choArduino Mega để tiến hành xử lí
- Arduino Mega: là vi điều khiển trung tâm, có chức năng nhận dữ liệu từ cảmbiến gửi lên App và trên App gửi xuống, nhận dữ liệu từ Sim và tiến hànhđiều khiển động cơ Servo
- ESP8266: có chức năng kết nối Wifi, là cầu nối để Arduino Mega và App gửi
dữ liệu với nhau
- App: người chăn nuôi thao tác trên điện thoại thông minh, giúp quan sát, càiđặt và điều khiển hệ thống máng ăn dễ dàng và tiện lợi
- Module Sim: có chức năng nhận tin nhắn từ người dùng gửi đến theo cúpháp và chuyển đến Arduino Uno xử lí chuỗi tin nhắn đó
- Arduino Uno: có chức năng nhận chuỗi tin nhắn từ Module Sim, sau đó tách
chuỗi và truyền dữ liệu đến Arduino Mega xử lí đóng, mở máng