MỤC LỤCTổng quan về hệ thống quan trắc thời tiếtBối cảnh chungCác trạm quan trắc thời tiết trên thực tếCác trang web cung cấp thông tin thời tiếtMục tiêu đề tàiBố cục đồ ánCấu trúc hệ th
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
ĐỒ ÁN I THIẾT K H Ế Ệ THỐNG QUAN TR C TH I TI Ắ Ờ ẾT
PHẠM MINH KHỞI
Ngành KT Điều khiển & Tự động hóa
Giảng viên hướng dẫn: Hoàng Đức Chính
Tự động hóa
HÀ NỘI, 8/2023
Chữ ký của GVHD
Trang 2MỤC LỤC
Tổng quan về hệ thống quan trắc thời tiết
Bối cảnh chung
Các trạm quan trắc thời tiết trên thực tế
Các trang web cung cấp thông tin thời tiết
Giới thiệu phần mềm thiết kế mạch Altium Designer
Giới thiệu về chuẩn giao tiếp I2C và giao thức MQTT
Giới thiệu về giao tiếp I2C
Giới thiệu chung về giao thức MQTT
Lập trình chương trình máy
Lưu đồ giải thuật chương trình máy
Giới thiệu phần mềm lập trình hệ thống
Thiết kế ứng dụng trên điện thoại
Lưu đồ ứng dụng hiển thị thông số cảm biến trên android app
Phương hướng phát triển
TÀI LIỆU THAM KHẢO
Trang 3DANH MỤC HÌNH VẼHình 1.1 Mô hình trạm thời tiết tự động ET107
Hình 1.2 Các thành phần của trạm thời tiết ET107
Hình 1.3 Một số trang web cung cấp thông tin về thời tiết
Hình 2.7 Cảm biến hướng gió
Hình 2.8 Sơ đồ mạch đo và bảng giá trị điện trở ứng với mỗi góc quay
Hình 2.9 Gầu nước bên trong cảm biến lượng mưa
Hình 2.10 Sơ đồ nguyên lý mạch giao tiếp
Hình 2.11 Giao diện làm việc Altium Designer
Hình 2.12 Lưu đồ chương trình máy
Hình 2.13 Giao diện làm việc Arduino IDE
Hình 2.14 Lưu đồ ứng dụng thể hiện thông tin thời tiết
Hình 2.15 Giao diện làm việc Android Sttudio
Hình 3.1 Thông tin thời tiết đo được qua cảm biến
Hình 3.2 Dữ liệu thời tiết được hiển thị trên ứng dụng
Trang 4CHƯƠNG 1 GIỚI THIỆU
Tổng quan về hệ thống quan trắc thời tiết
ố ả
Thời tiết là tập hợp trạng thái của các yếu tố khí tượng xảy ra trong khí quyển ở một thời điểm, một khoảng thời gian nhất đinh nhất định như nắng hay mưa, nóng hay lạnh, ẩm thấp hay khô ráo Thời tiết ảnh hưởng rất nhiều đến các hoạt động sản xuất và sinh hoạt của con người Chính vì thế con người đã cố gắng dự báo thời tiết trong suốtnhiều thiên niên kỷ Năm 650 BC, người Babylon tiên đoán thời tiết dựa vào hình dạng của các đám mây cũng như dựa vào chiêm tinh học Khoảng 340 BC, miêu tả một phần thời tiết trong cuốn “meteorologica” Lúc này các dự đoán chủ yếu dựa vào quan sát một phần nhất định như mặt trời, chu kỳ trăng, sự chuyển động của gió Đến khi công nghệ phát triển hơn chúng ta đã có thể đo được các dữ liệu môi trường một cách chính xác hơn, nắm được các quy luật của thời tiết và dựa vào các dữ liệu quang trắc môi trường để đưa ra các dự báo về sự thay đổi của thời tiết
Các trạm quang trắc khí tượng cung cấp các dữ liệu về môi trường như : nhiệt độ,
độ ẩm, áp suất, ánh sáng, tốc độ gió, lượng mưa… mang lại rất nhiều lợi ích cho hoạt động sinh hoạt, sản xuất của con người
Dự báo thời tiết
Cung cấp dữ liệu môi trường phục vụ các hoạt động sản xuất nhất là trong nông nghiệp
Cảnh báo thiên tai
ng cấp dữ liệu phục vụ cho các nghiên cứu về môi trường và khi hậu
Trên thực tế có rất nhiều loại trạm quan trắc thời tiết khác nhau, với những tính năng
và mục đích sử dụng như: Trạm quan trắc thời tiết sử dụng cho mục đích nông nghiệp thương mại, tưới tiêu, hoặc tại các công trình lớn như thủy điện… trạm thời tiết RK900 được sử dụng cho nhiều mục đích khác như nghiên cứu khoa học, khí tượng thủy văn, nông lâm thủy sản,…
Trang 5Mô hình trạm thời tiết tự động
Trạm thời tiết ET107 có những tính năng đặc trưng như
Sử dụng Datalogger CR1000 nên rất thuận tiện cho việc lập trình ghi đo và truyền
số liệu bằng nhiều hình thức khác n
Sử dụng các cảm biến ghi đo phổ biến và thông dụng, có thể hỗ trợ nhiều ứng dụng, mục đích khác nhau
Hộp bảo vệ kín nước nên có thể bảo vệ an toàn các thiết bị điện tử bên trong, tăng
độ tin cậy số liệu ghi đo trong thời gian lâu dài
Tiêu thụ điện năng thấp nên hệ thống pin mặt trời, ăc quy cũng rất gọn nhẹ, kéo theo giá đỡ của trạm cũng rất gọn nhẹ
Tuỳ chọn xem và tải số liệu qua Internet thông qua máy chủ ảo đặt tại Việt Nam Tuỳ chọn cảnh báo bằng tin nhắn SMS, E ng số đo vượt ngưỡng cho phép (thường là lượng mưa)
Trạm quan trắc thời tiết ET107 gồm các thành phần như hình vẽ:
Các thành phần của trạm thời tiết ET107
Trang 61: Bộ ghi đo tự động
2: Bộ nguồn bao gồm ăc quy 12 VDC 7Ah, pin mặt trời 10W, bộ sạc
3: Cảm biến đo bức xạ mặt trời
4: Cảm biến đo nhiệt độ và độ ẩm tương đối của không khí
5: Cốc đo mưa dạng xung lật
6: Cảm biến đo tốc độ gió và hướng gió
7: Modem truyền dữ liệu
Với sự phát triển của Internet rất nhiều website với mục đích cung cấp các thông tin
và dự báo về thời tiết khu vực đã được phát hành như : Acc
Underground, Weather.com… hay ( trang web của Trung tâm dự báo khí tượng thủy văn quốc gia Việt Nam) Đây đều là những trang web có cơ sở dữ liệu rất lớn phủ khắp trên thế giới Cho phép ta dễ dàng nắm được các thông tin chuẩn xác nhất
về thời tiết của bất cứ nơi nào ta muố
Một số trang web cung cấp thông tin về thời tiết
Trang 7Ngoài chức năng chính là đưa ra các thông tin thời tiết và dự đoán thời tiết các trang web còn cung cấp rất nhiều các dịch vụ và tính năng bổ sung :
Dự báo chi tiết hơn: Các dịch vụ trả phí cung cấp dự báo thời tiết chi tiết hơn, bao gồm thông tin về nhiệt độ, độ ẩm, tốc độ gió, mức độ UV, mưa, tuyết, và các chỉ số khí quyển khác trong thời gian ngắn và dài hạn Ngoài ra còn có thêm những dự báo
về sấm, chớp, bão, mưa lớn, lốc xoáy cùng các hiện tượng thời tiết nguy hiểm khác Những thông tin chi tiết này có thể giúp cho người dùng có thể chuẩn bị và đối phó.Phân tích kèm theo những đồ họa và mở rộng hơn Có thể phân tích thông tin thời tiết dưới dạng biểu đồ, trong thời gian thực và liên tục Giúp người dùng nhận biết
dễ dàng và hiểu rõ hơn xu hướng thời tiết
Cùng với đó, dịch vụ trả phí cung cấp thêm những thông tin thời tiết của địa điểm khác, theo đó có những kế hoạch đặt ra trong tương lai cụ thể và rõ ràng
từ xa thông qua module esp8266 kết hợp với giao thức MQTT
Trang 8CHƯƠNG 2 THIẾT KẾ HỆ THỐNG
Cấu trúc hệ thống
Sơ đồ ệ ố
Sơ đồ hệ thốngThông qua mạch giao tiếp dữ liệu thời tiết được đọc bởi ESP8266 > ESP8266 sẽ đọc
và gửi dữ liệu lên máy tính để làm MQTT Broker( mosquitto) qua kết nối wifi Ứng dụng nhận và hiển thị dữ liệu được gửi lên Bro
Tổng quan về NodeMCU ESP8266
Giới thiệu sơ lược về NodeMCU ESP8266
ESP8266 là một chip của Espressif Systems có tích hợp công nghệ Wi Fi với đặc tính giá rẻ, tương thích với nhiều nền tảng Nó thường được sử dụng trong các board mạch smart home giá rẻ như Sonoff Basic và các công tắc Wi
Bảng phát triển NodeMCU ESP8266 đi kèm với mô đun ESP 12E chứa chip ESP8266 Bộ vi xử lý này hỗ trợ RTOS và hoạt động ở tần số xung nhịp có thể điều chỉnh
từ 80MHz đến 160 MHz
NodeMCU có 128 KB RAM và 4MB bộ nhớ Flash để lưu trữ dữ liệu và chương Sức mạnh xử lý cao của nó với Wi Fi / Bluetooth và các tính năng Điều hành Ngủ sâu tích hợp khiến nó trở nên lý tưởng cho các dự án IoT
Trang 9NodeMCU có thể được cấp nguồn bằng giắc cắm Micro USB và chân VIN (Chân nguồn cung cấp bên ngoài) Nó hỗ trợ giao diện UART, SPI và I2C.
Thông số kỹ thuật
USB NodeMCU có thể cấp nguồn qua cổng USB
3.3V: quy định có hể cung cấp cho chân này để cấp nguồn cho mạch
GND: Chân nối đấtVin: Nguồn điện bên ngoàiChốt và nút đặt lại bộ vi điều khiểnĐược sử dụng để đo điện áp tương tự trong khoảng 0
Trang 10GPIO1 đến GPIO16 Chân MCU có 16 chân đầu vào – đầu ra
4 chân để giao tiếp SPIĐược sử dụng để tải lên chương trình
2 chân để giao tiếp I2C
Cảm biến nhiệt độ và độ ẩm AM2320
Cảm biến độ ẩm và nhiệt độ AM2320 là cảm biến lấy dữ liệu thông qua giao tiếp 1 wire (giao tiếp digital 1 dây truyền dữ liệu duy nhất), tương tự như cảm biến DHT22
Trang 11Cảm biến áp suất BM
Cảm biến nhiệt độ, độ ẩm, áp suất không khí BM
được sử dụng như một áp kế điện tử giúp đo áp suất, độ ẩm, nhiệt độ của môi trường khí), cảm biến có thiết kế nhỏ gọn, độ bền cao có thể sử dụng ở trong nhà và ngoài trời với các ứng dụng nhà thông minh, dự báo thời tiết, vườn thông minh, , cảm biến sử dụng giao tiếp I2C rất dễ kết nói và điều khiển
Điện áp sử dụng: 3.3VDC
tiếp: I2C
Khoảng đo nhiệt độ:
Khoảng đo độ ẩm: 0
Khoảng đo áp suất: 30,000 Pa
Độ chính xác tương đối: 12 Pa, độ chính xác tuyệt đối: 100 Pa
Cảm biến tốc độ gió
Cảm biến tốc độ gió điển hình có ba cách quạt với các muỗng ở cuối để đón gió và làm cánh quạt quay Ở phía dưới của cách quạt ta sẽ tìm thấy một nam châm nhỏ được gắn ở dưới
Cảm biến tốc độ gióCảm biến áp suất BMP280
Trang 12Tại hai điểm của vòng quay nam châm, nó kích hoạt một thiết bị điện tử thông minh được gọi làcông tắc sậy, như hình bên dưới.
Công tắc sậyCông tắc sậy có hai tiếp điểm kim loại bên trong tiếp xúc với nhau khi chịu tác động của nam châm Do đó, về mặt điện tử, công tắc này hoạt động giống hệt như một nút được kết nối với vi điều khiên: khi máy đo gió quay, nam châm của nó sẽ vượt công tắc sậy, khiến nó tạo thành một mạch kín trong giây lát Do đó, bạn có thể sử dụng
số lượng tín hiệu từ công tắc sậy để tính tốc độ quay của máy đo gió Bất cứ khi nào công tắc sậy được kích hoạt, nó sẽ tạo ra tín hiệu mà bạn có thể phát hiện qua
❖Tính tốc độ gió
Máy đo gió tạo ra hai tín hiệu trên mỗi vòng quay, vì vậy bạn có thể đếm số vòng quay đầy đủ của cảm biến bằng cách giảm một nửa số lượng đầu vào được phát
hiện Điều này sau đó có thể được sử dụng để tính toán tốc độ gió:
vận tốc = quãng đường/thời gian
Để tính vận tốc , bạn cần biết quãng đường vật đi được trong một khoảng thời nhất định Việc đo thời gian khá đơn giản và bạn có thể đếm số lượng tín hiệu trong một khoảng thời gian cố định, chẳng hạn như năm giây
Quãng đường đi được của một trong các cốc sẽ bằng số lần quay nhân với khoảng cách quanh mép của hình tròn (chu vi):
tốc độ = (vòng quay * chu vi) / thời gian
Trang 13Toàn bộ vòng quay sẽ tạo ra hai tín hiệu, vì vậy cần giảm một nửa số lượng tín hiệu được phát hiện:
tốc độ = (tín hiệu/2)∗(2 ∗ π∗ bán kính)
tín hiệu
Cảm biến hướng gió
Các cánh quạt gió chỉ hướng gió đến chứ không phải nơi nó sẽ đi Điều này có thể hơi khó hiểu lúc đầu, bởi vì các mũi tên trên hầu hết các bản đồ thời tiết trên TV cho thấy điều ngược lại Một cánh gió hoạt động do gió tác dụng lực lên cánh quạt thẳng đứng của
nó, khiến cánh quạt này quay để tìm vị trí ít sức cản của gió nhất; vị trí này thẳng hàng với hướng gió thổi tới
Giống như máy đo mưa hoặc máy đo gió, cánh gió được sử dụng ở đây cũng có công tắc và nam châm quay
Nếu nhìn vào bên trong hình ảnh, có tới tám công tắc được bố trí giống như nan hoa của bánh xe
Trang 14Cảm biến hướng gióđiện trởtrong cánh gió và khi nam châm quay, các công tắc sậy khác nhau sẽ mở và đóng và do đó chuyển điện trở tương ứng của chúng vào và ra khỏi mạch Nam châm của cánh có thể đóng hai công tắc cùng một lúc, cho phép chỉ định tối đa
16 vị trí khác nhau Một điện trở bên ngoài có thể được sử dụng để tạo thành một bộ chia điện áp, tạo ra một đầu ra điện áp có thể đo được bằng bộ chuyển đổi tương tự sang kỹ thuật số, như minh họa bên dưới
Sơ đồ mạch đo và bảng giá trị điện trở ứng với mỗi góc quay
Để đọc hướng gió từ cánh quạt, bạn cần có khả năng đo điện trở do cảm biến tạo ra
và chuyển đổi giá trị đó thành giá trị góc Có một số bước trong quá trình này
Trang 15đi vào vị trí Để tính được lượng mưa ta chỉ cần nhân số lần lật úp với lượng nước tới hạn của gầu
Bên cạnh gầu đựng ta có một bảng mạch chứa công tắc Khi một trong các gầu bị lật, nam châm sẽ vượt qua công tắc, khiến nó đóng lại trong giây lát Vì vậy, giống như với máy đo gió, nếu bạn kết nối máy đo mưa với chân GPIO để đếm số lần lật úp, từ đó tính được lượng mưa
Một mạch tổng hợp có nhiệm vụ đọc tín hiệu từ các cảm biến và tổng hợp dữ liệu
để thuận lợi hơn trong quá trình truyền tải và xử lý dữ liệu
Trang 16Sơ đồ nguyên lý mạch giao tiếp
Sơ đồ nguyên lý gồm có:
điều khiển
Cảm biến áp suất BMP280: gồm 6 chân, trong đó 4 chân được sử dụng cho giao tiếp I2C là Vcc, Gnd,
Cảm biến nhiệt độ AM2320: gồm 4 chân là Vcc, Gnd, SCL, SDA
IC ổn áp AMS1117 3.3V: gồm 3 chân Vin, Vout, Gnd
Bộ đo mưa RAIN: được kết nối với modul bằng bộ dây và đầu nối RJ11 gồm 6 tiếp điểm, kết nối bằng 2 tiếp điểm thứ 3 và 4 truyền thông tin và “đất”
Bộ đo gió WIND: được kết nối với modul bằng bộ dây và đầu nối RJ11 gồm 6 tiếp điểm, kết nối bằng các tiếp điểm 2, 3, 4 và 5 đối xứng Tiếp điểm 2, 3 truyền tải thông tin và 4, 5 được nối “đất”
Đầu cấp nguồn cho toàn mạch và truyền tải thông tin: gồm 3 chân kết nối là Data,
2 đèn báo tín hiệu Link và STU
Dao động thạch anh XTAL: tạo ra tín hiệu xung nhịp tần số ổn định
Giới thiệu phần mềm thiết kế mạch
Altium Designer trước kia có tên gọi quen thuộc là Protel DXP, là một trong những công cụ vẽ mạch điện tử mạnh nhất hiện nay Được phát triển bởi hãng Altium Limited
Trang 17esigner là một phần mềm chuyên nghành được sử dụng trong thiết kế mạch điện
tử mạnh với nhiều tính năng như: hỗ trợ mạnh mẽ cho việc thiết kế thiết kế sơ đồ nguyên
lý, mạch PCB Mở, xem, in các file thiết kế mạch với đầy đủ các linh kiện Hệ thống linh kiện phong phú, chi tiết và hoàn chỉnh Tạo ra các linh kiện, các mạch in mới Mô phỏng mạch PCB, mô phỏng mạch trong không gian 3 chiều
Giao diện làm việc Giới thiệu về chuẩn tiếp I2C và giao thức MQTT
Trang 18I2C sử dụng 2 đường truyền tín hiệu:
Serial Clock Line: Tạo xung nhịp đồng hồ do Master phát đi
ial Data Line: Đường truyền gửi và nhận dữ liệu
Quá trình truyền dữ liệu đến thiết bị I2C
Bước 1: Master gửi tín hiệu start I2C
Bước 2: Master gửi địa chỉ của thiết bị I2C (7 bit) kèm bit Write (bit 0); Bước 3gửi địa chỉ của thanh ghi dữ liệu của Slave muốn ghi giá trị
Bước 4: Master gửi giá trị mà muốn ghi vào thành ghi ở bước 3
Bước 5: Master tạo tín hiệu stop
Quá trình nhận dữ liệu từ thiết bị I2C
Bước 1: Master gửi tín hiệu start I2C
Bước 2: Master gửi địa chỉ của thiết bị I2C (7 Bước 3gửi đia chỉ thanh ghi của Slave mà muốn đọc dữ liệu
Trang 19Bước 4: Master gửi tín hiệu Repeated Start.
Bước 5: Master gửi địa chỉ của thiết bị I2C (7 bit) kèm bit Read (bit 1); Bước 6Master đọc dữ liệu chứa trong thanh ghi ở bước 3 từ Slave gửi về
Bước 7: Master tạo tín hiệu Stop
MQTT là viết tắt của "Message Queue Telemetry Transport", là một giao thức truyền thông nhẹ và đơn giản cho các thiết bị Internet of Things (IoT) MQTT sử dụng mô hình publish/subscribe, trong đó các thiết bị IoT có thể gửi (publish) và nhận (subscribe) các thông điệp (message) thông qua một trung tâm tin cậy (broker), mà không cần phải thiết lập một kết nối trực tiếp với nhau
thiết bị IoT gửi dữ liệu với băng thông hạn chế và tiêu thụ điện năng thấp, đồng thời hỗ trợ các tính năng bảo mật như xác thực, mã hóa và kiểm soát truy cập MQTT thường được sử dụng để giám sát và điều khiển các thiết bị IoT trong các ứng dụng như quản lý năng lượng, giám sát môi trường, tự động hóa nhà thông minh, và nhiều ứng dụng IoT khác
Trang 20Lập trình chương trình máy
Lưu đồ ả ật chương trình máy
❖ Cấu hình thiết lập cho hệ thống:
• Khai báo các thư viện sử dụng trong chương trình
Serial.begin(2400)
•password của mạng wifi kết nối; khai báo các thông số để kết nối tới Mosquitto (host,username,
const char* ssid =
❖ Kiểm tra tín hiệu vào và kết nối với Broker:
• Kiểm tra tín hiệu vào
Serial.available()
• Kiểm tra kết nối đến máy chủ Mosquitto
while(client connected ()){
Serial.print("Đang kết nối đến broker MQTT ");
if(client.connect("ESP8266Client", mqtt_user, mqtt_passwor
)){
Serial println ("Kết nối thành công!");
client subscribe ("topic");
Lưu đồ chương trình máy