TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN NGÀNH KỸ THUẬT ĐIỀU KHIỂN TỰ ĐỘNG HÓA BÀI TẬP LỚN MÔN FPGA VÀ ỨNG DỤNG Thiết kế vườn thông minh điều khiển qua FPGA và đồng bộ trên app điện thoại Giảng viên[.]
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN NGÀNH KỸ THUẬT ĐIỀU KHIỂN TỰ ĐỘNG HÓA
BÀI TẬP LỚN MÔN FPGA VÀ ỨNG DỤNG Thiết kế vườn thông minh điều khiển qua FPGA và đồng bộ
trên app điện thoại
Giảng viên hướng dẫn: TS Nguyễn Đại Dương
Danh sách thành viên nhóm 16:
1 Trần Trọng Dũng 20181431
4 Ninh La Văn Cảnh 20181347
Trang 2MỤC LỤC
CHƯƠNG 1 LỰA CHỌN PHẦN CỨNG 1
1.1 Mục tiêu 1
1.2 Thông tin phần cứng 1
1.2.1 Kit FPGA DE2 1
1.2.2 Cảm biến LM35 2
1.2.3 Cảm biến photodiode quang 3
1.2.4 Cảm biến độ ẩm đất 3
1.2.5 ADC0809 4
1.2.6 ESP8266 5
1.2.7 Blynk 7
1.3 Sơ đồ nguyên lý 9
1.3.1 Khối ADC 10
1.3.2 Khối LCD 11
1.3.3 Khối truyền nhận UART 11
1.3.4 Khối Led 7 thanh 12
CHƯƠNG 2 KẾT QUẢ ĐẠT ĐƯỢC 13
CHƯƠNG 3 KẾT LUẬN 14
3.1 Kết luận 14
3.2 Hướng phát triển 14
Trang 3DANH MỤC HÌNH VẼ
Hình 1 1:Kit FPGA DE2 1
Hình 1 2: Cảm biến nhiệt độ LM35 2
Hình 1 3: Cảm biến photodiode quang 3
Hình 1 4: Cảm biến độ ẩm đất 3
Hình 1 5: Module chuyển đổi LM393 4
Hình 1 6: ADC0809 5
Hình 1 7: ESP8266 6
Hình 1 8: Sơ đồ chân esp8266 8
Hình 1 9: Sơ đồ nguyên lý 10
Hình 1 10: Sơ đồ khối 10
Hình 1 11: Khối ADC 10
Hình 1 12: Nguyên lý chuyển đổi ADC 11
Hình 1 13: Khối LCD 11
Hình 1 14: Khối UART 12
Hình 1 15: Sơ đồ truyền nhận 12
Hình 1 16: Khối Led 7 thanh 13
DANH MỤC BẢNG
Trang 4GIỚI THIỆU ĐỀ TÀI
Cách mạng công nghiệp 4.0 mở ra thì mang lại rất nhiều cơ hội và tương lai cho rất nhiều lĩnh vực, không ngoại trừ nông nghiệp Các mô hình như là nông trại thông minh, vườn thông minh, … được phổ biến rất nhiều Tuy nhiên cũng gặp khá nhiều thách thức như là vấn đề bảo mật, tính đồng bộ cũng như khả năng kiểm soát các thông số môi trường Trong báo cáo này, chúng em xây dựng một
số thiết bị đo lường các thông số trong môi trường ảnh hưởng đến vườn thông minh, như là độ ẩm, nhiệt độ và ánh sáng Việc tìm hiểu một cách tổng quát về các dòng cảm biến đang được sử dụng phổ biến hiện nay cũng được thực hiện, qua đó các loại cảm biến phù hợp được lựa chọn đưa vào thiết bị Một thiết bị mẫu cũng được xây dựng để chạy thử và đánh giá tính khả thi của giải pháp Ngoài ra thì chúng em cũng tìm cách đồng bộ việc kiểm soát các thông số này trên ứng dụng điện thoại để có thể dễ theo dõi cũng như cảnh báo khi tính hướng xấu xảy ra
Trang 5CHƯƠNG 1 LỰA CHỌN PHẦN CỨNG 1.1 Mục tiêu
Làm quen và sử dụng KIT FPGA
Đọc và xử lý tín hiệu từ đầu ra của các cảm biến LM35, LM393 và photodiode quang
Hiện thị nhiệt độ và độ ẩm lên LCD và hiển thị ánh sáng qua Led
1.2 Thông tin phần cứng
1.2.1 Kit FPGA DE2
Kit FPGA DE2 với 33216 Logic Element
Hình 1 1:Kit FPGA DE2
Đặc điểm Kit FPGA DE2:
Kit DE2 có rất nhiều tính năng cho phép có thể thiết kế thực hiện một khối lượng lớn các hệ thống , mạch chức năng từ đơn giản đến phức tạp, có các tính năng được cung cấp sẵn trên kid như:
- Altera Cyclone II 2C35 FPGA
- Altera Serial Configuration device – EPCS 16
- USB blatster dung để lặp tình hệ thống từ pc, hỗ trợ các chế độ JTAG cũng như điều khiển trực tiếp khi sử dụng NIOS II
- 512 – Kbyte SRAM
- 8 – Mbyte SDRAM
- 4 – Mbyte bộ nhớ FLASH
- Khe cắm SD card
- 4 phím nhấn PushButton KEY [3:0]
- 18 Swith
- 18 đèn ledr và 9 đèn ledg
- 2 nguồn clock là 50M và 27 M
Trang 6- Chip giải mã âm thanh 24 bits với các jack cắm line-in, line-out và microphone
- VGA DAC
- TV decoder (NTSC/PAL) với TV-in(Video-in)
- Cổng 10/100 ethenet
- Bộ điều khiển usb host/slave
- Rs-232 với cổng kết nối 9 chân
- Cổng ps/2 giao tiếp với choột và keyboard
- Cổng hồng ngoại
- 40 chân đế mở rộng
1.2.2 Cảm biến LM35
Hình 1 2: Cảm biến nhiệt độ LM35
Cảm biến nhiệt độ LM35 có điện áp Analog đầu ra tuyến tính theo nhiệt độ thường được sử dụng để đo nhiệt độ của môi trường hoặc theo dõi nhiệt độ của thiết bị, , cảm biến có kiểu chân TO-92 với chỉ 3 chân rất dễ giao tiếp và sử dụng
LM35 là cảm biến đo nhiệt độ với điện áp đầu ra tỷ lệ tuyến tính với nhiệt độ LM35 không yêu cầu bất kỳ hiệu chuẩn bên ngoài nào để cung cấp độ chính xác điển hình là ± ¼ °C ở nhiệt độ phòng và ± ¾ °C trong phạm vi nhiệt độ từ -55 °C đến 150 °C
Chi phí phù hợp với đề tài
Vì thiết bị LM35 chỉ lấy 60 μA, nên sai số nhiệt độ dòng thấp và phụ hợp các ứng dụng điều khiển từ xa năng lượng thấp
Bảng 1-1 Thông số kỹ thuật cảm biến LM35
1 Điện áp hoạt động 4-20 VDC
2 Công suất tiêu thụ 60 μA
3 Khoảng đo -55 – 150°C
4 Điện áp tuyến tính theo nhiệt độ 10mV/°C
7 Kích thước sản phẩm 4.3x4.3mm
2
Trang 71.2.3 Cảm biến photodiode quang
Hình 1 3: Cảm biến photodiode quang
Trang 8Cảm biến ánh sáng Photodiode là một module rất nhạy cảm với cường độ ánh sáng môi trường xung quanh, thường được sử dụng để phát hiện độ sáng môi trường xung quanh và cường độ ánh sáng, định hướng, gây ra chỉ có ánh sáng trực tiếp ở phía trước của bộ cảm biến, tìm kiếm cho các hiệu ứng ánh sáng tốt hơn, chính xác hơn
Đặc điểm:
Điều chỉnh độ nhạy (màu xanh trong điều chỉnh chiết áp kỹ thuật số FIG)
Điện áp: 3.3- 5V
Output hình thức: DO đầu ra chuyển mạch kỹ thuật số (0 và 1) và đầu ra analog AO
Kích thước: 3.2cm x 1.4cm
1.2.4 Cảm biến độ ẩm đất
Bộ sản phẩm gồm một cảm biến độ ẩm đất và một module chuyển đổi với ngõ ra Analog - Digital Cảm biến độ ẩm đất được hoạt động với 2 chế độ ngõ ra (Analog & Digital), trạng thái đầu ra mức thấp (0V), khi đất thiếu nước đầu ra sẽ
là mức cao (5V)
1.2.4.1 Cảm biến độ ẩm đất
Hình 1 4: Cảm biến độ ẩm đất
4
Trang 9Hai đầu đo của cảm biến được cắm vào đất để phát hiện độ ẩm Dùng dây nối giữa cảm biến và module chuyển đổi Thông tin về độ ẩm đất sẽ được đọc về và gởi tới module chuyển đổi
1.2.4.2 Module chuyển đổi
Hình 1 5: Module chuyển đổi LM393
Module chuyển đổi có cấu tạo chính gồm một IC so sánh LM393, một biến trở ,
4 điện trở dán 100 ohm và 2 tụ dán Biến trở có chức năng định ngưỡng so sánh với tín hiệu độ ẩm đất đọc về từ cảm biến Ngưỡng so sánh và tín hiệu cảm biến
sẽ là 2 đầu vào của IC so sánh LM393 Khi độ ẩm thấp hơn ngưỡng định trước, ngõ ra của IC là mức cao (1), ngược lại là mức thấp (0)
Đặc điểm
Điện áp hoạt động: 3.3V-5V
Kích thước PCB: 3cm * 1.6cm
Led báo hiệu
Led đỏ báo nguồn
Led xanh báo mức độ ẩm ở pin DO
1.2.5 ADC0809
Hình 1 5: ADC0809
Trang 10ADC0809 là một thiết bị CMOS tích hợp với một bộ chuyển đổi từ tương tự sang số 8 bit, bộ chọn 8 kênh và một bộ logic điều khiển tương thích Bộ chuyển
đổi AD 8bit này dùng phương pháp chuyển đổi xấp xỉ tiếp Bộ chọn kênh có thể truy xuất bất kỳ kênh nào trong các ngõ vào tương tự một cách độc lập
ADC0809 loại trừ khả năng cần thiết điều chỉnh điểm 0 bên ngoài và khả năng điều chỉnh tỉ số làm tròn ADC0809 dễ dàng giao tiếp với các bộ vi xử lý
Thông số kỹ thuật:
Độ phân giải 8bit
Tổng sai số chưa chỉnh định: 1/2LSB, 1LSB
Nguồn cung cấp: +5V
Điện áp ngõ vào: 0-5V
Tần số xung clock: 10kHz-1280 kHz
Nhiệt độ hoạt động: -40 ~ 85oC
1.2.6 ESP8266
6
Trang 11Hình 1 7: ESP8266
ESP8266 là một hệ thống trên chip (SoC), do công ty Espressif của Trung Quốc sản xuất Nó bao gồm bộ vi điều khiển Tensilica L106 32-bit (MCU) và bộ thu phát Wi-Fi Nó có 11 chân GPIO (Chân đầu vào / đầu ra đa dụng) và một đầu vào analog, có nghĩa là bạn có thể lập trình nó giống như với Arduino hoặc vi điều khiển khác Bản thân chip ESP8266 có 17 chân GPIO, nhưng 6 trong số các chân này (6-11) được sử dụng để giao tiếp với chip nhớ flash trên bo mạch Ngoài ra nó có kết nối Wi-Fi, vì vậy bạn có thể sử dụng nó để kết nối với mạng Wi-Fi, kết nối Internet, lưu trữ máy chủ web với các trang web thực
ESP8266 có thể được dùng làm module Wifi bên ngoài, sử dụng firmware tập lệnh AT tiêu chuẩn bằng cách kết nối nó với bất kỳ bộ vi điều khiển nào sử dụng UART nối tiếp hoặc trực tiếp làm bộ vi điều khiển hỗ trợ Wifi, bằng cách lập trình một chương trình cơ sở mới sử dụng SDK được cung cấp
Các chân GPIO cho phép IO Analog và Digital, cộng với PWM, SPI, I2C, v.v
ESP8266 có nhiều ứng dụng khi nói đến IoT Đây chỉ là một số chức năng mà chip này được sử dụng
Các tính năng của chip ESP8266EX bao gồm:
Bộ xử lý: Lõi vi xử lý L106 32-bit RISC dựa trên Tiêu chuẩn Tensilica Xtensa Diamond, hoạt động ở tần số 80 MHz và SRAM trên chip
Bộ nhớ nội: Bộ nhớ nội của ESP8266EX bao gồm SRAM và ROM ESP8266EX có thể truy xuất các bộ nhớ này thông qua các interface iBus, dBus, và AHB Kích thước SRAM nhỏ hơn 36kB khi ESP8266EX hoạt động ở chế độ station ROM của ESP8266EX không lập trình được nên chương trình được lưu trong Flash ngoại
Flash ngoại: ESP8266EX sử dụng flash ngoại để lưu trữ chương trình và boot trực tiếp chương trình từ bus SPI Kích thước flash ngoại mặc định sẽ khác nhau với từng loại module ESP8266, như ESP-01 có kích thước flash ngoại là 1MB, ESP-12E có kích thước flash ngoại là 16MB Nếu chương trình sử dụng kích thước lớn hơn kích thước mặc định thì bộ flash ngoại với kích thước lớn hơn phải được sử dụng tuy nhiên kích thước flash ngoại tối đa về mặt lý thuyết cho phép là 16 MB Kích thước bộ nhớ flash nhỏ nhất có thể là 512 kB (tắt chế độ OTA) hoặc 1 MB (bật chế độ OTA)
IEEE 802.11 b/g/n Wi-Fi:
o Tích hợp TR switch, balun, LNA, bộ khuếch đại công suất và mạng kết hợp
o Xác thực WEP hoặc WPA/WPA2 hoặc mạng mở không có
password
17 chân GPIO: Các chân có thể được dồn kênh cho các chức năng I²C, I2S, UART, PWM, IR - điều khiển từ xa,…
Trang 12 2 hardware timer 23 bit: FRC1 và FRC2
3 SPI: general Slave/Master SPI, Slave SDIO/SPI và general Slave/Master HSPI
I²C: Hỗ trợ 1 I²C hoạt động được ở cả chế độ master và slave Vì các GPIO đều có thể được cấu hình ở chế độ cực máng hở nên các GPIO đều
có thể được cấu hình cho các chân SDA hay SCL của I²C bằng phần mềm
Giao diện I²S với DMA (sử dụng chung chân với GPIO)
UART: Hỗ trợ 2 UART là UART0 và UART1 UART0 sử dụng GPIO3 (RX) và GPIO1 (TX) UART1 sử dụng GPIO2 (TX) và GPIO8 (TX) Tuy nhiên GPIO8 được dùng để kết nối bộ nhớ flash của chip nên UART1 chỉ
sử dụng được GPIO2 để truyền dữ liệu
ADC 10 bit
Sơ đồ chân của module ESP-01:
1 GND, chân đất (0 V)
2 GPIO 2 (General-purpose input/output No 2)
3 GPIO 0 (General-purpose input/output No 0)
4 RX, nhận bit dữ liệu X, cũng là GPIO3
5 VCC, chân điện áp (+3.3 V; có thể chịu được điện áp đến 3.6 V)
6 RST, Reset
7 CH_PD, Chip tắt nguồn (Chip power-down)
8 TX, truyền bit dữ liệu X, cũng là GPIO1
Hình 1 8: Sơ đồ chân esp8266
1.2.7 Blynk
8
Trang 13Blynk đượ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
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 bạ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 của bạn
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
Bây giờ hãy tưởng tượng: 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 của bạn 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
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:
o Wifi
o Bluetooth và BLE
o Ethernet
o USB (Serial)
o 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
Được cập nhật các tính năng liên tục
Trang 141.3 Sơ đồ nguyên lý
Hình 1 6: Sơ đồ nguyên lý
Hình 1 7: Sơ đồ khối
10
Trang 151.3.1 Khối ADC
Hình 1 8: Khối ADC
Cách hoạt động của khối:
Cấp 3 thông số cảm biến gửi lần lượt vào các kênh 0,1,2 của ADC sau khi ADC
xử lí chuyển đổi điện áp từ cảm biến cấp sẽ mã hóa tạo ra 8 bits một kênh
Ơ đây ta cần lựa chọn các kênh để đo được byte dang 8 bits chuyển đổi ra khối điều khiển
Để ADC chuyển đổi được cần xung phù hợp là 460 theo datasheet và có các chân vào điều khiển nó như hình ảnh nguyên lí chuyển đổi:
Hình 1 9: Nguyên lý chuyển đổi ADC
Trang 161.3.2 Khối LCD
Hình 1 10: Khối LCD
Gồm 2 đầu vào chứa thông số của nhiệt độ và độ ẩm
Tương tự cũng như thế sẽ có 2 đầu ra cho nhiệt độ và độ ẩm
1.3.3 Khối truyền nhận UART
Hình 1 11: Khối UART
12
Trang 17Hình 1 12: Sơ đồ truyền nhận
Theo lý thuyết để đồng bộ giữa app điện thoại và khối chấp hành thì sẽ có 2 luồng tín hiệu là truyền từ trên xuống dưới và truyền từ dưới lên trên liên tục Tuy nhiên sẽ có nhiều lúc xảy ra mâu thuẫn giữa truyền và nhận nên chúng em quyết định gửi và nhận theo dạng ngắt, tức là không phải lúc nào cũng gửi và lúc nào cũng nhận Khi nào nhấn điều khiển trên app thì mới gửi xuống và khi nào nhấn nút trên thiết bị thì mới gửi lên Và để luôn cập nhật dữ liệu của nhiệt độ, độ
ẩm và ánh sang thì chúng em thêm đường truyền lên được gửi liên tục
1.3.4 Khối Led 7 thanh
Hình 1 13: Khối Led 7 thanh
Có 2 chế độ là tự động( auto) và điều khiển( control)
Khi kết nối esp8266 thì sẽ là chế độ điều khiển
Còn chế độ auto sẽ có 2 trường hợp:
Trường hợp 1: nhấn auto ở trên app
Trường hợp 2: mất kết nối wifi hoặc rút esp8266 ra
Trang 18CHƯƠNG 2 KẾT QUẢ ĐẠT ĐƯỢC
Hình 2 1: Kết quả
Sau khi hoàn thiện chương trình và nạp code cho kit FPGA DE2, thì giá trị đo được khá là ổn định và chính xác
14
Trang 19CHƯƠNG 3 KẾT LUẬN
3.1 Kết luận
Với mục tiêu đặt ra cho thiết kế thì chúng em đã hoàn thành được các mục tiêu sau:
Đọc được giá trị từ cảm biến
Hiển thị được nhiệt độ và độ ẩm trên LCD
Hiển thị được độ sáng qua Led
Điều khiển được các thông số qua phần cứng FPGA cũng như là điều khiển được qua app điện thoại
3.2 Hướng phát triển
Trên cơ sở các kết quả đạt được, nhóm chúng em đặt ra những hướng phát triển cho đề tài như sau:
Cải thiện độ chính xác của thiết bị
Mở rộng, đo thêm những thông số khác
Phát triển thêm hê thống cảnh báo khi nhiệt độ, độ ẩm, ánh sáng vượt qua mức quy định của vườn