1. Trang chủ
  2. » Luận Văn - Báo Cáo

Truyền dữ liệu lưu lượng nước bằng SMS phần 2

90 636 1
Tài liệu đã được kiểm tra trùng lặp

Đ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

Nội dung

Truyền dữ liệu lưu lượng nước bằng SMS

Trang 1

TRƯỜNG ĐẠI HỌC LẠC HỒNG KHOA ĐIỆN – ĐIỆN TỬ

Trang 2

LỜI CẢM ƠN

Sau thời gian thực tập 4 tháng tại Xí nghiệp Cấp nước Dĩ An thuộc Công Ty Cấp Thoát Nước Bình Dương, nhờ sự hướng dẫn tận tình của các cô chú, các anh chị, em đã một phần nào tiếp thu được một số kiến thức về quy trình cung cấp nước sạch tại nhà máy

Qua đó, em đã hoàn thành đề tài “ Truyền dữ liệu lưu lượng và áp lực nước qua tin nhắn SMS”

Em xin chân thành cảm ơn quý Ban giám đốc Xí nghiệp cấp nước Dĩ An, nhân viên các phòng ban và nhất là các anh chị cán bộ kỹ thuật tại phòng SCADA, những người đã trực tiếp hướng dẫn cho em thật chi tiết cho đến khi em hoàn thành kỳ thực tập

Đồng thời em cũng xin cảm ơn thầy Lê Hoàng Anh và thầy Cao Bá Vinh đã hướng dẫn em trong suốt thời gian thực tập và các thầy cô trường Đại Học Lạc Hồng đã truyền đạt những kiến thức và giúp đỡ em trong suốt thời gian học tập tại trường

Trang 3

MỤC LỤC

Lời mở đầu Trang 1 Chương 1: CƠ SỞ LÝ THUYẾT Trang 2 1.1 Giới thiệu sơ lược về vi điều khiển AVR Trang 2 1.1.1 Giới thiệu Trang 2 1.1.2 ATmega32 Trang 3 1.1.3 Đặc tính của ATmega32 Trang 4

1.1.3.1 Cổng vào ra Trang 7 1.1.3.2 Cấu trúc bộ nhớ Trang 10

1.2 Ngôn ngữ lập trình cho AVR Trang 13 1.3 Giới thiệu BasCom AVR Trang 14 1.4 Giới thiệu sơ lược về Visual Basic Trang 15

1.2.1 Giới thiệu Trang 15 1.2.2 Các bước xây dựng một chương trình Trang 23

1.5 Cảm biến áp lực Trang 24 1.6 Giới thiệu GPRS Modem G2403R Trang 26 Chương 2: THỰC TRẠNG TẠI CÔNG TY Trang 29 Chương 3: GIẢI PHÁP VÀ HOÀN THIỆN Trang 30 3.1 Bộ phận phát Trang 31

3.1.1 Nguyên lý hoạt động Tang 31 3.1.2 Thiết kế phần cứng Trang 31

Trang 4

3.1.2.1 Mạch nguồn ổn áp Trang 31 3.1.2.2 Mạch RCV420 chuyển đổi dòng sang áp Trang 36 3.1.2.3 Mạch nạp AVR Trang 37 3.1.2.4 Mạch ứng dụng AVR ATmega32 Trang 38 3.1.3 Thiết kế phần mềm Trang 42

Trang 5

DANH MỤC HÌNH ẢNH, BẢNG GIÁ TRỊ … Trang

Hình 1.1 Các dòng AVR: tiny, AVR và ATmega 3

Hình 1.2 Cấu trúc bên trong AVR 4

Hình 1 3 Cấu trúc chân của AVR 8

Hình 1 4 Sơ đồ một cổng vào ra 9

Hình 1 5 Bộ nhớ chương trình có và không có sử dụng boot loader 11

Hình 1 6 Giao diện chương trình Bascom AVR .14

Hình 1.7 Giao diện Visual Basic .16

Hình 1.15 Giao diện viết code 21

Hình 1.16 Properties Window và Form Layout 22

Hình1.17 Cảm biến áp lực 24

Hình 1.18 Sơ đồ Kết nối điện 25

Hình1.19 GPRS Modem G2403R 26

Trang 6

Hình 3.12 Giao diện với máy tính 1 60

Hình 3.13 Giao diện với máy tính 2 74

Bảng 1.1 Bảng so sánh những đặc tính giữa ATmega32 với họ AT89C51 6

Bảng1.2 Cấu hình cho các chân cổng 8

Bảng 1.3 Địa chỉ của tất cả các port 12

Trang 7

LỜI MỞ ĐẦU

Ngày nay công nghệ không dây phát triển rất mạnh Vì các thiết bị không dây ngày càng hiện đại cho phép người sử dụng thõa mản trong giải trí cũng như trong điều khiển sản xuất mà không cần dây nối Nó thật sự tiện ít và tạo cảm giác thoải mái cho người sử dụng Truyền tín hiệu không dây là một đề tài có nhiều ứng dụng thực tế, nhất là trong lĩnh vực điều khiển từ xa và truyền số liệu

Bên cạnh đó những ứng dụng của vi điều khiển đã đi sâu vào đời sống sinh hoạt và sản xuất của con người Thực tế hiện nay là hầu hết các thiết bị điện dân dụng đều có sự góp mặt của vi điều khiển và vi xử lí Trên thị trường có rất nhiều họ vi điều khiển: họ 8051 của Intel, 68HC11 của Motorola, PIC của hãng Microchip, H8 của Hitachi, AVR của hãng Atmel Ứng dụng vi điều khiển trong thiết kế hệ thống làm giảm chi phí thiết kế và giá thành sản phẩm, đồng thời nâng cao tính ổn định của thiết bị và hệ thống

Trang 8

Chương 1: CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu sơ lược về vi điều khiển AVR

1.1.1 Giới thiệu:

AVR là họ Vi điều khiển khá mới trên thị trường cũng như đối với người sử dụng Đây là họ vi điều khiển được chế tạo theo kiến trúc RISC (Reduced Instruction Set Computer) có cấu trúc khá phức tạp Ngoài các tính năng như các họ vi điều khiển khác, nó còn tích hợp nhiều tính năng mới rất tiện lợi cho người thiết kế và lập trình

Sự ra đời của AVR bắt nguồn từ yêu cầu thực tế là hầu hết khi cần lập trình cho vi điều khiển, chúng ta thường dùng những ngôn ngữ bậc cao HLL (Hight Level Language) để lập trình ngay cả với loại chip xử lí 8 bit Tuy nhiên khi biên dịch thì kích thước đọan mã sẽ tăng nhiều so với dùng ngôn ngữ Assembly Hãng Atmel nhận thấy rằng cần phải phát triển một cấu trúc đặc biệt để giãm thiểu sự chênh lệch kích thước mã đã nói trên Và kết quả là họ vi điều khiển AVR ra đời với việc làm giãm kích thước đoạn mã khi biên dịch và thêm vào đó là thực hiện lệnh đúng chu kỳ máy với 32 thanh ghi tích lũy và đạt tốc độ nhanh hơn các họ vi điều khiển khác từ 4 đến 12 lần Vì thế nghiên cứu AVR là một đề tài khá lý thú và giúp cho sinh viên biết thêm một họ vi điều khiển vào loại mạnh nhất hiện nay

Vi điều khiển AVR do hãng Atmel ( Hoa Kì ) sản xuất được gới thiệu lần đầu năm 1996

Họ vi điều khiển AVR là một họ vi điều khiển có cấu trúc hiện đại (so với 8051)

Trang 9

Có ba loại trong họ này đó là :

* Tinyavr

* AVR(loại AVR) * MegaAVR

Hình 1.1 Các dòng AVR: tiny, AVR và AT mega

Tất cả các thiết bị trong họ AVR đều có chung một tập lệnh, và tổ chức bộ nhớ giống nhau Nhưng khi chúng ta chuyển nghiên cứu từ một vi điều khiển AVR này sang loại khác thì thật là đơn giản Cấu tạo AVR bao gồm: SRAM, EEPROM và giao tiếp SRAM mở rộng, bộ chuyển đổi tương tự số (ADC), cấu trúc nhiều tuyến, UART, USART…

1.1.2 ATmega32:

ATmega 32 là bộ vi điều khiển CMOS 8 bit tiêu thụ điện năng thấp dựa trên kiến trúc RISC Với công nghệ này cho phép các lệnh thực thi chỉ trong một chu kì nhịp xung, vì thế tốc độ xử lý dữ liệu có thể đạt đến 1 triệu lệnh trên giây ở tần số 1 Mhz Vi điều khiển này cho phép người thiết kế có thể tối ưu hoá mức độ tiêu thụ năng lượng mà vẫn đảm bảo tốc độ xử lí

Phần cốt lõi của AVR kết hợp tập lệnh phong phú về số lượng với 32 thanh ghi làm việc đa năng Toàn bộ 32 thanh ghi đều được nối trực tiếp với ALU (Arithmetic Logic Unit), cho phép truy cập 2 thanh ghi độc lập bằng một chu kì xung nhịp Kiến trúc đạt được có tốc độ xử lý nhanh gấp 10 lần vi điều khiển dạng CISC thông thường

Trang 10

Hình 1.2 Cấu trúc bên trong AVR

1.1.3 Đặc tính của ATmega32:

• Được chế tạo theo kiến trúc RISC

• Bộ lệnh gồm 118 lệnh, hầu hết đều thực thi chỉ trong một chu kì xung nhịp

• 32x8 thanh ghi làm việc đa dụng

• 32 KB Flash ROM lập trình được ngay trên hệ thống

• Giao diện nối tiếp SPI cho phép lập trình ngay trên hệ thống

Trang 11

• Cho phép 1000 lần ghi / xoá • Bộ EEPROM 1024 byte • Cho phép 100.000 ghi / xoá • Bộ nhớ SRAM 2 Kbyte

• Bộ biến đổi ADC 8 kênh, 10 bit • 32 ngõ I/O lập trình được

• Bộ truyền nối tiếp bất đồng bộ vạn năng UART • Vcc = 2.7V đến 6V

• Tốc độ làm việc: 0 đến 16 Mhz

• Tốc độ xử lí lệnh 16 MIPS ở 16 MHz ( 16 triệu lệnh trên giây)

• Bộ đếm thời gian thực (RTC) với bộ dao động và chế độ đếm tách biệt

• 2 bộ Timer 8 bit và 2 bộ Timer 16 bit với chế độ so sánh và chia tần số tách biệt và chế độ bắt mẫu

• Bốn kênh điều chế độ rộng xung PWM

• Bộ định thời Watchdog lập trình được Tự động reset khi treo máy • Bộ so sánh tương tự

• Sáu chế độ ngủ : chế độ rỗi (Idle), tiết kiệm điện ( Power save), chế độ Power Down, chế độ ADC Noise Reduction, chế độ Standby và chế độ Extended Standby

Trang 12

Bảng 1.1 Bảng so sánh những đặc tính giữa ATmega32 với họ AT89C51

RAM nội - 2 Kbyte SRAM 128 byte RAM

Bộ Timer

- 2 bộ timer 8 bit - 2 bộ timer 16 bit - 1 bộ watchdog timer

- Trạng thái tích cực:1.1mA - Trạng thái rỗi :0.35 mA - Trạng Power Down : < 1 uA

Thạch anh 12Mhz, VCC=3V:

-Trạng thái tích cực : 20 mA -Trạng thái rỗi : 5 mA -Trạng Power Down : < 40 uA

Giá thành ( tại thị 60.000đ 17.000đ

Trang 13

trường Việt Nam)

Qua bảng so sánh có thể thấy rằng ATmega32 không những thừa kế những ưu điểm của AT89C51 mà còn có những đặc tính mới khá hoàn thiện, hiệu suất và tốc độ xử lí cao hơn

1.1.3.1 Cổng vào ra:

Cổng vào ra là một trong số các phương tiện để vi điều khiển giao tiếp với các thiết bị ngoại vi Atmega32 có 4 cổng ( port ) vào ra 8 bit là : PortA, PortB, PortC, PortD tương ứng với 32 đường vào ra Các cổng vào ra của AVR là cổng vào ra hai chiều có thể định hướng, tức có thể chọn hướng của cổng là hướng vào (input ) hay hướng ra (output ) Tất các các cổng vào ra của AVR điều có tính năng Đọc – Chỉnh sửa – Ghi ( Read – Modify – write ) khi sử dụng chúng như là các cổng vào ra số thông thường Điều này có nghĩa là khi ta thay đổi hướng của một chân nào đó thì nó không làm ảnh hưởng tới hướng của các chân khác Tất cả các chân của các cổng ( port ) điều có điện trở kéo lên ( pull-up ) riêng, ta có thể cho phép hay không cho phép điện trở kéo lên này hoạt động

Khi khảo sát các cổng như là các cổng vào ra số thông thường thì tính chất của các cổng ( PortA, PortB, PortC, PortD ) là tương tự nhau, nên ta chỉ cần khảo sát một cổng nào đó trong số 4 cổng của vi điều khiển là đủ

Mỗi một cổng vào ra của vi điều khiển được liên kết với 3 thanh ghi: PORTx, DDRx, PINx ( ở đây x là để thay thế cho A, B, C, D ) Ba thanh ghi này sẽ được phối hợp với nhau để điều khiển hoạt động của cổng, chẳn hạn thiết lập cổng thành lối vào có sử dụng điện trở pull-up, v.v

Trang 14

Hình 1 3 Cấu trúc chân của AVR

Cấu trúc chân của AVR có thể phân biệt rõ chức năng (vào ra) trạng thái (0 1) từ đó ta có 4 kiểu vào ra cho một chân của AVR Khác với AT89C51 là chỉ có 2 trạng thái duy nhất (0 1)

Để điều khiển các chân này chúng ta có 2 thanh ghi

Æ PORTx: giá trị tại từng chân (0 – 1) có thể truy cập tới từng bit PORTx.n Æ DDRx: thanh ghi chỉ trạng thái của từng chân , vào hoặc là ra

Bảng1.2 Cấu hình cho các chân cổng

DDRxn PORTxn PUD(trong thanh ghi SFIOR)

I/O Pull - up Ghi Chú

dòng

Trang 15

1 0 x Output không Ngõ ra thấp

DDRxn là bit thứ n của thanh ghi DDRx PORTxn là bit thứ n của thanh ghi PORTx Dấu “x” ở cột thứ 3 để chỉ giá trị logic là tùy ý

Hình 1 4 Sơ đồ một cổng vào ra

Ở sơ đồ trên ta thấy ngoài 2 bit của các thanh ghi DDRx và PORTx tham

gia điều khiển điện trở treo (pull-up resistor ), còn có một tín hiệu nữa điều khiển điện trở treo, đó là tín hiệu PUD, đây là bit nằm trong thanh ghi SFIOR, khi set bit

Trang 16

này thành 1 thì điện trở kéo lên sẽ không được cho phép bất kể các thiết lập của các thanh ghi DDRx và PORTx Khi bit này là 0 thì điện trở kéo lên được cho phép nếu {DDRxn, PORTxn } = { 0, 1 }

1.1.3.2 Cấu trúc bộ nhớ:

Cũng như mọi vi điều khiển khác AVR có cấu trúc Harvard tức là có bộ nhớ và đường bus riêng cho bộ nhớ chương trình và bộ nhớ dữ liệu

Flash có dung lượng 32 Kbytes Bộ nhớ chương trình có độ rộng bus là 16 bit Ở vi điều khiển ATmega32 bộ nhớ chương trình còn có thể được chia làm 2 phần: phần boot loader (Boot loader program section ) và phần ứng dụng (Application program section )

- Phần boot loader : chứa chương trình boot loader

- Phần ứng dụng (Application program section ): là vùng nhớ chứa chương

trình ứng dụng của người dùng Kích thước của phần boot loader và phần ứng dụng có thể tùy chọn

Hình 1.5 thể hiện cấu trúc bộ nhớ chương trình có sử dụng và không sử dụng boot loader, khi sử dụng phần boot loader ta thấy 4 word đầu tiên thay vì chỉ thị cho CPU chuyển tới chương trình ứng dụng của người dùng (là chương trình có nhãn start ) thì chỉ thị CPU nhảy tới phần chương trình boot loader để thực hiện trước, rồi mới quay trở lại thực hiện chương trình ứng dụng

Trang 17

Hình 1 5 Bộ nhớ chương trình có và không có sử dụng boot loader

Bộ Nhớ Dữ Liệu: Bộ nhớ dữ liệu của AVR chia làm 2 phần chính là

bộ nhớ SRAM và bộ nhớ EEPROM Tuy cùng là bộ nhớ dữ liệu nhưng hai bộ nhớ này lại tách biệt nhau và được đánh địa chỉ riêng

Trang 18

- Bộ nhớ SRAM: có dụng lượng 2 Kbytes

Bảng 1 3 Địa chỉ của tất cả các port

- Bộ nhớ EEPROM : bộ nhớ EEPROM có kích thước là 1024 bytes

EEPROM được xem như là một bộ nhớ vào ra được đánh địa chỉ độc lập với SRAM, điều này có nghĩa là ta cần sử dụng các lệnh in, out … khi muốn truy xuất tới EEPROM

Để ghi vào EEPROM ta cần thực hiện các bước sau:

- Chờ cho bit EEWE về 0 - Cấm tất cả các ngắt

- Ghi địa chỉ vào thanh ghi EEAR

- Ghi dữ liệu mà ta cần ghi vào EEPROM vào thanh ghi EEDR - Set bit EEMWE thành 1

- Set bit EEWE thành 1 - Cho phép các ngắt trở lại

Trang 19

Đọc dữ liệu từ EEPROM: Việc đọc dữ liệu từ EEPROM đơn giản hơn ghi

dữ liệu vào EEPROM, để đọc dữ liệu từ EEPROM ta thực hiện các bước sau: - Chờ cho bit EEWE về 0

- Ghi địa chỉ vào thanh ghi EEAR - Set bit EERE lên 1

1.2 Ngôn ngữ lập trình cho AVR

PonyPro2000: là phần mềm đọc vi điều khiển chuyên dụng và đa năng, nó có thể làm việc với AVR, 8951, …

CodeVisionAVR: Đây là phần mềm biên dịch C cho MCU AVR có tích

hợp sẵn bộ nạp Các bạn có thể viết chương trình bằng ngôn ngữ C, biên dịch và nạp cho AVR bằng CodeVisionAVR mà không cần một chương trình nào khác

Assembly: làm việc trên file chương trình nguồn và một file nguồn bao

gồm: các lệnh, các nhãn và các chỉ dẫn Chúng được xếp tuần tự trong file nguồn Một dòng lệnh có chiều dài cực đại là 120 kí tự Mọi dòng lệnh đều có thể đặt trước bởi một nhãn, nó là một chuỗi kí tự và kết thúc bằng dấu 2 chấm

Bascom-AVR: là trình biên dịch cho AVR Được thiết kế để chạy trên

W95 / W98 / NT/ W2000 / XP Câu lệnh đơn giản, câu lệnh gần giống trong visual basic

Trang 20

1.3 Giới thiệu BasCom AVR

Phần mềm Bascom AVR được phát triển cho họ vi xử lý Atmel như: AT89xxxx; AVR90S8535; AVR ATmega32…

Với giao diện thân thiện và hỗ trợ tối đa ngôn ngữ cấp cao ( tương tự Visual Basic) giúp cho việc lập trình trở nên đơn giản và nhanh chóng hơn bao giờ hết

Hỗ trợ nhiều thư viện lập trình cũng như các ví dụ mẫu sẽ giúp cho người mới vào nghề tiếp cận và làm chủ vi xử lý một các nhanh chóng

Hình 1.6 Giao diện chương trình Bascom AVR

Trang 21

1.4 Giới thiệu sơ lược về Visual Basic 1.4.1 Giới thiệu:

Visual Basic là gì ? Phần "Visual" đề cập đến phương pháp được sử dụng để tạo giao diện đồ họa người dùng (Graphical User Interface hay viết tắc là GUI) Có sẵn những bộ phận hình ảnh, gọi là controls, bạn có thể sắp đặt vị trí và quyết định các đặc tính của chúng trên một khung màn hình, gọi là form Nếu bạn đã từng sử dụng chương trình vẽ chẳng hạn như Paint, bạn đã có sẵn các kỹ năng cần thiết để tạo một GUI cho VB6 Phần "Basic" đề cập đến ngôn ngữ BASIC (Beginners All-Purpose Symbolic Instruction Code), một ngôn ngữ lập trình đơn giản, dễ học

VB được giới thiệu lần đầu tiên vào năm 1991, tiền thân là ngôn ngữ lập trình Basic trên HĐH DOS Tuy nhiên, lúc bấy giờ VB chưa được nhiều người tiếp nhận Năm 1992, khi phiên bản 3.0 ra đời với rất nhiều cải tiến so với các phiên bản trước đó, VB mới thật sự trở thành một trong những công cụ chính để phát triển các ứng dụng trên Windows

Các phiên bản sau đó của VB, như phiên bản 4.0 ra đời năm 1995, phiên bản 5.0 ra đời năm 1996 và gần đây nhất là phiên bản 6.0 ra đời năm 1998 với các tính năng ngày càng được nâng cao đã khiến mọi người công nhận VB hiện là một trong những công cụ chính để phát triển các ứng dụng trên Windows

Visual Basic 6.0 cho phép người dùng tiếp cận nhanh cách thức lập trình trên môi trường Windows

Trang 22

Hình 1.7 Giao diện Visual Basic

• Menu Bar

Chứa đầy đủ các commands mà bạn sử dụng để làm việc với VB6, kể cả các menu để truy cập các chức năng đặc biệt dành cho việc lập trình chẳng hạn như Project, Format, hoặc Debug Trong Menu Add-Ins có Add-Ins Manager cho phép bạn thêm những menu con nhiệm ý để chạy các chương trình lợi ích cho việc lập trình

Hình 1.8 Menu Bar

Trong Add-Ins Manager dialog bạn chọn một Add-In rồi check một hay nhiều hộp trong khung Load behavior:

Trang 23

Hình 1.9 Add –ins manager

• Toolbars (Debug, Edit, form Editor, Standard)

Các toolbars có hình các icons cho phép bạn click chọn để thực hiện công việc tương đương với dùng một menu command, nhưng nhanh và tiện hơn Bạn dùng menu command View | Toolbars (click lên menu command View cho popupmenu hiện ra rồi click command con Toolbars) để làm cho các toolbars hiện ra hay biến mất đi Bạn có thể thay đổi vị trí một toolbar bằng cách giữ hai gạch vertical nằm bên trái toolbar rồi dời toolbar đi chỗ khác (giữ ở đây nghĩa là để pointer của mouse lên chỗ chấm trong hình phía dưới rồi bấm xuống và giữ nút bên trái của mouse, trong khi kéo pointer đi nơi khác)

Hình 1.10 Toolbars

Ngoài ra bạn cũng có thể sửa đổi các toolbars theo ý thích bằng cách dùng Menu command View | Toolbars | Customize

Trang 24

• Toolbox

Đây là hộp đồ nghề với các công cụ, gọi là controls, mà bạn có thể đặt lên các form trong lúc thiết kế (design) Nếu Toolbox biến mất, bạn có thể display nó trở lại bằng cách dùng menu command View | Toolbox Bạn có thể khiến toolbox display nhiều controls hơn bằng cách chọn Components Từ context menu (chọn Toolbox rồi bấm nút phải của mouse để display context menu) hay dùng menu command Project | Components Ngoài việc trình bày Toolbox mặc định, bạn có thể tạo cách trình bày khác bằng cách chọn Add Tab từ context menu và bổ sung các control cho tab từ kết quả

Hình 1.11 Toolbox

• Project Explorer

Sẽ liệt kê các forms và các modules trong project hiện hành của bạn Một project là sự tập hợp các files mà bạn sử dụng để tạo một trình ứng dụng Tức là, trong VB6, khi nói viết một program có nghĩa là triển khai một project

Trang 25

• Properties window

Liệt kê các đặc tính của các forms hoặc controls được chọn Một property là một đặc tính của một object chẳng hạn như size, caption, hoặc color Khi bạn sửa đổi một property bạn sẽ thấy hiệu quả ngay lập tức, thí dụ thay đổi property Font của một Label sẽ thấy Label ấy được display bằng Font chữ mới Khi bạn chọn một Property của control hay form trong Properties window, phía bên phải ở chỗ value của property có thể display ba chấm ( .) hay một tam giác chỉa xuống Bấm vào đó để display một dialog cho bạn chọn value Thí dụ dưới đây là dialog để chọn màu cho property ForeColor của control Label1

Hình 1.12 Properties

• Form Layout

Bạn dùng form Layout để chỉnh vị trí của các forms khi form hiện ra lần đầu lúc chương trình chạy Dùng context command Resolution Guides để thấy nếu

Trang 26

dùng một màn ảnh với độ mịn (resolution) tệ hơn, thí dụ như 640 X 480, thì nó sẽ nhỏ như thế nào

Hình 1.13 Form layout

• Form Designer

Dùng để thiết kế giao diện lập trình Bạn bổ sung các controls, các đồ họa (graphics), các hình ảnh và một form để tạo sự ma sát mà bạn muốn Mỗi form trong trình ứng dụng của bạn có designer form riêng của nó Khi bạn maximise một form designer, nó chiếm cả khu làm việc Muốn làm cho nó trở lại cở bình thường và đồng thời để thấy các form designers khác, click nút Restore Window ở góc bên phải, phía trên

Hình 1.14 Designer

Trang 27

• Immediate Window

Dùng để gở rối (debug) trình ứng dụng của bạn Bạn có thể display dữ kiện trong khi chạy chương trình ứng dụng Khi chương trình đang tạm ngừng ở một break point, bạn có thể thay đổi giá trị các variables hay chạy một dòng chương trình

• View Code button

Click đôi vào form để xem code của một form mà bạn đã chọn Window của code giống như dưới đây:

Hình 1.15 Giao diện viết code

Trong Code window bạn có thể chọn display tất cả Sub của code cùng một lúc như trong hình hay display mỗi lần chỉ một Sub bằng cách click button nằm ở góc bên trái phía dưới

Trang 28

• View form button

Click đôi vào form muốn xem để xem form mà bạn đã chọn

Trong hình dưới đây, Properties Window và Form Layout đã được kéo ra ngoài cho floating

Hình 1.16 Properties Window và Form Layout.

Ưu điểm:

- Tiết kiệm được thời gian và công sức so với một số ngôn ngữ lập trình có cấu trúc khác vì bạn có thể thiết lập các hoạt động trên từng đối tượng được VB cung cấp

- Khi thiết kế chương trình có thể thấy ngay kết quả qua từng thao tác và giao diện khi thi hành chương trình

- Cho phép chỉnh sửa dễ dàng, đơn giản

Trang 29

- Làm việc với các điều khiển mới (ngày tháng với điều khiển MonthView và DataTimePicker, các thanh công cụ có thể di chuyển được CoolBar, sử dụng đồ họa với ImageCombo, thanh cuộn FlatScrollBar,…)

- Làm việc với cơ sở dữ liệu

- Các bổ sung về lập trình hướng đối tượng

- Khả năng kết hợp với các thư viện liên kết động DLL

• Nhược điểm:

- Yêu cầu cấu hình máy khá cao

- Chỉ chạy được trên môi trường Win95 trở lên

1.4.2 Các bước xây dựng một chương trình:

Để xây dựng một chương trình ứng dụng cần thực hiện theo các bước sau đây:

• Bước 1: Phân tích bài toán

Là quá trình tìm hiểu bài toán, xác định các dữ kiện nhập, dữ kiện xuất và đi tìm một giải thuật thích hợp nhất Bước này cần thực hiện trên giấy cho rõ ràng để tạo thói quen lập trình tốt

• Bước 2: Thiết kế giao diện

Người lập trình phải thiết kế giao diện thích hợp cho việc nhập, xuất dữ liệu, cần chú ý đến cách trang trí, cách bố trí, thứ tự, màu sắc, …

• Bước 3: Thiết kế chương trình

Là bước viết chương trình dựa trên giải thuật đã xây dựng ở bước 1, chạy thử chương trình để kiểm tra, phát hiện các lỗi đặc biệt và sửa chữa

• Bước 4: Cải tiến

Đây là bước hoàn thiện chương trình ở mức độ cao hơn

Trang 30

1.5 Cảm biến áp lực

Hình1.17 Cảm biến áp lực

Thiết kế để sử dụng trong công nghiệp nặng

• Áp lực trong phạm vi đo (tương đối) hay tuyệt đối từ 0 đến 600 bar • Tất cả các tín hiệu đầu ra tiêu chuẩn: 4-20 mA, 0-5 V,1-5 V, 1-6 V, 0-10 V, 1-10 V

Mô tả Áp lực nhỏ gọn truyền MBS 3000 được thiết kế để sử dụng trong hầu hết tất cả công nghiệp ứng dụng, và là một áp lực đáng tin cậy đo lường, ngay cả trong môi trường khắc nghiệt điều kiện

Áp lực có các dạng tín hiệu đầu ra khác nhau, tuyệt đối và gauge (tương đối) phiên bản, đo khoảng từ 0-1 tới 000-600 bar và nhiều áp lực và kết nối điện

Trang 31

Độ rung động ổn định, mạnh mẽ xây dựng,và một mức độ cao của EMC / EMI trang bị bảo hộ các bộ truyền áp lực để đáp ứng nhất nghiêm ngặt các yêu cầu công nghiệp

Nhiệt điểm số không thay đổi ≤ ± 0,1% FS/10K (typ.) ≤ ± 0,2% FS/10K (tối đa)

Nhiệt độ nhạy (span) chuyển dịch ≤ ± 0,1% FS/10K (typ.)

≤ ± 0,2% FS/10K (tối đa) Thời gian đáp ứng <4 ms

Áp lực quá tải (tĩnh) 6 × FS (tối đa 1500 bar) Burst áp lực> 6 × FS (tối đa 2000 bar)

Trang 32

Hình 1.18 Sơ đồ kết nối điện

1.6 Giới thiệu GPRS Modem G2403R

Hình1.19 GPRS Modem G2403R

Giao tiếp với máy tính: Kết nối thông qua cổng RS232 (COM)

Trang 33

Để test ta có thể dùng các chương trình cổng COM như HyperTerminal, Terminal… Hoặc dùng các chương trình lập trình Visual Basic, Visuall C để lập trình

Giao tiếp với vi điều khiển: Dùng các chân TX (truyền) và RX (nhận) Sử dụng chức năng uart của vi điều khiển để giao tiếp với module

Quá trình trao đổi dữ liệu giữa máy tính và Modem được thực hiện theo cơ chế bắt tay phần cứng hay phần mềm

Quy tắc truyền lệnh trên Modem:

- Mỗi dòng lệnh của modem bắt đầu bằng ký tự AT - Dòng lệnh có thể chứa nhiều lệnh

- Để hoạt động đúng, modem cần có các thông số xác định Nếu không có sự thay đổi cần thiết, modem hoạt động theo giá trị mặc định(default) Nếu thông số trong lệnh bị bỏ qua, giá trị thông số mặc định là 0

Các lệnh AT dùng để gởi và nhận tin nhắn:

Một dòng lệnh cho phép bạn phát hành một số các lệnh tại một thời gian chứ không phải là ban hành và phải chờ đợi cho modem để phản ứng với mỗi lệnh riêng rẽ Dưới đây là một số nguyên tắc mà bạn phải tuân theo khi phát hành một dòng lệnh vào modem

• Mỗi dòng lệnh phải bắt đầu bằng các chữ AT

Trang 34

• Bởi vì tất cả các không gian được bỏ qua trong các dòng lệnh, bạn có thể để lại dấu cách giữa mỗi lệnh, và giữa mỗi ký tự của tất cả các lệnh Bạn cũng có thể bao gồm các dấu chấm câu trong số điện thoại, và gõ lệnh, hoặc trong UPPER-hay chữ thườngVí dụ, lệnh sau đây là giống nhau:

ATDT8005551234 <Nhập> hay atdt (800) 876-5555 <Nhập>

• Để hủy bỏ một lệnh thọai trong tiến trình, bấm phím bất kỳ trên bàn phím

• Nếu bạn thực hiện một lỗi, Backspace để xoá nó, và Nhập lại các ký

Để thực hiện các dòng lệnh, bấm <Enter> hoặc <Return> trên bàn phím của bạn

• AT + CMGR: Đọc Tin nhắn • AT + CMGS: Gửi tin nhắn • AT + CMGD: Xóa tin nhắn

• AT + CMGW: Viết tin nhắn vào bộ nhớ • AT + CMSS: Gửi tin nhắn từ bộ nhớ

• AT + CMGF = 1 <ENTER> : kiểm tra modem hỗ trợ chế độ văn bản • AT + CPIN = "0000" <ENTER>: Nếu modem chứa một thẻ SIM có được bảo đảm bằng một mã PIN, chúng ta nhập vào mã pin bằng lệnh này

Trang 35

Chương 2: THỰC TRẠNG TẠI CÔNG TY

Nước từ trạm bơm nước thô được bơm lên bể trộn Æ bể lắng Æ bể lọc Æ bể chứa Æ bơm ra mạng

Hiện nay, hầu hết các thiết bị đều được bán tự động và xu hướng trong tương lai sẽ là tự động hóa, các quá trình được điều khiển và xử lý bởi hệ thống vi tính Điều này giúp cho việc quản lý chất lượng nước xử lý và phát hiện các sự cố được chính xác hơn

Tất cả các tín hiệu dừng máy, chạy máy, thông báo sự cố của thiết bị , tín hiệu của thiết bị đo… đều được hiển thị trên màn hình SCADA SCADA (Supervisory Control and Data Acquisition) là hệ thống điều khiển, kiểm soát thu thập dữ liệu

Trang 36

Khi nhân viên ở các bộ phận khác cần xác định giá trị của dữ liệu lưu lượng, áp… lực thì phải liên hệ đến phòng SCADA

Nhưng nếu khi cần biết thì phải gọi điện đến phòng SCADA thì sẽ mất thời gian, và khi gọi điện đến phòng SCADA mà không có nhân viên trực tại phòng thì sao?

Hiện tại bộ truyền dữ liệu lưu lượng và áp lực của công ty được nhập từ

Đan Mạch với gía thành cao

Chương 3: GIẢI PHÁP VÀ HOÀN THIỆN

Để giải quyết vấn để trên em xin đưa ra giải pháp của mình là ta có thể dùng một hệ thống truyền dữ liệu qua tin nhắn SMS, sẽ khắc phục được những khó khăn gặp phải khi cần dữ liệu

Với ưu điểm :

Nhận được tín hiệu và các dữ liệu của lưu lượng, áp lực tại phòng SCADA Lấy giá trị tức thời, theo giờ, theo ngày

Gía thành hợp lý

Trang 37

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

3.1 Bộ phận phát:

3.1.1 Nguyên lý hoạt động:

Tín hiệu được lấy từ đồng hồ lưu lượng và cảm biến áp lực vào dưới dạng dòng từ 4 – 20 mA sẽ được chuyển thành tín hiệu áp từ 0 – 5V thông qua mạch chuyển đổi RCV420 Sau đó tín hiệu áp sẽ được đưa vào mạch vi điều khiển AVR xử lí và chuyển tới modem phát để truyền tín hiệu về bộ thu

3.1.2 Thiết kế phần cứng:

3.1.2.1 Mạch nguồn ổn áp:

Mạch điều khiển AVR

Modem thu Modem phát

Giao tiếp với máy tính Giao tiếp với ĐTDĐ

Cảm biến áp lực Đồng hồ lưu lượng

Trang 38

Nguồn điện là thành phần không thể thiếu được trong các mạch điện tử và nó đóng thành phần quan trọng ảnh hưởng tới hoạt động của mạch Việc cung cấp nguồn điện 1 chiều có điện áp 5V, 6V, 9V, 12V, 15V,18V, 24V để cung cấp cho các thiết bị điện tử thông dụng chạy điện 1 chiều Do ngoài thực tế nguồn điện chúng ta không ổn định so với giá trị yêu cầu ở lý thuyết nên ổn áp lại 1 giá trị điện áp đầu ra không thay đổi để cho mạch điện chúng ta hoạt động ổn định và chính xác

Thông thường có 2 phương pháp ổn áp :Ổn áp dùng IC số và ổn áp dùng transitor kết hợn với zenner ổn áp Ở đây chúng ta làm mạch ổn áp đơn giản dùng họ 78xx với dòng điện >=1A

• Sơ đồ mạch điện đơn giản

T3: biến thế D1: diode cầu D2: led

C1: 2200uF 16V

Trang 39

C2: tụ 104 C3:1000uF 10V C4: tụ 104 R1: 303Ω

Hình 3.3 Mạch nguồn ± 15V

• Các linh kiện: J1: con 3: input

J2: con 3: output D1: diode cầu C1:1000μF C2: 1000μF C3: 1000μFb C4: 1000μF C5: tụ 104 C6: tụ 104 R1: 6 Ω 5W R2: 6 Ω 5W

