Professional Documents
Culture Documents
Tên đề tài:
THIẾT KẾ VÀ CHẾ TẠO HỆ THỐNG CHO GÀ ĂN TỰ ĐỘNG CÓ
CHỨC NĂNG HẸN GIỜ, ĐIỀU KHIỂN QUA WIFI
HÀ NỘI 3/2024
1
BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC KINH TẾ - KỸ THUẬT KHOA ĐIỆN TỬ
CÔNG NGHIỆP
Tên đề tài:
THIẾT KẾ VÀ CHẾ TẠO HỆ THỐNG CHO GÀ ĂN TỰ ĐỘNG CÓ
CHỨC NĂNG HẸN GIỜ, ĐIỀU KHIỂN QUA WIFI
HÀ NỘI 3/2024
2
DANH SÁCH NHỮNG NGƯỜI THỰC HIỆN
3
4
MỤC LỤC
5
MỤC LỤC HINH ẢNH
Hình 3.1 Ảnh Arduino áp dụng trong mô hình ngôi nhà thông minh.................5
Hình 3.2 Ảnh giao diện làm việc........................................................................6
Hình 3.3 Ảnh một số phím chức năng................................................................7
Hình 3.4 Ảnh cổng..............................................................................................7
Hình 3.6 Ảnh thiết kế điều khiển Blynk của mô hình.......................................17
Hình 4.1 Ảnh mô hình (1).................................................................................18
Hình 4.2 Ảnh mô hình (2).................................................................................18
6
CHƯƠNG 3: THIẾT KẾ CHƯƠNG TRÌNH VÀ GIAO DIỆN ĐIỀU KHIỂN
3.1: Thiết kế chương trình điều khiển bằng Arduino.
3.1.1: Arduino là gì?
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ử tương tác với nhau hoặc với môi trường được thuận lợi hơn.
Arduino giống như một máy tính nhỏ để người dùng có thể lập trình và thực
hiện các dự án điện tử mà không cần phải có các công cụ chuyên biệt để phục
vụ việc nạp code. Arduino tương tác với thế giới thông qua các cảm biến điện
tử, đèn, và động cơ.
- Arduino gồm:
+ Phần cứng gồm một board mạch mã nguồn mở (thường gọi là vi điều
khiển): có thể lập trình được.
+ 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.
3.1.2: Ứng dụng của Arduino trong đời sống.
+ Làm Robot. Arduino có khả năng đọc các thiết bị cảm biến, điều khiển
động cơ,… nên nó thường được dùng để làm bộ xử lý trung tâm của rất nhiều
loại robot.
Hình 3.1 Ảnh Arduino áp dụng trong mô hình ngôi nhà thông minh.
+ Game tương tác: Arduino có thể được sử dụng để tương tác với Joystick,
màn hình,… khi chơi các game như Tetrix, phá gach, Mario…
7
+ Máy bay không người lái.
+ Điều khiển đèn tín hiệu giao thông, làm hiệu ứng đèn Led nhấp nháy trên
các biển quảng cáo…
+Điều khiển các thiết bị cảm biến ánh sáng, âm thanh.
+Làm máy in 3D.
+ Làm đàn bằng ánh sáng.
+ Làm lò nướng bánh biết tweet để báo cho bạn khi bánh chín.
+ Arduino còn rất nhiều ứng dụng hữu ích khác tùy vào sự sáng tạo của người
dùng.
3.1.3: Phần mềm Arduino IDE là gì?
Arduino IDE là gì? Arduino IDE được viết tắt (Arduino Integrated
Development Environment) là một trình soạn thảo văn bản, giúp bạn viết code
để nạp vào bo mạch Arduino.
8
3.1.5: Làm quen với giao diện Arduino IDE.
9
3.1.7: Serial Monitor.
Serial Monitor là thành phần của Arduino IDE, giúp bo mạch và máy tính có
thể gửi và nhận dữ liệu với nhay qua giao tiếp USB.
Để mở màn hình Serial Monitor, chúng ta chọn Tool > Serial Monitor
3.2: Chương trình điều khiển:
/*
Download latest Blynk library here:
https://github.com/blynkkk/blynk-library/releases/latest
**************************************************************
You must be add the library Servo.h first, this library control the Servo
Servo pin at D7 and D8
******************************************************************
***************
************************************************************
10
*/
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <Servo.h>
BlynkTimer timer;
WidgetLED LedConnect(V0);
WidgetLED Cho_ca_an(V1);
WidgetLED Cho_ga_an(V2);
11
WidgetLED Den_suoi(V3);
WidgetLED Bom_nuoc(V4);
WidgetLED LedAction(V5);
void blinkLedWidget()
{
Blynk.virtualWrite(V10, a);
Blynk.virtualWrite(V11, b);
Blynk.virtualWrite(V12, c);
Blynk.virtualWrite(V13, d);
if (LedConnect.getValue()) {
LedConnect.off();
} else {
LedConnect.on();
}
}
BLYNK_WRITE(V1)
{
int pinValue = param.asInt();
Blynk.virtualWrite(V1, pinValue);
if ( digitalRead(CB_1) == 0) {
if ( pinValue == 1) {
digitalWrite(D1, HIGH);
Servo1.write(0);
12
write_Ledaction();
}
else {
Servo1.write(45);
digitalWrite(D1, LOW);
write_Ledaction();
delay(900);
Servo1.write(0);
delay(2000);
digitalWrite(D1, HIGH);
a = 1;
delay(1000);
}
}
a = 0;
if (!digitalRead(D1)) {
Cho_ca_an.on();
} else {
Cho_ca_an.off();
}
Blynk.virtualWrite(V1, pinValue);
write_Ledaction();
13
BLYNK_WRITE(V2)
{
int pinValue = param.asInt();
Blynk.virtualWrite(V2, pinValue);
if ( digitalRead(CB_1) == 0) {
if ( pinValue == 1) {
Servo2.write(0);
write_Ledaction();
}
else {
Servo2.write(45);
write_Ledaction();
delay(1900);
Servo2.write(0);
c = 1;
delay(1000);
}
}
else {
Servo2.write(0);
write_Ledaction();
}
c = 0;
if (!c) {
Cho_ga_an.off();
14
} else {
Cho_ga_an.on();
}
write_Ledaction();
}
BLYNK_WRITE(V3)
{
int pinValue = param.asInt();
Blynk.virtualWrite(V3, pinValue);
digitalWrite(D2, pinValue);
if (!digitalRead(D1)) {
Den_suoi.on();
} else {
Den_suoi.off();
}
write_Ledaction();
}
BLYNK_WRITE(V4)
{
if (d) {
Bom_nuoc.on();
}
else {
Bom_nuoc.off();
15
}
}
void write_Ledaction()
{
for (int i = 0; i < 5; i++) {
LedAction.on();
delay(50);
LedAction.off();
delay(50);
}
}
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass, "blynk.iot-cm.com", 8080);
timer.setInterval(1000L, blinkLedWidget);
pinMode(D0, OUTPUT);
pinMode(D1, OUTPUT);
pinMode(D2, OUTPUT);
pinMode(D3, OUTPUT);
pinMode(D5, INPUT);
pinMode(A0, INPUT);
pinMode(D7, OUTPUT);
pinMode(D8, OUTPUT);
16
digitalWrite(D0, HIGH);
digitalWrite(D1, HIGH);
digitalWrite(D2, HIGH);
digitalWrite(D3, HIGH);
Servo1.attach(Servo_pin1);
Servo2.attach(Servo_pin2);
delay(100);
Servo1.write(0);
Servo2.write(0);
}
void loop()
{
Blynk.run();
timer.run();
int data = digitalRead(CB_1);
b = data;
int muc_nuoc = analogRead(CB_2);
/* this command gets value about ( 0-1023) with volt-in about (0-3V3)
the water sensor gets value is volt-out about (0-1.88V)
we must be convert the value of water sensor to (0-X)
data = 1024*1.88/3.3;
17
*/
Serial.println(muc_nuoc);
}
3.3:Thiết kế giao diện điều khiển qua Blynk.
3.3.1. Blynk là gì?
Blynk được thiết kế cho Internet of Things. Nó có thể:điều khiển các thiết bị
phần cứng từ xa, hiển thị dữ liệu cảm biến, lưu trữ dữ liệu và nhiều điều thú vị
khác.
3.3.2. Cách Blynk hoạt đông:
- Có ba thành phần chính trong nền tảng:
+ Blynk App - cho phép tạo giao diện cho sản phẩm của bạn bằng cách kéo
thả các widget khác nhau mà nhà cung cấp đã thiết kế sẵn.
+ Blynk Server - chịu trách nhiệm xử lý dữ liệu trung tâm giữa điện thoại,
máy tính bảng và phần cứng. Bạn có thể sử dụng Blynk Cloud của Blynk
cung cấp hoặc tự tạo máy chủ Blynk riêng của bạn. Vì đây là mã nguồn mở,
nên có thể dễ dàng intergrate vào các thiết bị và thậm chí có thể sử dụng
Raspberry Pi làm server.
+ Library Blynk – support cho hầu hết tất cả các nền tảng phần cứng phổ biến
- cho phép giao tiếp với máy chủ và xử lý tất cả các lệnh đến và đi.
Mỗi khi bạn nhấn một nút trong ứng dụng Blynk, yêu cầu sẽ chuyển đến
server của Blynk, server sẽ kết nối đến phần cứng thông qua library . Tương
tự thiết bị phần cứng sẽ truyền dữ liệu ngược lại đến server.
18
3.3.3.Tính năng, đặc điểm.
+ Cung cấp API & giao diện người dùng tương tự cho tất cả các thiết bị và
phần cứng được hỗ trợ.
+ Kết nối với server bằng cách sử dụng: Wifi, Bluetooth và BLE. Ethernet,
USB (Serial), GSM.
+ Các tiện ích trên giao diện được nhà cung cấp dễ sử dụng.
+ Thao tác kéo thả trực tiếp giao diện mà không cần viết mã.
+Dễ dàng tích hợp và thêm chức năng mới bằng cách sử dụng các cổng kết
nối ảo được tích hợp trên blynk app.
+Theo dõi lịch sử dữ liệu.
+Thông tin liên lạc từ thiết bị đến thiết bị bằng Widget.
+Gửi email, tweet, thông báo realtime, v.v.
+Được cập nhật các tính năng liên tục!
19
CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
4.1: Kết Luận
Với những phần trên đã đáp ứng đày đủ về các yêu cầu của đồ án. Đồ án
“máy cho chím, ca, gà ăn tự động sử dụng công nghệ không quá cao, các vật liệu
phổ biến có thể áp dụng mở rộng mô hình vào thực tế. Qua đồ án trên chúng em
học được rất nhiều kỹ năng như lập trình trên Adruno, thiết kế mạch trên Proteus,
làm mạch đồng đục lỗ, hàn, chọn mua linh kiện, xây dựng mô hình, tìm kiếm tài
liệu.
4.2: Một số ảnh mô hình.
20
4.3:Ưu, nhược và tổng kết ra khi thực hiện mô hình.
4.3.1. Ưu điểm:
- Toàn bộ mô hình đều làm bằng chất liệu rẻ và dễ kiếm.
- Linh kiện sử dụng là linh kiện cơ bản có chi phí thấp nhưng đáp ứng đủ
công nghệ đề bài yêu cầu.
4.3.2. Nhược điểm và những khó khăn.
- Thiết kế cơ khí còn sơ sài.
- Thẩm mỹ sản phẩm không quá ổn.
- Lập trình Blink với esp 8266 vẫn còn mới với chúng em.
- Hệ thống tự động thả thức ăn vẫn sơ sài.
4.4: Hướng phát triển đề tài.
Nhằm hướng tới đề tài trở nên hoàn thiện hơn chúng em nhắm tới nhiều hướng
phát triển thêm cho mô hình như thay đổi cơ cấu truyền tải giúp tối ưu tốt hơn, hệ
thống đèn dc tích hợp thêm cảm biến nhiệt dộ, hệ thống nước có thêm cảm biến
báo cạn trong bể.
21