Quy trình thao tác

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 85)

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 MIT App Inventor, trang webserver để điều khiển thiết bị qua wifi. App android được viết bằng MIT App Inventor. Còn web server thiết kế bằng phần mềm lập trình Arduino và sau đó được đưa lên Web bằng giao thức MQTT.

5.3 KẾT QUẢ THỰC NGHIỆM.

Cấp nguồn cho toàn hệ thống.

Hình 5.1 cổng ra vào quẹt thẻ RFID. Tiến hành quẹt thẻ để vào.

Hình 5.2 Quẹt thẻ đúng và mở cửa

Sau khi quẹt thẻ nếu thẻ đúng thì LCD sẻ hiển thị “XIN MOI VAO CONG VIEN SPKT”.

Hình 5.3 Quẹt thẻ để đóng cửa. (adsbygoogle = window.adsbygoogle || []).push({});

Sau khi vào công viên chỉ cần quẹt lại thẻ 1 lần nữa thì cửa sẻ tự động đóng lại và LCD hiển thị “CUA DA DUOC DONG”.

Hình 5.4 Quẹt thẻ sai.

Nếu quẹt thẻ sai LCD sẻ hiển thị “The khong hop le” và nếu quẹt sai quá 3 lần thì sẻ cảnh báo bang đèn và còi.

Hình 5.5 Giao diện điều khiển trên Smartphone.

Người quán lý muốn hiển thị cổng chào của công viên hay thông báo thì chỉ cần nhập nội dung vào chỗ được thiết lập trên App điện thoại.

Hình 5.6 Hiển thị nội lên Led Matrix.

Hình 5.7 Giao diện điều khiển thiết bị qua wifi.

Sau khi kết nối wifi của công viên và mở trình quyệt web bất kì nhập địa chỉ IP của công viên được dáng lên ghế của công viên sẻ hiển thị giao diện điều khiển.

Hình 5.8 đèn và quạt được mở khi điều khiển trên giao diện.

Sau khi nhấn thay đổi trạng từ trạng thái Off sáng On thì đèn và quạt sẻ được mở đồng thời trên giao diện sẽ hiển thị trạng thái ON hay OFF để dễ dàng giám sát.

 Đọ nhiệt độ độ ẩm tưới cây và bật đèn sưởi tự động.

Hình 5.9 đo nhiệt độ độ ẩm hiển thị LCD

Nhiệt độ và độ ẩm được thu thập được từ cảm biến DHT11 sẻ hiển thị lên LCD. Nếu nhiệt độ đo cao hơn nhiệt độ cài đặt và độ ẩm đo thấp hơn độ ẩm cài đặt thì trung tâm điều khiển sẽ cho tưới cây và nhiệt độ đo thấp hơn nhiệt độ đo cài và độ ẩm cao hơn độ ẩm cài thì sẻ cho bật đèn sưởi.

5.4 NHẬN XÉT – ĐÁNH GIÁ. 5.4.1 Nhận xét. 5.4.1 Nhận xét.

Sau thời gian 16 tuần nghiên cứu và thực hiện đề tài, mạch cơ bản đáp ứng được yêu cầu thiết kế ban đầu. Dưới đây là một số nhận xét:

a. Ưu điểm

- Hệ thống chạy tương đối tốt.

- Hệ thống có thể được điều khiển thiết bị ở bất kì đâu khi kết nối được wifi của công viên

- Hệ thống tự động động tưới cây theo nhiệt độ đã cài đặt,

- Ứng dụng RFID để đóng mở cửa. Có cảnh báo trộm khi nhập sai mật khẩu 3 lần. - Giao diện thiết kế dễ sử dụng và đẹp mắt.

b. Hạn chế

- Hệ thống phụ thuộc vào tốc độ của wifi.

- Hệ thống thẻ RFID chỉ sử dụng quẹt thẻ cho mở cửa khi thẻ đúng và cảnh báo khi thẻ sai quá 3 lần chưa kiểm soát toàn bộ các thành viên và lưu trữ danh sách thanh viên củng như giám sát số lượng đang sinh hoạt trong công viên và danh sách đăng kí thành viên khi tham gia công viên.

5.4.2 Đánh giá.

Sau quá trình vận hành thử hệ thống, nhóm thực hiện đã thu về những số liệu như bảng sau:

Bảng 5.1. Kết quả thử nghiệm vận hành hệ thống.

STT Số lần thử nghiệm Số lần thực hiện đúng Xác xuất(%)

1 5 4 80%

