Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
To jest przykład ładnego projektu LoRa. Stacja pogodowa zawiera czujnik temperatury, czujnik ciśnienia powietrza i czujnik wilgotności. Dane są odczytywane i wysyłane do Cayenne Mydevices i Weather Underground za pomocą LoRa i The Things Network.
Sprawdź, czy w Twojej okolicy znajduje się LoRa Gateway of the Things Network!
Krok 1: Sprzęt
Do tego projektu użyłem następującego sprzętu:
- 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 -moduł-nadawczo-odbiorczy-SPI-SMD/32799536710.html)
- DHT22 (https://www.aliexpress.com/item/High-Precision-AM2302-DHT22-Digital-Temperature-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-Precision-Atmospheric/32775855945.html)
Razem kosztuje mniej niż 10 dolarów.
Krok 2: Okablowanie
Dobrze jest najpierw przetestować czujniki na płytce stykowej. Możesz więc mieć pewność, że czujniki działają. Możesz również zmierzyć pobór mocy za pomocą multimetru. (Użyj biblioteki Low-Power, aby zmierzyć minimum)
Najpierw przylutuj przewody do modułu RFM95W, a następnie do Arduino Pro Mini. Następnie dodaj czujniki. Zobacz zdjęcia i schemat!
Krok 3: Obudowa
Aby gdzieś umieścić stację pogodową, narysowałem obudowę i wydrukowałem ją drukarką 3d.
Modele można znaleźć na Thingiverse. Oczywiście możesz oczywiście stworzyć swój własny wariant.
Krok 4: Oprogramowanie
Kod, którego użyłem można znaleźć na GitHub:
Do realizacji tego projektu użyłem Atoma z PlatformIO, więc jest to projekt PlatformIO. Korzystałem z następujących bibliotek:
- LoraMAC-in-C dla Arduino dzięki Thomasowi Telkampowi i Matthijsowi Kooijmanowi (https://github.com/matthijskooijman/arduino-lmic)
- CayenneLPP biblioteki Arduino The Things Network (https://github.com/TheThingsNetwork/arduino-device-lib)
- Zunifikowana biblioteka czujników wilgotności i temperatury Adafruit DHT (https://github.com/adafruit/DHT-sensor-library)
- Low-Power: Lekka biblioteka o niskim poborze mocy dla Arduino (https://github.com/adafruit/DHT-sensor-library)
Krok 5: Moje urządzenia Cayenne
Możesz zintegrować swoją aplikację w The Things Network z Cayenne myDevices
Aby dodać integrację:
- Przejdź do konsoli aplikacji na stronie The Things Network;
- Wybierz integracje z menu w prawym górnym rogu;
- Wybierz Cayenne;
- Postępuj zgodnie z instrukcją
Krok 6: Pogoda pod ziemią
Aby wysłać dane do Weather Underground, utwórz integrację HTTP. Dane zostaną przesłane na adres URL z POST lub GET. Poniższy skrypt przechwytuje dane i wysyła je do Weather Underground. Zarejestruj własną osobistą stację pogodową na
<?php
?php czas echa();
file_put_contents('json/post'.time().'.json', file_get_contents('php://input'));
$json = file_get_contents('php://input'); $dane = json_decode($json);
// wyjmij dane z json
$temperatura_1 = $dane->pola_ładunku->temperatura_1; $barometric_pressure_2 = $data->payload_fields->barometric_pressure_2; $względna_wilgotność_3 = $dane->payload_fields->względna_wilgotność_3;
// tempc do tempf
$tempf = ($temperatura_1 * 9/5) + 32;
// nacisk
$ciśnienie = $barometryczne_ciśnienie_2/33.863886666667;
if(isset($ciśnienie) && !empty($ciśnienie) && isset($tempf) && !empty($tempf) && isset($relative_humidity_3) && !empty($relative_humidity_3)){ file_get_contents("https://rtupdate.wunderground.com/weatherstation/updateweatherstation.php?ID=XXXXXXX&PASSWORD=XXXXXXXX&dateutc=now&tempf=". $tempf. "&humidity=". $relative_humidity_3. "&baromin=". $ciśnienie);
}
?>
?>
Krok 7: Ciesz się swoją stacją pogodową
Ciesz się swoją stacją pogodową
W Cayenne myDevices możesz udostępnić pulpit nawigacyjny projektu. Podziel się swoimi w komentarzach!
To jest moje: