Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Dit is een voorbeeld van een mooi LoRa-project. Het weerstation bevat een temperatuursensor, luchtdruksensor en vochtigheidssensor. De gegevens worden uitgelezen en verzonden naar Cayenne Mydevices en Weather Underground met behulp van LoRa en The Things Network.
Check of er LoRa Gateway van The Things Network bij jou in de buurt is!
Stap 1: De hardware
Voor dit project heb ik de volgende hardware gebruikt:
- 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-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)
Totale kosten minder dan 10 dollar.
Stap 2: De bedrading
Het is verstandig om de sensoren eerst op een breadboard te testen. Zo weet je zeker dat de sensoren werken. Je kunt het stroomverbruik ook meten met een multimeter. (Gebruik de Low-Power lib om het minimum te meten)
Soldeer eerst draden aan de RFM95W-module en soldeer ze vervolgens aan de Arduino Pro Mini. Voeg vervolgens de sensoren toe. Bekijk de afbeeldingen en het schema!
Stap 3: De behuizing
Om het weerstation ergens neer te zetten, tekende ik een hoesje en printte het uit met de 3D-printer.
De modellen zijn te vinden op Thingiverse. Je kunt natuurlijk je eigen variant maken.
Stap 4: De software
De code die ik heb gebruikt is te vinden op GitHub:
Ik heb Atom met PlatformIO gebruikt om dit project te realiseren, dus dit is een PlatformIO-project. Ik heb de volgende bibliotheken gebruikt:
- LoraMAC-in-C voor Arduino met dank aan Thomas Telkamp en Matthijs Kooijman (https://github.com/matthijskooijman/arduino-lmic)
- CayenneLPP van The Things Network Arduino Library (https://github.com/TheThingsNetwork/arduino-device-lib)
- Adafruit DHT-vochtigheids- en temperatuuruniforme sensorbibliotheek (https://github.com/adafruit/DHT-sensor-library)
- Low-Power: lichtgewicht low-power bibliotheek voor Arduino (https://github.com/adafruit/DHT-sensor-library)
Stap 5: Cayenne MyDevices
U kunt uw applicatie in The Things Network integreren met Cayenne myDevices
Om de integratie toe te voegen:
- Ga naar de applicatieconsole op de website van The Things Network;
- Selecteer integraties in het menu rechtsboven;
- Selecteer Cayenne;
- Volg de instructies
Stap 6: Weer ondergronds
Maak een HTTP-integratie om gegevens naar Weather underground te sturen. De gegevens worden met een POST of een GET naar de URL gestuurd. Het volgende script legt de gegevens vast en stuurt deze naar Weather Underground. Registreer uw eigen persoonlijke weerstation op
<?php
?php echo tijd();
file_put_contents('json/post'.time().'.json', file_get_contents('php://input'));
$json = file_get_contents('php://input'); $data = json_decode($json);
// haal de gegevens uit de json
$temperature_1 = $data->payload_fields->temperature_1; $barometric_pressure_2 = $data->payload_fields->barometric_pressure_2; $relative_humidity_3 = $data->payload_fields->relative_humidity_3;
// tempc naar tempf
$tempf = ($temperatuur_1 * 9/5) + 32;
// druk
$druk = $barometrische_druk_2/33.863886666667;
if(isset($druk) && !empty($druk) && 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=". $pressure);
}
?>
?>
Stap 7: Geniet van je weerstation
Geniet van je weerstation
In Cayenne myDevices kunt u een projectdashboard delen. Deel de jouwe in de reacties!
Dit is van mij: