Thi công mô hình

Một phần của tài liệu Thiết kế và thi công mô hình công viên 4 0 (Trang 63)

Mô hình được làm bằng chất liệu sắt, kiến, tấm gỗ và được trang trí bằng bột cỏ, cây xanh . Loại nguyên liệu này rất dễ mua, thể tìm thấy ở các cửa hàng bán ở các cửa hang vật liệu.

Mô hình được bao quanh là sắt và mặt dưới của mô hình là tấm gổ, chiều dài 80cm, chiều rộng 80cm, chiều cao 15cm, sau khi đã chuẩn bị các dụng cụ và thiết bị cần thiết nhóm đã hàn các thanh sắt và dán tấm gổ để tạo thành khung mô hình và tiến hành trang trí mô hình bằng bột cỏ và cây xanh.

Hình 4.12 Ghế.

Hình 4.13 Que đè lưỡi.

4.4 LẬP TRÌNH HỆ THỐNG 4.4.1 Lưu đồ giải thuật

a. Lưu đồ và giải thuật hệ thống chạy chữ Led Matrix.

Hình 4.15. Lưu đồ giải thuật hệ thống chạy chữ Led Matrix

Sau khi khởi tạo GPIO và thiết lập ngắt UART thì nhận dử liệu từ Module Bluetooth, đọc dữ liệu và lưu vào hệ thống Eeprom, sau đó hiên thị nội dung quảng cáo lên led matrix.

Hình 4.16. Lưu đồ ngắt UART và nhận dữ liệu từ Module Bluetooth

Bắt đầu nhận dữ liệu từ điện thoại và bắt đầu lưu vào eeprom khi biến isrun=1 nếu nhập quá số dung lượng yêu cầu sẻ không hiển thị và nhập lại

b. Lưu đồ hệ thống đo nhiệt độ độ ẩm dùng để tưới cây và bật đèn sưởi tự động.

Hình 4.17. Lưu đồ hệ thống đo nhiệt độ độ ẩm

Sau khi khởi tạo, LCD, DHT11, TIMER và cài đặt nhiêt độ max, nhiệt độ min, độ ẩm max, độ ẩm min thì bắt đầu đọc nhiệt độ từ DHT11 và DHT11 sẻ đọc 40 bit 8

bit đầu tiên là phần nguyên của độ ẩm, 8 bit kế tiếp là phần thập phân của độ ẩm, 8 bit kế tiếp là phần nguyên của nhiệt độ, 8 bit kế tiếp nữa là phần thập thân của nhiệt nhiệt, sau đo cộng lần lượt lại nếu như bằng 8 bit cuối cùng thì nhiệt độ và độ ẩm đo chính xác, nếu như không bằng thì phải đo lại và so sánh nhiệt độ và độ ẩm đo với nhiệt độ max, nhiệt độ min, độ ẩm max và độ ẩm min để điều khiển động cơ.

c. Lưu đồ hệ thống quẹt thẻ RFID.

Hình 4.18. Lưu đồ hệ thống quẹt thẻ RFID

Chương trình chính đầu tiên sẽ cho hiển thị thông tin trạng thái đã lập trình sẵn ra màn hình LCD. Sau đó sẽ xử lý nhận tín hiệu từ Modul RFID. Khi có tín hiệu truyền về PIC 16F887 thì sẽ gửi tín hiệu đến mạch L298 và sẽ điều khiển động cơ quay 1 góc 90 độ. Sử dụng thêm BUZZER và LED để báo động khi quét thẻ sai quá 3 lần.

Lưu đồ chương trình con mở cửa Lưu đồ chương trình con đóng cửa Hình 4.19. Lưu đồ đóng cửu và mở cửa hệ thống quẹt thẻ RFID

Chương trình con quay động cơ thuận nghịch. Khi có tín hiệu thì động cơ sẽ quay 1 góc 90 độ. Với bước 1 là 7.5 độ nên ta cho chạy 12 bước để có thể quay 1 góc 90 độ.

Hình 4.20. Lưu đồ chương trình con Buzzer và đèn báo động

Chương trình con điều khiển BUZZER ta sẽ cho một biến DEM khi quét thẻ sai 3 lần thì BUZZER sẽ hú và sáng đèn để báo động cho người dùng biết thẻ sai.

d. Lưu đồ của hệ thống điều khiển thiết bị qua Wifi bằng ESP8266.

Hình 4.22. Lưu đồ chương trính con bật tắt thiết bị

Sau khi khởi tạo và kết nối wifi sever thì sau đó sẽ nhận dữ liệu từ websever và cho điều khiển thiết bị bật tắt theo như ý muốn bằng cách gán tương ứng tương ứng với từng thiết bị mức cao hoặc mức thấp.

4.4.2 Phần mềm lập trình cho vi điều khiển. a. Giới thiệu phần mềm lập trình.

 Giới thiệu về cách tạo Project để tiền hành lập trình trên phần mềm CCS. Chúng ta sẽ theo các bước sau để mở một giao diện làm viêc của CCS

 Bước 1: Tạo một Project mới bằng cách chọn File ở giao diện CCS  New

Hình 4.23 Tạo Project trên phần mềm CCS

Hình 4.24 Lưu Project phần mềm CCS

 Bước 2: Chọn thiết bị cho Project bằng cách nhấn  device PIC16F887 và chọn thạch anh 20M Create project

Hình 4.25 Chọn thiết bị và thạch anh tương ứng.

 Bước 3: Mở vùng viết chương trình bằng cách chọn mục FileOpen

Project

 Giới thiệu về cách tạo Project để tiền hành lập trình trên phần mềm Arduino.

 Bước 1: Mở phần mềm Arduino, chọn File New để đi đến vùng làm việc chính của phần mềm.

Hình 4.27 Giao diện chính của phần mềm Arduino.

 Bước 2: Mở vùng viết chương trình bằng cách chọn mục OpenProject .

 Giao diện MIT App Inventor và cách tạo giao diện và lập trình. Bước 1: mở trình trang chủ của MIT App Inventor:

Bước 2: tiến hành tạo project , Project Start new project  nhập tên project và lưu.

Hình 4.29 Tạo project trên MIT App Inventor.

Bước 3: chọn project mới tạo trang chủ sẻ tự động chuyển sang trình duyệt tạo giao diện và viết code để kết nối

Hình 4.31 Code được thiết kế để kết nối từ App trên điện thoại với trung tâm điều khiển

b. Viết chương trình hệ thống.

 Chương trình chính của hệ thống chạy chữ Led Matrix void main() { int8 i,j; enable_interrupts(int_rda); enable_interrupts(GLOBAL); //=========================================== set_TRIS_A(0); // Thiet lap chan vao ra

set_TRIS_b(0); delay_ms(10);

//=========================================== tudau:

isrun = 0;

max_char = read_eeprom(0xff); if(max_char>37) { max_char = 31; luudata(); } //31 ki tu.+10...? // 31 - 12

time = read_eeprom(300); if(time>72) time = 40;

//=======BEGIN DISPLAY FUNCTION==============

//Doan chuong trinh nay se hien thi noi dung ban tin luu trong EEPROM while(true)

{

for (i=0;i<=32;i++) // Clear RAM of buff_disp buff_disp[i]=0xff;

for (i=0;i<=max_char;i++) // Begin of text {

j=read_eeprom(i)-32; //read_eeprom(i)-32; //Lay gia tri ASCII cua ky tu if (j<=51) copy_2_ram1(j); else { j=j-51; copy_2_ram2(j); }

if(isrun==1) goto tudau; }

} }

