1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thiết kế thi công mô hình quản lý giám sát nuôi trồng thủy hải sản qua internet

79 4 0

Đ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

Thông tin cơ bản

Tiêu đề Thiết Kế Thi Công Mô Hình Quản Lý Giám Sát Nuôi Trồng Thủy Hải Sản Qua Internet
Tác giả Nguyễn Anh Gia Bảo, Huỳnh Hoài Tâm
Người hướng dẫn ThS. Nguyễn Đình Phú
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Tp.Hcm
Chuyên ngành Điện Tử Công Nghiệp
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2017
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 79
Dung lượng 4,56 MB

Cấu trúc

  • 1.pdf

    • Page 1

  • 2.pdf

  • 4 BIA SAU A4.pdf

    • Page 1

Nội dung

TỔNG QUAN VỀ LĨNH VỰC NGHIÊN CỨU

Cùng với sự phát triển của công nghiệp hóa, nông nghiệp đang không ngừng tiến bộ thông qua việc ứng dụng khoa học kỹ thuật và tự động hóa quy trình sản xuất Điều này không chỉ nâng cao chất lượng sản phẩm nông nghiệp mà còn giúp hạ giá thành, giảm lao động và tiết kiệm năng lượng Việc áp dụng tiến bộ khoa học vào sản xuất nông nghiệp là hướng đi đúng đắn để xây dựng nền nông nghiệp hiện đại.

MỤC ĐÍCH VÀ GIỚI HẠN ĐỀ TÀI

Ngày nay, nhu cầu quản lý và giám sát nuôi trồng thủy hải sản ngày càng cao, dẫn đến việc nhóm em thực hiện đề tài “THIẾT KẾ THI CÔNG MÔ HÌNH QUẢN LÝ GIÁM SÁT NUÔI TRỒNG THỦY HẢI SẢN QUA INTERNET” Hệ thống cho phép người dùng điều khiển, nhập dữ liệu và gửi lên web để thuận tiện trong việc quản lý Sử dụng vi xử lý trung tâm STM32F103VET6, mô hình còn tích hợp các cảm biến thu thập dữ liệu và giao tiếp với người dùng qua màn hình LCD 7” cảm ứng điện dung.

NỘI DUNG THỰC HIỆN

- Tìm hiểu hoạt động của các bộ điều khiển thông minh trên thị trường

- Nghiên cứu đƣa ra các giải pháp hoạt động của mạch, thiết kế các khối

- Thiết kế và thi công mạch điều khiển giao tiếp giữa vi xử lý ARM STM32 với màn hình GLCD

- Lắp các cảm biến (cảm biến nhiệt độ, độ ẩm, khí gas)

- Giao tiếp với màn hình 7” cảm ứng điện dung

- Thiết kế giao diện điều khiển qua Internet

- Thiết kế và lập trình thu thập dữ liệu từ các cảm biến

- Thiết kế và lập trình giao tiếp module ESP8266 để nhập và gửi dữ liệu

- Thiết kế và lập trình web để có thể quản lý theo dõi thông tin dữ liệu

- Chỉnh sửa các lỗi điều khiển, lỗi lập trình của các thiết bị

- Thi công mô hình và cân chỉnh

- Viết báo cáo luận văn

- Báo cáo đề tài tốt nghiệp.

VI ĐIỀU KHIỂN

2.1.1 Bộ xử lý ARM CORTEX – M3

Cấu trúc ARM, viết tắt từ Acorn RISC Machine, là một kiến trúc vi xử lý 32 bit thuộc loại RISC (Máy tính với tập lệnh đơn giản hóa) và được sử dụng phổ biến trong thiết kế nhúng Với đặc điểm tiết kiệm năng lượng, CPU ARM chiếm ưu thế trong các sản phẩm điện tử di động, nơi mà việc giảm thiểu tiêu tán công suất là mục tiêu thiết kế hàng đầu.

Dòng ARM Cortex bao gồm ba cấu hình: cấu hình A cho ứng dụng tinh vi chạy trên hệ điều hành phức tạp như Linux và Android, cấu hình R dành cho hệ thống thời gian thực, và cấu hình M tối ưu cho ứng dụng vi điều khiển tiết kiệm chi phí Bộ vi xử lý Cortex M3, dựa trên cấu trúc ARM7, được thiết kế để đạt hiệu suất cao trong các ứng dụng nhúng tiết kiệm năng lượng và chi phí, như vi điều khiển, hệ thống cơ ô tô, hệ thống kiểm soát công nghiệp và mạng không dây Khác với ARM7 sử dụng kiến trúc Von Neumann, Cortex-M3 áp dụng kiến trúc Harvard với bộ nhớ chương trình và bộ nhớ dữ liệu tách biệt, cùng với nhiều bus cho phép thực hiện các thao tác song song, từ đó nâng cao hiệu suất của chip.

Bộ xử lý Cortex – M3 là một vi điều khiển đƣợc tiêu chuẩn hóa gồm một CPU

Cortex-M3 sở hữu cấu trúc bus 32 bit, hỗ trợ đơn vị xử lý ngắt lồng nhau (NIVC) và hệ thống kiểm lỗi, cùng với tiêu chuẩn bố trí bộ nhớ NIVC cho phép xử lý các ngắt lồng nhau với độ trễ chỉ sáu chu kỳ xung nhịp nhờ phương thức "tail chain" Trong quá trình lưu trữ dữ liệu lên vùng nhớ stack, ngắt có mức ưu tiên cao hơn có thể cạnh tranh mà không bị trì hoãn Hệ thống ngắt còn tích hợp chế độ tiết kiệm năng lượng, cho phép CPU tự động chuyển sang chế độ này sau khi thoát khỏi ngắt Cortex-M3 hỗ trợ hai chế độ hoạt động: Thread và Handler, mỗi chế độ có vùng stack riêng, giúp phát triển phần mềm phức tạp và hỗ trợ hệ điều hành thời gian thực (RTOS) Lõi Cortex còn có timer 24 bit tự động nạp lại, cung cấp ngắt timer cho RTOS Dòng Cortex hỗ trợ tập lệnh ARM Thumb-2, kết hợp giữa tập lệnh 16 bit và 32 bit, tối ưu hóa hiệu suất và mật độ mã chương trình, cho phép ứng dụng viết bằng ngôn ngữ C mà không cần khởi động bằng Assembler như ARM7 và ARM9.

Hình 2.1: Cấu trúc vi điều khiển Cortex - M3

STMicroelectronics đã giới thiệu 4 dòng vi điều khiển dựa trên ARM7 và ARM9, tuy nhiên, STM32 được coi là một bước tiến quan trọng về chi phí và hiệu suất, với giá chỉ gần 1 Euro cho số lượng lớn STM32 thực sự là một thách thức đáng kể đối với các vi điều khiển 8 và 16 bit truyền thống Dòng STM32 đầu tiên bao gồm 14 biến thể khác nhau, được phân thành hai nhóm: dòng Performance với tần số hoạt động của CPU lên tới

Tần số hoạt động của 72Mhz và dòng Access đạt đến 36 Mhz, với các biến thể STM32 trong hai nhóm này hoàn toàn tương thích về cách bố trí chân và phần mềm Ngoài ra, kích thước bộ nhớ FLASH ROM có thể lên tới 128K và 20K SRAM.

2.1.2.1 Cấu trúc hệ thống và bộ nhớ a Hệ thống chính bao gồm:

+ Cortex ™-M3 lõi DCode bus (D-bus) và hệ thống bus (S-bus)

- AHB đến APB (AHB2APBX), kết nối tất cả các thiết bị ngoại vi APB

Hình 2 2: Cấu trúc hệ thống

- ICode bus: kết nối bus lệnh của Cortex - M3 tới bộ nhớ FLASH

- DCode bus và system bus: kết nối hệ thống bus của nhân Cortex – M3 tới ma trận bus (Bus Matrix)

Bus DMA kết nối giao diện APH của DMA với các ma trận bus, giúp điều khiển bus ICode, bus DCode, SRam và các thiết bị ngoại vi.

- AHB/APB bridges: kết nối đồng bộ giữa AHB tới 2 bus APB1 và APB2 Trong đó tốc độ lớn nhất của bus APB1 là 36 Mhz còn APB2 là 72 Mhz

Cả nhân Cortex và DMA đều hoạt động như bus chủ, với bộ phân xử quyết định quyền truy cập vào SRAM, APB1 và APB2 trong các tác vụ xử lý song song Bộ phân xử đảm bảo rằng 2/3 thời gian truy cập được dành cho bộ điều khiển DMA và 1/3 thời gian còn lại dành cho nhân Cortex.

Bộ nhớ chương trình, bộ nhớ dữ liệu, thanh ghi và cổng I/O được tổ chức trong không gian 4GB, bắt đầu từ địa chỉ 0x00000000 SRAM khởi đầu từ địa chỉ 0x20000000, với toàn bộ SRAM nội điều được bố trí tại điểm khởi đầu của vùng bit band.

Vùng nhớ thiết bị ngoại vi bắt đầu từ địa chỉ 0x40000000, trong khi các thanh ghi điều khiển của nhân Cortex được định vị từ địa chỉ 0xE0000000.

Vùng nhớ dành cho FLASH được chia thành ba phần: User Flash bắt đầu từ địa chỉ 0x00000000, tiếp theo là vùng nhớ hệ thống (system Memory) có kích thước 4Kbytes, nơi thường được cài đặt bootloader Cuối cùng, vùng nhớ nhỏ từ địa chỉ 0x1FFFFF80 chứa thông tin cấu hình cho STM32 Bootloader được sử dụng để tải chương trình qua cổng UART1 và có chứa vùng User Flash Để kích hoạt bootloader, người dùng cần thiết lập chân BOOT0 ở mức điện áp thấp và BOOT1 ở mức cao Khi STM32 khởi động, bootloader sẽ được thực thi thay vì chương trình của người dùng ở User Flash ST cung cấp một chương trình cho PC cho phép ghi và xóa vùng nhớ ở User Flash, đồng thời có thể cấu hình bootpins để đưa SRAM vào địa chỉ 0x00000000, giúp tăng tốc độ tải chương trình và giảm số lần ghi vào Flash.

2.1.2.2 Reset And Clock Control a Bộ Reset của vi điều khiển:

STM32 có nhiều nguồn Reset khác nhau ngoài đường Reset bên ngoài, bao gồm các bộ Watchdogs nội, Reset qua NIVC, Reset mở/tắt nguồn nội và mạch phát hiện điện áp nguồn thấp Khi tín hiệu Reset xuất hiện, người dùng có thể đọc một nhóm cờ trong thanh ghi kiểm soát và trạng thái RCC để xác định nguyên nhân gây ra Reset Trạng thái của các cờ này sẽ tồn tại cho đến khi hệ thống được cấp nguồn trở lại hoặc cho đến khi người dùng thiết lập bit Remove Reset.

Hình 2.3:Mạch Reset b Xung Clock của vi điều khiển:

Có ba nguồn xung chính đƣợc sử dụng trong hệ thống:

- Bộ giao động nội HIS

- Bộ giao động ngoại HS

Có thể sử dụng nguồn xung khác cho RTC, bao gồm dao động nội tần số thấp 40kHz cho các chức năng như Watchdog và Auto Wakeup, hoặc tần số 32,768kHz từ tinh thể thạch anh gắn ngoài cung cấp cho bộ thời gian thực.

Trong các ứng dụng xung nhịp, bộ xử lý Cortex và các thiết bị ngoại vi thường sử dụng một dao động thạch anh bên ngoài kết nối qua các chân HSE Hệ thống tạo xung nhịp này bao gồm một khối CSS để giám sát dao động thạch anh bên ngoài Nếu phát hiện vấn đề với dao động thạch anh, hệ thống sẽ tự động chuyển sang sử dụng dao động thạch anh nội HIS 8MHz.

