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.. + Máy bay không người lái.+ Điều khiển đè
Trang 1BỘ CÔNG THƯƠNG
KHOA ĐIỆN TỬ
TRƯỜNG ĐẠI HỌC KINH TẾ - KỸ THUẬT
CÔNG NGHIỆP
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC SINH VIÊN
NĂM HỌC 2023-2024
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
Giảng viên hướng dẫn: Bùi Thị Phượng
Chủ nhiệm đề tài:
Thành viên:
HÀ NỘI 3/2024
Trang 2BỘ CÔNG THƯƠNG
KHOA ĐIỆN TỬ
TRƯỜNG ĐẠI HỌC KINH TẾ - KỸ THUẬT
CÔNG NGHIỆP
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC SINH VIÊN
NĂM HỌC 2023-2024
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
Giảng viên hướng dẫn: Bùi Thị Phượng
Chủ nhiệm đề tài:
Thành viên:
HÀ NỘI 3/2024
Trang 3DANH SÁCH NHỮNG NGƯỜI THỰC HIỆN
viên
1
2
3
4
DANH SÁCH GIẢNG VIÊN HƯỚNG DẪN
1 Bùi Thị Phượng Giảng viên Điện tử GV hướng dẫn
Trang 4MỤC LỤC
CHƯƠNG 3: THIẾT KẾ CHƯƠNG TRÌNH VÀ GIAO DIỆN ĐIỀU KHIỂN 5
3.1: Thiết kế chương trình điều khiển bằng Arduino 5
3.1.1: Arduino là gì? 5
3.1.2: Ứng dụng của Arduino trong đời sống 5
3.1.3: Phần mềm Arduino IDE là gì? 6
3.1.4: Shetch là gì? 6
3.1.5: Làm quen với giao diện Arduino IDE 7
3.1.6: Cổng Com 7
3.1.7:Serial Monitor 8
3.2:Chương trình điều khiển: 8
3.3:Thiết kế giao diện điều khiển qua Blynk 16
3.3.1 Blynk là gì? 16
3.3.2 Cách Blynk hoạt đông: 16
3.3.3.Tính năng, đặc điểm 17
CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 18
4.1: Kết Luận 18
4.2: Một số ảnh mô hình 18
4.3:Ưu, nhược và tổng kết ra khi thực hiện mô hình 19
4.3.1 Ưu điểm: 19
4.3.2 Nhược điểm và những khó khăn 19
4.4: Hướng phát triển đề tài 19
Trang 5MỤ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
Trang 6CHƯƠ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…
Trang 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
Hình 3.2 Ảnh giao diện làm việc.
3.1.4: Shetch là gì?
Là một chương trình viết bởi Arduino IDE được gọi là sketch, sketch được
lưu dưới định dạng ino
Trang 83.1.5: Làm quen với giao diện Arduino IDE.
Hình 3.3 Ảnh một số phím chức năng.
3.1.6: Cổng Com.
Cổng nối tiếp (Serial port) là một cổng thông dụng trong các máy tính trong các máy tính truyền thống dùng kết nối các thiết bị ngoại vi với máy tính như: bàn phím, chuột điều khiển, modem, máy quét…Cổng nối tiếp còn có tên gọi khác như: Cổng COM, communication
Hình 3.4 Ảnh cổng
Ngày nay, do tốc độ truyền dữ liệu chậm hơn so với các cổng mới ra đời nên các cổng nối tiếp đang dần bị loại bỏ trong các chuẩn máy tính hiện nay, chúng được thay thế bằng các cổng có tốc độ nhanh hơn như: USB, FireWire
Trang 93.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
******************************************************************
***************
D1 used to set relay "cho ca an"
D2 used to set relay "den suoi"
D3 used to set relay "bom"
************************************************************
App project setup : click here
https://drive.google.com/file/d/1VrmLTMXlTEyS38dML6p5XVYUf9z_zGMK/ view?usp=sharing
if you want my project in Blynk app, click to " Follow Me "
Trang 10#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <Servo.h>
char auth[] = "YhL8N3Gkm4cCXH2yZkEFtiZRYgIAF95k";
char ssid[] = "H 107";
char pass[] = "0985501115";
Servo Servo1, Servo2;
int a, b, c, d;
#define CB_1 D5 // thuc an cho ca
#define CB_2 A0 // bao can nuoc
#define Servo_pin1 D7
#define Servo_pin2 D8
BlynkTimer timer;
WidgetLED LedConnect(V0);
WidgetLED Cho_ca_an(V1);
WidgetLED Cho_ga_an(V2);
Trang 11WidgetLED 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);
Trang 12write_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();
}
Trang 13{
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();
Trang 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();
Trang 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);
Trang 16digitalWrite(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;
Trang 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
Hình 3.5 Ảnh mối quan hệ của Blynk.
Trang 183.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!
Hình 3.6 Ảnh thiết kế điều khiển Blynk của mô hình.
Trang 19CHƯƠ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.
Hình 4.1 Ảnh mô hình (1)
Hình 4.2 Ảnh mô hình (2)
Trang 204.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ể