//========= END MAIN ==============

 Chương trình chính của hệ thống đo nhiệt độ độ ẩm tưới cây và bật đèn sưởi tự động int main() { unsigned int8 str[20]; setup_timer_1(t1_internal|t1_div_by_4); set_timer1(15536); enable_interrupts(int_timer1); enable_interrupts(GLOBAL); lcd_init(); lcd_gotoxy(1,1); lcd_putc(" DATN-2019"); while(true) {

if(DHT_GetTemHumi(dh_nhiet_do,dh_nhiet_do2,dh_do_am,dh_do_am2)) { sprintf(str,"DO AM:%u,%u",dh_do_am,dh_do_am2); lcd_gotoxy(1,1); printf(lcd_putc,"%s",str); lcd_putc('%'); sprintf(str,"NHIET DO:%u,%u",dh_nhiet_do,dh_nhiet_do2); lcd_gotoxy(1,2); printf(lcd_putc,"%s",str); lcd_putc(223);

if(dh_nhiet_do>=NhietDoMax || dh_do_am<=DoAmMin)/// bat may suoi am && dh_do_am>=DoAmMax

{ output_bit(bom_2,1); output_bit(bom_1,1); } else { output_bit(bom_2,0); output_bit(bom_1,0); }

if( dh_nhiet_do<=NhietDoMin || dh_do_am>=DoAmMax )/// bat may suoi am && dh_do_am<=DoAmMin

{ output_bit(den_1,1); output_bit(den_2,1); } else { output_bit(den_1,0); output_bit(den_2,0);

} } delay_ms(1000); } return 1; } //========= END MAIN ==============

 Chương trình chính của hệ thống quẹt thẻ RFID VOID MAIN() { SET_TRIS_E(0X00); SET_TRIS_B(0X00); SET_TRIS_D(0X00); SET_TRIS_C(0X20); OUTPUT_C(0X00); OUTPUT_LOW(BZ); LCD_INIT(); MFRC522_Init(); LCD_GOTOXY(0,1); LCD_PUTC(" WELCOME "); LCD_GOTOXY(1,2);

LCD_PUTC(" CONG VIEN SPKT "); DELAY_MS(2000);

THE=0;

WHILE(TRUE) {

IF (MFRC522_isCard (&TagType)) //Check any card {

printf (LCD_PUTC,"\fXin moi quet the"); //Read ID IF (MFRC522_ReadCardSerial (&UID)) {

//size = MFRC522_SelectTag (&UID);

QUET_THE(RFID,UID); //XAC THUC VOI UID DELAY_MS(500); if( THE == 1) { DEM=0; OUTPUT_LOW(BZ); IF( ST == 0) { lcd_gotoxy(0, 1);

printf(LCD_PUTC, "CUA DA DUOC DONG"); DELAY_MS(2000);

lcd_gotoxy(0, 1);

printf(LCD_PUTC, " WELCOME "); lcd_gotoxy(1,2);

printf (LCD_PUTC, " CONG VIEN SPKT"); APP(); DELAY_MS(1000); } IF(ST == 1) { REV(); lcd_gotoxy(0, 1);

printf (LCD_PUTC, " **XIN MOI VAO** "); lcd_gotoxy(1,2);

printf (LCD_PUTC, " CONG VIEN SPKT"); DELAY_MS(1000); } ST=ST+1; IF( ST==2) { ST=0;

} } ELSE { DEM++; lcd_gotoxy(0, 1);

printf (LCD_PUTC, " ** SAI THE ** "); DELAY_MS(100); IF(DEM==4) {DEM=3;} { IF(DEM == 3) { OUTPUT_HIGH(BZ); DELAY_MS(10); } lcd_gotoxy(0, 1);

printf (LCD_PUTC, "The khong hop le %c", dem); lcd_gotoxy(1,2);

printf (LCD_PUTC, "UID:"); FOR(I=0;I<5;I++) { printf(lcd_putc,"%x",UID[I]); } } } MFRC522_Halt () ; } } } } //========= END MAIN ==============

 Chương trình của hệ thống điều khiển thiết bị qua wifi void setup(void) { pinMode(role1,OUTPUT); pinMode(role2,OUTPUT); pinMode(role3,OUTPUT); pinMode(role5,OUTPUT); pinMode(role4,OUTPUT); pinMode(role6,OUTPUT); digitalWrite(role1,LOW); digitalWrite(role2,LOW); digitalWrite(role3,LOW); digitalWrite(role4,LOW); digitalWrite(role5,LOW); digitalWrite(role6,LOW);

//ESP.wdtDisable(); // used to debug, disable wachdog timer,

Serial.begin(9600); // full speed to monitor WiFi.begin(SSID, PASS); // Connect to WiFi network while (WiFi.status() != WL_CONNECTED) { // Wait for connection delay(500);

Serial.print("."); }

// Set up the endpoints for HTTP server, Endpoints can be written as inline functions:

server.on("/", []() { homepage();

server.send(200, "text/html", form); });

server.on("/status1=1",[](){ //HAM THUC HIEN KHI NHAN DUOC GIA TRI on1 tu web

// Serial.println("a");

digitalWrite(role1,1);// kich muc 0 status1=true;

server.send(200, "text/html", form); }); server.on("/status1=0",[](){ // Serial.println("b"); digitalWrite(role1,0); status1=false; homepage();

server.send(200, "text/html", form);}); server.on("/status2=1",[](){

// Serial.println("c"); digitalWrite(role2,1); status2=true;

homepage();

server.send(200, "text/html", form);}); server.on("/status2=0",[](){

// Serial.println("d"); digitalWrite(role2,0); status2=false;

homepage();

server.send(200, "text/html", form);}); server.on("/status3=1",[](){

// Serial.println("c"); digitalWrite(role3,1); status3=true;

homepage();

server.send(200, "text/html", form);}); server.on("/status3=0",[](){

// Serial.println("d"); digitalWrite(role3,0); status3=false;

homepage();

server.send(200, "text/html", form);}); server.on("/status4=1",[](){

// Serial.println("c"); digitalWrite(role4,1); status4=true;

homepage();

server.send(200, "text/html", form);}); server.on("/status4=0",[](){

// Serial.println("d"); digitalWrite(role4,0); status4=false;

homepage();

server.send(200, "text/html", form);});

