Để khắc phục các nhược điểm trên, đề tài: “Giám sát điện năng qua mạng không dây” nghiên cứu việc giao tiếp với các thiết bi ̣điện quaInternet dùng công nghê ̣IoT, góp phần hỗ trợ cho
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
KHOA CÔNG NGHỆ ĐIỆN TỬ VÀ TRUYỀN THÔNG
BÁO CÁO TIỂU LUẬN MÔN HỌC
MÁY TÍNH NHÚNG VÀ ỨNG DỤNG
Đề tài
THIẾT KẾ CÔNG TƠ ĐO LƯỜNG CÔNG SUẤT TIÊU THỤ
Nhóm Sinh viên thực hiện: Trần Xuân Hảo
Giáo viên Giảng dạy: ThS NGUYỄN THANH TÙNG
Thái Nguyên, tháng 6 năm 2021
Trang 22
MỤC LỤC
MỤC LỤC 1
DANH MỤC HÌNH ẢNH 4
LỜI MỞ ĐẦU 6
CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI 7
1.1 Đặt vấn đề 7
1.2 Tầm quan trọng của quản lí và giám sát năng lượng 8
1.3 Giới thiệu một số hệ thống giám sát, quản lí năng lượng từ xa trong thực tế 9
1.3.1 Hệ thống giám sát và quản lý năng lượng từ xa qua sóng vô tuyến RF 9
1.3.2 Hệ thống giám sát và quản lý năng lượng từ xa qua bộ truyền tải tín hiệu thông qua đường dây điện 10
1.4 Mục tiêu, nhiệm vụ 12
1.4.1 Mục Tiêu 12
1.4.2 Nhiệm vụ 12
1.4 Giới hạn 12
1.5 Bố cục báo cáo 13
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 14
2.1 Công nghệ IOT 14
2.3.1 Giao thức kết nối 14
2.3.2 Giao thức truyền tải dữ liệu 15
2.3.3 Firebase 18
2.2 Các chuẩn truyền dữ liệu 21
2.2.1 Giao tiếp I2C 21
2.2.2 Giao tiếp UART 26
2.3 Giới thiệu phân cứng 28
2.3.1 Module NodeMCU ESP8266 wifi v1.0 28
2.3.2 Module PZEM004T 32
2.3.3 Màn hình LCD 20x4 35
2.3.4 Module chuyển đổi giao tiếp I2C 36
Trang 33
2.4 Giới thiệu phần mềm 38
2.4.1 Phần mềm lập trình Arduino IDE 38
2.4.2 Phần mềm lập trình Android Studio 41
2.4.3 Phần mềm giám sát điện năng trên app Blynk 43
CHƯƠNG 3 PHÂN TÍCH THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG 45
3.1 Giới thiệu 45
3.2 Thiết kế hệ thống 45
3.2.1 Thiết kế sơ đồ khối hệ thống 45
3.2.2 Sơ đồ kết nối toàn mạch 49
3.2.3 Nguyên lý hoạt động 50
3.2.4 Lưu đồ giải thuật 50
3.3 Thi công hệ thống 51
3.3.1 Mô hình thiết bi ̣ 51
3.3.2 Danh sách các linh kiện 52
3.3.3 Lắp ráp và kiểm tra 52
3.4 Lập trình phần cứng và phần mềm 55
3.4.1 Chương trình hê ̣thống phần cứng Arduino IDE 55
Hình ảnh phía dưới là một số đoạn chương trình chính của sản phẩm: 55
3.4.2 Chương trình app Android Studio 56
3.4.3 Tạo giao diện để xem các thông số điện năng trên app Blynk 58
3.5 Kết quả, nhận xét 59
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 60
Trang 44
DANH MỤC HÌNH ẢNH
Hình 2.1 Giao thức truyền của MQTT 16
Hình 2.2 Mô hình sử dụng giao thức CoAP và HTTP 17
Hình 2.3 ví dụ về XMPP 18
Hình 2.4 Bus I2C và các thiết bị ngoại vi 21
Hình 2.5 Kết nối thiết bị vào bus I2C ở chế độ chuẩn (Standard mode) và chế độ nhanh (Fast mode) 22
Hình 2.6 Quá trình truyền nhận giữa thiết bi ̣chủ (master) và tớ (slave) 23
Hình 2.7 Trình tự truyền bit trên đường truyền 24
Hình 2.8 Điểu kiện để giao tiếp I2C 25
Hình 2.9 Quá trình truyền dữ liệu I2C 26
Hình 2.10 Kết nối UART giữa hai vi điều khiển 27
Hình 2.11 Quá trình truyền dữ liệu UART 27
Hình 2.12 Ảnh ESP8266-12 thực tế và sơ đồ chân 29
Hình 2.13 Module Node MCU ESP8266 và sơ đồ chân 30
Hình 2.14 Mạch nguyên lý của NodeMCU ESP8266 31
Hình 2.15 Hình ảnh thực tế module PZEM004T 32
Hình 2.16 Sơ đồ kết nối dây của module PZEM004T 33
Hình 2.17 Sơ đồ chân LCD 20x4 36
Hình 2.18 Hình ảnh thực tế module chuyển đổi I2C 37
Hình 2.19 Mạch nguyên lý module chuyển đổi giao tiếp I2C 38
Hình 2.20 Màn hình làm việc của arduino IDE 39
Hình 2.21 Thiết lập đường dẫn cho IDE 39
Hình 2.22 Trình quản lí các thiết bị giao tiếp với IDE 40
Hình 2.23 Tiến hành tải boad ESP8266 về IDE 40
Hình 2.24 Chọn boad để nạp code 41
Hình 2.25 Màn hình làm việc với file Java 42
Hình 2.26 Màn hình làm việc với file Xml 42
Hình 2.27 Mô hình hoạt động của Blynk 43
Trang 55
Hình 2.28 Giao diện chính app Blynk 44
Hình 3.1 Sơ đồ khối toàn hê ̣thống 45
Hình 3.2 Hình ảnh thực tế module PZEM004T 46
Hình 3.3 Một số thiết bị ngõ vào 47
Hình 3.4 Khối xử lí trung tâm 47
Hình 3.5 Khối hiển thị 47
Hình 3.6 Khối nguồn 48
Hình 3.7 Khối Sever của firebase 48
Hình 3.8 Mobile app hiển thị dữ liệu theo thời gian thực 49
Hình 3.9 Sơ đồ kết nối toàn mạch 49
Hình 3.10 Lưu đồ toàn hệ thống 50
Hình 3.11 Mô hình thiết bị 52
Hình 3.12 Mặt sau sản phẩm bên trong hộp 53
Hình 3.13 Mặt trước sản phẩm 53
Hình 3.14 Vị trí giắc nguồn 5v và nút bấm reset 54
Hình 3.15 Vị trí giắc cắm nguồn 220v 54
Hình 3.17 Chương trình hiển thị dữ liệu lên LCD 55
Hình 3.18 Gửi dữ liệu lên Blynk 55
Hình 3.19 Gửi dữ liệu lên Firebase 56
Hình 3.20 Code nhận dữ liệu từ firebbase trong java 56
Hình 3.21 Code nhận dữ liệu từ firebbase trong java 57
Hình 3.22 Chương trình giao diện XML 57
Hình 3.23 Kết quả sau khi chạy app trên máy ảo 58
Hình 3.24 Các công cụ và giao diện khi hoàn thành 58
Hình 3.25 Sản phẩm hoàn thiện 59
Hình 3.26 Giao diện theo dõi điện năng qua app blynk và android 59
Trang 66
LỜI MỞ ĐẦU
Nhu cầu quản lý, giám sát cũng như kiểm soát việc đo điện năng, các thông số: điện áp, dòng điện, các chỉ tiêu chất lượng điện năng từ xa là rất cần thiết cho các nhà quản lý, các công ty điện lực và cá nhân Mặc dù đã đạt đến một mức độ thành công nhất định, tuy nhiên các hệ thống quản lý và giám sát điện năng hiện nay chi phí rất cao và hạn chế về việc truy cập từ xa Ngoài ra, xu hướng hiện nay là sử dụng các thiết bị thông minh: điện thoại smart phone, máy tính bảng …để truy cập
và giám sát từ xa Trong xu thế mới này, hệ thống hỗ trợ việc quản lý, giám sát việc
đo điện năng và các thông số hệ thống điện từ xa bằng Internet là cần thiết để tìm ra hướng tiện nghi và kinh tế phục vụ các nhà quản lý, các công ty điện lực
Với mong muốn giải quyết được phần nào những khó khăn và tìm ra một hương
đi mới cho ngành điện Việt Nam, nhóm tác giả đã bắt tay vào nghiên cứu và thực hiện đề tài “Thiết kế công tơ đo lường công suất điện tiêu thụ” Trên cơ sở tìm hiểu
về IoT nhằm giám sát điện năng và các thông số khác của hệ thống điện từ xa qua mạng không dây, qua việc truy cập vào trang app, người dùng có thể giám sát từ xa
ở mọi nơi mọi lúc Điểm nổi bật của đề tài này là có thể giám sát điện năng đồng thời hai hay nhiều thiết bi ̣điện thông qua mạng không dây, và kiểm soát thông qua việc đo, lưu trữ các thông số điện liên tục tại các thời điểm trong ngày
Trang 7nó vẫn hứa hẹn là một đích đến tiêu biểu cho các nhà nghiên cứu, cho những mục đích phát triển đầy tiềm năng
Được sự định hướng và chỉ dẫn của Thạc sĩ Đoàn Ngọc Phương em đã chọn đề tài luận án “Giám sát điện năng qua mạng không dây” Trên cơ sở tìm hiểu về IoT nhằm giám sát điện năng và các thông số khác của hệ thống điện từ xa qua internet, đó cũng là một nhu cầu có thật và đang tăng cao trong thời gian gần đây Đặc biệt là sau những đợt giá điện tăng, nhiều nhà máy đã tiết kiệm điện năng hiệu quả sau khi
có kết quả theo dõi Với thiết bi ̣quan sát điện năng từ xa, chúng ta có thể nhìn thấy các thông số của hệ thống điện như điện áp, dòng điện, tần số, công suất, hệ số công suất, của nhà máy hoặc các bộ phận bất cứ lúc nào mà ta không cần phải có mặt tại nhà máy Chúng ta có thể dùng máy vi tính hoặc thiết bị di động có hỗ trợ duyệt web là có thể quan sát được các thông số của hệ thống điện nhà máy của mình Hệ thống quản lý điện năng giúp nhà quản lý đánh giá sự tiêu thụ điện năng để thực hiện tiết kiệm chi phí và năng lượng
Đề tài đã khảo sát các phương pháp giám sát điện năng điển hình trước đây thông qua internet như dùng module sim kết hợp RS232 qua cổng truyền thông RS485 theo phương thức truyền thông Modbus RTU [2], tuy nhiên thực tế mạng GSM sẽ gặp phải những khó khăn như việc bị trễ tin nhắn do nghẽn mạng, kẹt mạng
Trang 88
hay những nơi có sóng GSM yếu và chỉ giám sát được trên máy tính Những phương pháp khác như dùng phần mềm Acuview giám sát điện năng thông qua đồng hồ đo điện năng đa năng Mutimeter ACUVIM [3] hoặc giám sát điện năng sử dụng PLC S7-400 thông qua giao diện WINCC [4] đều có giá thành cao rất tốn kém Để khắc phục các nhược điểm trên, đề tài: “Giám sát điện năng qua mạng không dây” nghiên cứu việc giao tiếp với các thiết bi ̣điện quaInternet dùng công nghê ̣IoT, góp phần hỗ trợ cho công tác giám sát và quản lý điện năng từ xa, sử dụng bộ vi điều khiển kết hợp với việc truyền dữ liệu qua WIFI, giúp đo ghi dữ liệu
từ xa, mà không bi ̣hạn chế khoảng cách truyền dữ liệu
1.2 Tầm quan trọng của quản lí và giám sát năng lượng
Quản lý và giám sát năng lượng là chìa khóa để tiết kiêm năng lượng trong các tổ chức thương mại, công nghiệp và chính phủ trong những năm gần đây đang phải chiụ những áp lực to lớn về kinh tế và môi trường Giám sát và quản lý năng lượng giúp giảm sự phu ̣thuộc vào nhiên liệu hóa thạch đang ngày càng trở nên cạn kiệt Khi tiêu thụ nhiều năng lượng, doanh nghiệp cũng như các hô ̣ gia đình sẽ phải đối mặt với tình trạng thiếu nguồn cung cấp nghiêm trọng kèm theo nguy cơ tăng giá năng lượng dẫn đến ảnh hưởng tới lợi nhuận của tổ chức, bằng viêc quản lý năng lượng doanh nghiệp và các hô ̣gia đình có thể giảm nguy cơ này bằng cách kiểm soát nhu cầu năng lượng, tiết kiệm điện trên dây chuyền sản xuất từng bước tăng hiệu quả việc đầu tư vào giá thành cho sản phẩm
Lợi ích đem lại khi sử dụng hê ̣thống giám sát và quản lý năng lượng:
- Giảm thời gian chi phí nhân công để ghi lại dữ liệu từ các đồng hồ đo, nhập vào file excell báo cáo mỗi tháng
- Giảm được sai xót trong quá trình thu thập dữ liệu bằng tay
- Kiểm soát dữ liệu điện năng liên tục 24 giờ tại bất kì trạm làm viêc nào
- Giảm thời gian xử lý sự cố do dữ liêu được thu thập đầy đủ, có ghi lại dạng sóng của nguồn điên khi sự cố xảy ra
Đây là một trong những đề tài đang được tìm hiểu, nghiên cứu rất nhiều để đưa
ra giải pháp giúp ngành điện Việt Nam giải quyết đưuọc những khó khăn nêu trên
Trang 99
1.3 Giới thiệu một số hệ thống giám sát, quản lí năng lượng từ xa trong thực tế
1.3.1 Hệ thống giám sát và quản lý năng lượng từ xa qua sóng vô tuyến RF
Hệ thống đọc chỉ số công tơ từ xa bằng sóng vô tuyến RF bao gồm các khối chức năng sau:
- Công tơ điện tử có tích hợp tính năng thu phát tín hiệu vô tuyến RF lắp tại các
hộ khách hàng sử dụng điện, có chức năng đo đếm, lưu trữ năng lượng vào bộ nhớ không dây và truyền về bộ thu thập tín hiệu di động khi nhận được lệnh
- Bộ thu thập tín hiệu di động (Handheld Unit) bao gồm: máy tính cầm tay (Handheld Unit) được tích hợp module thu phát tín hiệu vô tuyến RF bên trong, với chương trình thu thập số liệu do Công ty tự phát triển Trên máy tính cầm tay sẽ giúp người ghi ra lệnh đọc chỉ số công tơ trong phạm vi phủ sóng dựa vào danh sách và số liệu khách hàng sử dụng điện được tao ra ̣ từ cơ sở dữ liệu kinh doanh điện năng Toàn bộ dữ liệu ghi được sẽ được ghép nối vào cơ sở dữ liệu kinh doanh điện năng một cách tự động mà không cần phải tốn nhiều thao tác thủ công như trước đây
Giải pháp này có các ưu điểm:
- Không phụ thuộc vào khoảng cách, không phụ thuộc vào vị trí điểm đầu, điểm cuối khi có sự thay đổi về vị trí lắp đặt công tơ, hay vị trí trung tâm thì không bị thay đổi về thiết bị
- Thiết bị modem gọn nhẹ, thông dụng, dễ dàng lắp kèm với công tơ
- Cước phí tính theo lưu lượng (KB) thấp, rất phù hợp với hệ thống không yêu cầu truyền theo thời gian thực
Nhược điểm:
Do sử dụng đường truyền không dây, truyền qua mạng di động, nên tín hiệu có thể bị ảnh hưởng khi thời tiết xấu, do đó cần cân nhắc chọn dịch vụ của nhà cung cấp mạng có mật độ phủ sóng rộng, chất lượng tín hiệu tốt
Trang 10cử nhân viên đi ghi chỉ số công tơ tại các hộ gia đình
Hệ thống Collectric gồm 5 thiết bị cơ bản sau:
RTU: là thiết bị đầu cuối một chiều được lắp đặt bên trong hoặc bên ngoài các
công tơ ở vị trí thuận tiện RTU sẽ đếm vòng quay của đĩa, biến thành tín hiệu điện, điều chế tín hiệu, truyền số liệu đã thu được và các thông tin khác về thiết bị tâp trung
TRPU: là thiết bị đầu cuối hai chiều, nó vừa có tính năng của một RTU vừa
có chức năng thông tin hai chiều bao gồm lệnh quản lý bảng thời gian sử dụng để tính các mức giá khác nhau tại thiết bị tâp trung, TRPU còn có thể truyền thông tin sắp xếp theo bảng chữ cái hay chữ số nhận được từ thiết bị tâp trung ̣ tới khách hàng, nó còn có thể lặp tín hiệu như một bộ lặp, nếu có lắp đặt thêm bộ điều khiển tải nó có thể tự động đóng cắt tải theo lệnh từ trung tâm
CONCENTRATOR: là thiết bị tâp trung ̣ lắp đặt trên lưới điện hạ thế ứng
với một trạm Thiết bị này có thể thu thập và xử lý dữ liệu cho 1250 công tơ Dữ liệu từ các thiết bị đầu cuối được tập trung tại bộ trung tâm và được truyền về máy tính trung tâm qua các cách khác nhau Thiết bị tập trung cũng có thể truyền lệnh quản lý và các chỉ thị khác tới các thiết bị đầu cuối hai chiều
MICROTERMINAL: là thiết bị thu thập dữ liệu cầm tay là cầu nối giữa
thiết bị tập trung với máy tính trung tâm, nó nhận dữ liệu từ bộ trung tâm và truyền
về máy tính trung tâm Nó còn được dùng để lập trình cho các thiết bị tâp trung ̣ , RTU, TRPU, và đọc các số liệu từ các thiết bị này để đưa vào máy tính
MAIN COMPUTER: chứa các phần mềm cần thiết cho quá trình vận hành
hệ thống Colletric Nó thu nhận dữ liệu từ các bộ trung tâm để sử dụng cho các mục đích của ngành điện
Kĩ thuật truyền thông: sử dụng công nghệ PLC truyền thông tin thông qua lưới điện hạ thế (từ trạm biến áp đến các hộ gia đình) Tại các trạm biến áp (vốn có
Trang 1111
nhiệm vụ chuyển các dòng điện cao thế thành hạ thế và đưa đến hộ tiêu dùng), một modem tốc độ cao HE (HeadEnd) sẽ nối giữa đường hạ thế và hệ thống cáp quang truyền thông backbone Nhiệm vụ của modem HE là điều chế các tín hiệu truyền thông của cáp quang thành tín hiệu thông tin có tần số 1,6 - 80 Mhz ( Tùy vào từng hãng mà sử dụng những dãy tần số khác nhau) để truyền vào lưới điện hạ thế và ngược lại Các tín hiệu thông tin sau khi điều chế sẽ được truyền đi song song với tín hiệu điện trên lưới điện hạ thế đến các toà nhà Tại đây, một modem PLC (CPE lắp đặt tại gia đình) sẽ nhận các tín hiệu thông tin, giải điều chế, tái tạo lại tín hiệu thông tin ban đầu để có thể sử dụng Internet hoặc dùng điện thoại, fax Moderm PLC cũng có thể đảo ngược quá trình này để gửi các tín hiệu thông tin đã điều chế đến modem HE
Ưu điểm:
- Mạng lưới điện có mặt ở hầu khắp mọi nơi
- Mạng điện hạ thế có thể được dùng để thiết lập một cơ sở hạ tầng mạng sẵn có cho hàng triệu khách hàng, doanh nghiệp riêng biệt trên toàn thế giới, có đường dẫn tới tận các ổ cắm điện phục vụ cho cả thiết bị gia đình và thiết bị điện công nghiệp
- PLC có thể cung cấp khả năng truy cập tốc độ cao, tốc độ truyền thông đã đạt tới hành trăm Mb/s
- Mạng lưới đường dây điện đã được xây dựng nên có lợi thế về chi phí đầu tư
cơ bản, cơ sở hạ tầng đường dây điện đã có sẵn, nên nó có thể cho phép cạnh tranh với giá rẻ hơn các kỹ thuật truy cập viễn thông nội vùng khác (thường yêu cầu vốn đầu tư cơ bản lớn)
Nhược điểm:
Đường dây truyền tải điện không phải được thiết kế để dành cho truyền dữ liệu,
do đó có rất nhiều vấn đề cần được khắc phục Công suất nhiễu trên đường dây điện lực là tập hợp tất cả các nguồn nhiễu khác nhau thâm nhập vào đường dây và vào máy thu Các tải được kết nối vào mạng như ti vi, máy tính, máy hút bụi phát nhiễu và lan truyền qua đường dây điện; các hệ thống truyền thông khác cũng có thể đưa thêm nhiễu vào máy thu Đường dây điện được ra đời phục vụ cho việc truyền
Trang 121.4 Mục tiêu, nhiệm vụ
1.4.1 Mục Tiêu
Kết quả cuối cùng của đề tài là xây dựng một hệ thống giám sát điện năng từ xa
đo các thông số về điện năng của nguồn xoay chiều của mạch điện như dòng điện, điện áp, tần số, công suất và năng lượng tiêu thụ của hai hay nhiều thiết bi ̣điện, bằng cách truy cập vào trang web, app blynk và app android người dùng có thể giám sát từ xa ở mọi nơi mọi lúc
1.4.2 Nhiệm vụ
Quá trình thực hiện đồ án gồm các nhiệm vụ nghiên cứu sau:
- Tìm hiểu và tham khảo các tài liệu, giáo trình, nghiên cứu các chủ đề, các nội dung liên quan đến đề tài
- Lập trình giao tiếp với module PZEM004T để đo các thông số điện năng
- Viết chương trình cho ESP8266 gửi dữ liệu lên Sever
- Kết nối mạch phần cứng giữa PZEM004T, ESP8266, LCD
- Thiết kế và thi công mô hình thiết bi ̣hoàn thiện
- Xây dựng giao diện app blynk và app android giám sát thiết bị
- Chạy thử nghiệm và cân chỉnh hệ thống
- Viết quyển báo cáo đồ án tốt nghiệp
- Báo cáo đồ án tốt nghiệp
1.4 Giới hạn
Với đề tài giám sát điện năng qua mạng không dây thì các giới hạn bao gồm:
Mô hình thi công có kích thước: 14x14cm
Số lượng thiết bi ̣giám sát : 1 thiết bi.̣
Trang 1313
Thời gian ổn định của thiết bị: sau vài phút hoạt động thiết bi ̣sẽ đo và tính toán chính xác hơn
1.5 Bố cục báo cáo
Với đề tài giám sát điện năng qua mạng không dây thì bố cục đồ án như sau:
Chương 1: Tổng quan đề tài
Chương này trình bày đặt vấn đề dẫn nhập lý do chọn đề tài, giới thiệu một số
hệ thông giám sát và quản lí năng lượng, mục tiêu, nhiệm vụ, nội dung ̣nghiên cứu, các giới hạn thông số và bố cục đồ án
Chương 2: Cơ Sở Lý Thuyết
Chương này trình bày các lý thuyết có liên quan đến các vấn đề mà đề tài sẽ dùng để thực hiện thiết kế, thi công cho đề tài
Chương 3: Khảo sát và phân tích hệ thống
Chương này giới thiệu tổng quan về các yêu cầu của đề tài về thiết kế và các tính toán liên quan đến đề tài
Chương 4: Thi công hê ̣thống
Chương này có thể gồm kết quả thi công phần cứng và những kết quả hình ảnh trên màn hình hay mô phỏng tín hiệu, kết quả thống kê Kết quả, nhận xét và đánh giá sản phẩm mô hình đã hoàn thành
Trang 14và thiết bị mạng hàng đầu hiện nay dự báo: đến năm 2020, sẽ có khoảng 50 tỷ đồ vật kết nối vào Internet, thậm chí con số này còn gia tăng nhiều hơn nữa IoT sẽ là mạng khổng lồ kết nối tất cả mọi thứ, bao gồm cả con người và sẽ tồn tại các mối quan hệ giữa người và người, người và thiết bị, thiết bị và thiết bị Một mạng lưới IoT có thể chứa đến 50 đến 100 nghìn tỉ đối tượng được kết nối và mạng lưới này
có thể theo dõi sự di chuyển của từng đối tượng Một con người sống trong thành thị có thể bị bao bọc xung quanh bởi 1000 đến 5000 đối tượng có khả năng theo dõi Việc lựa chọn chuẩn giao thức kết nối sao cho hợp lý là rất quan trong, tùy thuộc ̣ vào các ứng dụng và các yếu tố như phạm vi giao tiếp, khối lượng dữ liệu truyền, yêu cầu tính bảo mật, năng lượng cho hệ thống pin, sẽ quyết định lựa chọn một hoặc nhiều phương thức truyền thông phù hợp
Sau đây là một số giao thức IoT cho các kỹ sư phát triển tìm hiểu và lựa chọn
2.3.1 Giao thức kết nối
Wifi là giao thức chính được ứng dụng trong nội dung đề tài này
Wifi (là viết tắt từ Wireless Fidelity hay mạng 802.11) là hệ thống mạng không dây sử dụng sóng vô tuyến, cũng giống như điện thoại di động, truyền hình và
Trang 1515
radio Kết nối Wifi thường là sự lựa chọn hàng đầu của rất nhiều kỹ sư bởi tính thông dụng và kinh tế của hệ thống wifi và mạng LAN với mô hình kết nối trong một phạm vi địa lý có giới hạn
Các sóng vô tuyến sử dụng cho WiFi gần giống với các sóng vô tuyến sử dụng cho thiết bị cầm tay, điện thoại di động và các thiết bị khác Nó có thể chuyển và nhận sóng vô tuyến, chuyển đổi các mã nhị phân 1 và 0 sang sóng vô tuyến và ngược lại Tuy nhiên, sóng WiFi có một số khác biệt so với các sóng vô tuyến khác
ở chỗ: chúng truyền và phát tín hiệu ở tần số 2.4 GHz hoặc 5 GHz Tần số này cao hơn so với các tần số sử dụng cho điện thoại di động, các thiết bị cầm tay và truyền hình Tần số cao hơn cho phép tín hiệu mang theo nhiều dữ liệu hơn
2.3.2 Giao thức truyền tải dữ liệu
Có 5 giao thức truyền tải dữ liệu phổ biến có thể được sử dụng trong các mô hình là : MQTT, CoAP, AMQP và DDS
MQTT là một giao thức kết nối máy với máy, một giao thức mã nguồn mở để truyền các messages giữa nhiều Client (Publisher và Subscriber) thông qua một Broker trung gian, được thiết kế để đơn giản và dễ dàng triển khai Giao thức này nhẹ đến mức nó có thể được hỗ trợ bởi một số thiết bị đo lường và giám sát nhỏ nhất và nó có thể truyền dữ liệu qua các mạng có khả năng tiếp cận, đôi khi liên tục Kiến trúc MQTT dựa trên Broker trung gian và sử dụng kết nối TCP long-lived từ các Client đến Broker Trong một hệ thống sử dụng giao thức MQTT, nhiều node trạm (gọi là mqtt client - gọi tắt là client) kết nối tới một MQTT server (gọi là broker) Mỗi client sẽ đăng ký một vài kênh (topic), ví dụ như "/client1/channel1",
"/client1/channel2" Quá trình đăng ký này gọi là "subscribe" Mỗi client sẽ nhận
Trang 1616
được dữ liệu khi bất kỳ trạm nào khác gửi dữ liệu và kênh đã đăng ký Khi một client gửi dữ liệu tới kênh đó, gọi là "publish"
Hình 2.1 Giao thức truyền của MQTT
MQTT thì nhẹ nhàng hơn và nhanh Nó mất rất ít bytes cho việc kết nối với server và quá trình kết nối có thể giữ trạng thái xuyên suốt Ưu điểm là giao tiếp sẽ mất ít dữ liệu và thời gian hơn HTTP protocol, nên có thể được sử dụng cho truyền thông 2 chiều thông qua các mạng có độ trễ cao và độ tin cậy thấp, nó cũng tương thích với các thiết bị tiêu thụ điện năng thấp
Vì vậy MQTT phù hợp để chọn làm giao thức truyền thông chính trong đề tài
"Giám sát điên năng tiêu thụ qua mạng không dây "
CoAP (Constrained Applications Protocol)
CoAP là một giao thức truyền tải tài liệu theo mô hình client/server dự trên internet tương tự như giao thức HTTP nhưng được thiết kế cho các thiết bị ràng buộc Giao thức này hỗ trợ một giao thức one-to-one để chuyển đổi trạng thái thông tin giữa client và server
CoAP sử dụng UDP (User Datagram Protocol), không hỗ trợ TCP, ngoài ra còn hỗ trợ địa chỉ broadcast và multicast, truyền thông CoAP thông qua các datagram phi kết nối (connectionless) có thể được sử dụng trên các giao thức truyền thông dựa trên các gói
UDP có thể dễ dàng triển khai trên các vi điều khiển hơn TCP nhưng các công
cụ bảo mật như SSL/TSL không có sẵn, tuy nhiên ta có thể sử dụng Datagram Transport Layer Security (DTLS) để thay thế
Trang 1717
Hình 2.2 Mô hình sử dụng giao thức CoAP và HTTP
AMQP (Advanced Message Queue Protocol)
AMQP (Advanced Message Queue Protocol) là một giao thức làm trung gian cho các gói tin trên lớp ứng dụng với mục đích thay thế các hệ thống truyền tin độc quyền và không tương thích Các tính năng chính của AMQP là định hướng message, hàng đợi, định tuyến (bao gồm point-to-point và publish-subscribe) có độ tin cậy và bảo mật cao Các hoạt động sẽ được thực hiện thông qua broker, nó cung
cấp khả năng điều khiển luồng (Flow Control)
Một trong các Message Broker phổ biến là RabbitMQ, được lập trình bằng ngôn ngữ Erlang, RabbitMQ cung cấp cho lập trình viên một phương tiện trung gian để giao tiếp giữa nhiều thành phần trong một hệ thống lớn
Không giống như các giao thức khác, AMQP là một giao thức có dây protocol), có khả năng diễn tả các message phù hợp với định dạng dữ liệu, có thể triển khai với rất nhiều loại ngôn ngữ lập trình
(wire-DDS (Data Distribution Service)
DDS là một ngôn ngữ trung gian dựa vào dữ liệu tập trung được sử dụng để cho phép khả năng mở rộng, thời gian thực, độ tin cậy cao và trao đổi dữ liệu tương tác Đây là một giao thức phi tập trung (broker-less) với truyền thông ngang hàng trực tiếp theo kiểu peer-to-peer giữa các publishers và subscribers và được thiết kế để trở thành một ngôn ngữ và hệ điều hành độc lập DDS gửi và nhận dữ liệu, sự kiện, và thông tin lệnh trên UDP nhưng cũng có thể chạy trên các giao thức truyền
Trang 1818
tải khác như IP Multicast, TCP / IP, bộ nhớ chia sẻ … DDS hỗ trợ các kết nối được quản lý many-to-many theo thời gian thực và ngoài ra còn hỗ trợ dò tìm tự động (automatic discovery) Các ứng dụng sử dụng DDS cho truyền thông được tách riêng và không yêu cầu sự can thiệp từ các ứng dụng của người dùng, có thể đơn giản hóa việc lập trình mạng phức tạp Các tham số QoS được sử dụng để xác định các cơ chế tự dò tìm của nó được thiết lập một lần
XMPP (Extensible Messaging và Presence Protocol)
XMPP (trước đây gọi là “Jabber”) là giao thức truyền thông dùng cho định hướng tin nhắn trung gian dựa trên ngôn ngữ XML
XMPP là mô hình phân quyền client-server phi tập trung, được sử dụng cho các ứng dụng nhắn tin văn bản Có thể nói XMPP gần như là thời gian thực và có thể
mở rộng đến hàng trăm hàng nghìn nút Dữ liệu nhị phân phải được mã hóa base64 trước khi nó được truyền đi trong băng tần XMPP tương tự như MQTT, có thể chạy trên nền tảng TCP
Hình 2.3 ví dụ về XMPP
2.3.3 Firebase
Firebase là một dịch vụ cơ sở dữ liệu thời gian thực hoạt động trên nền tảng đám mây được cung cấp bởi Google nhằm giúp các lập trình phát triển nhanh các ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu Nếu cần xây dựng
Trang 1919
một ứng dụng cho mobile hoặc các thiết bị di động khác, mà bạn đang gặp khó khăn
vì không biết chọn dịch vụ VPS nào, loại database gì thì Firebase sẽ là dịch vụ dành cho bạn
FireBase có thể rất mạnh mẽ đối với ứng dụng backend, nó bao gồm việc lưu trữ dữ liệu, xác thực người dùng, static hosting……Nên lập trình viên chỉ cần chú tâm đến việc nâng cao trải nghiệm người dùng
Mình cùng điểm qua các tính năng và lợi ích của firebase xem sao
Realtime Database
Firebase lưu trữ dữ liệu database dưới dạng JSON và thực hiện đồng bộ database tới tất cả các client theo thời gian thực Cụ thể hơn là có thể xây dựng được client đa nền tảng (cross-platform client) và tất cả các client này sẽ cùng sử dụng chung 1 database đến từ Firebase và có thể tự động cập nhật mỗi khi dữ liệu trong database được thêm mới hoặc sửa đổi
Tự động tính toán quy mô ứng dụng, dễ dàng hơn rất nhiều mỗi khi cần nâng cấp hay mở rộng dịch vụ Ngoài ra Firebase sử dụng NoSQL, giúp cho database sẽ không bị bó buộc trong các bảng và các trường mà có thể tùy ý xây dựng database theo cấu trúc của riêng
Cho phép phân quyền một cách đơn giản bằng cú pháp tương tự như javascript
Khi ứng dụng muốn phát triển, không cần lo lắng về việc nâng cấp máy chủ…Firebase sẽ xử lý việc tự động Các máy chủ của Firebase quản lý hàng triệu kết nối đồng thời và hàng tỉ lượt truy vấn mỗi tháng
Các tính năng bảo mật
Firebase hoạt động dựa trên nền tảng cloud và thực hiện kết nối thông qua giao thức bảo mật SSL, chính vì vậy chúng ta sẽ bớt lo lắng rất nhiều về việc bảo mật của dữ liệu cũng như đường truyền giữa client và server Không chỉ có vậy, việc cho phép phân quyền người dùng database bằng cú pháp javascipt cũng nâng cao hơn nhiều độ bảo mật cho ứng dụng, bởi chỉ những user được cho phép mới có thể có quyền chỉnh sửa cơ sở dữ liệu
Làm việc offline
Trang 2020
Ứng dụng Firebase duy trì tương tác bất chấp một số các vấn đề về internet xảy
ra Trước khi bất kỳ dữ liệu được ghi đến server thì tất cả dữ liệu lập tức sẽ được viết vào một cơ sử dữ liệu Firebase ở local Ngay khi có thể kết nối lại, client đó sẽ nhận bất kỳ thay đổi mà nó thiếu, đồng bộ hoá nó với trạng thái hiện tại server
Xác thực người dùng
Với Firebase, có thể dễ dàng xác thực người dùng từ ứng dụng trên Android, iOS và JavaScript SDKs chỉ với một vài đoạn mã Firebase đã xây dựng chức năng cho việc xác thực người dùng với Email, Facebook, Twitter, GitHub, Google, và xác thực nặc danh Các ứng dụng sử dụng chức năng xác thực của FireBase có thể giải quyết được vấn đề khi người dùng đăng nhập, nó sẽ tiết kiện thời gian và rất nhiều các vấn đề phức tạp về phần backend Hơn nữa có thể tích hợp xác thực người dùng với các chức năng backend đã có sẵn dùng custom auth tokens
Firebase Hosting
Chúng ta có thể triển khai một ứng dụng nền web chỉ với vài giây (chém gió tới
từ firebase, chính mình cũng không tin lắm) với hệ thống Firebase, và các dữ liệu sẽ được lưu trữ đám mây đồng thời được bảo mật thông qua giao thức truy cập SSL Các ứng dụng sẽ được cấp 1 tên miền dạng *.firebaseio.com hoặc có thể trả tiền để sử dụng tên miền của riêng mình
Triểu khai siêu tốc
Với Firebase ta có thể giảm bớt rất nhiều thời gian cho việc viết các dòng code để quản lý và đồng bộ cơ sở dữ liệu, mọi việc sẽ diễn ra hoàn toàn tự động với các API của Firebase Không chỉ có vậy Firebase còn hỗ trợ đã nền tảng nên sẽ càng đỡ mất thời gian rất nhiều khi ứng dụng muốn xây dựng là ứng dụng đa nền tảng Không chỉ nhanh chóng trong việc xây dựng database, Google Firebase còn giúp ta đơn giản hóa quá trình đăng kí và đăng nhập vào ứng dụng bằng các sử dụng hệ thống xác thực do chính Firebase cung cấp
Sự ổn định
Firebase hoạt động dựa trên nền tảng Cloud đến từ Google vì vậy hầu như chúng ta không bao giờ phải lo lắng về việc sập server, tấn công mạng như DDOS, tốc độ kết nối lúc nhanh lúc chậm nữa
Trang 2121
Giá thành
Google Firebase có rất nhiều gói dịch vụ với các mức dung lượng lưu trữ cũng như băng thông khác nhau với mức giá dao động từ Free đến $1500 đủ để đáp ứng được nhu cầu của tất cả các đối tượng Chính vì vậy có thể lựa chọn gói dịch vụ phù hợp nhất với nhu cầu của mình Điều này giúp tới ưu hóa được vốn đầu tư và vận hành của mình tùy theo số lượng người sử dụng Ngoài ra còn không mất chi phí để bảo trì, nâng cấp, khắc phục các sự cố
Thông tin trên mình có tổng hợp và chỉnh sửa lại một chút từ vtcacademy và techmaster
2.2 Các chuẩn truyền dữ liệu
2.2.1 Giao tiếp I2C
2.2.1.1 Giới thiệu
Đầu năm 1980 Phillips đã phát triển một chuẩn giao tiếp nối tiếp 2 dây được gọi
là I2C Đây là đường Bus giao tiếp giữa các IC với nhau I2C mặc dù được phát triển bởi Philips, nhưng nó đã được rất nhiều nhà sản xuất IC trên thế giới sử dụng I2C trở thành một chuẩn công nghiệp cho các giao tiếp điều khiển Bus I2C được sử dụng làm bus giao tiếp ngoại vi cho rất nhiều loại IC khác nhau như các loại Vi điều khiển 8051, PIC, AVR, ARM chip nhớ như: RAM tĩnh (Static Ram), EEPROM,
bộ chuyển đổi tương tự số (ADC), số tương tự(DAC), IC điểu khiển LCD, LED
Hình 2.4 Bus I2C và các thiết bị ngoại vi
2.2.1.2 Đặc điểm giao tiếp I2C
Trang 2222
Một giao tiếp I2C gồm có 2 dây: Serial Data (SDA) và Serial Clock (SCL) SDA là đường truyền dữ liệu 2 hướng, còn SCL là đường truyền xung đồng hồ để đồng bộ và chỉ theo một hướng Như ta thấy trên hình vẽ trên, khi một thiết bị ngoại
vi kết nối vào đường bus I2C thì chân SDA của nó sẽ nối với dây SDA của bus, chân SCL sẽ nối với dây SCL
Hình 2.5 Kết nối thiết bị vào bus I2C ở chế độ chuẩn (Standard mode) và chế độ
nhanh (Fast mode)
Mỗi dây SDA hãy SCL đều được nối với điện áp dương của nguồn cấp thông qua một điện trở kéo lên (pullup resistor) vì chân giao tiếp I2C của các thiết bị ngoại vi thường là dạng cực máng hở (opendrain hay opencollector) Giá trị của các điện trở này khác nhau tùy vào từng thiết bị và chuẩn giao tiếp, thường dao động trong khoảng 1K đến 4.7k
Xem hình 2.5, ta thấy có rất nhiều thiết bị (ICs) cùng được kết nối vào một bus I2C, mỗi thiết bị sẽ được nhận ra bởi một địa chỉ duy nhất với một quan hệ chủ/tớ tồn tại trong suốt thời gian kết nối Mỗi thiết bị có thể hoạt động như là thiết bị nhận hoặc truyền dữ liệu hay có thể vừa truyền vừa nhận Hoạt động truyền hay nhận còn tùy thuộc vào việc thiết bị đó là chủ (master) hay tớ (slave)
Một thiết bị hay một IC khi kết nối với bus I2C, ngoài một địa chỉ (duy nhất) để phân biệt, nó còn được cấu hình là thiết bị chủ hay tớ Khi giữa hai thiết bị chủ-tớ giao tiếp thì thiết bị chủ có nhiệm vụ tạo xung đồng hồ cho toàn hệ thống và quản lý
Trang 2323
địa chỉ của thiết bị tớ trong suốt quá trình giao tiếp Thiết bị chủ giữ vai trò chủ động, còn thiết bị tớ giữ vai trò bị động trong việc giao tiếp
Hình 2.6 Quá trình truyền nhận giữa thiết bi ̣chủ (master) và tớ (slave)
Theo như hình 2.6 ta thấy xung đồng hồ chỉ có một hướng từ chủ đến tớ, còn luồng dữ liệu có thể đi theo hai hướng, từ chủ đến tớ hay ngược lại tớ đến chủ
2.2.1.3 Chế độ hoạt động (tốc độ truyền):
Các bus I2C có thể hoạt động ở ba chế độ khác nhau:
Chế độ tiêu chuẩn (Standard mode)
Chế độ nhanh (Fast mode)
Chế độ cao tốc High-Speed (Hs) mode
Chế độ tiêu chuẩn:
- Đây là chế độ tiêu chuẩn ban đầu được phát hành vào đầu những năm 80
- Nó có tốc độ dữ liệu tối đa 100kbps
- Nó sử dụng 7-bit địa chỉ, 112 địa chỉ tớ
Tăng cường hoặc chế độ nhanh:
- Tốc độ dữ liệu tối đa được tăng lên đến 400 kbps
- Để ngăn chặn gai tiếng ồn Ngõ vào của thiết bị Fast-mode là triggered
Schmitt Chân SCL và SDA của một thiết bị tớ I2C ở trạng thái trở kháng cao khi không cấp nguồn
Chế độ cao tốc (High-Speed):
Chế độ này đã được tạo ra chủ yếu để tăng tốc độ dữ liệu lên đến 36 lần nhanh hơn so với chế độ tiêu chuẩn Nó cung cấp 1,7 Mbps (với Cb = 400 pF), và 3.4Mbps (với C> b = 100pF)
Một bus I2C có thể hoạt động ở nhiều chế độ khác nhau:
Một chủ một tớ (one master - one slave)
Trang 2424
Một chủ nhiều tớ (one master - multi slave)
Nhiều chủ nhiều tớ (Multi master - Multi slave)
Dù ở chế độ nào, một giao tiếp I2C đều dựa vào quan hệ chủ/tớ Giả thiết một thiết bị A muốn gửi dữ liệu đến thiết bị B, quá trình được thực hiện như sau:
Thiết bị A (Chủ) xác định đúng địa chỉ của thiết bị B (tớ), cùng với việc xác định địa chỉ, thiết bị A sẽ quyết định việc đọc hay ghi vào thiết bị tớ
Thiết bị A gửi dữ liệu tới thiết bị B
Thiết bị A kết thúc quá trình truyền dữ liệu
Khi A muốn nhận dữ liệu từ B, quá trình diễn ra như trên, chỉ khác là A sẽ nhận
dữ liệu từ B Trong giao tiếp này, A là chủ còn B vẫn là tớ Chi tiết việc thiết lập một giao tiếp giữa hai thiết bị sẽ được mô tả chi tiết dưới đây
Trình tự truyền bit trên đường truyền:
Hình 2.7 Trình tự truyền bit trên đường truyền
- Bước 1: Thiết bị chủ tạo một điều kiện start Điều kiện này thông báo cho tất
cả các thiết bị tớ chuẩn bi ̣nhâṇ dữ liệu trên đường truyền
- Bước 2: Thiết bị chủ gởi địa chỉ của thiết bị tớ mà thiết bị chủ muốn giao tiếp
và cờ đọc/ghi dữ liệụ (nếu cờ thiết lập lên 1 byte tiếp theo được truyền từ thiết bị tớ đến thiết bị chủ, nếu cờ thiết lập xuống 0 thì byte tiếp theo truyền từ thiết bị chủ đến thiết bị tớ)
- Bước 3: Khi thiết bị tớ trên bus I2C có địa chỉ đúng với địa chỉ mà thiết bị chủ gửi sẻ phản hồi lại bằng một xung ACK
Trang 2525
- Bước 4: Giao tiếp giữa thiết bị chủ và tớ trên bus dữ liệu bắt đầu Cả chủ và tớ đều có thể nhận hoặc truyền dữ liệu tùy thuộc vào việc truyền thông là đọc hay ghi
Bộ truyền gửi 8 bit dữ liệu tới bộ nhận, Bộ nhận phản hồi với một bit ACK
- Bước 5: Để kết thúc quá trình giao tiếp, thiết bị chủ tạo ra một điều kiện stop
Điều kiện START và STOP (START and STOP conditions)
START và STOP là những điều kiện bắt buộc phải có khi một thiết bị chủ muốn thiết lập giao tiếp với một thiết bị nào đó trên bus I2C START là điều kiện khởi đầu, báo hiệu bắt đầu của giao tiếp, còn STOP báo hiệu kết thúc một giao tiếp Hình dưới đây mô tả điều kiện START và STOP
Hình 2.8 Điểu kiện để giao tiếp I2C
Ban đầu khi chưa thực hiện quá trình giao tiếp, cả hai đường SDA và SCL đều
ở mức cao (SDA = SCL = HIGH) Lúc này bus I2C được coi là rỗi (“bus free”),
sẵn sàng cho một giao tiếp Hai điều kiện START và STOP là không thể thiếu trong việc giao tiếp giữa các thiết bị I2C với nhau
Điều kiện START: một sự chuyển đổi trạng thái từ cao xuống thấp trên đường
SDA trong khi đường SCL đang ở mức cao (cao = 1; thấp = 0) báo hiệu một điều kiện START
Điều kiện STOP: Một sự chuyển đổi trạng thái từ mức thấp lên cao trên đường
SDA trong khi đường SCL đang ở mức cao Cả hai điều kiện START và STOP đều được tạo ra bởi thiết bị chủ Sau tín hiệu START, bus I2C coi như đang trong trạng thái làm việc (busy) Bus I2C sẽ rỗi, sẵn sàng cho một giao tiếp mới sau tín hiệu STOP từ phía thiết bị chủ
Sau khi có một điều kiện START, trong quá trình giao tiếp, khi có một tín hiệu START được lặp lại thay vì một tín hiệu STOP thì bus I2C vẫn tiếp tục trong trạng thái bận Tín hiệu START và lặp lại START (Repeated START) đều có chức năng giống nhau là khởi tạo một giao tiếp
Trang 2626
Truyền dữ liệu:
Mỗi xung clock có một bit dữ liệu được truyền Mức tín hiệu SDA chỉ được thay đổi khi xung clock đang ở mức thấp, và ổn định khi xung clock ở mức cao Thiết bị tớ có thể lấy mẫu dữ liệu khi xung clock ở mức cao
Hình 2.9 Quá trình truyền dữ liệu I2C
2.2.2 Giao tiếp UART
UART (Universal Asynchronous Receive/Transmit) là chuẩn giao tiếp truyền nhận dữ liệu không đồng bộ Đây là chuẩn giao tiếp phổ biến và dễ sử dụng, thường dùng trong giao tiếp giữa vi điều khiển với nhau hoặc với các thiết bị khác
UART chuyển đổi giữa dữ liệu nối tiếp và song song Một chiều, UART chuyển đổi dữ liệu song song bus hệ thống ra dữ liệu nối tiếp để truyền đi Một chiều khác, UART chuyển đổi dữ liệu nhận được dạng dữ liệu nối tiếp thành dạng dữ liệu song song cho CPU có thể đọc vào bus hệ thống
UART của PC hỗ trợ cả hai kiểu giao tiếp là giao tiếp đồng thời và không giao tiếp đồng thời Giao tiếp đồng thời tức là UART có thể gửi và nhận dữ liệu vào cùng một thời điểm Còn giao tiếp không đồng thời( không kép) là chỉ có một thiết
bị có thể chuyển dữ liệu vào một thời điểm, với tín hiệu điều khiển hoặc mã sẽ quyết định bên nào có thể truyền dữ liệu Giao tiếp không đồng thời được thực hiện khi mà cả 2 chiều chia sẻ một đường dẫn hoặc nếu có 2 đường nhưng cả 2 thiết bị chỉ giao tiếp qua một đường ở cùng một thời điểm
Thêm vào đường dữ liệu, UART hỗ trợ chuẩn RS232 và tín hiêu điều khiển như RTS, CTS, DTR, DCR, RT và CD
Trang 2727
Để thuận tiện, các chương trình gửi và nhận dữ liệu trong định dạng không đồng bộ, PC và nhiều vi xử lí khác có một bộ phận gọi là UART( universal asynchronous receiver/transmitter: truyền /nhận không đồng bộ chung)
Hình 2.10 Kết nối UART giữa hai vi điều khiển
Rất nhiều vi điều khiển hiện nay đã được tích hợp UART, vì vấn đề tốc độ và
độ tiện dụng của UART không thể so sánh với các giao tiếp mới hiện nay nên các dòng PC & Laptop đời mới không còn tích hợp cổng UART Nếu giao tiếp SPI và I2C có môṭ dây truyền dữ liệu và môṭ dây được sử dụng để truyền xung clock (SCL) để đồng bộ trong giao tiếp thì với UART không có dây SCL, vấn đề được giải quyết khi mà việc truyền UART được dùng giữa hai vi xử lý với nhau, đồng nghĩa với việc mỗi vi xử lý có thể tự tạo ra xung clock cho chính nó sử dụng
Để bắt đầu cho việc truyền dữ liệu bằng UART, một START bit được gửi đi, sau đó là các bit dữ liệu và kết thúc quá trình truyền là STOP bit
Hình 2.11 Quá trình truyền dữ liệu UART
Khi ở trạng thái chờ mức điện thế ở mức 1 (high) Khi bắt đầu truyền START bit sẽ chuyển từ 1 xuống 0 để báo hiệu cho bộ nhận là quá trình truyền dữ liệu sắp xảy ra Sau START bit là đến các bit dữ liệu D0-D7 (Theo hình vẽ các bit này có thể ở mức High or Low tùy theo dữ liệu) Sau khi truyền hết dữ liệu thì đến Bit Parity để bộ nhận kiểm tra tính chính xác của dữ liệu Cuối cùng là STOP bit là 1,
Trang 2828
báo cho thiết bị rằng các bit đã được gửi xong Thiết bị nhận sẽ tiến hành kiểm tra khung truyền nhằm đảm báo tính chính xác của dữ liệu
Các thông số cơ bản trong truyền nhận UART:
Baund rate (tốc độ baund ): Khoảng thời gian truyền 1 bit Phải được cài đặt giống nhau ở gửi và nhận
Frame(khung truyền ): Khung truyền quy định về số bit trong mỗi lần truyền
Start bit : là bit đầu tiên được truyền trong 1 Frame Báo hiệu cho thiết bị nhận có một gói dữ liệu sắp đc truyền đến Là bit bắt buộc
Data : là dữ liệu cần truyền Bit có trọng số nhỏ nhất LSB được truyền trước sau đó đến bit MSB
Parity bit : kiểm tra dữ liệu truyền có đúng không
Stop bit : là 1 hoặc các bit báo cho thiết bị rằng các bit đã được gửi xong Thiết bị nhận sẽ tiến hành kiểm tra khung truyền nhằm đảm bảo tính chính xác của
dữ liệu
2.3 Giới thiệu phân cứng
Phần cứng gồm có những thiết bị sau:
Thiết bị đầu vào: nút nhấn, ổ cắm thiết bi.̣
Thiết bị đầu ra: LCD
Thiết bi ̣đo điện năng: PZEM004T
Thiết bị điều khiển trung tâm: NodeMCU ESP8266 WiFi V1.0
Các chuẩn truyền dữ liệu: UART, I2C, Wifi, 3G
Thiết bị giao diện điều khiển: điện thoại, máy tính, Ipad
2.3.1 Module NodeMCU ESP8266 wifi v1.0
2.3.1.1 Giới thiệu một số loại ESP 8266
ESP8266 là dạng Vi điều khiển tích hợp Wifi (Wifi SoC) được phát triển bởi Espressif Systems, một nhà sản xuất Trung Quốc có trụ sở tại Thượng Hải Với Vi điều khiển và Wifi tích hợp, ESP8266 cho phép lập trình viên có thể thực hiện vô số các tác vụ TCP/IP đơn giản để thực hiện vô số các ứng dụng khác nhau, đặc biệt là các ứng dụng IoT Module ESP8266 có giá thành rẻ, phải nói là rẻ nhất trong tất cả các loại Wifi SoC từ trước tới nay
Trang 2929
Chip ESP8266 được phát triển bởi Espressif để cung cấp giải pháp giao tiếp Wifi cho các thiết bị IoT Điểm đặc biệt của dòng ESP8266 là nó được tích hợp các mạch RF như balun, antenna switches, TX power amplifier và RX filter ngay bên trong chip với kích thước rất nhỏ chỉ 5x5mm nên các board sử dụng ESP8266 không cần kích thước board lớn cũng như không cần nhiều linh kiện xung quanh Sau nhiều năm phát triển, hiện tại AI-Thinker sản xuất 14 loại cho ESP từ module ESP-01 đến ESP-14 Ở thị trường VN thì ba module là ESP-01, ESP-07 và ESP-12F khá phổ biến, nhất là ESP-12
2.5.1.2 ESP8266-12
Hình 2.12 Ảnh ESP8266-12 thực tế và sơ đồ chân
ESP-12 kết hợp với firmware ESP8266 trên Arduino và thiết kế phần cứng giao tiếp tiêu chuẩn đã tạo nên NodeMCU, cách sử dụng, kết nối dễ dàng, có thể lập trình, nạp chương trình trực tiếp trên phần mềm Arduino, đồng thời tương tích với các bộ thư viện Arduino sẵn có NodeMCU ESP8266 trở thành loại Kit phát triển phổ biến nhất trong thời điểm hiện tại
Trang 3030
Hình 2.13 Module Node MCU ESP8266 và sơ đồ chân
a Thông số cấu hình của NodeMCU ESP8266
Bảng 2.1 Thông số cấu hình của NodeMCU ESP8266
Remote Control, GPIO/PWM
bước
Phạm vi nhiệt độ hoạt động -40C ~ 125°C
b Sơ đồ mạch nguyên lý của NodeMCU ESP8266