Mục lục:

Cách xây dựng máy đo gió của riêng bạn bằng công tắc sậy, cảm biến hiệu ứng Hall và một số mẩu tin lưu niệm trên Nodemcu - Phần 2 - Phần mềm: 5 bước (có hình ảnh)
Cách xây dựng máy đo gió của riêng bạn bằng công tắc sậy, cảm biến hiệu ứng Hall và một số mẩu tin lưu niệm trên Nodemcu - Phần 2 - Phần mềm: 5 bước (có hình ảnh)

Video: Cách xây dựng máy đo gió của riêng bạn bằng công tắc sậy, cảm biến hiệu ứng Hall và một số mẩu tin lưu niệm trên Nodemcu - Phần 2 - Phần mềm: 5 bước (có hình ảnh)

Video: Cách xây dựng máy đo gió của riêng bạn bằng công tắc sậy, cảm biến hiệu ứng Hall và một số mẩu tin lưu niệm trên Nodemcu - Phần 2 - Phần mềm: 5 bước (có hình ảnh)
Video: Cậu bé đáng thương ở Brazil. 2024, Tháng sáu
Anonim
Cách xây dựng máy đo gió của riêng bạn bằng công tắc sậy, cảm biến hiệu ứng Hall và một số mẩu tin lưu niệm trên Nodemcu - Phần 2 - Phần mềm
Cách xây dựng máy đo gió của riêng bạn bằng công tắc sậy, cảm biến hiệu ứng Hall và một số mẩu tin lưu niệm trên Nodemcu - Phần 2 - Phần mềm
Cách xây dựng máy đo gió của riêng bạn bằng công tắc sậy, cảm biến hiệu ứng Hall và một số mẩu tin lưu niệm trên Nodemcu - Phần 2 - Phần mềm
Cách xây dựng máy đo gió của riêng bạn bằng công tắc sậy, cảm biến hiệu ứng Hall và một số mẩu tin lưu niệm trên Nodemcu - Phần 2 - Phần mềm

Giới thiệu

Đây là phần tiếp theo của bài đăng đầu tiên "Cách xây dựng máy đo gió cho riêng bạn bằng công tắc sậy, cảm biến hiệu ứng Hall và một số mẩu tin lưu niệm trên Nodemcu - Phần 1 - Phần cứng" - nơi tôi hướng dẫn cách lắp ráp các thiết bị đo tốc độ và hướng gió. Ở đây chúng ta sẽ khai thác phần mềm điều khiển đo lường được thiết kế để sử dụng trong Nodemcu bằng Arduino IDE.

mô tả dự án

Trong bài trước, các thiết bị được trang bị và kết nối với Nodemcu có thể đo tốc độ và hướng gió. Phần mềm điều khiển được thiết kế để đọc chuyển động quay của máy đo gió trong một khoảng thời gian, tính toán vận tốc tuyến tính, đọc hướng của cánh gió, hiển thị kết quả trên màn hình OLED, công bố kết quả trong ThingSpeak và ngủ trong 15 phút cho đến khi phép đo tiếp theo.

Khước từ trách nhiệm: Máy đo gió này không nên được sử dụng cho các mục đích chuyên nghiệp. Nó chỉ dành cho học tập hoặc sử dụng tại nhà.

Lưu ý: Tiếng Anh không phải là ngôn ngữ tự nhiên của tôi. Nếu bạn tìm thấy lỗi ngữ pháp khiến bạn không hiểu được dự án, vui lòng cho tôi biết để sửa chúng. Cảm ơn nhiều.

Bước 1: Cài đặt Arduino IDE, Bảng và Thư viện ESP8266 và Tài khoản ThingSpeak của bạn

Cài đặt Arduino IDE, Bảng ESP8266 và Thư viện và Tài khoản ThingSpeak của bạn
Cài đặt Arduino IDE, Bảng ESP8266 và Thư viện và Tài khoản ThingSpeak của bạn
Cài đặt Arduino IDE, Bảng ESP8266 và Thư viện và Tài khoản ThingSpeak của bạn
Cài đặt Arduino IDE, Bảng ESP8266 và Thư viện và Tài khoản ThingSpeak của bạn

Cài đặt Arduino IDE và Nodemcu

Nếu bạn chưa bao giờ cài đặt Arduino IDE, vui lòng đọc hướng dẫn trong liên kết - Cách cài đặt Arduino IDE - nơi bạn có thể tìm thấy hướng dẫn đầy đủ.

Bước tiếp theo, để cài đặt bảng Nodemcu, hãy sử dụng hướng dẫn này từ Magesh Jayakumar Guiductables, rất đầy đủ. Cách cài đặt Nodemcu no Arduino IDE

Cài đặt thư viện

Bước tiếp theo, bạn phải cài đặt các thư viện mà bản phác thảo sử dụng. Chúng phổ biến và bạn có thể làm theo các bước được hiển thị bên dưới.

Thư viện ThingSpeak -

Thư viện ESP8266 -

Tạo tài khoản ThingSpeak

Để sử dụng ThingSpeak (https://thingspeak.com/), bạn phải tạo một tài khoản (vẫn miễn phí cho một số tương tác nhất định), nơi bạn có thể lưu dữ liệu đo được trong máy đo gió và theo dõi điều kiện gió trong nhà, thậm chí qua điện thoại di động. Bằng cách sử dụng ThingSpeak, bạn có thể cấp quyền truy cập công khai vào dữ liệu đã thu thập của mình cho bất kỳ ai quan tâm. Đó là một lợi thế tốt của ThingSpeak. Vào trang chủ và làm theo các bước để tạo tài khoản của bạn.

Khi tài khoản được tạo, hãy nhập hướng dẫn này - ThingSpeak Bắt đầu - để tạo kênh của bạn. Nó được giải thích khá tốt. Tóm lại, bạn phải tạo một kênh nơi dữ liệu sẽ được lưu trữ. Kênh này có ID và API khóa sẽ được tham chiếu trong bản phác thảo mỗi khi bạn muốn ghi dữ liệu. ThingSpeak sẽ lưu trữ tất cả dữ liệu trong một ngân hàng và sẽ hiển thị chúng mỗi khi bạn truy cập vào tài khoản của mình, theo cách bạn đã định cấu hình.

Bước 2: Khám phá bản phác thảo

Khám phá bản phác thảo
Khám phá bản phác thảo
Khám phá bản phác thảo
Khám phá bản phác thảo

Sơ đồ

Trong sơ đồ, bạn có thể hiểu được thông lượng của bản phác thảo. Khi bạn đánh thức (liên kết) Nodemcu, nó sẽ kết nối với mạng Wi-Fi của bạn, có thông số bạn đã định cấu hình và bắt đầu đếm thời gian 1 phút để thực hiện các phép đo. Đầu tiên, nó sẽ đếm số vòng quay của máy đo gió trong 25 giây, hãy tính toán vận tốc tuyến tính và đọc hướng của gió. Kết quả được hiển thị trên OLED. Thực hiện lại các bước tương tự và đối với lần đọc thứ hai này, nó sẽ truyền đến ThingSpeak.

Sau đó, Nodemcu sẽ ngủ trong 15 phút để tiết kiệm pin. Vì tôi đang sử dụng một tấm pin mặt trời nhỏ nên tôi bắt buộc phải làm như vậy. Nếu bạn đang sử dụng nguồn 5V, bạn có thể sửa đổi chương trình để chương trình không bị ngủ và tiếp tục đo dữ liệu.

Cấu trúc của các chương trình

Trong sơ đồ, bạn có thể thấy cấu trúc của bản phác thảo.

Anemometer_Instructables

Nó là chương trình chính tải các thư viện, khởi động các biến, điều khiển ngắt đính kèm, gọi tất cả các hàm, tính toán tốc độ gió, xác định hướng của nó và đưa nó vào trạng thái ngủ.

thông tin liên lạc

Kết nối WiFi và gửi dữ liệu đến ThingSpeak.

thông tin đăng nhập.h

Các khóa mạng WiFi của bạn và số nhận dạng tài khoản của bạn trong ThingSpeak. Đây là nơi bạn sẽ thay đổi ID và API khóa của mình.

định nghĩa.h

Nó chứa tất cả các biến của chương trình. Đây là nơi bạn có thể thay đổi thời gian đọc hoặc thời gian ngủ gật.

chức năng

Nó chứa các chức năng để kết hợp các thông số và đọc bộ ghép kênh cũng như chức năng đọc các vòng quay của máy đo gió.

oledDisplay

Hiển thị kết quả trên màn hình về tốc độ và hướng gió.

Bước 3: Giải thích về…

Giải thích về…
Giải thích về…
Giải thích về…
Giải thích về…
Giải thích về…
Giải thích về…
Giải thích về…
Giải thích về…

Đính kèm ngắt

Vòng quay của máy đo gió được đo bằng hàm đính kèmInterrupt () (và detachInterrupt ()) trong GPIO 12 (chân D6) của Nodemcu (Nó có tính năng ngắt trên các chân D0-D8).

Ngắt là các sự kiện hoặc điều kiện khiến vi điều khiển ngừng thực hiện tác vụ mà nó đang thực hiện, tạm thời làm việc trong một tác vụ khác và quay lại tác vụ ban đầu.

Bạn có thể đọc chi tiết về chức năng trong liên kết để biết hướng dẫn về Arduino. Xem AttachInterrupt ().

Cú pháp: attachmentInterrupt (pin, hàm gọi lại, kiểu / chế độ ngắt);

pin = D6

hàm callback = rpm_anemometer - đếm từng xung trên một biến.

kiểu / chế độ ngắt = RISING - ngắt khi chân đi từ mức thấp lên mức cao.

Tại mỗi xung được tạo ra bởi từ tính trong cảm biến Hall, chân đi từ thấp đến cao và chức năng đếm được kích hoạt và tổng hợp xung thành một biến, trong thời gian 25 giây được thiết lập. Khi hết thời gian, bộ đếm sẽ bị ngắt kết nối (detachInterrupt ()) và quy trình sẽ tính toán tốc độ khi ngắt kết nối.

Tính toán tốc độ gió

Khi đã xác định được máy đo gió có bao nhiêu vòng quay trong 25 giây, chúng ta tính tốc độ.

  • RADIO là số đo từ trục tâm của máy đo gió đến đầu của quả bóng bàn. Chắc hẳn bạn đã đo rất tốt - (xem trong biểu đồ có ghi 10 cm).
  • RPS (số vòng quay trên giây) = số vòng quay / 25 giây
  • RPM (số vòng quay mỗi phút) = RPS * 60
  • OMEGA (vận tốc góc - radian trên giây) = 2 * PI * RPS
  • Linear_Velocity (mét trên giây) = OMEGA * RADIO
  • Linear_Velocity_kmh (Km mỗi giờ) = 3.6 * Linear_Velocity và đây là những gì sẽ được gửi đến ThingSpeak.

Đọc hướng cánh gió

Để đọc vị trí của cánh gió để xác định hướng gió, chương trình sẽ gửi tín hiệu thấp và cao đến bộ ghép kênh với tất cả sự kết hợp của các tham số A, B, C (ma trận muxABC) và chờ nhận trên chân A0 kết quả đó có thể là bất kỳ điện áp nào trong khoảng từ 0 đến 3,3V. Các kết hợp được hiển thị trong sơ đồ.

Ví dụ, khi C = 0 (thấp), B = 0 (thấp), A = 0 (thấp) bộ ghép kênh cung cấp cho nó dữ liệu của chân 0 và gửi tín hiệu đến A0 được đọc bởi Nodemcu; nếu C = 0 (thấp), B = 0 (thấp), A = 1 (cao) bộ ghép kênh sẽ gửi cho bạn dữ liệu của chân 1, v.v., cho đến khi hoàn thành việc đọc 8 kênh.

Vì tín hiệu là tín hiệu tương tự, chương trình chuyển đổi thành kỹ thuật số (0 hoặc 1), nếu điện áp nhỏ hơn hoặc bằng 1,3V thì tín hiệu là 0; nếu nó lớn hơn 1.3V tín hiệu là 1. Giá trị 1.3V là tùy ý và đối với tôi, nó hoạt động rất tốt. Luôn luôn có những rò rỉ nhỏ của dòng điện và điều này bảo vệ rằng không có dương tính giả.

Dữ liệu này được lưu trữ trong một vectơ val [8] sẽ được so sánh với mảng địa chỉ dưới dạng la bàn. Xem ma trận trong sơ đồ. Ví dụ, nếu vectơ nhận được là [0, 0, 1, 0, 0, 0, 0, 0, 0], nó chỉ ra trong ma trận hướng E và tương ứng với một góc 90 độ; nếu [0, 0, 0, 0, 0, 0, 1, 1] chỉ ra trong ma trận địa chỉ WNW và tương ứng với một góc 292,5 độ. N tương ứng với [1, 0, 0, 0, 0, 0, 0, 0, 0] và góc 0 độ.

Những gì sẽ được gửi đến ThingSpeak nằm ở góc độ vì nó chỉ chấp nhận các con số.

Bước 4: Truyền thông

Thông tin liên lạc
Thông tin liên lạc
Thông tin liên lạc
Thông tin liên lạc

Cách gửi dữ liệu đến ThingSpeak

Hàm thingspeaksenddata () chịu trách nhiệm gửi dữ liệu.

ThingSpeak.setField (1, float (linear_velocity_kmh)) - Gửi dữ liệu vận tốc đến field1 của kênh của tôi

ThingSpeak.setField (2, float (wind_Direction_Angle)) - Gửi dữ liệu địa chỉ đến field2 của kênh của tôi

ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - Gửi đến myChannelNumber kênh của tôi, với API myWriteAPIKey được viết bởi TS. Dữ liệu này được tạo bởi TS khi tạo tài khoản và kênh của bạn.

Trong các hình trên, bạn có thể thấy cách ThingSpeak hiển thị dữ liệu đã nhận.

Trong liên kết này, bạn có thể truy cập dữ liệu về dự án của tôi trong kênh công khai của ThingSpeak.

Bước 5: Các biến chính

thông số cánh gió

  • MUX_A D5 - mux pi A đến chân Nodemcu D5
  • MUX_B D4 - chân mux B đến chân Nodemcu D4
  • MUX_C D3 - mux chân C đến chân Nodemcu D3
  • READPIN 0 - Đầu vào tương tự trên NodeMcu = A0
  • NO_PINS 8 - số chân mux
  • val [NO_PINS] - cổng 0 đến 7 của mux
  • gió_Direction_Angle - Góc hướng gió
  • Chuỗi windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - thẻ tín dụng, tài sản thế chấp và tài sản thế chấp phụ
  • windAng [16] = {0, 22,5, 45, 67,5, 90, 112,5, 135, 157,5, 180, 202,5, 225, 247,5, 270, 292,5, 315, 337,5} - góc của mỗi hướng
  • Chữ số [16] [NO_PINS] - Ma trận chỉ đường
  • muxABC [8] [3] - Các kết hợp ABC mux

thông số máy đo gió

  • số vòng / phút - đếm số vòng quay đầy đủ của máy đo gió trong thời gian quy định
  • timemeasure = 25,00 - thời gian tồn tại của phép đo tính bằng giây
  • timetoSleep = 1 - Thời gian thức Nodemcu tính bằng phút
  • sleepTime = 15 - thời gian để tiếp tục ngủ trong vài phút
  • rpm, rps - tần số quay (số vòng quay trên phút, số vòng quay trên giây)
  • bán kính - mét - số đo chiều dài của cánh máy đo gió
  • linear_velocity - vận tốc tuyến tính tính bằng m / seg
  • linear_velocity_kmh - vận tốc tuyến tính theo km / h
  • omega - vận tốc hướng tâm tính bằng rad / seg

Dưới đây bạn có thể tìm thấy bản phác thảo hoàn chỉnh. Tạo một thư mục mới trên thư mục Arduino của máy tính của bạn có cùng tên với chương trình chính (Anemometer_Instructables) và đặt tất cả chúng lại với nhau.

Nhập dữ liệu mạng wifi của bạn và ID ThingSpeak và Khóa người viết API trong phần Credentials.h và lưu. Tải lên Nodemcu và đó là tất cả.

Để kiểm tra hoạt động của hệ thống, tôi đề nghị một quạt quay tốt.

Để truy cập dữ liệu bằng điện thoại di động, hãy tải ứng dụng dành cho IOS hoặc Android có tên ThingView, rất may là ứng dụng này vẫn miễn phí.

Định cấu hình cài đặt tài khoản của bạn và bạn sẽ sẵn sàng xem điều kiện gió tại nhà của mình mọi lúc mọi nơi.

Nếu bạn quan tâm, hãy truy cập kênh ThingSpeak Channel ID của tôi: 438851, kênh này được công khai và ở đó bạn sẽ tìm thấy các phép đo hướng và gió trong nhà của tôi.

Tôi thực sự hy vọng bạn có niềm vui.

Nếu bạn có bất kỳ nghi ngờ, đừng ngần ngại liên hệ với tôi.

Trân trọng

Đề xuất: