(Đồ án hcmute) thiết kế và thi công mô hình quản lý giám sát trang trại nuôi gà kết nối internet

70 3 0
(Đồ án hcmute) thiết kế và thi công mô hình quản lý giám sát trang trại nuôi gà kết nối internet

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CNKT ĐIỆN TỬ - TRUYỀN THÔNG THIẾT KẾ VÀ THI CƠNG MƠ HÌNH QUẢN LÝ GIÁM SÁT TRANG TRẠI NUÔI GÀ KẾT NỐI INTERNET GVHD: PGS.TS NGUYỄN THANH HẢI SVTH: PHẠM THANH BÌNH MSSV: 15141005 SVTH: TRẦN ANH HÀO MSSV: 13141618 S K L0 Tp Hồ Chí Minh, tháng 1/2021 an CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc *** Tp Hồ Chí Minh, ngày 17 tháng năm 2021 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Phạm Thanh Bình MSSV: 15141005 Trần Anh Hào MSSV: 13141618 Ngành: Công nghệ kỹ thuật điện tử truyền thông Lớp: 15141CLDT1A-13141CLDT1 Giảng viên hướng dẫn: PGS.TS NGUYỄN THANH HẢI Ngày nhận đề tài: 17/10/2020 Ngày nộp đề tài: 17/01/2021 Tên đề tài: Thiết kế thi công mơ hình quản lý giám sát trang trại ni gà kết nối internet Các số liệu, tài liệu ban đầu: Giáo trình vi xử lý nâng cao; Đồ án môn học 2: Đo nhiệt độ, độ ẩm sử dụng ARM STM32 Nội dung thực đề tài: Thiết kế thi cơng mơ hình gồm cảm biến đo yếu tố môi trường nhiệt độ, độ ẩm Mơ hình có chức chống trộm, điều khiển từ xa thông qua chuẩn LoRa kết nối với internet Sản phẩm: Mơ hình chuồng gà thơng minh có cảm biến đo nhiệt độ, độ ẩm, điều khiển máy bơm dẫn nước cho gà, máng thức ăn kéo lên kéo xuống động step motor, có hệ thống cảnh báo cảm biến hồng ngoại chng báo Bên cạnh mơ hình giám sát điều khiển thơng qua mạng internet TRƯỞNG NGÀNH GIẢNG VIÊN HƯỚNG DẪN i KHOA ĐT CLC – ĐH SPKT TPHCM an CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc *** PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Họ tên Sinh viên: Phạm Thanh Bình MSSV: 15141005 Trần Anh Hào MSSV: 13141618 Ngành: Công nghệ kỹ điện tử truyền thông Tên đề tài: Thiết kế thi cơng mơ hình quản lý giám sát trang trại nuôi gà kết nối internet Họ tên Giáo viên hướng dẫn: PGS.TS NGUYỄN THANH HẢI NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm: Đề nghị cho bảo vệ hay không? 6.Điểm…….(Bằng chữ ) Tp Hồ Chí Minh, ngày tháng năm 2021 Giáo viên hướng dẫn ii KHOA ĐT CLC – ĐH SPKT TPHCM an CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc *** PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ tên Sinh viên: Phạm Thanh Bình MSSV: 15141005 Trần Anh Hào MSSV: 13141618 Ngành: Cơng nghệ kỹ điện tử truyền thông Tên đề tài: Thiết kế thi cơng mơ hình quản lý giám sát trang trại nuôi gà kết nối internet Họ tên Giáo viên phản biện: NHẬN XÉT 1.Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm: Đề nghị cho bảo vệ hay không? 5.Đánh giá loại: 6.Điểm…… (Bằng chữ ) Tp Hồ Chí Minh, ngày tháng năm 2021 Giáo viên phản biện iii KHOA ĐT CLC – ĐH SPKT TPHCM an LỜI CẢM ƠN Để hồn thành đề tài này, nhóm thực đề tài xin gửi lời cảm ơn chân thành đến Thầy/Cô khoa Đào tạo Chất lượng cao, trường Đại học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh, người truyền đạt cho sinh viên kiến thức quý báu, dẫn định hướng cho nhóm trình học tập Đây tiền đề để nhóm hồn thành đề tài sống nghiệp sau Đặc biệt, nhóm sinh viên xin chân thành cảm ơn Thầy Nguyễn Thanh Hải tận tình hướng dẫn tạo điều kiện thuận lợi cho nhóm suốt thời gian thực đồ án tốt nghiệp Nhóm thực đề tài xin gửi đến thầy lòng biết ơn lời cảm ơn chân thành sâu sắc Kiến thức, kinh nghiệm tâm nhà giáo thầy giúp đỡ nhóm hồn thành tốt đề tài mà gương để học tập noi theo đường tương lai Cuối nhóm thực đề tài xin chân thành cảm ơn đến gia đình, chỗ dựa nguồn động viên tinh thần gặp khó khăn q trình học tập, nghiên cứu để hoàn thành đề tài tốt nghiệp Nhóm thực xin chân thành cảm ơn! Sinh viên thực đề tài Phạm Thanh Bình Trần Anh Hào i KHOA ĐT CLC – ĐH SPKT TPHCM an TÓM TẮT Ngày nay, khoa học kỹ thuật phát triển ngày qua năm, cụ thể vi xử lý ngày trở nên đa dạng ứng dụng gần gũi với sống người Cơng nghệ phát triển địi hỏi nhu cầu cao việc ứng dụng thực tế kỹ thuật vào nông nghiệp, sản xuất nước ta nhằm giảm sức lao động cần bỏ người, tăng suất việc chăn nuôi, giám sát tình hình thực tế vật ni để đem lại hiệu cao cho ngành chăn nuôi thời kỳ xã hội phát triển nhanh chóng Chính thế, nhóm lựa chọn đề tài “THIẾT KẾ VÀ THI CƠNG MƠ HÌNH QUẢN LÝ GIÁM SÁT TRANG TRẠI NI GÀ KẾT NỐI INTERNET” nhằm giải vấn đề quản lý việc chăn nuôi, áp dụng kiến thức học để thiết kế mơ hình thí điểm trang trại nuôi gà, sở để mở rộng trang trại quy mô lớn Hệ thống mơ hình chuồng gà thơng minh sử dụng vi điều khiển STM32F103C8T6 làm vi xử lý trung tâm, sử dụng module LoRa kết hợp nút nhấn để điều khiển thiết bị quạt, đèn, bơm, động bước Ngồi hệ thống có cảnh báo chng phát người lạ đến gần chuồng gà kết nối với internet để người dùng cập nhật tình hình nhiệt độ, độ ẩm chuồng gà cách kịp thời xác Người dùng dựa vào liệu để có định biện pháp xử lý nơi có kết nối internet ii KHOA ĐT CLC – ĐH SPKT TPHCM an MỤC LỤC LỜI CẢM ƠN i TÓM TẮT ii MỤC LỤC .iii DANH MỤC CÁC TỪ VIẾT TẮT v DANH MỤC CÁC BẢNG BIỂU vi DANH MỤC CÁC BIỂU ĐỒ VÀ HÌNH ẢNH vii CHƯƠNG 1: TỔNG QUAN 1.1 GIỚI THIỆU TÌNH HÌNH NGHIÊN CỨU HIỆN NAY 1.2 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1.3 MỤC TIÊU NGHIÊN CỨU 1.4 NHIỆM VỤ NGHIÊN CỨU 1.5 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 1.6 PHƯƠNG PHÁP NGHIÊN CỨU 1.7 BỐ CỤC CỦA ĐỒ ÁN CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 CÁC TIÊU CHUẨN MÔI TRƯỜNG TRONG CHĂN NUÔI GÀ 2.2 GIỚI THIỆU PHẦN CỨNG 2.2.2 Vi điều khiển ARM 2.2.3 Khối thiết bị ngõ 2.2.4 Khối hiển thị LCD 10 2.3 TỔNG QUAN VỀ CÔNG NGHỆ TRUYỀN THÔNG LORA 11 2.3.1 Giới thiệu công nghệ truyền thông LoRa 11 2.3.2 Giới thiệu module RF LoRa 12 2.4 CHUẨN TRUYỀN DỮ LIỆU GIAO TIẾP NỐI TIẾP UART 13 2.5 MODULE ESP8266 TÍCH HỢP TRONG KIT NODEMCU 14 CHƯƠNG 3: TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 16 3.1 GIỚI THIỆU 16 3.2 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 16 iii KHOA ĐT CLC – ĐH SPKT TPHCM an 3.2.1 Thiết kế sơ đồ khối hệ thống 16 3.2.2 Hoạt động hệ thống 17 3.2.3 Thiết kế khối 18 3.2.4 Tính tốn lựa chọn khối nguồn 23 3.2.5 Sơ đồ nguyên lý toàn mạch 25 3.3 THIẾT KẾ PHẦN MỀM 26 3.3.1 Lưu đồ giải thuật 26 3.3.2 Cài đặt ESP8266 kết nối với Blynk 27 CHƯƠNG 4: THI CÔNG HỆ THỐNG 32 4.1 THI CÔNG BOARD MẠCH 32 4.1.1 Thiết kế board mạch 32 4.1.2 Lắp ráp, kiểm tra thi công mạch 32 4.2 THIẾT KẾ GIAO DIỆN APP BLYNK 34 4.3 THI CƠNG MƠ HÌNH 37 CHƯƠNG 5: KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ 38 5.1 KẾT QUẢ THỰC TẾ 38 5.2 NHẬN XÉT VÀ ĐÁNH GIÁ MƠ HÌNH 40 5.3 HƯỚNG DẪN SỬ DỤNG MƠ HÌNH 40 5.4 CHI PHÍ CHO ĐỀ TÀI 41 5.4.1 Chi phí cho mơ hình 41 5.4.2 Tổng chi phí cho đề tài 42 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 43 6.1 KẾT LUẬN 43 6.2 HƯỚNG PHÁT TRIỂN 43 TÀI LIỆU THAM KHẢO 44 PHỤ LỤC 45 iv KHOA ĐT CLC – ĐH SPKT TPHCM an DANH MỤC CÁC TỪ VIẾT TẮT IC Intergrated Circuit Mạch tích hợp I/O Input/Output Ngõ vào/Ngõ MCU Microprocessor Control Unit Khối vi điều khiển UART Universal Asynchronous ReciverTransmitter Truyền liệu nối tiếp bất đồng LCD Liquid Crystal Display Màn hình tinh thể lỏng ADC Analog Digital Converter Chuyển đổi tín hiệu tương tự sang số ĐATN GPIO Đồ án tốt nghiệp General-purpose Input/Output Cổng đầu vào/ra với mục đích v KHOA ĐT CLC – ĐH SPKT TPHCM an DANH MỤC CÁC BẢNG BIỂU Bảng 2.1: Mô tả chức chân module LoRa 13 Bảng 3.1: Dòng tiêu thụ linh kiện 23 Bảng 5.1: Chi phí cho linh kiện, thành phần sử dụng mơ hình 41 Bảng 5.2: Chi phí phát sinh 42 vi KHOA ĐT CLC – ĐH SPKT TPHCM an TÀI LIỆU THAM KHẢO [1] Trần Xuân Thức, Trần Văn Trí, “Thiết kế thi cơng hệ thống giám sát số môi trường hiển thị thông tin web”, Đồ án tốt nghiệp, trường ĐHSPKT, Tp.HCM, 2018-2019, HK2 [2] Nguyễn Minh Chương, Phan Nhật Hào, “Thiết kế thi công hệ thống giám sát điều khiển kho mát từ xa thông qua IoT”, Đồ án tốt nghiệp, trường ĐHSPKT, Tp.HCM, 2018-2019, HK2 [3] Bùi Hải Phong, Nghiêm Sỹ Tú, “Thiết kế thi công hệ thống giám sát trang trại chăn nuôi”, Đồ án tốt nghiệp, trường ĐHSPKT, Tp.HCM, 2019-2020, HK1 [4] Nguyễn Quang Thạnh, Phan Thanh Triều, “Thi cơng mơ hình hệ thống trồng hoa lan”, Đồ án tốt nghiệp, trường ĐHSPKT, Tp.HCM, 2018-2019, HK2 [5] Nguyễn Tri Phương, Võ Duy Tâm, “Thiết kế thi cơng mơ hình điều khiển thiết bị điện”, Đồ án tốt nghiệp, trường ĐHSPKT, Tp.HCM, 2018-2019, HK2 [6] Phan Vân Hồn(2015), “Giáo trình vi xử lý nâng cao”, Trường Đại học Sư Phạm Kỹ Thuật Tp.HCM, Việt Nam [7] D-Robotics, DHT11 datasheet [8] ESP8266 datasheet [9] STM32F103C8T6 datasheet, module LoRa SX1278 datasheet [10] Youtube, kiểm tra khoảng cách cảm biến, youtube key words “Temperature sensor distance range” 44 KHOA ĐT CLC – ĐH SPKT TPHCM an PHỤ LỤC CODE MẠCH LORA BÊN TRUYỀN Code giao tiếp UART LoRa với STM32F103C8T6 #include "uart.h" uint8_t UART3_TX_Buff[UART3_TX_DMA_Buff_Size]; uint8_t UART3_RX_Buff[UART3_RX_DMA_Buff_Size]; void UART3_TX_RX_DMA_Init(uint32_t BaudRate) { GPIO_InitTypeDef GPIO_InitStruct; USART_InitTypeDef USART_InitStruct; DMA_InitTypeDef DMA_InitStruct; NVIC_InitTypeDef NVIC_InitStruct; NVIC_InitStruct.NVIC_IRQChannel=UART3_TX_DMA_Channel_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0; NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStruct); NVIC_InitStruct.NVIC_IRQChannel = UART3_RX_DMA_Channel_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1; NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStruct); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); DMA_DeInit(UART3_TX_DMA_Channel); DMA_InitStruct.DMA_PeripheralBaseAddr = (uint32_t)(&(USART3->DR)); DMA_InitStruct.DMA_MemoryBaseAddr = (uint32_t)UART3_TX_Buff; DMA_InitStruct.DMA_BufferSize = (uint32_t)UART3_TX_DMA_Buff_Size; DMA_InitStruct.DMA_DIR = DMA_DIR_PeripheralDST; DMA_InitStruct.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStruct.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStruct.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; DMA_InitStruct.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; DMA_InitStruct.DMA_Mode = DMA_Mode_Normal; 45 KHOA ĐT CLC – ĐH SPKT TPHCM an DMA_InitStruct.DMA_Priority = DMA_Priority_VeryHigh; DMA_InitStruct.DMA_M2M = DMA_M2M_Disable; DMA_Init(UART3_TX_DMA_Channel, &DMA_InitStruct); DMA_Cmd(UART3_TX_DMA_Channel, DISABLE); DMA_DeInit(UART3_RX_DMA_Channel); DMA_InitStruct.DMA_PeripheralBaseAddr = (uint32_t)(&(USART3->DR)); DMA_InitStruct.DMA_MemoryBaseAddr=(uint32_t)UART3_RX_Buff; DMA_InitStruct.DMA_BufferSize=(uint32_t)UART3_RX_DMA_Buff_Size; DMA_InitStruct.DMA_DIR = DMA_DIR_PeripheralSRC; DMA_InitStruct.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStruct.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStruct.DMA_PeripheralDataSize=DMA_PeripheralDataSize_Byte; DMA_InitStruct.DMA_MemoryDataSize=DMA_MemoryDataSize_Byte; DMA_InitStruct.DMA_Mode = DMA_Mode_Circular; DMA_InitStruct.DMA_Priority = DMA_Priority_VeryHigh; DMA_InitStruct.DMA_M2M = DMA_M2M_Disable; DMA_Init(UART3_RX_DMA_Channel, &DMA_InitStruct); DMA_Cmd(UART3_RX_DMA_Channel, DISABLE); USART_DeInit(USART3); USART_InitStruct.USART_BaudRate = BaudRate; USART_InitStruct.USART_WordLength = USART_WordLength_8b; USART_InitStruct.USART_StopBits = USART_StopBits_1; USART_InitStruct.USART_Parity = USART_Parity_No; USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowContro l_None; USART_InitStruct.USART_Mode=USART_Mode_Tx|USART_Mode_Rx; USART_Init(USART3, &USART_InitStruct); USART_Cmd(USART3, DISABLE); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStruct); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_11; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIOB, &GPIO_InitStruct); 46 KHOA ĐT CLC – ĐH SPKT TPHCM an USART_DMACmd(USART3, USART_DMAReq_Tx, ENABLE); USART_DMACmd(USART3, USART_DMAReq_Rx, ENABLE); DMA_ITConfig(UART3_TX_DMA_Channel,DMA_IT_TC,ENABLE); DMA_ITConfig(UART3_RX_DMA_Channel,DMA_IT_TC, ENABLE); USART_Cmd(USART3, ENABLE); DMA_Cmd(UART3_RX_DMA_Channel, ENABLE); } void UART3_TX_DMA_SendData(uint16_t Counter) { DMA_SetCurrDataCounter(UART3_TX_DMA_Channel, Counter); DMA_Cmd(UART3_TX_DMA_Channel, ENABLE); } CODE MẠCH LORA BÊN NHẬN Code UART giao tiếp module LoRa nhận với STM32F103C8T6 #include "uart.h" uint8_t UART1_TX_Buff[UART1_TX_DMA_Buff_Size]; uint8_t UART3_TX_Buff[UART3_TX_DMA_Buff_Size]; uint8_t UART1_RX_Buff[UART1_RX_DMA_Buff_Size]; uint8_t UART3_RX_Buff[UART3_RX_DMA_Buff_Size]; void UART1_TX_RX_DMA_Init(uint32_t BaudRate) { GPIO_InitTypeDef GPIO_InitStruct; USART_InitTypeDef USART_InitStruct; DMA_InitTypeDef DMA_InitStruct; NVIC_InitTypeDef NVIC_InitStruct; NVIC_InitStruct.NVIC_IRQChannel=UART1_TX_DMA_Channel_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0; NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStruct); NVIC_InitStruct.NVIC_IRQChannel=UART1_RX_DMA_Channel_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1; NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE; 47 KHOA ĐT CLC – ĐH SPKT TPHCM an NVIC_Init(&NVIC_InitStruct); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA| RCC_APB2Periph_USART1, ENABLE); DMA_DeInit(UART1_TX_DMA_Channel); DMA_InitStruct.DMA_PeripheralBaseAddr=(uint32_t)(&(USART1->DR)); DMA_InitStruct.DMA_MemoryBaseAddr=(uint32_t)UART1_TX_Buff; DMA_InitStruct.DMA_BufferSize=(uint32_t)UART3_TX_DMA_Buff_Size; DMA_InitStruct.DMA_DIR = DMA_DIR_PeripheralDST; DMA_InitStruct.DMA_PeripheralInc=DMA_PeripheralInc_Disable; DMA_InitStruct.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStruct.DMA_PeripheralDataSize=DMA_PeripheralDataSize_Byte; DMA_InitStruct.DMA_MemoryDataSize=DMA_MemoryDataSize_Byte; DMA_InitStruct.DMA_Mode = DMA_Mode_Normal; DMA_InitStruct.DMA_Priority = DMA_Priority_VeryHigh; DMA_InitStruct.DMA_M2M = DMA_M2M_Disable; DMA_Init(UART1_TX_DMA_Channel, &DMA_InitStruct); DMA_Cmd(UART1_TX_DMA_Channel, DISABLE); DMA_DeInit(UART1_RX_DMA_Channel); DMA_InitStruct.DMA_PeripheralBaseAddr=(uint32_t)(&(USART1->DR)); DMA_InitStruct.DMA_MemoryBaseAddr=(uint32_t)UART1_RX_Buff; DMA_InitStruct.DMA_BufferSize=(uint32_t)UART1_RX_DMA_Buff_Size; DMA_InitStruct.DMA_DIR = DMA_DIR_PeripheralSRC; DMA_InitStruct.DMA_PeripheralInc=DMA_PeripheralInc_Disable; DMA_InitStruct.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStruct.DMA_PeripheralDataSize=DMA_PeripheralDataSize_Byte; DMA_InitStruct.DMA_MemoryDataSize=DMA_MemoryDataSize_Byte; DMA_InitStruct.DMA_Mode = DMA_Mode_Circular; DMA_InitStruct.DMA_Priority = DMA_Priority_VeryHigh; DMA_InitStruct.DMA_M2M = DMA_M2M_Disable; DMA_Init(UART1_RX_DMA_Channel, &DMA_InitStruct); DMA_Cmd(UART1_RX_DMA_Channel, DISABLE); 48 KHOA ĐT CLC – ĐH SPKT TPHCM an USART_DeInit(USART1); USART_InitStruct.USART_BaudRate = BaudRate; USART_InitStruct.USART_WordLength=USART_WordLength_8b; USART_InitStruct.USART_StopBits = USART_StopBits_1; USART_InitStruct.USART_Parity = USART_Parity_No; USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlow Control_None; USART_InitStruct.USART_Mode=USART_Mode_Tx|USART_Mode_Rx; USART_Init(USART1, &USART_InitStruct); USART_Cmd(USART1, DISABLE); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStruct); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIOA, &GPIO_InitStruct); USART_DMACmd(USART1, USART_DMAReq_Tx, ENABLE); USART_DMACmd(USART1,USART_DMAReq_Rx, ENABLE); DMA_ITConfig(UART1_TX_DMA_Channel,DMA_IT_TC,ENABLE); DMA_ITConfig(UART1_RX_DMA_Channel,DMA_IT_TC,ENABLE); USART_Cmd(USART1, ENABLE); DMA_Cmd(UART1_RX_DMA_Channel, ENABLE); } void UART3_TX_RX_DMA_Init(uint32_t BaudRate) { GPIO_InitTypeDef GPIO_InitStruct; USART_InitTypeDef USART_InitStruct; DMA_InitTypeDef DMA_InitStruct; NVIC_InitTypeDef NVIC_InitStruct; NVIC_InitStruct.NVIC_IRQChannel=UART3_TX_DMA_Channel_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0; 49 KHOA ĐT CLC – ĐH SPKT TPHCM an NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStruct); NVIC_InitStruct.NVIC_IRQChannel=UART3_RX_DMA_Channel_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1; NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStruct); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); DMA_DeInit(UART3_TX_DMA_Channel); DMA_InitStruct.DMA_PeripheralBaseAddr=(uint32_t)(&(USART3->DR)); DMA_InitStruct.DMA_MemoryBaseAddr=(uint32_t)UART3_TX_Buff; DMA_InitStruct.DMA_BufferSize=(uint32_t)UART3_TX_DMA_Buff_Size; DMA_InitStruct.DMA_DIR = DMA_DIR_PeripheralDST; DMA_InitStruct.DMA_PeripheralInc=DMA_PeripheralInc_Disable; DMA_InitStruct.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStruct.DMA_PeripheralDataSize=DMA_PeripheralDataSize_Byte; DMA_InitStruct.DMA_MemoryDataSize=DMA_MemoryDataSize_Byte; DMA_InitStruct.DMA_Mode = DMA_Mode_Normal; DMA_InitStruct.DMA_Priority = DMA_Priority_VeryHigh; DMA_InitStruct.DMA_M2M = DMA_M2M_Disable; DMA_Init(UART3_TX_DMA_Channel, &DMA_InitStruct); DMA_Cmd(UART3_TX_DMA_Channel, DISABLE); DMA_DeInit(UART3_RX_DMA_Channel); DMA_InitStruct.DMA_PeripheralBaseAddr=(uint32_t)(&(USART3->DR)); DMA_InitStruct.DMA_MemoryBaseAddr=(uint32_t)UART3_RX_Buff; DMA_InitStruct.DMA_BufferSize=(uint32_t)UART3_RX_DMA_Buff_Size; DMA_InitStruct.DMA_DIR = DMA_DIR_PeripheralSRC; DMA_InitStruct.DMA_PeripheralInc=DMA_PeripheralInc_Disable; DMA_InitStruct.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStruct.DMA_PeripheralDataSize=DMA_PeripheralDataSize_Byte; 50 KHOA ĐT CLC – ĐH SPKT TPHCM an DMA_InitStruct.DMA_MemoryDataSize=DMA_MemoryDataSize_Byte; DMA_InitStruct.DMA_Mode = DMA_Mode_Circular; DMA_InitStruct.DMA_Priority = DMA_Priority_VeryHigh; DMA_InitStruct.DMA_M2M = DMA_M2M_Disable; DMA_Init(UART3_RX_DMA_Channel, &DMA_InitStruct); DMA_Cmd(UART3_RX_DMA_Channel, DISABLE); USART_DeInit(USART3); USART_InitStruct.USART_BaudRate = BaudRate; USART_InitStruct.USART_WordLength=USART_WordLength_8b; USART_InitStruct.USART_StopBits = USART_StopBits_1; USART_InitStruct.USART_Parity = USART_Parity_No; USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlow Control_None; USART_InitStruct.USART_Mode=USART_Mode_Tx|USART_Mode_Rx; USART_Init(USART3, &USART_InitStruct); USART_Cmd(USART3, DISABLE); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStruct); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_11; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIOB, &GPIO_InitStruct); USART_DMACmd(USART3, USART_DMAReq_Tx, ENABLE); USART_DMACmd(USART3,USART_DMAReq_Rx,ENABLE); DMA_ITConfig(UART3_TX_DMA_Channel,DMA_IT_TC, ENABLE); DMA_ITConfig(UART3_RX_DMA_Channel,DMA_IT_TC, ENABLE); USART_Cmd(USART3, ENABLE); DMA_Cmd(UART3_RX_DMA_Channel, ENABLE); } void UART1_TX_DMA_SendData(uint16_t Counter) { DMA_SetCurrDataCounter(UART1_TX_DMA_Channel, Counter); 51 KHOA ĐT CLC – ĐH SPKT TPHCM an DMA_Cmd(UART1_TX_DMA_Channel, ENABLE); } void UART3_TX_DMA_SendData(uint16_t Counter) { DMA_SetCurrDataCounter(UART3_TX_DMA_Channel, Counter); DMA_Cmd(UART3_TX_DMA_Channel, ENABLE); } #include "lora.h" uint8_t Button[4]; void Lora_Init(void) { UART3_TX_RX_DMA_Init(115200); } void Lora_RX(void) { if (UART3_RX_Buff[0] == 0xFF) { if (READ_BIT0_OF_BYTE(UART3_RX_Buff[1])) Button[0] = 1; else Button[0] = 0; if (READ_BIT1_OF_BYTE(UART3_RX_Buff[1])) Button[1] = 1; else Button[1] = 0; if (READ_BIT2_OF_BYTE(UART3_RX_Buff[1])) Button[2] = 1; else Button[2] = 0; if (READ_BIT3_OF_BYTE(UART3_RX_Buff[1])) Button[3] = 1; else Button[3] = 0; LED_TOGGLE; } else {} } Code thiết kế giao diện app Blynk #include #include #include #include "define.h" 52 KHOA ĐT CLC – ĐH SPKT TPHCM an BlynkTimer timer; WidgetLED _ir1(VIRTUAL_PIN_IR1); WidgetLED _ir2(VIRTUAL_PIN_IR2); WidgetLED _ir3(VIRTUAL_PIN_IR3); WidgetLED _sw1(VIRTUAL_PIN_SW1); WidgetLED _sw2(VIRTUAL_PIN_SW2); WidgetLED _sw3(VIRTUAL_PIN_SW3); WidgetLED _sw4(VIRTUAL_PIN_SW4); uint8_t ir1, ir2, ir3; uint8_t sw[4]; uint8_t cam_bien_nhiet_do, cam_bien_do_am_khong_khi, cam_bien_hong_ngoai, button, buffer[5], counter; uint8_t temp_set, humid_set, run_mode_, stepper_run_, stepper_mode_, fan_mode_, lamp_mode_, pump_mode_; BLYNK_WRITE(VIRTUAL_PIN_NHIET_DO_CAI) { temp_set = param.asInt(); EEPROM.write(EPR_ADDR_NHIET_DO_CAI, temp_set); EEPROM.commit(); } BLYNK_WRITE(VIRTUAL_PIN_DO_AM_CAI) { humid_set = param.asInt(); EEPROM.write(EPR_ADDR_DO_AM_CAI, humid_set); EEPROM.commit(); } 53 KHOA ĐT CLC – ĐH SPKT TPHCM an BLYNK_WRITE(VIRTUAL_PIN_RUN_MODE) { switch (param.asInt()) { case 1: run_mode_ = 1; break; case 2: run_mode_ = 2; break; } EEPROM.write(EPR_ADDR_RUN_MODE, run_mode_); EEPROM.commit(); } BLYNK_WRITE(VIRTUAL_PIN_STEPPER_RUN) { stepper_run_ = param.asInt(); } BLYNK_WRITE(VIRTUAL_PIN_STEPPER_MODE) { stepper_mode_ = param.asInt(); EEPROM.write(EPR_ADDR_STEPPER_MODE, stepper_mode_); EEPROM.commit(); } BLYNK_WRITE(VIRTUAL_PIN_FAN_MODE) { switch (param.asInt()) { case 1: fan_mode_ = 1; break; case 2: fan_mode_ = 2; break; } EEPROM.write(EPR_ADDR_FAN_MODE, fan_mode_); EEPROM.commit(); } BLYNK_WRITE(VIRTUAL_PIN_LAMP_MODE) { switch (param.asInt()) { 54 KHOA ĐT CLC – ĐH SPKT TPHCM an case 1: lamp_mode_ = 1; break; case 2: lamp_mode_ = 2; break; } EEPROM.write(EPR_ADDR_LAMP_MODE, lamp_mode_); EEPROM.commit(); } BLYNK_WRITE(VIRTUAL_PIN_PUMP_MODE) { switch (param.asInt()) { case 1: pump_mode_ = 1; break; case 2: pump_mode_ = 2; break; } EEPROM.write(EPR_ADDR_PUMP_MODE, pump_mode_); EEPROM.commit(); } void sendSensor() { TX(); RX(); if (READ_BIT0_OF_BYTE(cam_bien_hong_ngoai)) _ir1.off(); else _ir1.on(); if (READ_BIT1_OF_BYTE(cam_bien_hong_ngoai)) _ir2.off(); else _ir2.on(); if (READ_BIT2_OF_BYTE(cam_bien_hong_ngoai)) _ir3.off(); else _ir3.on(); if (READ_BIT0_OF_BYTE(button)) _sw1.off(); else _sw1.on(); if (READ_BIT1_OF_BYTE(button)) _sw2.off(); 55 KHOA ĐT CLC – ĐH SPKT TPHCM an else _sw2.on(); if (READ_BIT2_OF_BYTE(button)) _sw3.off(); else _sw3.on(); if (READ_BIT3_OF_BYTE(button)) _sw4.off(); else _sw4.on(); Blynk.virtualWrite(VIRTUAL_PIN_NHIET_DO_DOC, cam_bien_nhiet_do); Blynk.virtualWrite(VIRTUAL_PIN_DO_AM_DOC, cam_bien_do_am_khong_khi); } void TX(void) { Serial.write(0xFF); Serial.write(temp_set); Serial.write(humid_set); Serial.write(run_mode_); Serial.write(stepper_run_); Serial.write(stepper_mode_); Serial.write(fan_mode_); Serial.write(lamp_mode_); Serial.write(pump_mode_); } void RX(void) { while (Serial.available() > 0) { buffer[counter ++] = (uint8_t)Serial.read(); if (buffer[0] == 0xFF) { cam_bien_nhiet_do = buffer[1]; cam_bien_do_am_khong_khi = buffer[2]; cam_bien_hong_ngoai = buffer[3]; button = buffer[4]; } if (counter == 5) counter = 0; } } void setup() { EEPROM.begin(512); temp_set = EEPROM.read(EPR_ADDR_NHIET_DO_CAI); 56 KHOA ĐT CLC – ĐH SPKT TPHCM an humid_set = EEPROM.read(EPR_ADDR_DO_AM_CAI); run_mode_ = EEPROM.read(EPR_ADDR_RUN_MODE); stepper_mode_ = EEPROM.read(EPR_ADDR_STEPPER_MODE); fan_mode_ = EEPROM.read(EPR_ADDR_FAN_MODE); lamp_mode_ = EEPROM.read(EPR_ADDR_LAMP_MODE); pump_mode_ = EEPROM.read(EPR_ADDR_PUMP_MODE); Serial.begin(115200); Blynk.begin(auth, ssid, pass); Blynk.virtualWrite(VIRTUAL_PIN_NHIET_DO_CAI, temp_set); Blynk.virtualWrite(VIRTUAL_PIN_DO_AM_CAI, humid_set); Blynk.virtualWrite(VIRTUAL_PIN_RUN_MODE, run_mode_); Blynk.virtualWrite(VIRTUAL_PIN_STEPPER_MODE, stepper_mode_); Blynk.virtualWrite(VIRTUAL_PIN_FAN_MODE, fan_mode_); Blynk.virtualWrite(VIRTUAL_PIN_LAMP_MODE, lamp_mode_); Blynk.virtualWrite(VIRTUAL_PIN_PUMP_MODE, pump_mode_); timer.setInterval(1000L, sendSensor); } void loop() { Blynk.run(); timer.run(); } 57 KHOA ĐT CLC – ĐH SPKT TPHCM an an ... ? ?THI? ??T KẾ VÀ THI CƠNG MƠ HÌNH QUẢN LÝ GIÁM SÁT TRANG TRẠI NI GÀ KẾT NỐI INTERNET? ?? nhằm giải vấn đề quản lý việc chăn nuôi, áp dụng kiến thức học để thi? ??t kế mơ hình thí điểm trang trại nuôi gà, ... tài ? ?Thi? ??t kế thi cơng mơ hình quản lí giám sát trang trại ni gà kết nối Internet? ?? Lý chọn trang trại ni gà mơ hình dùng để nghiên cứu, lấy trang trại gà làm thí điểm để phát triển lên trang trại. .. dẫn: PGS.TS NGUYỄN THANH HẢI Ngày nhận đề tài: 17/10/2020 Ngày nộp đề tài: 17/01/2021 Tên đề tài: Thi? ??t kế thi công mơ hình quản lý giám sát trang trại ni gà kết nối internet Các số liệu, tài liệu

Ngày đăng: 02/02/2023, 09:30

Tài liệu cùng người dùng

Tài liệu liên quan