Hình 2.4: Bộ nguồn xung bên ngoài

2.1.2.3 GPIO và AFIO a GPIO của vi điều khiển

STM32VET6 là một vi điều khiển với 100 chân, trong đó có 80 chân có khả năng điều khiển đa năng Mỗi chân này có thể được cấu hình như GPIO hoặc thực hiện các chức năng thay thế khác, đồng thời cũng có thể hoạt động như nguồn ngắt ngoại.

Các cổng I/O được đánh số từ A đến D với mức điện áp tiêu thụ 5V, cho phép cấu hình nhiều chân như input/output để tương tác với các thiết bị ngoại vi như UART hoặc I2C Mỗi port I/O có hai thanh ghi cấu hình 32 bit (GPIOx_CRL, GPIOx_CRH) và hai thanh ghi dữ liệu 32 bit (GPIOx_IDR, GPIOx_ODR), cùng với thanh set/reset 32 bit (GPIOx_BSRR) và thanh ghi reset 16 bit (GPIOx_BRR) Tùy thuộc vào ứng dụng, GPIO có thể được cấu hình thành ngõ vào, ngõ ra, ngõ vào tương tự, hoặc vừa ngõ vào vừa ngõ ra Dưới đây là bảng cấu hình của GPIO.

Configuration mode CNF1 CNF0 MOD0 MOD1

01: output speed 10 MHz 10: output speed 2 MHz 11: output speed 50 MHz

AF Open-drain 1 1 b AFIO của vi điều khiển

MODULE LCD TFT

Module ER-TFTM070-4V2.1 là phiên bản nâng cấp của module ER-TFTM070, tích hợp màn hình LCD 7 inch và tấm cảm ứng điện dung Với độ phân giải 800x480 và vi mạch điều khiển SSD1963, module này cung cấp hình ảnh sắc nét, rõ ràng cùng góc nhìn rộng.

Hình 2.12: Màn hình LCD TFT

Module hỗ trợ nhiều chuẩn giao tiếp song song như 6800, 8080 với các độ rộng 8 bit, 9 bit, 16 bit, 18 bit và 24 bit, đồng thời tích hợp khe cắm thẻ Micro SD Tấm cảm ứng được điều khiển bởi IC FT5206, hoạt động với nguồn áp thấp từ 1,5V đến 5,25V và tiêu thụ điện năng dưới 0,75 mW tại 2,7V với tỉ lệ lấy mẫu lên đến 125 kHz Dòng tiêu thụ ở mức điện áp 3.3V là 480mA và ở 5V là 300mA, làm cho mạch này trở thành lựa chọn lý tưởng cho các nguồn pin Sản phẩm được ứng dụng rộng rãi trong việc điều khiển và giám sát màn hình cảm ứng cũng như trong các thiết bị đo lường và thiết bị đầu cuối.

CẢM BIẾN NHIỆT ĐỘ ĐỘ ẨM DHT11

Cảm biến DHT11 là thiết bị đo nhiệt độ và độ ẩm, được phát triển để thay thế dòng SHT1x trong các ứng dụng không yêu cầu độ chính xác cao.

Hình 2.13: Cảm biến độ ẩm DHT11

- DHT11 có cấu tạo 4 chân nhƣ hình Cảm biến sử dụng giao tiếp theo chuẩn

+ Sai số nhiệt độ: ±2ºC

Sơ đồ kết nối vi xử lý:

Hình 2.14: Sơ đồ kết nối vi xử lý

- Để có thể giao tiếp với DHT11 theo chuẩn 1 chân vi xử lý thực hiện theo 2 bước:

+ Gửi tin hiệu muốn đo (Start) tới DHT11, sau đó DHT11 xác nhận lại

+ Khi đã giao tiếp đƣợc với DHT11, Cảm biến sẽ gửi lại 5 byte dữ liệu và nhiệt độ đo đƣợc

Bước 1: Gửi tín hiệu Start

Hình 2.15: Quá trình truyền tín hiệu

+ MCU thiết lập chân DATA là Output, kéo chân DATA xuống 0 trong khoảng thời gian >18ms

Khi lập trình thường để 25ms là phù hợp Khi đó DHT11 sẽ hiểu MCU muốn đo giá trị nhiệt độ và độ ẩm

Chân DATA của DHT11 sẽ duy trì ở mức thấp 80us trước khi được kéo lên cao Qua việc giám sát chân DATA, MCU có thể xác định được tình trạng giao tiếp với DHT11 Khi tín hiệu từ DHT11 chuyển sang mức cao, quá trình giao tiếp giữa MCU và DHT11 được hoàn tất.

Bước 2: Đọc giá trị trên DHT11

- DHT11 sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 byte Trong đó:

+ Byte 1: Giá trị phần nguyên của độ ẩm (RH%)

+ Byte 2: Giá trị phần thập phân của độ ẩm (RH%)

+ Byte 3: Giá trị phần nguyên của nhiệt độ (TC)

+ Byte 4: Giá trị phần thập phân của nhiệt độ (TC)

- Nếu Byte 5 = (8 bit) (Byte1 +Byte2 +Byte3 + Byte4) thì giá trị độ ẩm và nhiệt độ là chính xác, nếu sai thì kết quả đo không có nghĩa

Sau khi giao tiếp đƣợc với DHT11, DHT11 sẽ gửi liên tiếp 40 bit 0 hoặc 1 về MCU, tương ứng chia thành 5 byte kết quả của nhiệt độ và độ ẩm

- MCU đƣa chân DATA lên 1, sau đó thiết lập lại là chân đầu vào

- Sau khoảng 20-40us, DHT11 sẽ kéo chân DATA xuống thấp Nếu >40us mà chân DATA không đƣợc kéo xuống thấp nghĩa là không giao tiếp đƣợc với DHT11

Sau khi tín hiệu từ DHT11 được đưa về 0, chúng ta chờ chân DATA của MCU kéo lên 1 Nếu chân DATA ở mức 1 trong khoảng 26-28 micro giây, ta xác định đó là bit 0; ngược lại, nếu nó ở mức 1 trong 70 micro giây, ta xác định đó là bit 1 Trong lập trình, chúng ta sẽ bắt sườn lên của chân DATA và sau đó thực hiện delay 50 micro giây Nếu giá trị đo được là 0, ta ghi nhận bit 0; nếu giá trị đo được là 1, ta ghi nhận bit 1 Quy trình này tiếp tục để đọc các bit tiếp theo.

CẢM BIẾN KHÍ CO MQ2

Cảm biến MQ2 là thiết bị phát hiện khí, chuyên dùng để nhận diện các khí có khả năng gây cháy Được chế tạo từ chất bán dẫn SnO2, cảm biến này có độ nhạy thấp trong không khí sạch Tuy nhiên, khi tiếp xúc với môi trường có chất gây cháy, độ nhạy của nó sẽ thay đổi nhanh chóng Nhờ vào đặc điểm này, MQ2 được tích hợp vào mạch điện đơn giản để chuyển đổi độ nhạy thành tín hiệu điện áp.

Khi môi trường được giữ sạch, điện áp đầu ra của cảm biến MQ2 sẽ thấp Tuy nhiên, khi nồng độ khí gây cháy xung quanh tăng lên, giá trị điện áp đầu ra cũng sẽ tăng theo.

Cảm biến MQ2 hoạt động hiệu quả trong môi trường khí hóa lỏng như LPG, H2, CH4 và các khí dễ cháy khác Với mạch thiết kế đơn giản và chi phí thấp, MQ2 được ứng dụng phổ biến trong cả ngành công nghiệp và dân dụng.

Hình 2.18: Hình dáng của cảm biến MQ-2

Hình 2.19: Sơ đồ chân cảm biến MQ-2

Sơ đồ mạch điện của cảm biến MQ-2

Hình 2.20: Sơ mạch điện của MQ-2

+ Aout: điện áp ra tương tự Nó chạy từ 0.3 đế 4.5V, phụ thuộc vào nồng độ khí xung quanh cảm biến MQ-2

+ Dout: điện áp ra số, giá trị 0 hoặc 1 phụ thuộc vào điện áp tham chiếu và nồng độ khí mà MQ2 đo đƣợc

Chân ra số Dout rất hữu ích cho việc kết nối các ứng dụng đơn giản mà không cần vi điều khiển Chỉ cần điều chỉnh giá trị biến trở đến nồng độ mong muốn để cảnh báo Khi nồng độ khí MQ-2 đo được thấp hơn mức cho phép, Dout sẽ bằng 1 và LED sẽ tắt Ngược lại, nếu nồng độ khí vượt quá mức cho phép, Dout sẽ bằng 0 và đèn LED sẽ sáng.

- Ta có thể ghép nối vào mạch Relay để điều khiển bật tắt đèn, còi hoặc thiết bị cảnh báo khác.

GIỚI THIỆU VỀ MODULE ESP8266

ESP, viết tắt của Electronic Stability Program, là một module ESP 8266 với bộ xử lý 32 bit, dựa trên giao thức TCP/IP Chip này được thiết kế cho chuẩn kết nối mới, cho phép lưu trữ ứng dụng và xử lý các kết nối WiFi Nó có khả năng hoạt động như một máy chủ hoặc cầu nối trung gian, đồng thời có thể tải dữ liệu từ internet.

Trong mạch có hai chân đầu ra là Aout và Dout, trong đó:

Module ESP8266 v1 là một thiết bị truyền nhận WiFi đơn giản dựa trên chip ESP8266 SoC của hãng Espressif, thường được sử dụng trong các ứng dụng IoT Với firmware đã được nạp sẵn, module này cho phép người dùng giao tiếp dễ dàng với WiFi thông qua lệnh AT qua giao tiếp UART, với baudrate mặc định là 9600.

- Hỗ trợ chuẩn Wifi 802.11 b/g/n Wi-Fi 2.4 GHz, hỗ trợ WPA/WPA2

- Wi-Fi Direct (P2P), soft-AP

- Chuẩn điện áp hoạt động: 3.3V

- Chuẩn giao tiếp nối tiếp UART với tốc độ Baud lên đến 115200 Có 3 chế độ hoạt động: Client, Access Point, Both Client and Access Point

- Hỗ trợ các chuẩn bảo mật nhƣ OPEN, WEP, WPA_PSK, WPA2_PSK, WPA_WPA2_PSK Hỗ trợ cả 2 giao tiếp TCP và UDP

- Làm việc nhƣ 1 Access Point có thể kết nối với 5 Device

- Công suất đầu ra 19.5dBm ở chế độ 802.11b

- Tích hợp giao thức TCP / IP stack

2.5.3 Chân kết nối của ESP8266

Hình 2.22: Sơ đồ chân ESP 8266 v1

- VCC: 3.3V (max 3.5V) Chân cấp nguồn (lên đến 300mA)

- UTXD: Chân Tx của giao thức UART, kết nối đến chân Rx của vi điều khiển (3.3V level)

- URXD: Chân Rx của giao thức UART, kết nối đến chân Tx của vi điều khiển (3.3V level)

RST: chân reset, (LOW = Reset active), kéo xuống mass để rest

CH_PD là chân kích hoạt chip, được sử dụng cho chế độ Flash Boot; khi ở mức cao (HI), nó kích hoạt chế độ khởi động và Wifi, còn khi ở mức thấp (LOW), nó tắt nguồn Nếu chân này được kéo lên mức cao, module sẽ bắt đầu thu phát Wifi, ngược lại, nếu ở mức thấp, module sẽ ngừng phát Wifi Do ESP 8266 tiêu thụ dòng lớn khi khởi động, nên chúng ta giữ chân này ở mức 0V trong quá trình khởi động hệ thống Sau 2 giây, kéo chân CH_PD lên 3.3V để đảm bảo module hoạt động ổn định.

- GPIO0: Kéo xuống thấp (GND) để vào chế độ upgrade firmware

2.5.4 Chức năng của Module ESP8266

Module ESP8266 là một sản phẩm công nghệ giá cả phải chăng nhưng mang lại hiệu suất cao Nó được ưa chuộng cho các ứng dụng liên quan đến internet và wifi, đồng thời là sự thay thế lý tưởng cho các module RF khác trong việc truyền nhận dữ liệu.

Module ESP8266 có chức năng chính sau:

- Wifi 2,4 Ghz, hỗ trợ WPA/WPA2

- Chuẩn giao tiếp UART với tốc độ Baud lên đến 115200

- Có ba chế độ hoạt động : Client/Acesspoint,Both

- Hỗ trợ các chuẩn bảo mật nhƣ : WEP, WPA_PSK, WPA2_PSK

ESP8266 là một chip tích hợp cao, được thiết kế cho thế giới Internet of Things (IoT), cung cấp giải pháp kết nối mạng Wi-Fi đầy đủ và khép kín Chip này cho phép lưu trữ các ứng dụng và giảm tải chức năng kết nối mạng từ bộ xử lý ứng dụng Với khả năng xử lý và lưu trữ mạnh mẽ, ESP8266 có thể tích hợp với các bộ cảm biến, vi điều khiển và thiết bị ứng dụng khác thông qua GPIOs, đồng thời tiết kiệm chi phí và diện tích PCB.

2.5.5 Sử dụng Arduino IDE để lập trình cho ESP8266

- Cài đặt với Boards Manager

+ Cài phiên bản mới nhất của Arduino

+ Khởi động Arduino sau đó chọn File > Preferences

To set up the ESP8266 platform, first, add the URL `http://arduino.esp8266.com/stable/package_esp8266com_index.json` to the Additional Board Manager URLs in the preferences window and click OK Then, access the Boards Manager by navigating to Tools > Board in the menu and install the ESP8266 platform Finally, select the appropriate ESP8266 board from the Tools > Board menu based on your available hardware.

Để kết nối với mạng Wi-Fi, trước tiên bạn cần viết chương trình đầu tiên sau khi đã cài đặt thành công và hiển thị giao diện cần thiết Sau đó, hãy tải chương trình này xuống ESP8266 để thực hiện kết nối.

- Lập trình: Chương trình khá đơn giản, chỉ là kết nối với Wifi, in ra địa chỉ

IP, nếu không kết nối đƣợc thì in ra dấu chấm (.)

#include constchar* host ="giabaonguyenanh.890m.com"; constchar* ssid ="Giabao";//your wifi name constchar* password ="06520199";// your wifi password constchar* myHostname ="Nguyenanhgiabao";// your wifi password

Serial.begin(115200); delay(10); connectWifi(); delay(500);

String data = Serial.readStringUntil('\r')+"\r\n"; constint httpPort =80; if(!client.connect(host, httpPort))

//Serial.println("connection failed"); return;

//Serial.println(line); client.stop();

} if(WiFi.status()!= WL_CONNECTED)

WiFi.hostname(myHostname); while(WiFi.status()!= WL_CONNECTED)

- Nạp chương trìnhxuống ESP8266: Chọn board cho chính xác bằng cách vào menu chọn Tool > Port

+ Nếu dùng board ESP8266V1 thì chọn Generic ESP8266 Module

+ Nếu dùng board ESP8266V7 hoặc ESP8266V12

Sau là chọn cổng COM (Tool > Port

Hình 2.24: Nạp chương trình xuống ESP 8266

Cuối cùng là biên dịch và nạp chương trình xuống,nếu có thông báo Done uploading nhƣ hình là thành công

Hình 2 25:Thông báo upload thành công

Hình 2.26: Thông báo đã kết nối thành công

Sau khi thực hiện theo các bước 1 mở terminal, bước 2 chọn baud (ở đây là 115200) thì sẽ có kết quả là thông báo kết nối và địa chỉ IP là 192.168.1.103

TÌM HIỂU VỀ PHP

PHP (Hypertext Preprocessor) là ngôn ngữ lập trình kịch bản chạy trên server để tạo mã HTML cho client Với nhiều phiên bản phát triển, PHP được tối ưu hóa cho ứng dụng web, nổi bật với cú pháp rõ ràng, tốc độ nhanh và dễ học, giúp nó trở thành một trong những ngôn ngữ lập trình web phổ biến và được ưa chuộng nhất hiện nay.

PHP hoạt động trên môi trường máy chủ web và quản lý dữ liệu thông qua hệ quản trị cơ sở dữ liệu, thường kết hợp với Apache, MySQL và hệ điều hành Linux, tạo thành bộ công nghệ LAMP.

Apache là phần mềm máy chủ web chịu trách nhiệm nhận yêu cầu từ trình duyệt và chuyển giao cho PHP để xử lý, sau đó gửi kết quả trở lại trình duyệt MySQL, giống như các hệ quản trị cơ sở dữ liệu khác như Postgres, Oracle và SQL Server, đóng vai trò lưu trữ và truy vấn dữ liệu hiệu quả.

Linux là hệ điều hành mã nguồn mở phổ biến, đặc biệt được ưa chuộng cho các webserver Các phiên bản nổi bật nhất của Linux bao gồm RedHat Enterprise Linux và Ubuntu.

Ngôn ngữ lập trình web bằng PHP có các ƣu điểm nhƣ sau:

- PHP chạy trên nhiều nền tảng khác nhau: Windows, Linux, MacOS X, Android,

- PHP tương thích với hầu như tất cả các máy chủ sử dụng hiện nay: Apache, IIS,

- PHP Hỗ trợ rất nhiều cơ sở dữ liệu: MySQL, MS SQL server, Redis, MongoDB, Oracle,

- PHP là mã nguồn mở, download miễn phí

- PHP có cộng đồng mạnh mẽ, có rất nhiều tài liệu để học

- PHP chạy hiệu quả ở phía máy chủ

Khi người dùng truy cập vào trang PHP, Web Server sẽ kích hoạt PHP Engine để xử lý và thông dịch mã nguồn PHP, sau đó trả về kết quả cho người dùng.

Hình 2.27: Cách thức hoạt động của PHP

Trong PHP, cú pháp mở và đóng đoạn code phổ biến nhất là sử dụng để kết thúc.

//Code đƣợc viết tại đây

Trong PHP, comment được sử dụng để chèn các dòng chú thích vào mã nguồn, giúp giải thích hoặc đánh dấu các phần của đoạn code mà không hiển thị trên trình duyệt Việc sử dụng comment không chỉ giúp tăng cường khả năng hiểu biết về mã nguồn mà còn hỗ trợ trong việc tìm kiếm và chỉnh sửa nội dung sau này một cách dễ dàng.

// Đây là cách comment 1 dòng

# Đây cũng là cách comment 1 dòng /* Đây là cách comment nhiều dòng

Có thể viết bao nhiêu dòng chú thích cũng đƣợc.*/

PHP có hai cách để xuất nội dung ra trình duyệt là echo và print Cả hai phương pháp này đều dùng để hiển thị nội dung, nhưng có sự khác biệt: echo không trả về giá trị và có thể chứa nhiều tham số, trong khi print trả về một giá trị và chỉ nhận một tham số Ngoài ra, echo có hiệu suất xử lý nhanh hơn so với print.

Biến trong PHP được định nghĩa bằng ký tự $ theo sau là tên biến, bắt đầu bằng chữ cái hoặc dấu gạch dưới, không được bắt đầu bằng chữ số Tên biến có thể chứa chữ cái (viết thường hoặc viết hoa), số và dấu gạch dưới Lưu ý rằng PHP phân biệt chữ hoa và chữ thường, vì vậy $name và $Name là hai biến khác nhau.

Hằng là một giá trị không thay đổi trong quá trình lập trình, thường giữ nguyên suốt mã nguồn Tên của hằng bắt đầu bằng ký tự hoặc dấu gạch ngang và có giá trị toàn cục mặc định Cấu trúc khai báo hằng được thực hiện qua cú pháp: define(tên, giá trị, đúng/sai).

Kiểu dữ liệu trong PHP: PHP có tất cả 7 kiểu dữ liệu Integer, Float, String, Array, Boolean, Object, NULL

- Object: Opject là một kiểu dữ liệu lưu trữ dữ liệu và thông tin của đối tƣợng

Null là một kiểu dữ liệu đặc biệt trong lập trình, với giá trị duy nhất là null Khi một biến được tạo ra mà không có giá trị cụ thể nào, nó sẽ tự động được gán giá trị null.

PHP không phân biệt khoảng trắng nhƣng phân biệt kiểu chữ

Lệnh trong PHP là các biểu thức đƣợc kết thúc bởi dấu chấm phẩy (;)

Các lệnh if, elseif …else và switch trong đƣợc sử dụng để điều khiển luồng dựa trên các điều kiện khác nhau

Lệnh if else cho phép bạn thực hiện một đoạn mã khi điều kiện là true và một đoạn mã khác khi điều kiện không đúng.

{phần code thực thi nếu điều kiện đúng}

Kiểu dữ liệu integer (int) là loại dữ liệu số nguyên, không bao gồm số thập phân, với ít nhất một ký tự Giá trị của kiểu dữ liệu này nằm trong khoảng từ -2,147,483,648 đến 2,147,483,647.

- Float: Kiểu dữ liệu float là kiểu số thực, là dạng số thập phân hay dạng lũy thừa

- String: Kiểu dữ liệu string là kiểu dạng chuỗi các ký tự, đƣợc chứa bên trong dấu ngoặc đơn hoặc ngoặc kép

- Array: Kiểu dữ liệu array là kiểu dữ liệu lưu trữ nhiều giá trị trong một biến duy nhất

- Boolean: Kiểu dữ liệu boolean là kiểu dữ liệu đại diện cho 2 trạng thái đúng (true) và sai (false), Boolean thường được dùng để trong điều kiện kiểm tra

Else{phần code thực thi nều điều kiện sai}

- Lệnh elseif: Đƣợc sử dụng với lệnh if…else để thực thi một tập hợp code nếu một trong các điều kiện là true

+ Cú pháp: if (điều_kiện_1)

{phần code này được thực thi nếu điều kiện 1 là true;} elseif (điều_kiện_2)

{phần code này được thực thi nếu điều kiện 2 là true;} else

{phần code này được thực thi nếu các điều kiện là false;}

Lệnh switch là một công cụ hữu ích trong lập trình, cho phép bạn lựa chọn một trong các khối mã để thực thi Việc sử dụng lệnh switch giúp đơn giản hóa mã nguồn và tránh việc phải viết các khối if…elseif…else dài dòng.

+ Cú pháp: switch (biểu_thức)

{ case nhãn_1: phần code này được thực thi nếu biểu_thức = nhãn_1 break; case nhãn_2: phần code này được thực thi nếu biểu_thức = nhãn_2 break;

default: phần code này được thực thi nếu biểu_thức là khác với nhãn_1, nhãn_2,

Vòng lặp trong PHP đƣợc sử dụng để thực thi cùng một khối code một số lần nào đó đã xác định PHP hỗ trợ 4 kiểu vòng lặp sau:

- Vòng lặp for : Lệnh for được sử dụng khi bạn biết trước bao nhiêu lần bạn muốn thực thi một lệnh hoặc một khối lệnh trong PHP

+ Cú pháp: for (khởi_tạo; điều_kiện; tăng_giảm_giá_trị)

{ phần code để thực thi

} khởi_tạo đƣợc sử dụng để thiết lập giá trị bắt đầu cho biến đếm số lần lặp

Một biến có thể đƣợc khai báo ở đây cho mục đích này và tên truyền thống của nó là $i

Vòng lặp while trong PHP cho phép thực thi một khối mã khi điều kiện được xác định là true Khi điều kiện này vẫn đúng, khối mã sẽ tiếp tục được thực hiện Sau mỗi lần thực thi, điều kiện sẽ được kiểm tra lại, và vòng lặp sẽ tiếp tục cho đến khi điều kiện trở thành false Cú pháp của vòng lặp while là: while (điều_kiện).

{ phần code được thực thi nếu điều kiện là true

THIẾT KẾ HỆ THỐNG

3.1.1 Sơ đồ khối hệ thống

Theo mục đích, nhiệm vụ đề tài của nhóm đã thiết kế sơ đồ khối hệ thống nhƣ hình 3.1

KHỐI HIỂN THỊ KHỐI CẢNH

Hình 3.1: Sơ đồ khối của hệ thống

- Khối điều khiển ARM Cortex M3 STM32F103VET6 có chức năng nhận, xử lý tín hiệu từ cảm biến, điều khiển màn hình GLCD

- Khối hiển thị dùng GLCD 7” hiển thị nhiệt độ, khí gas, độ ẩm thời gian, giao tiếp với người dùng

- Khối cảm biến nhiệt độ, độ ẩm, khí gas: cập nhật giá trị từ môi trường

- Khối nguồn: Cung cấp nguồn cho toàn bộ mạch hoạt động

- Khối Wifi: dùng để truyền dữ liệu lên web khi có yêu cầu từ vi điều khiển

- Khối cảnh báo: có chức năng cảnh báo khi phát hiện nồng độ khí gas vƣợt mức cho phép

Màn hình màu cảm ứng 7 inch với độ phân giải 800x480 pixel sử dụng chip điều khiển SSD1963 tích hợp sẵn, cho phép hiển thị và giao tiếp hiệu quả với người dùng.

- Hiển thị nhiệt độ, thời gian, độ ẩm,…

- Giao tiếp với người dùng , thao tác lệnh ngay trên màn hình

Sơ đồ kết nối cảm ứng đƣợc trình bày ở hình, các tín hiệu giao tiếp với vi điều khiển gồm có :

- TP_CS dùng chân PC6

- TP_INT dùng chân PC5

- TP_SCL dùng chân PB10

- TP_SDA dùng chân PB11

C4 là một connector tích hợp khả năng giao tiếp cảm ứng và hiển thị trên Graphic LCD Vi điều khiển sử dụng GPIOE với 16 bit để thực hiện giao tiếp, trong đó các bit điều khiển LCD_CS, LCD_RS, LCD_WR, và LCD_RD được kết nối với các chân PD12, PD13, PD14, và PD15.

Hình 3.2: Sơ đồ kết nối chân GLCD với vi điều khiển

Sử dụng module cảm biến DHT -11 và khí gas MQ - 2 để thu thập dữ liệu từ môi trường

Hình 3.3: Sơ đồ kết nối của cảm biến DHT11 và MQ2 với vi điều khiển

- Để có thể giao tiếp với DHT11 theo chuẩn 1 chân vi xử lý thực hiện theo 2 bước:

+ Gửi tin hiệu muốn đo tới DHT11, sau đó DHT11 xác nhận lại

+ Khi đã giao tiếp đƣợc với DHT11, Cảm biến sẽ gửi lại 5 byte dữ liệu và nhiệt độ đo đƣợc

Khi nồng độ khí được cảm biến MQ-2 đo được thấp hơn mức cho phép, tín hiệu Dout sẽ là 1, dẫn đến việc đèn LED tắt Ngược lại, khi nồng độ khí vượt quá giới hạn cho phép, tín hiệu Dout sẽ chuyển thành 0, khiến đèn LED sáng lên.

Sử dụng adapter5V-3A để cấp nguồn cho hệ thống

Nguồn vào 5V cho nên để cấp nguồn cho vi điều khiển và module ESP8266 phải qua IC giảm áp AMS1117 thành 3.3V

Hình 3.4: Khối nguồn cung cấp cho vi điều khiển và ESP8266

Dùng buzzer để cảnh báo với người dùng khi nồng độ khí gas vượt mức cho phép

Hình 3.5: Sơ đồ kết nối chân Buzzer với vi điều khiển

Khi nồng độ khí MQ-2 thấp hơn mức cho phép, tín hiệu Dout sẽ là 1 và Buzzer sẽ tắt Ngược lại, khi nồng độ khí MQ-2 vượt quá mức cho phép, tín hiệu Dout sẽ là 0 và Buzzer sẽ hoạt động.

Sử dụng ESP8266 để truyền dữ liệu lên web

Hình 3.6: Sơ đồ kết nối ESP8266 với vi điều khiển

Chip STM32F103VET6 là lựa chọn lý tưởng cho các ứng dụng điều khiển nhờ vào khả năng cung cấp 80 ngõ I/O, hiệu năng mạnh mẽ và chi phí hợp lý Với kiến trúc 32 bit ARM Cortex M3, chip này sở hữu bộ nhớ Flash lên đến 512Kb và bộ nhớ RAM 64Kb, đáp ứng tốt nhu cầu xử lý của các dự án điện tử.

Hình 3.7: Sơ đồ kết nối với vi điều khiển.

LƯU ĐỒ GIẢI THUẬT CHƯƠNG TRÌNH

- Lưu đồ chương trình chính:

Khởi tạo thƣ viện, khai báo các biến

Khởi tạo LCD, ngắt, cảm biến,realtime

Cập nhật giá trị thời gian, giá trị cảm biến

Hiển thị Tab Home Đúng

Sai Đúng Đúng Đúng Đúng

Cập Nhật Trạng Thái Buzzer

Hình 3.8: Lưu đồ chương trình chính

Khi mạch được cấp nguồn, vi xử lý sẽ cập nhật và khởi tạo các thư viện, biến và chương trình con Sau đó, nó đọc các giá trị từ cảm biến nhiệt độ, độ ẩm, khí gas và thời gian thực để hiển thị trên giao diện Vi xử lý tiếp tục chờ người dùng nhấn vào các tab để chuyển sang xử lý các chức năng tương ứng, và quá trình này lặp lại liên tục.

- Lưu đồ hiển thị tab Food:

Xóa widget tab cũ Hiển thị widget tab Food

Hình 3.9: Lưu đồ hiện thị tab Food

Khi người dùng chọn tab thực phẩm, bàn phím sẽ xuất hiện để họ nhập dữ liệu và gửi lên website Dữ liệu sẽ được gửi đi khi nhấn phím Enter.

- Lưu đồ hiện thị tab Medicine:

Xóa widget tab cũ Hiển thị widget tab Food

Hình 3.10: Lưu đồ hiện thị tab Medicine

Khi chọn tab Medicine, bàn phím sẽ xuất hiện để người dùng nhập dữ liệu và gửi lên web Dữ liệu sẽ được gửi đi khi nhấn phím enter.

- Lưu đồ hiển thị tab Info:

Xóa widget tab cũ Hiển thị widget tab Food

Hình 3.11: Lưu đồ hiển thị tab Info

Khi tab info được chọn sẽ hiển thị thông tin hướng dẫn sử dụng màn hình.

Ngày đăng: 29/11/2021, 10:39

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] ARM Việt Nam, Cấu trúc cơ bản của STM32_ARM Cortex M3,18/3/2010 Sách, tạp chí
Tiêu đề: Cấu trúc cơ bản của STM32_ARM Cortex M3
[3] Bùi Tấn Tài, Huỳnh Thanh Hiếu, Nghiên cứu kít vi điều khiển STM32F103VET6.Tiếng Anh Sách, tạp chí
Tiêu đề: Nghiên cứu kít vi điều khiển STM32F103VET6
[4] STM32 Datasheet Khác
[5] Datasheet ESP8266 Khác
[6] Datasheet SSD1963 Khác
[7] Datasheet FT5206 Khác
[8] Datasheet DHT11 Khác
[9] Datasheet Stellaris Graphis Library Khác

HÌNH ẢNH LIÊN QUAN

Hình 2.1: Cấu trúc vi điều khiển Cortex - M3. - Thiết kế thi công mô hình quản lý giám sát nuôi trồng thủy hải sản qua internet
Hình 2.1 Cấu trúc vi điều khiển Cortex - M3 (Trang 16)
Hình 2. 2: Cấu trúc hệ thống. - Thiết kế thi công mô hình quản lý giám sát nuôi trồng thủy hải sản qua internet
Hình 2. 2: Cấu trúc hệ thống (Trang 18)
Hình 2.3:Mạch Reset. - Thiết kế thi công mô hình quản lý giám sát nuôi trồng thủy hải sản qua internet
Hình 2.3 Mạch Reset (Trang 20)
Hình 2.4: Bộ nguồn xung bên ngoài. - Thiết kế thi công mô hình quản lý giám sát nuôi trồng thủy hải sản qua internet
Hình 2.4 Bộ nguồn xung bên ngoài (Trang 21)
Hình 2.5: Sơ đồ khối của TIMER. - Thiết kế thi công mô hình quản lý giám sát nuôi trồng thủy hải sản qua internet
Hình 2.5 Sơ đồ khối của TIMER (Trang 24)
Hình 2. 6:Chế độ Capture/Compare kênh 1. - Thiết kế thi công mô hình quản lý giám sát nuôi trồng thủy hải sản qua internet
Hình 2. 6:Chế độ Capture/Compare kênh 1 (Trang 25)
Hình 2.7: Dạng sóng Edge-alibned PWM. - Thiết kế thi công mô hình quản lý giám sát nuôi trồng thủy hải sản qua internet
Hình 2.7 Dạng sóng Edge-alibned PWM (Trang 26)
Hình 2.8: Sơ đồ khối SPI. - Thiết kế thi công mô hình quản lý giám sát nuôi trồng thủy hải sản qua internet
Hình 2.8 Sơ đồ khối SPI (Trang 27)
Hình 2.10: Sơ đồ khối I2C. - Thiết kế thi công mô hình quản lý giám sát nuôi trồng thủy hải sản qua internet
Hình 2.10 Sơ đồ khối I2C (Trang 29)
Hình 2.11: Bộ ADC STM32 - Thiết kế thi công mô hình quản lý giám sát nuôi trồng thủy hải sản qua internet
Hình 2.11 Bộ ADC STM32 (Trang 30)
Hình 2.12: Màn hình LCD TFT. - Thiết kế thi công mô hình quản lý giám sát nuôi trồng thủy hải sản qua internet
Hình 2.12 Màn hình LCD TFT (Trang 31)
Hình 2.15: Quá trình truyền tín hiệu. - Thiết kế thi công mô hình quản lý giám sát nuôi trồng thủy hải sản qua internet
Hình 2.15 Quá trình truyền tín hiệu (Trang 33)
Hình 2.17: Tín hiệu mức 1. - Thiết kế thi công mô hình quản lý giám sát nuôi trồng thủy hải sản qua internet
Hình 2.17 Tín hiệu mức 1 (Trang 35)
Hình 2.21: Module ESP8266 v1. - Thiết kế thi công mô hình quản lý giám sát nuôi trồng thủy hải sản qua internet
Hình 2.21 Module ESP8266 v1 (Trang 38)
Hình 2.24: Nạp chương trình xuống ESP 8266. - Thiết kế thi công mô hình quản lý giám sát nuôi trồng thủy hải sản qua internet
Hình 2.24 Nạp chương trình xuống ESP 8266 (Trang 43)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w