7815: IC ổn áp 15V

Trang 40

7915: IC ổn áp 15V

• Phân tích mạch điện

Mạch điện gồm những phần sau : Hạ áp, chỉnh lưu, lọc, biến đổi (78xx) Nguồn điện xoạy chiều 220VAC-50Hz qua biến áp là hạ áp xuống còn 24VAC - 1A và được qua bộ chỉnh lưu nhằm biến đổi điện xoay chiều thành điện 1 chiều Thành phần 1 chiều này có độ gợn nên phải qua bộ lọc C để san phảng điện áp gợn đó cho ra điện áp 1 chiều Sau đó điện áp 1 chiều này qua bộ ổn áp 78xx cho ra điện áp ổn áp mà mình cần

Hạ áp : Ở đây chúng ta biến đổi điện áp lưới 220VAC-50Hz xuống còn

24VAC - 1A Mục đích là cấp đầy vào cho bộ biến đổi và bộ lọc để có điện áp một chiều mong muốn

Chỉnh lưu: Thành phần chỉnh lưu là biến đổi tín hiệu xoay chiều thành tín

hiệu 1 chiều thông qua 4 con diode chỉnh lưu Đây là sơ đồ chỉnh lưu cả chu kì với dạng sóng đầu vào và đầu ra sau chỉnh lưu như sau:

Hình 3.4 Sơ đồ chỉnh lưu

+ Điện áp đầu vào của bộ chỉnh lưu: Uv = 24sqrt2 = 34VDC

+ Điện áp sụt áp trên cầu là : 34VDC - 1.5VDC = 32.5VDC (Do đi qua 2 diode nên mỗi diode bị sụt áp mất 0.7V)

Ngày đăng: 16/11/2012, 12:11

HÌNH ẢNH LIÊN QUAN

Hình 1.2 Cấu trúc bên trong AVR. - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 1.2 Cấu trúc bên trong AVR (Trang 10)
Bảng 1.1 Bảng so sánh những đặc tính giữa ATmega32 với họ AT89C51. - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Bảng 1.1 Bảng so sánh những đặc tính giữa ATmega32 với họ AT89C51 (Trang 12)
Hình1. 3C ấu trúc chân của AVR - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 1. 3C ấu trúc chân của AVR (Trang 14)
Hình1. 4 Sơ đồ một cổng vào ra - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 1. 4 Sơ đồ một cổng vào ra (Trang 15)
Hình1. 5 Bộ nhớ chương trình có và không có sử dụng boot loader - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 1. 5 Bộ nhớ chương trình có và không có sử dụng boot loader (Trang 17)
Hình 1.6 Giao diện chương trình Bascom AVR. - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 1.6 Giao diện chương trình Bascom AVR (Trang 20)
Hình 1.7 Giao diện Visual Basic. - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 1.7 Giao diện Visual Basic (Trang 22)
Hình 1.9 Add –ins manager - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 1.9 Add –ins manager (Trang 23)
Hình 1.11 Toolbox - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 1.11 Toolbox (Trang 24)
Hình 1.12 Properties - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 1.12 Properties (Trang 25)
Hình 1.14 Designer - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 1.14 Designer (Trang 26)
Hình 1.13 Form layout - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 1.13 Form layout (Trang 26)
Hình 1.15 Giao diện viết code - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 1.15 Giao diện viết code (Trang 27)
Trong hình dưới đây, Properties Window và Form Layout đã được kéo ra ngoài cho floating - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
rong hình dưới đây, Properties Window và Form Layout đã được kéo ra ngoài cho floating (Trang 28)
Hình1.17 Cảm biến áp lực - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 1.17 Cảm biến áp lực (Trang 30)
Hình 1.18 Sơ đồ kết nối điện - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 1.18 Sơ đồ kết nối điện (Trang 32)
Hình1.19 GPRS Modem G2403R - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 1.19 GPRS Modem G2403R (Trang 32)
Hình 3.1: Sơ đồ - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 3.1 Sơ đồ (Trang 37)
Hình 3.3 Mạch nguồn ± 15V - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 3.3 Mạch nguồn ± 15V (Trang 39)
Hình 3.4 Sơ đồ chỉnh lưu - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 3.4 Sơ đồ chỉnh lưu (Trang 40)
Hình 3.5 Dạng điện áp sau khi qua bộ lọc. - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 3.5 Dạng điện áp sau khi qua bộ lọc (Trang 41)
Hình 3.8 Mạch RCV420. - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 3.8 Mạch RCV420 (Trang 43)
Hình 3.7 Sơ đồ nguyên lý mạch RCV420. - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 3.7 Sơ đồ nguyên lý mạch RCV420 (Trang 43)
Hình 3.9 Sơ đồ nguyên lý mạch nạp AVR - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 3.9 Sơ đồ nguyên lý mạch nạp AVR (Trang 44)
Hình 3.11 Sơ đồ nguyên lý mạch ứng dụng AVR. - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 3.11 Sơ đồ nguyên lý mạch ứng dụng AVR (Trang 45)
Hình 3.10 Mạch nạp AVR. - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 3.10 Mạch nạp AVR (Trang 45)
Hình 3.12 Mạch AVR. - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 3.12 Mạch AVR (Trang 46)
Hình 3.13 Giao diện với máy tín h1 - Truyền dữ liệu lưu lượng nước bằng SMS phần 2
Hình 3.13 Giao diện với máy tín h1 (Trang 82)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w