Mục lục:

Internet of Things: LoRa Weather Station: 7 bước (có hình ảnh)
Internet of Things: LoRa Weather Station: 7 bước (có hình ảnh)

Video: Internet of Things: LoRa Weather Station: 7 bước (có hình ảnh)

Video: Internet of Things: LoRa Weather Station: 7 bước (có hình ảnh)
Video: Lập trình nhúng là gì? Tìm hiểu về Internet vạn vật | IoT| TEK4.VN 2024, Tháng bảy
Anonim
Internet of Things: Trạm thời tiết LoRa
Internet of Things: Trạm thời tiết LoRa
Internet of Things: Trạm thời tiết LoRa
Internet of Things: Trạm thời tiết LoRa
Internet of Things: Trạm thời tiết LoRa
Internet of Things: Trạm thời tiết LoRa

Đây là một ví dụ về một dự án LoRa tốt đẹp. Trạm thời tiết có chứa cảm biến nhiệt độ, cảm biến áp suất không khí và cảm biến độ ẩm. Dữ liệu được đọc ra và gửi đến Cayenne Mydevices và Weather Underground bằng LoRa và The Things Network.

Kiểm tra xem có LoRa Gateway của The Things Network trong khu vực của bạn hay không!

Bước 1: Phần cứng

Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng

Đối với dự án này, tôi đã sử dụng phần cứng sau:

  • Arduino Pro Mini 328 - 3.3V / 8MHz (https://www.sparkfun.com/products/11114)
  • RFM95W (https://www.hoperf.com/rf_transceiver/lora/RFM95W.html) (https://www.aliexpress.com/item/RFM95W-20dBm-100mW-868Mhz-915Mhz-DSSS-spread-spectrum-wireless -transceiver-module-SPI-SMD / 32799536710.html)
  • DHT22 (https://www.aliexpress.com/item/High-Pre precision-AM2302-DHT22-Digital-Tempe Heat-Humidity-Sensor-Module-For-arduino-Uno-R3/32759158558.html)
  • BME280 (https://www.aliexpress.com/item/I2C-SPI-BMP280-3-3-BMP280-3-3-Digital-Barometric-Pressure-Altitude-Sensor-High-Pre khít-At Khí quyển/32775855945.html)

Tổng chi phí ít hơn 10 đô la.

Bước 2: Hệ thống dây điện

Hệ thống dây điện
Hệ thống dây điện
Hệ thống dây điện
Hệ thống dây điện
Hệ thống dây điện
Hệ thống dây điện

Trước tiên, bạn nên kiểm tra các cảm biến trên breadboard. Vì vậy, bạn có thể chắc chắn rằng các cảm biến hoạt động. Bạn cũng có thể đo điện năng tiêu thụ bằng đồng hồ vạn năng. (Sử dụng lib công suất thấp để đo mức tối thiểu)

Đầu tiên hàn dây vào mô-đun RFM95W và sau đó hàn chúng với Arduino Pro Mini. Sau đó, thêm các cảm biến. Xem hình ảnh và sơ đồ!

Bước 3: Vỏ bọc

Vỏ bọc
Vỏ bọc
Vỏ bọc
Vỏ bọc
Vỏ bọc
Vỏ bọc
Vỏ bọc
Vỏ bọc

Để đặt trạm thời tiết ở đâu đó, tôi đã vẽ một cái hộp và in nó bằng máy in 3d.

Các mô hình có thể được tìm thấy trên Thingiverse. Tất nhiên, tất nhiên bạn có thể tạo biến thể của riêng mình.

Bước 4: Phần mềm

Phần mềm
Phần mềm

Mã tôi đã sử dụng có thể được tìm thấy trên GitHub:

Tôi đã sử dụng Atom với PlatformIO để hiện thực hóa dự án này, vì vậy đây là một dự án PlatformIO. Tôi đã sử dụng các cuốn thư thư sau đây:

  • LoraMAC-in-C cho Arduino cảm ơn Thomas Telkamp và Matthijs Kooijman (https://github.com/matthijskooijman/arduino-lmic)
  • CayenneLPP of The Things Network Arduino Library (https://github.com/TheThingsNetwork/arduino-device-lib)
  • Thư viện cảm biến hợp nhất về độ ẩm và nhiệt độ Adafruit DHT (https://github.com/adafruit/DHT-sensor-library)
  • Công suất thấp: Thư viện công suất thấp nhẹ cho Arduino (https://github.com/adafruit/DHT-sensor-library)

Bước 5: Cayenne MyDevices

Cayenne MyDevices
Cayenne MyDevices

Bạn có thể tích hợp ứng dụng của mình trong The Things Network với Cayenne myDevices

Để thêm tích hợp:

  • Đi tới bảng điều khiển ứng dụng trên trang web The Things Network;
  • Chọn các tích hợp từ menu trên cùng bên phải;
  • Chọn Cayenne;
  • Làm theo chỉ dẫn

Bước 6: Thời tiết ngầm

Thời tiết ngầm
Thời tiết ngầm

Để gửi dữ liệu đến Thời tiết ngầm, hãy tạo tích hợp HTTP. Dữ liệu sẽ được gửi đến URL bằng POST hoặc GET. Tập lệnh sau ghi lại dữ liệu và gửi dữ liệu đó đến Weather Underground. Đăng ký Trạm thời tiết cá nhân của riêng bạn trên

<? php

? php echo time ();

file_put_contents ('json / post'.time ().'. json ', file_get_contents (' php: // input '));

$ json = file_get_contents ('php: // input'); $ data = json_decode ($ json);

// lấy dữ liệu ra khỏi json

$ nhiệt độ_1 = $ data-> payload_fields-> nhiệt độ_1; $ barometric_pressure_2 = $ data-> payload_fields-> barometric_pressure_2; $ relative_humidity_3 = $ data-> payload_fields-> rel_humidity_3;

// tempc thành tempf

$ tempf = ($ nhiệt độ_1 * 9/5) + 32;

// sức ép

$ áp = $ barometric_pressure_2 / 33.863886666667;

if (Isset ($ áp lực) &&! trống ($ áp lực) && Isset ($ tempf) &&! trống ($ tempf) && Isset ($ tương đối_humidity_3) &&! trống ($ tương đối_humidity_3)) {file_get_contents ("https:// rtupdate.wunderground.com / weatherstation / updateweatherstation.php? ID = XXXXXXX & PASSWORD = XXXXXXXX & dateutc = now & tempf = ". $ tempf." & Moisturiser = ". $ relative_humidity_3." & baromin = ". $ áp);

}

?>

?>

Bước 7: Tận hưởng Trạm thời tiết của bạn

Tận hưởng Trạm thời tiết của bạn
Tận hưởng Trạm thời tiết của bạn
Tận hưởng Trạm thời tiết của bạn
Tận hưởng Trạm thời tiết của bạn

Tận hưởng Trạm thời tiết của bạn

Trong Cayenne myDevices, bạn có thể chia sẻ Bảng điều khiển dự án. Chia sẻ của bạn trong các ý kiến!

Đây là của tôi:

Đề xuất: