Xây dựng csdl và giao diện giám sát hệ thống chuyển đổi điện 1 chiều sang xoay chiều Xây dựng csdl và giao diện giám sát hệ thống chuyển đổi điện 1 chiều sang xoay chiều Xây dựng csdl và giao diện giám sát hệ thống chuyển đổi điện 1 chiều sang xoay chiều
Cơ Sở Lý Thuyết
Giới Thiệu Chung Về Hệ Thống
Hệ thống giám sát cho phép theo dõi các thay đổi và biến động bất thường trong hệ thống chuyển đổi điện, giúp kỹ thuật viên đưa ra đánh giá chính xác và áp dụng các biện pháp kỹ thuật cần thiết để bảo trì và sửa chữa hiệu quả.
Hệ thống sẽ ngưng hoạt động nếu như nguồn cấp không đủ hoặc nguồn ra không đảm bảo.
Hệ thống giám sát chuyển đổi điện là giải pháp lý tưởng cho nhà máy năng lượng mặt trời, cung cấp nguồn dự phòng cho các hệ thống máy móc và hỗ trợ các hộ gia đình trong việc sử dụng điện tích trữ hiệu quả.
Hệ thống có cơ sở dữ liệu lưu trữ lại thông tin về điện áp khi hệ thống hoạt động.
Các chuẩn được sử dụng
Giao tiếp giữa PC và vi điều khiển là yếu tố quan trọng trong các ứng dụng điều khiển và đo lường Kỹ thuật ghép nối qua cổng RS232 được sử dụng phổ biến để kết nối các thiết bị ngoại vi với máy tính Đây là một chuẩn giao tiếp nối tiếp không đồng bộ, cho phép kết nối tối đa 2 thiết bị với chiều dài tối đa từ 12.5 đến 25.4m Tốc độ truyền dữ liệu thông thường là 20kbit/s, có thể lên đến 115kbit/s với một số thiết bị đặc biệt Chuẩn truyền thông nối tiếp cho thấy chỉ một bit được gửi đi tại một thời điểm trên đường truyền.
Có hai phiên bản RS232 phổ biến là RS232B và RS232C, trong đó RS232C hiện vẫn được sử dụng rộng rãi và thường được gọi tắt là chuẩn RS232 Các máy tính thường trang bị 1 hoặc 2 cổng nối tiếp theo chuẩn RS232C, được gọi là cổng Com, dùng để kết nối với chuột, modem, và thiết bị đo lường Cổng RS232 có thể có 9 hoặc 25 chân, tùy thuộc vào đời máy và bo mạch chủ Việc thiết kế giao tiếp với cổng RS232 tương đối dễ dàng, đặc biệt khi sử dụng chế độ không đồng bộ và tốc độ truyền dữ liệu thấp.
Khả năng chống nhiễu của các cổng nối tiếp cao.
Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang được cấp điện.
Các mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua công nối tiếp.
Những đặc điểm cần lưu ý trong chuẩn RS232
Trong chuẩn RS232 có mức giới hạn trên và dưới (logic 0 và 1) là +-12V. Hiện nay đang được cố định trở kháng tải trong phạm vi từ 3000 ôm -
Mức logic 1 có điện áp nằm trong khoảng -3V đến -12V, mức logic 0 từ +-3V đến 12V.
Tốc độ truyền nhận dữ liệu cực đại là 100kbps (ngày nay có thể lớn hơn).
Các lối vào phải có điện dung nhỏ hơn 2500pF.
Trở kháng tải phải lớn hơn 3000Ώ nhưng phải nhỏ hơn 7000Ώ.
Độ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng nối tiếp RS232 không vượt qua 15m.
Các giá trị tốc độ truyền dữ liệu chuẩn hay dùng: 9600, 19200, 28800,
Các mức điện áp đường truyền
RS232 là một chuẩn truyền thông không đối xứng, sử dụng tín hiệu điện áp chênh lệch giữa dây dẫn và đất, khiến nó trở nên lỗi thời so với chuẩn TTL Chuẩn này vẫn duy trì các mức điện áp tương thích TTL để biểu thị các mức logic 0 và 1 Ngoài ra, RS232 cũng quy định các giá trị trở kháng tải kết nối vào bus của thiết bị và trở kháng ra của bộ phát.
Mức điện áp của tiêu chuẩn RS232C (chuẩn thường dùng bây giờ) được mô tả như sau:
Các mức điện áp từ -3V đến 3V được coi là trạng thái chuyển tuyến, vì đây là phạm vi không được định nghĩa Khi giá trị logic thay đổi từ thấp lên cao hoặc ngược lại, tín hiệu cần vượt qua quãng quá độ trong thời gian ngắn hợp lý Điều này yêu cầu hạn chế điện dung của các thiết bị và đường truyền Tốc độ truyền dẫn tối đa phụ thuộc vào chiều dài dây dẫn, và hầu hết các hệ thống hiện nay chỉ hỗ trợ tốc độ tối đa 19,2 kBd.
Hầu hết máy tính cá nhân hiện nay đều có ít nhất một cổng Com (cổng nối tiếp RS232), với số lượng có thể lên tới 4 cổng tùy thuộc vào loại main Các cổng này được đánh dấu từ Com 1, Com 2, Com 3, và tiếp tục Có hai loại đầu nối chính cho cổng RS232 là đầu nối 9 chân (DB9) và 25 chân (DB25), trong đó DB9 là cổng đực và DB25 là cổng cái.
Quá trình truyền dữ liệu
Truyền dữ liệu qua cổng nối tiếp RS232 diễn ra theo phương thức không đồng bộ, với mỗi lần chỉ một bit (1 ký tự) được truyền Bộ truyền bắt đầu bằng một bit bắt đầu (bit start) có mức 0 để thông báo cho bộ nhận biết rằng một ký tự sẽ được gửi Sau đó, các bit dữ liệu (bits data) được truyền dưới dạng mã ASCII, có thể là 5, 6, 7 hoặc 8 bit Tiếp theo là một bit kiểm tra (Parity bit) để xác định tính chẵn lẻ, và cuối cùng là bit dừng (bit stop), có thể là 1, 1,5 hoặc 2 bit.
Tốc độ Baud là một tham số quan trọng của giao thức RS232, thể hiện tốc độ truyền dữ liệu qua cổng nối tiếp Tốc độ này, hay còn gọi là tốc độ bit, được định nghĩa là số bit truyền được trong 1 giây Để đảm bảo quá trình truyền dữ liệu diễn ra suôn sẻ, tốc độ bit phải được thiết lập giống nhau ở cả thiết bị phát và thiết bị nhận, nghĩa là vi điều khiển và máy tính cần có cùng một tốc độ truyền bit.
Tốc độ Baud là một tham số quan trọng bên cạnh tốc độ bit trong việc mô tả tốc độ truyền dữ liệu Tốc độ Baud phản ánh tốc độ mà các phần tử mã hóa dữ liệu được sử dụng để biểu diễn bit, trong khi tốc độ bit thể hiện tốc độ thực tế của việc truyền bit Khi mỗi phần tử mã hóa một bit, tốc độ bit và tốc độ Baud sẽ đồng nhất Một số tốc độ Baud phổ biến bao gồm: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800 và 9600.
Trong các thiết bị, tốc độ thường được sử dụng là 19200 bps Khi áp dụng chuẩn nối tiếp RS232, yêu cầu thời gian chuyển mức logic không được vượt quá 4% thời gian truyền một bit Do đó, với tốc độ bit cao hơn, thời gian truyền một bit sẽ giảm, dẫn đến yêu cầu thời gian chuyển mức logic cũng phải nhỏ hơn Điều này giới hạn tốc Baud và khoảng cách truyền tín hiệu.
Bit chẵn lẻ, hay còn gọi là Parity bit, là một phương pháp kiểm tra lỗi trong quá trình truyền dữ liệu Kỹ thuật này bổ sung thêm một bit vào dữ liệu để xác định và sửa chữa các lỗi có thể xảy ra trong quá trình truyền Trong chuẩn RS232, bit chẵn lẻ được sử dụng để kiểm tra số lượng các bit "1" trong khung dữ liệu, giúp xác định xem chúng là chẵn hay lẻ.
Parity bit chỉ có thể phát hiện một số lượng lẻ các lỗi như 1, 3, 5, 7, 9 Nếu một bit chẵn bị lỗi, Parity bit sẽ giữ nguyên giá trị như trường hợp không có lỗi, dẫn đến việc không phát hiện được lỗi Vì vậy, kỹ thuật mã hóa lỗi này không phù hợp khi có khả năng xảy ra lỗi ở nhiều bit.
Bộ chuyển đổi ADC (Analog-to-Digital Converter) là thiết bị cho phép vi điều khiển đọc tín hiệu nhị phân, chẳng hạn như việc xác định trạng thái của nút bấm (được nhấn hay không) Khi vi điều khiển hoạt động với nguồn 5V, nó coi 0V là 0 và 5V là 1 Tuy nhiên, nếu tín hiệu là 2,72V thì không thể xác định rõ ràng đó là 0 hay 1 Để đo lường các tín hiệu khác nhau, được gọi là tín hiệu tương tự, cảm biến có thể xuất ra các giá trị như 0,01V hoặc 4,99V, hoặc bất kỳ giá trị nào trong khoảng đó May mắn thay, hầu hết các vi điều khiển đều tích hợp bộ chuyển đổi ADC, giúp chuyển đổi các điện áp này thành giá trị số mà chúng ta có thể sử dụng trong các chương trình để đưa ra quyết định điều khiển.
Dưới đây là một số chủ đề và khái niệm bạn có thể muốn biết trước khi đọc hướng dẫn này:
Điện áp, Dòng điện, Điện trở
Bộ chuyển đổi ADC là gì?
Bộ chuyển đổi tương tự sang kỹ thuật số (ADC) là thiết bị quan trọng giúp chuyển đổi điện áp tương tự thành tín hiệu số Việc chuyển đổi này cho phép các thiết bị điện tử giao tiếp hiệu quả với môi trường tương tự xung quanh, mở ra nhiều ứng dụng trong công nghệ hiện đại.
Không phải tất cả các chân trên vi điều khiển đều có khả năng thực hiện chuyển đổi từ tín hiệu tương tự sang kỹ thuật số Trên board Arduino, các chân có khả năng đọc điện áp tương tự được đánh dấu bằng chữ 'A' phía trước, từ A0 đến A5.
ADC (Bộ chuyển đổi tương tự sang số) có sự khác biệt rõ rệt giữa các vi điều khiển Trên Arduino, ADC là 10 bit, cho phép thực hiện 1.024 mức tương tự rời rạc Trong khi đó, một số vi điều khiển khác sử dụng ADC 8 bit với 256 mức rời rạc, và một số khác có ADC 16 bit.
UART
UART, viết tắt của "Universal Asynchronous Receiver / Transmitter", là một vi mạch có sẵn trong vi điều khiển, không giống như các giao thức truyền thông như I2C và SPI Chức năng chính của UART là truyền dữ liệu nối tiếp, cho phép giao tiếp giữa hai thiết bị thông qua hai phương thức: giao tiếp dữ liệu nối tiếp và giao tiếp dữ liệu song song.
1.3.1 Truyền thông nối tiếp và song song
Giao tiếp dữ liệu nối tiếp cho phép truyền dữ liệu qua cáp hoặc đường dây dưới dạng bit-bit, chỉ cần hai cáp So với giao tiếp song song, truyền thông dữ liệu nối tiếp có chi phí thấp hơn và yêu cầu ít mạch cũng như dây hơn Do đó, giao tiếp nối tiếp rất hữu ích trong các mạch ghép.
Giao tiếp dữ liệu song song cho phép truyền dữ liệu qua nhiều cáp đồng thời, mang lại tốc độ cao nhưng chi phí cao do yêu cầu phần cứng và cáp bổ sung Những ví dụ tiêu biểu cho kiểu giao tiếp này bao gồm máy in cũ, PCI và RAM.
Hình 1.3 Giao tiếp song song
Sơ đồ khối UART bao gồm hai thành phần chính: máy phát và máy thu Máy phát có ba khối chính là thanh ghi giữ truyền, thanh ghi dịch chuyển và logic điều khiển, trong khi máy thu bao gồm một thanh ghi giữ, thanh ghi thay đổi và logic điều khiển Cả hai phần này thường được cung cấp bởi một bộ tạo tốc độ baud, có nhiệm vụ tạo ra tốc độ truyền khi máy phát và máy thu cần trao đổi dữ liệu.
Thanh ghi trong máy phát chứa byte dữ liệu được truyền Các thanh ghi này thay đổi trong máy phát và máy thu, di chuyển các bit sang phải hoặc trái cho đến khi một byte dữ liệu hoàn tất việc truyền hoặc nhận Logic điều khiển đọc hoặc ghi xác định thời điểm cần thực hiện việc đọc hoặc ghi dữ liệu.
Máy phát tốc độ baud giữa máy phát và máy thu có khả năng tạo ra tốc độ dao động từ 110 bps đến 230400 bps Tốc độ truyền dữ liệu thông thường của vi điều khiển nằm trong khoảng từ 9600 đến 115200 bps.
Hình 1.4 Sơ đồ khối UART
Trong giao tiếp UART, có hai loại chính là truyền UART và nhận UART, cho phép giao tiếp trực tiếp giữa chúng chỉ với hai cáp Dữ liệu được truyền từ chân Tx của UART này sang chân Rx của UART kia, và quá trình truyền dữ liệu diễn ra không đồng bộ, tức là không cần tín hiệu CLK để đồng bộ hóa các bit đầu ra.
UART truyền dữ liệu thông qua bus dữ liệu song song từ các thiết bị như vi điều khiển, bộ nhớ và CPU Khi nhận dữ liệu song song, UART sẽ tạo gói dữ liệu bằng cách thêm ba bit bắt đầu, dừng và trung bình Nó đọc từng bit trong gói dữ liệu và chuyển đổi dữ liệu nhận được về dạng song song, loại bỏ ba bit đã thêm Tóm lại, gói dữ liệu mà UART nhận được sẽ được chuyển đổi trở lại dạng song song và gửi qua bus dữ liệu ở đầu nhận.
Start-bit, hay còn gọi là bit đồng bộ hóa, được sử dụng để đánh dấu sự bắt đầu của quá trình truyền dữ liệu Trong một đường truyền dữ liệu, trạng thái không hoạt động thường ở mức điện áp cao Khi bắt đầu truyền dữ liệu, giao thức UART sẽ kéo đường dữ liệu từ mức điện áp cao (1) xuống mức điện áp thấp (0) Sự chuyển đổi này được UART nhận diện và đánh dấu thời điểm bắt đầu hiểu dữ liệu thực tế Thông thường, chỉ có một start-bit trong quá trình này.
Bit dừng nằm ở cuối gói dữ liệu, thường có độ dài 2 bit nhưng thường chỉ sử dụng 1 bit Để dừng sóng, UART duy trì đường dữ liệu ở mức điện áp cao.
Bit chẵn lẻ giúp người nhận xác minh tính chính xác của dữ liệu thu thập Đây là một phương pháp kiểm tra lỗi cơ bản, với hai loại là chẵn lẻ – chẵn lẻ và chẵn lẻ – lẻ Tuy nhiên, hệ thống này không phổ biến và không bắt buộc trong nhiều ứng dụng.
Dữ liệu bit hoặc khung dữ liệu
Các bit dữ liệu bao gồm thông tin thực được truyền từ người gửi đến người nhận Độ dài khung dữ liệu thường dao động từ 5 đến 8 bit, và nếu không sử dụng bit chẵn lẻ, chiều dài có thể lên đến 9 bit Thông thường, bit LSB (Least Significant Bit) được truyền trước, điều này rất hữu ích cho quá trình truyền dữ liệu.
Hình dưới đây cho thấy UART giao tiếp với vi điều khiển Giao tiếp UART có thể được thực hiện bằng ba tín hiệu như TXD, RXD và GND.
Bằng cách sử dụng board vi điều khiển 8051 và mô-đun UART, chúng ta có thể hiển thị văn bản trên máy tính cá nhân Board 8051 có hai giao diện nối tiếp là UART0 và UART1, trong đó UART0 được sử dụng để truyền và nhận thông tin Chân Tx của UART0 truyền dữ liệu đến máy tính, trong khi chân Rx nhận dữ liệu từ máy tính Tốc độ Baud là yếu tố quan trọng, cần được thiết lập giống nhau cho cả vi điều khiển và máy tính để đảm bảo việc truyền và nhận dữ liệu diễn ra chính xác.
1.3.5 Các ứng dụng của UART
UART là giao thức thường được áp dụng trong các bộ vi điều khiển để đáp ứng các yêu cầu về độ chính xác Nó cũng được tích hợp trong nhiều thiết bị liên lạc như giao tiếp không dây, thiết bị GPS, mô-đun Bluetooth và nhiều ứng dụng khác.
Các tiêu chuẩn truyền thông như RS422 và TIA thường được áp dụng trong giao tiếp nối tiếp UART, ngoại trừ RS232 Thông thường, UART được triển khai dưới dạng một IC độc lập, phục vụ cho các ứng dụng liên quan đến truyền thông nối tiếp.
1.3.6 Ưu điểm và nhược điểm của UART
Những ưu và nhược điểm của UART bao gồm những điều sau đây
Nó chỉ cần hai dây để truyền dữ liệu
Tín hiệu CLK là không cần thiết.
Nó bao gồm một bit chẵn lẻ để cho phép kiểm tra lỗi
Sắp xếp gói dữ liệu có thể được sửa đổi vì cả hai mặt được sắp xếp
Kích thước khung dữ liệu tối đa là 9 bit
Nó không chứa một số hệ thống phụ (hoặc)
Tốc độ truyền của UART phải ở mức 10% của nhau
Ứng dụng được sử dụng
C# (C sharp) là ngôn ngữ lập trình đa năng và biên dịch, được phát triển bởi Microsoft như một phần của kế hoạch NET Ngôn ngữ này được xây dựng dựa trên các ngôn ngữ lập trình C, C++ và Java, mang lại sự cân bằng giữa C++, Visual Basic, Delphi và Java.
1.4.1.1 Các cấu thành thông dụng
Button dùng để bấm kết nối, xóa, làm mới và thoát chương trình.
TextBox dùng để hiển thị giá trị đo được và hiển thị thời gian thực.
DataGridView dùng để hiển thị giá trị đo được từ arduino gửi về.
Label dùng để hiển thị tên nhớ.
Timer1 dùng để hiển thị thời gian thực.
SeriaPoart1 dùng dể kết nối với thiết bị ngoài.
Bindingsource1 dùng kết nối CSDL SQL.
Combobox dùng để hiển thị cổng kết nối tốc độ kết nối.
Thiết kế Form hiển thị dữ liệu
Bước 1: Khởi động Visual Studio 2010, thiết lập New Projec và chọn lập trình Windows Forms Application đặt tên theo định dạng như Hình 2.1.10
Name (đặt tên cho project), Location (Đặt tên folder chứa Project là tên lớp)
Solution name (Đặt giống với Name ở trên)
Hình 1.16 Giao diện Windows Forms Application
Bước 2: Tương ứng với 3 column trong CSDL, ta kéo thả các toolBox, label vàm textbox rồi đặt tên tương ứng:
Hình 1.17 Kéo thả label và textbox
Bảng 1: Đặt tên cho các Tools Box
Bước 3: Double click vào Button View Data để sinh ra sự kiện
BTViewData Click (object sender, EventArgs e)
Bước 4: Để hiển thị hiển thị dữ liệu có trên CSDL, ta kéo thả dataGridView
Hình 1.18 Kéo thả và chỉnh vị trí DataGridView
1.4.1.3 Giới thiệu cơ sở dữ liệu SQL Server
Cơ sở dữ liệu (Database - CSDL) là một tập hợp dữ liệu có tổ chức, cho phép lưu trữ và truy cập điện tử thông qua hệ thống máy tính Khi cơ sở dữ liệu trở nên phức tạp hơn, chúng được phát triển thông qua các thiết kế và mô hình hóa hình thức.
Hình 1.19 Phần mềm SQL Server 2008
Các bước xây dựng CSDL
Bước 1: Khởi động SQL Server Management Studio Nhấn vào Connect.
Hình 1.20 SQL Server Management Studio Bước 2: Tạo cơ sở dữ liệu mới: Tại mục Object Explorer, click chuột phải vào
Databases chọn New Database như Hình 1.23
Hình 1.22 Tạo Table và các kiểu dữ liệu
Tại mục Databases, chọn CSDL vừa tạo ở bước 2 và click chuột phải vào
Để tạo bảng mới, chọn "New Table" (Hình 2.2.4) và nhập các thông tin như Tên Cột, Kiểu Dữ Liệu và cho phép KHÔNG NHẬP DỮ LIỆU Sau khi hoàn tất việc nhập liệu, nhấp chuột phải vào hàng dữ liệu chính và chọn "Set Primary Key".
Hình 1.23 Thiết lập kiểu dữ liệu chính và lưu Table
Bước 4: Nhập dữ liệu(hoặc không nhập): Click chuột phải vào file dbo.ValueTemp chọn Edit Top 200 Rows (hoặc Edit All Rows) và tiến hành nhập dữ liệu.
1.4.2 Phần mềm hỗ trợ Arduino IDE:
Arduino IDE là một môi trường phát triển tích hợp mã nguồn mở, giúp người dùng dễ dàng viết mã và tải lên bo mạch Arduino Được phát triển bằng Java, môi trường này dựa trên ngôn ngữ lập trình xử lý cùng với các phần mềm mã nguồn mở khác, và có thể sử dụng với tất cả các loại bo mạch Arduino.
Chúng ta có thể hiểu Arduino IDE là một trình soạn thảo giúp bạn có để viết code và nạp vào linh kiện arduino của mình
Arduino là nền tảng mã nguồn mở tích hợp cả phần cứng và phần mềm, cho phép người dùng dễ dàng tạo ra các dự án điện tử Phần cứng của Arduino bao gồm hơn 300.000 loại bo mạch khác nhau, được thiết kế sẵn với các cảm biến và linh kiện đa dạng Phần mềm Arduino giúp người dùng linh hoạt sử dụng các cảm biến và linh kiện này, tùy theo mục đích của từng dự án.
Arduino IDE đóng vai trò quan trọng trong việc nạp chương trình vào linh kiện Arduino, giống như dây dẫn điện cung cấp năng lượng cho động cơ quạt hoạt động Phần mềm này được phát triển bằng ngôn ngữ lập trình Java, mang tính đa nền tảng (cross-platform) Các chương trình cho Arduino thường sử dụng ngôn ngữ C hoặc C++, và Arduino IDE đã tích hợp sẵn một thư viện phần mềm hỗ trợ lập trình.
Việc sử dụng các chương trình "wirting" gốc sẽ giúp bạn thực hiện thao tác lập trình dễ dàng hơn Một chương trình chạy trên Arduino được gọi là một sketch và được định dạng với đuôi ino.
Arduino IDE là công cụ hỗ trợ viết và nạp code cho các bo mạch Arduino và NodeMCU Người dùng có thể truy cập trang chủ Arduino tại http://arduino.cc để tải về và cài đặt phần mềm miễn phí, với phiên bản mới nhất là Arduino 1.8.5.
Phân Tích Thiết Kế Hệ Thống
Chức năng của hệ thống
Chuyển đổi dòng điện một chiều sang dòng điện xoay chiều, đồng thời giám sát và theo dõi quá trình này Thông tin sẽ được hiển thị trên giao diện và tự động lưu trữ các thông số của dòng điện một chiều đầu vào cùng với dòng điện xoay chiều đầu ra vào cơ sở dữ liệu SQL Server.
Sơ đồ khối của hệ thống
Hình 2.2 Sơ đồ khối hệ thống
Khối Nguồn: dùng để cấp nguồn cho các khối hoạt động.
Khối đo nguồn vào DC: Đọc thông số dòng điện 1 chiều và gửi dữ liệu về cho
Khối đo nguồn ra AC: Đọc thông số dòng điện xoay chiều và gửi dữ liệu về cho
Khối Vi điều khiển: xử lý tín hiệu và gửi dữ liệu tới Máy tính.
Khối Máy Tính: Hiển thị thông tin lên trên giao diện C# và lưu thông tin của thẻ vào CSDL SQL Server.
Các thiết bị được sử dụng
Arduino là một board mạch vi xử lý mở, được thiết kế để xây dựng các ứng dụng tương tác với môi trường, sử dụng vi xử lý AVR Atmel 8bit hoặc ARM Atmel 32-bit Mô hình hiện tại bao gồm 1 cổng USB, 6 chân đầu vào analog và 14 chân I/O kỹ thuật số, tương thích với nhiều board mở rộng Ra mắt vào năm 2005, Arduino mang đến giải pháp dễ dàng và tiết kiệm cho những người yêu thích, sinh viên và chuyên gia trong việc phát triển thiết bị tương tác qua cảm biến và cơ cấu chấp hành Các dự án phổ biến cho người mới bắt đầu bao gồm robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động Arduino đi kèm với môi trường phát triển tích hợp (IDE) cho phép viết chương trình bằng ngôn ngữ C hoặc C++ trên máy tính cá nhân.
Giá của các board Arduino dao động xung quanh €20, hoặc $27 hoặc
Giá của một mạch Arduino chính thức có thể lên tới 574.468 VNĐ, nhưng nếu "làm giả", chi phí có thể giảm xuống dưới 9 USD Các board Arduino có sẵn dưới dạng lắp sẵn hoặc kit tự lắp Thông tin thiết kế phần cứng được công khai, cho phép người dùng tự làm mạch Arduino (mã nguồn mở) Tính đến giữa năm 2011, ước tính có khoảng 300.000 mạch Arduino chính thức được sản xuất, và con số này đã tăng lên khoảng 700.000 vào năm 2013.
Hình 2.2 Arduino uno b Sơ đồ chân của Arduino
Hình 2.3 Sơ đồ các chân arduino c Sơ đồ nguyên lý của Arduino
Hình 2.4 Sơ đồ nguyên lí mạch Arduino d Thông số kỹ thuật
Arduino Uno được trang bị vi điều khiển ATmega328P với tần số dao động 16 MHz, cung cấp 14 pin ra vào từ 0 đến 13, trong đó có 6 pin PWM được đánh dấu bằng ký hiệu ~ Ngoài ra, board còn có 6 pin nhận tín hiệu analog từ A0 đến A5, có thể sử dụng như các pin ra vào thông thường Đặc biệt, pin 13 được kết nối trực tiếp với LED trạng thái trên board.
Bảng mạch được trang bị một nút reset, một cổng kết nối USB cho máy tính và một cổng nguồn sử dụng jack 2.1mm, cho phép cung cấp năng lượng trực tiếp từ bộ chuyển đổi AC-DC hoặc thông qua ắc-quy nguồn.
Khi làm việc với Arduino board, một số thuật ngữ sau cần được lưu ý:
Bộ nhớ flash là loại bộ nhớ có khả năng ghi và giữ dữ liệu ngay cả khi không có nguồn điện Nó đóng vai trò tương tự như ổ cứng, lưu trữ dữ liệu trên board mạch Chương trình viết cho Arduino sẽ được lưu trữ trong bộ nhớ này, kích thước của nó thường phụ thuộc vào loại vi điều khiển được sử dụng, chẳng hạn như vi điều khiển ATmega8 có dung lượng 8KB bộ nhớ flash Bộ nhớ flash có khả năng chịu được khoảng 10,000 lần ghi và xóa.
RAM, giống như RAM của máy tính, sẽ mất dữ liệu khi mất điện, nhưng bù lại, nó có tốc độ đọc và ghi rất nhanh Kích thước của RAM nhỏ hơn nhiều so với Flash Memory.
EEPROM là một loại bộ nhớ tương tự như Flash Memory, nhưng có chu kỳ ghi/xóa cao hơn, lên đến khoảng 100,000 lần, và có kích thước rất nhỏ Để thực hiện việc đọc và ghi dữ liệu, người dùng có thể sử dụng thư viện EEPROM của Arduino.
Ngoài ra, board Arduino còn cung cấp cho ta các pin khác nhau như pin cấp nguồn 3.3V, pin cấp nguồn 5V, pin GND
Thông số kỹ thuật của Arduino board được tóm tắt trong bảng sau:
Vi điều khiển ATmega328P Điện áp hoạt động 5V Điện áp vào khuyên dùng 7-12V Điện áp vào giới hạn 6-20V
Digital I/O pin 14 (trong đó 6 pin có khả năng băm xung)
Cường độ dòng điện trên mỗi I/O pin 20 mA
Cường độ dòng điện trên mỗi 3.3V pin 50 mA
0.5 KB được sử dụng bởi bootloader
Trọng lượng 25 g e Vị trí & chức năng các chân
Nếu không có nguồn từ cổng USB, Arduino UNO có thể được cấp nguồn bằng bộ chuyển đổi AC→DC hoặc pin Bộ chuyển đổi cần kết nối qua jack cắm điện với đầu plug 2.1mm trung tâm tích cực Lưu ý rằng việc cấp nguồn vượt quá mức cho phép có thể gây hỏng Arduino UNO.
GND (Ground) là cực âm của nguồn điện cung cấp cho Arduino UNO Khi sử dụng các thiết bị với nguồn điện riêng biệt, các chân GND cần phải được kết nối với nhau để đảm bảo hoạt động ổn định.
5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA.
Cấp điện áp 3.3V đầu ra với dòng tối đa 50mA Để cung cấp nguồn ngoài cho Arduino UNO, nối cực dương của nguồn với chân Vin và cực âm với chân GND.
Chân IOREF trên Arduino UNO cho phép đo điện áp hoạt động của vi điều khiển, luôn duy trì ở mức 5V Tuy nhiên, không nên sử dụng chân này để cấp nguồn 5V, vì chức năng chính của nó không phải là cung cấp điện.
RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ.
Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có
2 mức điện áp là 0V và 5V với dòng tối đa trên mỗi chân là 40mA.
Một số chân digital có các chức năng đặc biệt như sau:
Chân Serial 0 (RX) và 1 (TX) trên Arduino Uno được sử dụng để gửi và nhận dữ liệu TTL Serial, cho phép giao tiếp với các thiết bị khác Kết nối Bluetooth thường được xem như một hình thức kết nối Serial không dây Nếu không cần thực hiện giao tiếp Serial, nên tránh sử dụng hai chân này để tiết kiệm tài nguyên.
Các chân PWM (~) 3, 5, 6, 9, 10 và 11 cho phép xuất xung PWM với độ phân giải 8 bit, tương ứng với giá trị từ 0 đến 255 (0V đến 5V) thông qua hàm analogWrite() Điều này có nghĩa là điện áp đầu ra tại các chân này có thể được điều chỉnh linh hoạt từ 0V đến 5V, thay vì chỉ có mức cố định như các chân khác.
Chân giao tiếp SPI trên bảng mạch bao gồm 10 (SS), 11 (MOSI), 12 (MISO) và 13 (SCK) Ngoài việc thực hiện các chức năng thông thường, bốn chân này còn hỗ trợ truyền dữ liệu qua giao thức SPI với các thiết bị khác.
Trên Arduino UNO, có một đèn LED màu cam ký hiệu chữ L, được kết nối với chân số 13 Khi nhấn nút Reset, đèn LED này sẽ nhấp nháy để báo hiệu Nếu người dùng sử dụng chân số 13, đèn LED sẽ phát sáng.
Sơ đồ nguyên lý
Hình 2.10 Sơ đồ nguyên lý
Sơ đồ mạch in
Hình 2.11 Sơ đồ mạch in
Lưu đồ thuật toán
Hình 2.12 Lưu đồ thuật toán
2.8 Xây dựng cơ sở dữ liệu
Bước 1: Chọn server name cho CSDL
Hình 2.18 Chọn server name cho CSDL
Bước 2: Chọn Database/chuột phải chọn New Database Đặt tên cho CSDL
Hình 2.19 Đặt tên cho CSDL
Bước 3: Chọn Table/chuột phải chọn New Table/
Hình 2.20 Tạo một Table mới
Bước 4: Đặt tên cho từng cột, lựa chọn loại định dạng dữ liệu và chọn khóa chính
Hình 2.21 Đặt tên và chọn định dạng dữ liệu
Bước 5: Đặt tên cho Table và lưu Table
Hình 2.22 Đặt tên và lưu bảng
Bước 1: Khởi động Visual Studio, thiết lập New Project, chọn lập trình
Windows Forms Application và đặt tên rồi ấn OK:
Hình 2.24 Giao diện lập trình Windows Forms Application
Bước 2: Kéo thả các toolbox và đặt tên cho các toolbox
Hình 2.25 Kéo thả Label, Textnox, Button, DataGridView
Bước 3: Liên kết với SCDL
Chọn bindingSource/Add Project Data Source/DataBase/Next/Dataset/Next
Chọn New Connection/chọn Server name/chọn database name
Sau đó nhấn NEXT và tích toàn bộ object cuảng Database
Hình 2.28 Liên kết dataGridView với bảng
Kếp Quả Và Đánh Giá
Kết quả hệ thống
PZEM004Tv30 pzem(2,3); int zero; float I; float I_TB; float tong; float vol_out; float Adc = 0; float Vdc = 0; float v ; float c ; float p ; float e ; float f ; float pf ; int relay = 4; void setup(void)
Serial.begin(9600); pinMode(relay, OUTPUT); zero = sensor.calibrate(); digitalWrite(relay,HIGH); delay (2000);