4. Nội dung nghiên cứu
2.3. Sơ đồ phân cấp chức năng hệ thống
2.3.1. Sơ đồ khối tổng quan hệ thống
…
Hình 2.2: Sơ đồ khối hệ thống
Sơ đồ trên miêu tả các chức năng cơ bản của hệ thống giám sát điện năng từ xa. Các hộ dân được lắp đặt công tơ điện tử, kết nối với bộ thu phát dữ liệu. Bộ thu phát dữ liệu này có chức năng thu thập dữ liệu là số liệu từ công tơ điện, rồi xử lý tính toán và gửi dữ liệu lên server qua kết nối GPRS. Server có chức năng tổng hợp dữ liệu gửi lên từ các client, tính toán và lưu vào cơ sở dữ liệu, đồng thời lấy dữ liệu từ cơ sở dữ liệu và hiển thị lên website cho người tiêu dùng biết và lượng điện năng tiêu thụ của mình trong tháng. Người tiêu dùng có thể truy cập vào website của hệ thống để cập nhật thông tin về điện năng tiêu thụ của gia định mình. Đồng thời Server cũng có chức năng gửi thông báo đến người tiêu dùng qua tin nhắn SMS.
Hệ thống được xây dựng trên cơ sở sử dụng phương thức truyền phát dữ
Server CSDL Công tơ điện 1 Công tơ điện 2 Công tơ điện n Website GPRS Người tiêu dùng Bộ thu phát DL 1 Bộ thu phát DL 2 Bộ thu phát DL n GPRS GPRS SMS
truyền qua giao thức TCP/IP. Với cách thức như vậy hệ thống sẽ tiết kiệm được chi phi xây dựng cơ sở hạ tầng, thiết bị nhỏ gọn, dễ lắp đặt. Hứa hẹn một hướng phát triển mới trong ngành điện.
2.3.2. Sơ đồ phân cấp chức năng của hệ thống
Hình 2.3: Sơ đồ tổng quát chức năng hệ thống
Hệ thống có ba chức năng có bản như trên sơ đồ:
Quản lý người dùng: cung cấp user name, password cho người dùng, cho
phép người dùng truy cập vào website để theo dõi thông tin về điện năng tiêu thụ. Cho phép thêm, sửa hoặc xóa người dùng.
Thu thập và xử lý dữ liệu:
- Hệ thông liên tục cập nhật dữ liệu được gửi lên từ client và cập nhật vào
cơ sở dữ liệu.
- Truy vấn cơ sở dữ liệu và hiển thị lên website cho người dùng theo dõi.
Gửi thông báo cước: là chức năng gửi thông tin về cước tiền điện hàng
tháng cho người tiêu dùng. Thông báo được gửi dưới dạng tin nhắn SMS đến số điện thoại di động mà người dùng đã đăng ký.
2.4. Thiết kế bảng cơ sở dữ liệu 2.4.1. Bảng người dùng: user 2.4.1. Bảng người dùng: user
Hình 2.4: Bảng người dùng
Hệ thống giám sát điện năng
Thu thập và xử
lý dữ liệu Gửi thông báo cước
Quản lý người dùng
Bảng này lưu trữ thông tin về UserName/Password của người dùng do người quản trị hệ thống cung cấp. Bao gồm các trường như sau:
- id: mã của người sử dụng, dạng text 10 ký tự.
- ten: tên đăng nhập hệ thống của người dùng, dạng text 15 ký tự.
- matkhau: mật khẩu sử dụng, dạng text 15 ký tự.
- ngaythang: Ngày bắt đầu đăng ký sử dụng hệ thống, dạng date
2.4.2. Bảng thông tin khách hàng: thong_tin_KH
Hình 2.5: Bảng thông tin khách hàng
Bảng này lưu trữ thông tin của khách hàng, bao gồm các trường: - id: mã của khách hàng sử dụng, dạng text 10 ký tự.
- hoten: Họ và tên của khách hàng, dạng text 50 ký tự.
- sdt: lưu trữ số điện thoại của khách hàng, dạng text 15 ký tự.
- diachi: lưu trữ thông tin về địa chỉ của khách hàng, dạng text 50 ký tự. Dưới đây là ví dụ về bảng lưu trữ thông tin khách hàng
Hình 2.6: Bảng danh sách khách hàng
2.4.3. Bảng tiêu thụ điện năng dien_nang
Bảng thông tin tiêu thụ điện năng hàng tháng của khách hàng bao gồm các trường sau:
- jan, feb, ..., dec: lưu trữ số lượng điện năng từ tháng 1 đến tháng 12 trong năm của khách hàng, dạng text 15 ký tự.
Hình 2.7: Bảng điện năng
Dưới đây là ví dụ về bảng thông tin sử dụng điện năng của các khách hàng theo các tháng từ tháng 1 đến tháng 12.
2.4.4. Bảng tiền điện sử dụng tien_dien
Hình 2.9: Bảng tiền điện
Bảng thông tin tiền điện năng hàng tháng của khách hàng bao gồm các trường sau:
- id: Mã của khách hàng, dạng text 10 ký tự.
- jan, feb, ..., dec: lưu trữ tiền điện khách hàng phải trả từ tháng 1 đến tháng 12 trong năm của khách hàng, dạng text 15 ký tự.
Dưới đây là ví dụ về bảng giá cước tiền điện hàng tháng của khách hàng
Hình 2.10: Bảng giá cước tiền điện hàng tháng
Việc xây dựng cơ sở dữ liệu khách hàng một cách khoa học sẽ tạo điều kiện thuận lợi cho việc quản lý khách hàng, thu thập dữ liệu và hiển thị các thông tin trên
Chương 3
XÂY DỰNG HỆ THỐNG
Dựa vào những phân tích cụ thể đã nêu ở phần chương 2, trong chương 3 này đi vào tập trung vào xây dựng hệ thống thực tế để mô phỏng cho các chức năng của một hệ thống M2M thu nhỏ. Chương này sẽ tập trung nghiên cứu, lắp ráp các thiết bị phần cứng và viết chương trình cho hệ thống đảm bảo các chức năng theo yêu cầu của một hệ thống M2M.
3.1. Xây dựng phần cứng
3.1.1. Công tơ điện tích hợp mạch đếm xung
Với việc chế tạo một mô hình M2M giám sát, thu thập điện năng. Lựa chọn công tơ điện một pha là loại cơ, có thông số là 900 vòng/1kWh. Tức là đĩa quay quay 900 vòng sẽ được một số điện. Đây là loại đồng hồ khá phổ biến trên thị trường hiện nay, giá thành hợp lý, độ nhạy và độ chính xác cao, dễ dàng quan sát. Tuy nhiên với việc sử dụng loại công tơ này sẽ gặp khó khăn trong việc lấy dữ liệu từ công tơ ra để đưa về bộ mạch xử lý tính toán. Hiện nay ngành điện lực cũng đã sản xuất ra loại công tơ điện tử khá tiện lợi cho việc đọc dữ liệu ra để xử lý, tuy nhiên loại công tơ này còn khá mới mẻ và chưa phổ biến trong việc sử dụng để đo đếm điện năng.
Để khắc phục những nhược điểm của công tơ cơ, tôi đã lợi dụng cơ cấu hoạt động của đĩa quay bên trong công tơ để đo đếm và đọc số liệu về mạch xử lý tín hiệu.
Hình 3.1: Công tơ điện một pha
Cụ thể là sử dụng thêm một mạch đếm xung có nhiệm vụ đếm số vòng quay của đĩa quay. Mạch đếm xung sử dụng cảm biến thu phát hồng ngoại gắn bên trong công tơ.
Mỗi khi đĩa quay của công tơ quay được 1 vòng thì mạch cảm biến sẽ tạo ra 1 xung tín hiệu và đưa về mạch thu thập dữ liệu.
Như vậy, khi nhận được 900 xung tức là công tơ đo được 1kWh (hay 1 số điện).
Với cách làm như vậy, chúng ta hoàn toàn có thể có được một bộ công tơ đo điện năng một pha đồng thời có thể lấy được tín hiệu điện về các mạch xử lý tín hiệu giống công tơ điện tử. Cách làm này vừa đơn giản, hiệu quả mà lại tiết kiệm được chi phí.
3.1.2. Bộ thu phát dữ liệu
3.1.2.1. Mạch điều khiển arduino
Tín hiệu số được lấy từ công tơ và đưa về mạch thu thập dữ liệu. Lựa chọn mạch Arduino với vi điều khiển Atmega328. Đây là một mạch điều khiển hoạt động khá ổn định, nhiều tính năng vượt trội như: xử lý tín hiệu số, tương tự, khả năng hỗ trợ lập trình cao với ngôn ngữ lập trình C.
Hình 3.3: Mạch thu thập dữ liệu
Trong phần nghiên cứu của mình, tôi sử dụng bo mạch Arduino Uno R3. Đây là mạch điều khiển dựa trên ATmega328P. Nó có 14 chân kỹ thuật số đầu vào /
đầu ra (trong đó 6 chân có thể được sử dụng như là kết quả đầu ra PWM), 6 đầu vào analog, 16 MHz, kết nối USB, một jack cắm điện, một ICSP và một nút reset. Nó có chứa tất cả mọi thứ cần thiết để hỗ trợ các vi điều khiển và chỉ cần kết nối nó với máy tính bằng cáp USB hoặc điện nó với một bộ chuyển đổi AC-to-DC hoặc pin để hoạt động.
Thông số kĩ thuật
Vi điều khiển: ATmega328P
Điện áp hoạt động: 5V
Điện áp đầu vào (đề nghị): 7-12V
Điện áp đầu vào (giới hạn): 6-20V
Kỹ thuật số I / O Pins: 14 (trong đó có 6 cung cấp PWM)
PWM kỹ thuật số I / O Pins: 6
Pins Input Analog: 6
DC hiện tại mỗi I / O Pin 20 mA
DC hiện tại cho 3.3V Pin 50 mA
Bộ nhớ flash: 32 KB (ATmega328P) 0,5 KB sử dụng bởi bộ nạp khởi
động SRAM: 2 KB (ATmega328P) EEPROM: 1 KB (ATmega328P) Tốc độ đồng hồ: 16 MHz Chiều dài: 68,6 mm Chiều rộngL: 53,4 mm Cân nặng: 25 g
Đầu vào và đầu ra
Các chân I/O số của mạch đều nó hoạt động ở 5 volts. Mỗi pin có thể cung cấp hoặc nhận được 20 mA như tình trạng hoạt động đề nghị và có một điện trở kéo lên (ngắt kết nối theo mặc định) của 20-50k ohm. Dòng tối ddacos thể đưa vào các chân này là 40mA.
Nối tiếp: 0 (RX) và 1 (TX). Được sử dụng để nhận (RX) và truyền dữ liệu nối tiếp (TX) TTL. Các chân này được kết nối với các chân tương ứng của ATmega8U2 USB-to-TT.
Ngắt ngoài: 2 và 3. Các chân này có thể được cấu hình để kích hoạt một
ngắt ngoài bằng một giá trị mức thấp theo sường xuống.
PWM: 3, 5, 6, 9, 10, và 11. Cung cấp đầu ra, điều chế độ rộng xung PWM 8-bit.
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Các chân này hỗ trợ SPI
giao tiếp bằng cách sử dụng thư viện SPI.
LED: 13. Có một đèn LED điều khiển bằng kỹ thuật số pin 13. Khi pin là
giá trị cao, đèn LED được bật.
TWI: A4 hoặc SDA pin và A5 hoặc pin SCL. Hỗ trợ giao tiếp TWI sử
dụng thư viện Wire.
Lập trình cho mạch:
Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngôn riêng. Ngôn ngữ này dựa trên ngôn ngữ Wiring được viết cho phần cứng nói chung. Và Wiring lại là một biến thể của C/C++. Một số người gọi nó là Wiring, một số khác thì gọi là C hay C/C++. Gọi chung là “ngôn ngữ Arduino”, và đội ngũ phát triển Arduino cũng gọi như vậy. Ngôn ngữ Arduino bắt nguồn từ C/C++ phổ biến hiện nay do đó rất dễ học, dễ hiểu.
Để lập trình cũng như gửi lệnh và nhận tín hiệu từ mạch Arduino, nhóm phát triển dự án này đã cũng cấp đến cho người dùng một môi trường lập trình Arduino được gọi là Arduino IDE (Intergrated Development Environment) như hình dưới đây.
Hình 3.5: Phần mềm lập trình cho mạch Arduino
Để đọc tính hiệu từ mạch đếm xung về mạch arduino, sử dụng phương pháp xử lý ngắt ngoài để đọc xung tín hiệu đưa về. Sau một khoảng thời gian cố định (do người lập trình đặt, có thể là 1 giờ, một ngày…) mạch sẽ tính toán ra lượng điện năng (kWh) đã tiêu thụ trong thời khoảng thời gian đó rồi gửi dữ liệu sang mạch
3.1.2.2. Module sim900A
a. Giới thiệu Module Breakout SIM 900A.
Một modem GSM là một modem wireless, nó làm việc cùng với một mạng wireless GSM. Một modem wireless thì cũng hoạt động giống như một modem quay số.
Điểm khác nhau chính ở đây là modem quay số thì truyền và nhận dữ liệu thông qua một đường dây điện thoại cố định trong khi đó một modem wireless thì việc gửi nhận dữ liệu thông qua sóng.
Giống như một điện thoại di động GSM, một modem GSM yêu cầu 1 thẻ sim với một mạng wireless để hoạt động.
Module SIM 900A là một trong những loại modem GSM. Nhưng Module SIM 900A được nâng cao hơn có tốc độ truyền dữ liệu nhanh hơn. Nó sử dụng công nghệ GSM/GPRS hoạt động ở băng tầng GSM 850Mhz, EGSM 900Mhz, DCS 1800 Mhz và PCS 1900Mhz, có tính năng GPRS của Sim 900.
Và hỗ trợ GPRS theo dạng đồ thị mã hóa CS-1, CS-2, CS-3 và CS-4.
b. Đặc điểm của module SIM 900A
- Nguồn cung cấp khoảng 3,4 – 4,5V
- Nguồn lưu trữ
- Băng tần: GSM 850Mhz EGSM 900Mhz, DCS 1800 Mhz và PCS
1900Mhz SIM900 có thể tự động tìm kiếm các băng tần.
- Phù hợp với GSM Pha 2/2 + Loại GSM là loại MS nhỏ + Kết nối GPRS 8 lớp điện dung 10 lớp điện dung - Giới hạn nhiêt độ: + Bình thường -30oC tới +80o C + Hạn chế: - 40 oC tới -30 oC và +80 oC tới +85 oC + Nhiệt độ bảo quản: -45 oC tới 90 o
C
- Dữ liệu GPRS:
+ GPRS dữ liệu tải xuống: Max 85.6 kbps + GPRS dữ liệu úp lên: Max 42.8 kbps
+ Sơ đồ mã hóa: CS-1, CS-2, CS-3 và CS-4
+ Sim 900 hổ trợ giao thức PAP, kiểu sử dụng kết nối PPP + Sim 900 tích hợp giao thức TCP/IP
+ Chấp nhận thông tin được điều chỉnh rộng rãi
- SMS:
+ MT, MO, CB, Text and PDU mode + Bộ nhớ SMS: Sim card
+ Sim card:
+ Hỗ trợ sim card: 1,8 v ; 3v
- Anten ngoài:
+ Kết nối thông qua anten ngoài 500km hoặc đế anten
- Âm thanh:
+ Dạng mã hòa âm thanh. + Mức chế độ (ETS 06.20) + Toàn bộ chế độ (ETS 06.10)
+ Toàn bộ chế độ tăng cường (ETS 06.50/ 06.06/ 06.80) + Loại bỏ tiếng dội
- Giao tiếp nối tiếp và sự ghép nối:
+ Cổng nối tiếp: 8 Cổng nối tiếp (ghép nối)
+ Cổng kết nối có thể SD với CSD Fax, GPRS và gửi lệnh ATCommand tới module điều khiển
+ Cổng nối tiếp có thể SD chức năng giao tiếp + Hỗ trợ tốc độ truyền 1200 BPS tới 115200 BPS + Cổng hiệu chỉnh lỗi: 2 cổng nối tiếp TXD và RXD
+ Cổng hiệu chỉnh lỗi chỉ sử dụng sữa lỗi
- Quản lý danh sách:
+ Hỗ trợ mẫu danh sách: SM, FD, LD, RC, ON, MC
- Đồng hồ thời gian thực:
+ Người cài đặt
- Times function:
+ Kích thước 24mmx24mmx24mm> Nặng 3.4g
Hình 3.6: IC SIM 900A và module SIM 900A
c. Khảo sát sơ đồ chân và chức năng từng chân của Breakout SIM 900A
Sơ đồ nguyên lý:
Hình 3.7: Sơ đồ nguyên lý IC Sim 900A
Sơ đồ chân Breakout:
PWRKEY 1 PWRKEY_OUT 2 DTR 3 RI 4 DCS 5 DSR 6 CTS 7 RTS 8 TXD 9 RXD 10 DISP_CLK 11 DISP_DATA 12 DISP_D/C 13 DISP_CS 14 VDD_EXT 15 NRESET 16 GND 17 GND 18 MIC_P 19 MIC_N 20 SPK_P 21 SPK_N 22 LINEIN_R 23 LINEIN_L 24 ADC 25 VRTC 26 DBG_TXD 27 DBG_RXD 28 GND 29 SIM_VDD 30 SIM_DATA 31 SIM_CLK 32 SIM_RST 33 SIM_PRESENCE 34 PWM1 35 PWM2 36 SDA 37 SCL 38 GND 39 KBR4/GPIO1 40 KBR3/GPIO2 41 KBR2/GPIO3 42 KBR1/GPIO4 43 KBR0/GPIO5 44 GND 45 GND 46 KBC4/GPIO6 47 KBC3/GPIO7 48 KBC2/GPIO8 49 KBC1/GPIO9 50 KBC0/GPIO10 51 NETLIGHT 52 GND 53 GND 54 VBAT 55 VBAT 56 VBAT 57 GND 58 GND 59 RF_ANT 60 GND 61 GND 62 GND 63 GND 64 GND 65 STATUS 66 GPIO11 67 GPIO12 68 U1 SIM900 2 3 5 6 1 GND Vpp VDD RST SIMCARD CLK DATA 7 SIMCARD1 SIMCARD GND GND GND GND GND GND GND GND SIM_VDD SIM_DATA SIM_CLK SIM_RST R11 22 R10 22 R12 22 SIM_CLK SIM_RST SIM_VDD GND SIM_DATA C3 22P C4 104 GND 5 3 4 2 1 E1 ANTENNA GND ANTEN GND NETLIGHT STATUS PWRKEY TXD RXD RI VDD_EXT NRESET DBG_TXD DBG_RXD VBAT Q3 C1815 R7 1K R9 10K NRESET GND RST Q2 C1815 R5 1K R6 10K GND 2 1 SW1 SW PWRKEY PWR_KEY Q1 C1815 R3 1K R4 10K GND NETLIGHT A K LED2 LED R2 3.3K VBAT R1 330K GND A K LED1 LED STATUS 1 2 3 4 5 6 7 8 JP1 JP8 PIN DBG_TXD DBG_RXD TXD RXD RST PWR_KEY !VBAT GND 1 2