server.on("/status5=1",[](){ digitalWrite(role5,1);

status5=true; homepage();

server.send(200, "text/html", form);}); server.on("/status5=0",[](){

// Serial.println("d"); digitalWrite(role5,0); status5=false;

homepage();

server.send(200, "text/html", form);}); server.on("/status6=1",[](){

// Serial.println("c"); digitalWrite(role6,1); status6=true;

homepage();

server.send(200, "text/html", form);}); server.on("/status6=0",[](){

// Serial.println("d"); digitalWrite(role6,0);

status6=false; homepage();

server.send(200, "text/html", form);});

server.begin(); // Start the server

Serial.print("SSID : "); // prints SSID in monitor Serial.println(SSID); // to monitor char result[16];

sprintf(result, "%3d.%3d.%1d.%3d", WiFi.localIP()[0], WiFi.localIP()[1], WiFi.localIP()[2], WiFi.localIP()[3]);

Serial.println(); Serial.println(result);

Serial.println("WebServer ready! ");

Serial.println(WiFi.localIP()); // Serial monitor prints localIP }

void loop(void) { server.handleClient(); }

//========= END MAIN ==============

4.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC. 4.5.1 Tài liệu hướng dẫn sử dụng.

Bước 1: Cấp nguồn cho toàn hệ thống hoạt động.

Bước 2: để sử dụng hiển thị tên công viên hay thông báo trên hệ thống chạy chữ Led Matrix người quản lý phải có điện thoại Smartphone và phải tải app đã được thiết kế trên trang thủ MIT App Inventor sau khi tải app về điện thoại và mở ra giao diện điều khiển người quản lý chỉ cần nhập nội dung cần hiển thị và cho chạy.

Bước 3: Nhận thẻ RFID và quẹt thẻ ở cổng công viên để vào công viên Bước 4: Sinh viên muốn sử dụng quạt và đèn ở khu chòi thì kết nối Wifi của công viên sau đó vào bất kì trình duyệt web nào nhập địa chỉ IP của wifi công viên được dán trên bàn, sau đó sẽ hiện ra 1 trình duyệt Web điều khiển đèn và quạt. Sau đó thì người dùng có thể điều khiển đèn và quạt 1 cách hợp lý.

Hình 4.32 Qui trình thao tác các hệ thống.

 Giải thích

Bắt đầu cấp nguồn cho toàn bộ hệ thống.

Công viên có cổng chào được để hiển thị tên công viên hay thông báo công viên đóng cửa , để sử dụng được yêu cầu người quản lý phải có smartphone và có MIT App Inventor được tải trên trang chủ: https://appinventor.mit.edu/explore/

Muốn hiển thị nội dung gì chỉ cần nhập nội dung vào.

Muốn vào công viên yêu cầu sinh viên phải có thẻ RFID đã được đăng ký và tiến hành quẹt thẻ, nếu thẻ đúng cửa sẻ tự động mở và hiển thị trên lcd, nếu thẻ sai quá 3 lần thì coi và đèn báo động, để ngưng báo động yêu cầu nhập thẻ đúng.

Công viên có hệ thống đo nhiệt độ và độ ẩm để tưới cây và bật đèn sưởi tự động. Trong công viên có đèn và quẹt trong các khu chòi để sinh viên có thể sử dụng, để sử dụng được yêu cầu sinh viên phải có smartphone, sinh viên chỉ cần kết nối wifi của công viên và vào trình duyệt web bất kì và nhập địa chỉ IP wifi của công viên thì trình duyệt sẽ mở ra 1 giao diện điều khiển đèn và quạt.

Chương 5

KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ

5.1 GIỚI THIỆU.

Chương này trình bày kết quả của cả quá trình nghiên cứu làm đề tài trong thời gian 16 tuần. Bên cạnh đó là nhận xét, đánh giá và đề xuất hướng phát triển của sản phẩm mô hình để hoàn thiện và có thể đi vào thực tế.

5.2 KẾT QUẢ ĐẠT ĐƯỢC.

Qua quá trình nghiên cứu và thực hiện đề tài, nhóm nhận thấy được đề tài có khả năng ứng dụng vào thực tiễn cao, đáp ứng được nhu cầu cuộc sống hiện đại ngày nay và đi đúng xu hướng của thời đại. Đồng thời đề tài này cũng là một nguồn tài liệu có giá trị cho các bạn sinh viên những khóa tiếp theo có thể tham khảo khi nghiên cứu những đề tài có liên quan. Bên cạnh đó, nhóm cũng bổ sung cho mình những kiến thức hay và bổ ích.

5.2.1 Lập trình các cảm biến.

Các cảm biến được sử dụng trong đề tài này (DHT11, độ ẩm, nhiệt độ) là những cảm biến cần thiết trong cuộc sống. Có thể nói, các cảm biến ngày nay được sản xuất ngày một đơn giản và nhỏ gọn hơn, nhằm đáp ứng nhu cầu của người tiêu dùng. Quá trình nghiên cứu đề tài này đã giúp nhóm thực hiện nâng cao kỹ năng đọc – hiểu cảm biến, trau dồi thêm kiến thức về các loại cảm biến. Đặc biệt là, tăng khả năng vận dụng lý thuyết vào thực tế, có khả năng lựa chọn được loại cảm biến phù hợp với từng yêu cầu của thực tiễn đời sống

5.2.2 Áp dụng công nghệ RFID.

Hệ thống RFID được ứng dụng rất rộng rãi vào rất nhiều lĩnh vực, đời sống như: kiểm soát xe cộ, thu phí đường bộ, kiểm soát hành lý hành khách, quản lý nhân sự và chấm công nhân viên, có thể thay thế công nghệ mã vạch, giúp lưu giữ nhiều thông tin về sản phẩm hơn. Khi đưa thẻ RFID vào vùng hoạt động của đầu đọc RFID, sóng vô tuyến phát ra từ đầu đọc sẽ cung cấp cho thẻ RFID một dòng điện đủ nhỏ để kích hoạt hệ thống mạch điện nằm trong thẻ giúp nó gửi lại tín hiệu hồi đáp và thực hiện trao đổi dữ liệu theo yêu cầu của bộ điều khiển kết nối với đầu đọc RFID. Sau khi nhận được dữ liệu từ thẻ bộ điều khiển sẽ đưa ra yêu cầu điều khiển tùy vào từng ứng dụng cụ thể.

Trong đề tài này nhóm đã tận dụng cộng nghệ RFID để tiến hành kiếm soát người đã đăng ký thẻ vào công viên để tránh những hoạt động trộm cắp sẽ ra. Do thời gian có hạn nên nhóm chỉ mới nghiên cứu được cách sử dụng quẹt thẻ để mở cửa và cảnh báo khi thẻ sai hoặc có người lạ nên hệ thống còn rất nhiều khuyết điểm khác.

5.2.3 Tổng hợp cách lập trình PIC 16F887 1 cách tối ưu.

PIC 16F887 là vi điều khiển được sử dụng phổ biến hiện nay, nó có rất nhiều chức năng. Tuy nhiên, để hiểu về các chức năng của nó và lập trình thành thạo trên PIC 16F887 là điều không dễ dàng. Và qua quá trình tìm hiểu và nghiên cứu đề tài thì nhóm đã biết được cách lập trình cho vi điều khiển này, nó có khả năng đọc các cảm biến cụ thể trong đề tài này nhóm thực hiện đọc con cảm biến LM35, DHT11. Từ đó làm nền tảng để nhóm có thể phát triển ý tưởng điều khiển được mọi thứ xung quanh, biến chúng trở nên thông minh hơn.

5.2.4 Tổng hợp lập trình ESP8266 1 cách tối ưu.

ESP8266 là một trong những trung tâm điều khiển thông minh được sử dụng rộng rãi. Tuy nhiên, để sử dụng thành thạo và đầy đủ các chức năng của nó thì không phải dễ. Và đó là kết quả của quá trình nghiên cứu đề tài này mà nhóm thực hiện có được. hiện tại dòng chip ESP8266 của Espressif đang được sử dụng rất phổ biến trong các thiết bị giao tiếp với smartphone hay web server thông qua.

Trong đề này này nhóm đã nghiêm cứu và lập trình để điều khiển các thiết bị qua wifi từ websever.

5.2.5 Lựa chọn và phân tích các ngôn ngữ viết ứng dụng trên điện thoại Android và Web.

Sau thời gian nghiên cứu, nhóm đã biết cách viết ứng dụng trên Android bằng

Một phần của tài liệu Thiết kế và thi công mô hình công viên 4 0 (Trang 63)

Tải bản đầy đủ (PDF)

(112 trang)