2 10 8 80%

3 20 16 80% (adsbygoogle = window.adsbygoogle || []).push({});

Qua những số liệu bảng trên, nhóm đánh giá hệ thống đạt yêu cầu với những mục tiêu đã đề ra. Mô hình có tính thẩm mỹ, an toàn, dễ sử dụng. Sau thời gian kiểm tra thử, mạch cho thấy sự ổn định. Tuy nhiên vẫn còn một số hạn chế cần khắc phục nếu muốn đưa vào thực tế đời sống như: tốc độ điều khiển và phản hồi còn chậm.

Chương 6

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

6.1 KẾT LUẬN

Sau khoảng thời 16 tuần nghiên cứu và tìm hiểu, nhóm đã hoàn thành quyển đồ án và thi công mô hình theo những yêu cầu đã đặt ra ban đầu. Trong quá trình thực hiện, nhóm đã thu được những kết quả nhất định:

- Sản phẩm đạt yêu cầu điều khiển các thiết bị qua wifi.

- Hệ thống đo nhiệt độ độ ẩm chính xác tương đối để điều khiển cho hệ thống tưới cây và bật đèn sưởi tự động.

- Mạch thực hiện được chức năng mở cửa bằng RFID và có cảnh báo. - Mô hình thi công có tính thẩm mỹ cao, an toàn, dễ vận hành.

6.2 HƯỚNG PHÁT TRIỂN

- Mở rộng số thiết bị cần điều khiển với công suất lớn.

- Có thể giám sát được tất cả các thành viên trong công viên và thành viên đăng ký thẻ tham gia công viên trên App điện thoại hoặc Web khi có kết nối Internet. - Thêm Camera giám sát tứng khu khi có sự cố thì có cảnh báo kịp thời như các thiết bị đèn và quạt bị hư hỏng.

- Phát triển thêm hệ thống đọc điện năng tiêu thụ của các thiết bị.

- Phát triển giao diện thông báo các bảng tin, các hoạt động của công viên. - Có thông tin phản hồi khi bật tắt các thiết bị để giám sát khi thiết bị bị hư hỏng.

TÀI LIỆU THAM KHẢO

[1]. Nguyễn Đình Phú - Trương Ngọc Anh,“Giáo trình Vi xử lý”, Nhà xuất bản Đại học Quốc gia TP.HCM, 2013.

[2]. Nguyễn Đình Phú, Phan Văn Hoàn, Trương Ngọc Anh, “Giáo trình thực hành Vi xử lý”, Nhà xuất bản Đại học Quốc gia TP.HCM, 8/2017.

[3]. Sỹ Đông, “TP HCM quá thiếu công viên”, Báo người lao động, https://nld.com.vn/ban-doc/tp-hcm-qua-thieu-cong-vien-

20180802221757709.htm, 3/8/2018.

[4]. Trần Thu Hà – Trương Thị Bích Ngà – Nguyễn Thị Lưỡng – Bùi Thị Tuyết Đan – Phù Thị Ngọc Hiếu – Dương Thị Cẩm Tú, “Giáo trình điện tử cơ bản”, Nhà xuất bản Đại học Quốc gia TP.HCM, 2013.

[5]. Nguyễn Văn Hiệp, “Công nghệ nhận dạng bằng sóng vô tuyến RFID”, Nhà xuất bản Khoa học và Kỹ thuật, 2014.

[6]. Abel Nguyen, “Lập trình cơ bản MQTT với ESP8266 trong Arduino”, http://dandientu.com/lap-trinh-nhung/lap-trinh-co-ban-mqtt-voi-esp8266- trong-arduino.html, 7/12/2018.

PHỤ LỤC 1. Thư Viện DHT11_2.H #define _DHT11_H_ #BIT DHT_DATA_OUT = 0x08.0 #BIT DHT_DATA_IN = 0x08.0 #BIT DHT_DDR_DATA = 0x88.0 #define DHT_ER 0 #define DHT_OK 1 #define DDROUT 0 #define DDRIN 1

unsigned int8 DHT_GetTemHumi (unsigned int8 &tem1,&tem2,unsigned int8 &humi1,&humi2);

unsigned int8 DHT_GetTemHumi (unsigned int8 &tem1,&tem2,unsigned int8 &humi1,&humi2)

{

unsigned int8 buffer[5]={0,0,0,0,0}; unsigned int8 ii,i,checksum;

DHT_DDR_DATA=DDROUT; // set la cong ra DHT_DATA_OUT=1;

delay_us(60);

DHT_DATA_OUT=0; delay_ms(25); // it nhat 18ms DHT_DATA_OUT=1;

DHT_DDR_DATA=DDRIN;//set la cong vao delay_us(60); (adsbygoogle = window.adsbygoogle || []).push({});

if(DHT_DATA_IN)return DHT_ER ;

else while(!(DHT_DATA_IN)); delay_us(60);//cho 60us if(!DHT_DATA_IN)return DHT_ER;

else while((DHT_DATA_IN)); //Doi Data ve 0 //Bat dau doc du lieu for(i=0;i<5;i++)

{ for(ii=0;ii<8;ii++) {

while((!DHT_DATA_IN)) if(get_timer1() > 65533) break;//Doi Data 1//65533 delay_us(50); if(DHT_DATA_IN) { buffer[i]|=(1<<(7-ii)); while((DHT_DATA_IN)) { if(get_timer1() > 65533) break; }} }} checksum=buffer[0]+buffer[1]+buffer[2]+buffer[3]; if((checksum)!=buffer[4])return DHT_ER;

tem1 = buffer[2];//gia tri phan nguyen tem2 = buffer[3];//gia tri phan thap phan humi1 = buffer[0];//gia tri phan nguyen humi2 = buffer[1];//gia tri phan thap phan return DHT_OK;

}

2. Thư viện RFID

#define PCD_IDLE 0x00 //NO action; Cancel the current command

#define PCD_AUTHENT 0x0E //Authentication Key #define PCD_RECEIVE 0x08 //Receive Data

#define PCD_TRANSMIT 0x04 //Transmit data

#define PCD_TRANSCEIVE 0x0C //Transmit and receive data, #define PCD_RESETPHASE 0x0F //Reset

#define PCD_CALCCRC 0x03 //CRC Calculate

#define PICC_REQIDL 0x26 // find the antenna area does not enterhibernation

#define PICC_REQALL 0x52 // find all the cards antenna area #define PICC_ANTICOLL 0x93 // anti-collision

#define PICC_SElECTTAG 0x93 // election card

#define PICC_AUTHENT1A 0x60 // authentication key A #define PICC_AUTHENT1B 0x61 // authentication key B

#define PICC_READ 0x30 // Read Block #define PICC_WRITE 0xA0 // write block #define PICC_DECREMENT 0xC0 // debit #define PICC_INCREMENT 0xC1 // recharge

#define PICC_RESTORE 0xC2 // transfer block data to the buffer

#define PICC_TRANSFER 0xB0 // save the data in the buffer #define PICC_HALT 0x50 // Sleep

#define MI_OK 0 #define MI_NOTAGERR 1 #define MI_ERR 2 //---MFRC522 Register--- #define RESERVED00 0x00 #define COMMANDREG 0x01 #define COMMIENREG 0x02 #define DIVLENREG 0x03 #define COMMIRQREG 0x04 #define DIVIRQREG 0x05 #define ERRORREG 0x06 #define STATUS1REG 0x07 #define STATUS2REG 0x08 #define FIFODATAREG 0x09

#define FIFOLEVELREG 0x0A #define WATERLEVELREG 0x0B #define CONTROLREG 0x0C #define BITFRAMINGREG 0x0D #define COLLREG 0x0E #define RESERVED01 0x0F //PAGE 1:Command

#define RESERVED10 0x10

#define MODEREG 0x11

#define RXMODEREG 0x13 #define TXCONTROLREG 0x14 #define TXAUTOREG 0x15 #define TXSELREG 0x16 #define RXSELREG 0x17 #define RXTHRESHOLDREG 0x18 #define DEMODREG 0x19

#define RESERVED11 0x1A #define RESERVED12 0x1B #define MIFAREREG 0x1C #define RESERVED13 0x1D #define RESERVED14 0x1E #define SERIALSPEEDREG 0x1F //PAGE 2:CFG #define RESERVED20 0x20 #define CRCRESULTREGM 0x21 #define CRCRESULTREGL 0x22 #define RESERVED21 0x23 #define MODWIDTHREG 0x24 #define RESERVED22 0x25 #define RFCFGREG 0x26 #define GSNREG 0x27 #define CWGSPREG 0x28 #define MODGSPREG 0x29

#define TMODEREG 0x2A #define TPRESCALERREG 0x2B #define TRELOADREGH 0x2C #define TRELOADREGL 0x2D #define TCOUNTERVALUEREGH 0x2E #define TCOUNTERVALUEREGL 0x2F //PAGE 3:TEST REGISTER

#define TESTSEL1REG 0x31 #define TESTSEL2REG 0x32 #define TESTPINENREG 0x33 #define TESTPINVALUEREG 0x34 #define TESTBUSREG 0x35 #define AUTOTESTREG 0x36 #define VERSIONREG 0x37 #define ANALOGTESTREG 0x38 #define TESTDAC1REG 0x39 #define TESTDAC2REG 0x3A #define TESTADCREG 0x3B #define RESERVED31 0x3C #define RESERVED32 0x3D #define RESERVED33 0x3E #define RESERVED34 0x3F

#define MFRC522_CS PIN_B3 #define MFRC522_SCK PIN_B4

#define MFRC522_SI PIN_B5 #define MFRC522_SO PIN_B6 (adsbygoogle = window.adsbygoogle || []).push({});

#define MFRC522_RST PIN_B7

static VOID MFRC522_Wr_Old( char addr, char value ) {output_bit(MFRC522_CS,0);

spi_write( ( addr << 1 ) & 0x7E ); spi_write( value );

output_bit(MFRC522_CS,1);}

static char MFRC522_Rd_Old( char addr ) { char value;

output_bit(MFRC522_CS,0); spi_write( (( addr << 1 ) & 0x7E)|0x80 );

value = spi_read( 0x00 ); output_bit(MFRC522_CS,1); return value;

unsigned int8 MFRC522_Rd(unsigned int8 Address) {

unsigned int i, ucAddr; unsigned int ucResult = 0;

output_bit (MFRC522_SCK, 0); output_bit (MFRC522_CS, 0); ucAddr = ( (Address<<1)&0x7E)|0x80;

//Write spi

FOR (i = 8; i > 0; i--)

{ output_bit (MFRC522_SI, ((ucAddr&0x80) == 0x80)); output_bit (MFRC522_SCK, 1); ucAddr <<= 1; output_bit (MFRC522_SCK, 0); } //SPI read FOR (i = 8; i > 0; i--) { output_bit (MFRC522_SCK, 1); ucResult <<= 1;

ucResult|= (INT1) input (MFRC522_SO); output_bit (MFRC522_SCK, 0);

} output_bit (MFRC522_CS, 1); output_bit (MFRC522_SCK, 1); RETURN ucResult;

}

void MFRC522_Wr(unsigned int8 Address, unsigned int8 value) { unsigned int8 i, ucAddr;

output_bit (MFRC522_SCK, 0); output_bit (MFRC522_CS, 0); ucAddr = ( (Address<<1)&0x7E); FOR (i = 8; i > 0; i--)

{

output_bit (MFRC522_SI, ( (ucAddr&0x80) == 0x80)); output_bit (MFRC522_SCK, 1);

ucAddr <<= 1; output_bit (MFRC522_SCK, 0); }

FOR (i = 8; i > 0; i--) {

output_bit (MFRC522_SI, ( (value&0x80) == 0x80)); output_bit (MFRC522_SCK, 1); value <<= 1; output_bit (MFRC522_SCK, 0); } output_bit (MFRC522_CS, 1); output_bit (MFRC522_SCK, 1); }

static void MFRC522_Clear_Bit( char addr, char mask ) { unsigned int8 tmp =0x0;

tmp=MFRC522_Rd( addr ) ;

MFRC522_Wr( addr, tmp&~mask ); // tmp&(~mask) }

static void MFRC522_Set_Bit( char addr, char mask ) { unsigned int8 tmp =0x0;

tmp=MFRC522_Rd( addr ) ; MFRC522_Wr( addr, tmp|mask );} void MFRC522_Reset()

{ output_bit (MFRC522_RST, 1) ; delay_us (1); output_bit (MFRC522_RST, 0) ; delay_us (1); output_bit (MFRC522_RST, 1) ; delay_us (1);

MFRC522_Wr( COMMANDREG, PCD_RESETPHASE ); delay_us (1);} void MFRC522_AntennaOn() { unsigned int8 stt; stt= MFRC522_Rd( TXCONTROLREG ) ; MFRC522_Set_Bit( TXCONTROLREG, 0x03 ); } void MFRC522_AntennaOff() { MFRC522_Clear_Bit( TXCONTROLREG, 0x03 ); } void MFRC522_Init() (adsbygoogle = window.adsbygoogle || []).push({});

{ output_bit(MFRC522_CS , 1); output_bit( MFRC522_RST , 1);

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 85)