### Complete Weather Station Example Source: https://context7.com/solderedelectronics/soldered-anemometer-arduino-library/llms.txt Demonstrates a complete implementation with multiple unit display, data logging format output, and wind condition classification. Ensure the Anemometer library is installed and the sensor is connected to the specified pin. ```cpp #include "Anemometer-SOLDERED.h" #define ANEMOMETER_PIN 9 Anemometer anemometer(ANEMOMETER_PIN); void setup() { Serial.begin(115200); Serial.println("Weather Station - Wind Monitor"); Serial.println("=============================="); } void loop() { // Read wind speed in all available units anemometer.setUnit(KMH); float speedKMH = anemometer.getWindSpeed(); anemometer.setUnit(MPH); float speedMPH = anemometer.getWindSpeed(); anemometer.setUnit(MS); float speedMS = anemometer.getWindSpeed(); anemometer.setUnit(KNOT); float speedKNOT = anemometer.getWindSpeed(); float rpm = anemometer.getWindRPM(); // Output in CSV format for data logging Serial.print(millis()); Serial.print(","); Serial.print(rpm); Serial.print(","); Serial.print(speedKMH); Serial.print(","); Serial.print(speedMPH); Serial.print(","); Serial.print(speedMS); Serial.print(","); Serial.println(speedKNOT); // Output: "12345,25.5,15.2,9.4,4.2,8.2" delay(1000); } ``` -------------------------------- ### Anemometer Constructor and Basic Usage Source: https://context7.com/solderedelectronics/soldered-anemometer-arduino-library/llms.txt Demonstrates how to create an Anemometer object, initialize it with a pin, and get the wind speed. ```APIDOC ## Anemometer Constructor ### Description Creates an Anemometer object and initializes the specified pin as an input for reading sensor data. The pin should be connected to the optical sensor output of the anemometer. ### Method Constructor ### Endpoint N/A (Library function) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```cpp #include "Anemometer-SOLDERED.h" #define ANEMOMETER_PIN 9 // Create anemometer object with pin 9 Anemometer anemometer(ANEMOMETER_PIN); void setup() { Serial.begin(115200); // Pin is automatically configured as INPUT during construction } void loop() { // Anemometer is ready to use float speed = anemometer.getWindSpeed(); Serial.println(speed); delay(1000); } ``` ### Response N/A (Constructor) ``` -------------------------------- ### Getting Current Measurement Unit Source: https://context7.com/solderedelectronics/soldered-anemometer-arduino-library/llms.txt Shows how to retrieve the currently configured unit for wind speed measurements. ```APIDOC ## getUnit ### Description Returns the currently configured measurement unit as a numeric value. Returns 0 for KMH, 1 for MPH, 2 for MS, and 3 for KNOT. Useful for displaying the correct unit label or for debugging purposes. ### Method `getUnit()` ### Endpoint N/A (Library function) ### Parameters None ### Request Example ```cpp #include "Anemometer-SOLDERED.h" Anemometer anemometer(9); const char* unitLabels[] = {"km/h", "mph", "m/s", "knots"}; void setup() { Serial.begin(115200); anemometer.setUnit(KMH); } void loop() { uint8_t currentUnit = anemometer.getUnit(); float speed = anemometer.getWindSpeed(); Serial.print("Wind speed: "); Serial.print(speed); Serial.print(" "); Serial.println(unitLabels[currentUnit]); // Output: "Wind speed: 15.5 km/h" delay(1000); } ``` ### Response #### Success Response (200) - **currentUnit** (uint8_t) - The current measurement unit (0: KMH, 1: MPH, 2: MS, 3: KNOT). ``` -------------------------------- ### Getting Wind Speed Source: https://context7.com/solderedelectronics/soldered-anemometer-arduino-library/llms.txt Retrieves the current wind speed in the unit previously set by `setUnit()`. ```APIDOC ## getWindSpeed ### Description Returns the current wind speed in the configured measurement unit. This function internally calls getWindRPM() to measure rotation speed, then applies the appropriate conversion factor based on the selected unit. Returns 0.0 if no wind is detected or if the rotation is too slow to measure. ### Method `getWindSpeed()` ### Endpoint N/A (Library function) ### Parameters None ### Request Example ```cpp #include "Anemometer-SOLDERED.h" Anemometer anemometer(9); void setup() { Serial.begin(115200); anemometer.setUnit(KMH); } void loop() { float windSpeed = anemometer.getWindSpeed(); if (windSpeed > 0) { Serial.print("Current wind speed: "); Serial.print(windSpeed); Serial.println(" km/h"); // Classify wind conditions if (windSpeed < 12) { Serial.println("Light breeze"); } else if (windSpeed < 30) { Serial.println("Moderate wind"); } else if (windSpeed < 50) { Serial.println("Strong wind"); } else { Serial.println("Storm conditions!"); } } else { Serial.println("No wind detected or wind too light to measure"); } delay(1000); } ``` ### Response #### Success Response (200) - **windSpeed** (float) - The current wind speed in the configured unit. Returns 0.0 if no wind is detected or measurement is too slow. ``` -------------------------------- ### Getting Wind RPM Source: https://context7.com/solderedelectronics/soldered-anemometer-arduino-library/llms.txt Retrieves the raw rotation speed of the anemometer in revolutions per minute (RPM). ```APIDOC ## getWindRPM ### Description Returns the raw rotation speed of the anemometer in revolutions per minute (RPM). This is useful for calibration, debugging, or when you need direct access to the rotation data without unit conversion. The function uses pulse timing with a 1-second timeout to measure both high and low pulse durations. ### Method `getWindRPM()` ### Endpoint N/A (Library function) ### Parameters None ### Request Example ```cpp #include "Anemometer-SOLDERED.h" Anemometer anemometer(9); void setup() { Serial.begin(115200); anemometer.setUnit(MS); } void loop() { // Get both RPM and converted wind speed float rpm = anemometer.getWindRPM(); float windSpeed = anemometer.getWindSpeed(); Serial.print("Rotation speed: "); Serial.print(rpm); Serial.println(" RPM"); Serial.print("Wind speed: "); Serial.print(windSpeed); Serial.println(" m/s"); Serial.println("---"); delay(1000); } ``` ### Response #### Success Response (200) - **rpm** (float) - The rotation speed in revolutions per minute (RPM). ``` -------------------------------- ### Set Wind Speed Unit Source: https://context7.com/solderedelectronics/soldered-anemometer-arduino-library/llms.txt Sets the measurement unit for wind speed readings. The library supports KMH, MPH, MS, and KNOT. It is recommended to explicitly set the desired unit in setup as the default unit depends on initialization. ```cpp #include "Anemometer-SOLDERED.h" Anemometer anemometer(9); void setup() { Serial.begin(115200); // Set unit to meters per second anemometer.setUnit(MS); // Other available units: // anemometer.setUnit(KMH); // Kilometers per hour // anemometer.setUnit(MPH); // Miles per hour // anemometer.setUnit(KNOT); // Nautical knots } void loop() { float speed = anemometer.getWindSpeed(); Serial.print("Wind speed: "); Serial.print(speed); Serial.println(" m/s"); delay(1000); } ``` -------------------------------- ### Get Wind Speed Source: https://context7.com/solderedelectronics/soldered-anemometer-arduino-library/llms.txt Returns the current wind speed in the configured measurement unit. This function internally calls getWindRPM() and applies conversion factors. Returns 0.0 if no wind is detected or if rotation is too slow to measure. ```cpp #include "Anemometer-SOLDERED.h" Anemometer anemometer(9); void setup() { Serial.begin(115200); anemometer.setUnit(KMH); } void loop() { float windSpeed = anemometer.getWindSpeed(); if (windSpeed > 0) { Serial.print("Current wind speed: "); Serial.print(windSpeed); Serial.println(" km/h"); // Classify wind conditions if (windSpeed < 12) { Serial.println("Light breeze"); } else if (windSpeed < 30) { Serial.println("Moderate wind"); } else if (windSpeed < 50) { Serial.println("Strong wind"); } else { Serial.println("Storm conditions!"); } } else { Serial.println("No wind detected or wind too light to measure"); } delay(1000); } ``` -------------------------------- ### Get Current Wind Speed Unit Source: https://context7.com/solderedelectronics/soldered-anemometer-arduino-library/llms.txt Returns the currently configured measurement unit as a numeric value (0 for KMH, 1 for MPH, 2 for MS, 3 for KNOT). This is useful for displaying the correct unit label or for debugging. ```cpp #include "Anemometer-SOLDERED.h" Anemometer anemometer(9); const char* unitLabels[] = {"km/h", "mph", "m/s", "knots"}; void setup() { Serial.begin(115200); anemometer.setUnit(KMH); } void loop() { uint8_t currentUnit = anemometer.getUnit(); float speed = anemometer.getWindSpeed(); Serial.print("Wind speed: "); Serial.print(speed); Serial.print(" "); Serial.println(unitLabels[currentUnit]); // Output: "Wind speed: 15.5 km/h" delay(1000); } ``` -------------------------------- ### Get Wind RPM Source: https://context7.com/solderedelectronics/soldered-anemometer-arduino-library/llms.txt Returns the raw rotation speed of the anemometer in revolutions per minute (RPM). This is useful for calibration, debugging, or direct access to rotation data. The function uses pulse timing with a 1-second timeout. ```cpp #include "Anemometer-SOLDERED.h" Anemometer anemometer(9); void setup() { Serial.begin(115200); anemometer.setUnit(MS); } void loop() { // Get both RPM and converted wind speed float rpm = anemometer.getWindRPM(); float windSpeed = anemometer.getWindSpeed(); Serial.print("Rotation speed: "); Serial.print(rpm); Serial.println(" RPM"); Serial.print("Wind speed: "); Serial.print(windSpeed); Serial.println(" m/s"); Serial.println("---"); delay(1000); } ``` -------------------------------- ### Initialize Anemometer Source: https://context7.com/solderedelectronics/soldered-anemometer-arduino-library/llms.txt Creates an Anemometer object and initializes the specified pin as an input. The pin should be connected to the anemometer's optical sensor output. Pin configuration as INPUT is handled automatically during construction. ```cpp #include "Anemometer-SOLDERED.h" #define ANEMOMETER_PIN 9 // Create anemometer object with pin 9 Anemometer anemometer(ANEMOMETER_PIN); void setup() { Serial.begin(115200); // Pin is automatically configured as INPUT during construction } void loop() { // Anemometer is ready to use float speed = anemometer.getWindSpeed(); Serial.println(speed); delay(1000); } ``` -------------------------------- ### Setting Measurement Unit Source: https://context7.com/solderedelectronics/soldered-anemometer-arduino-library/llms.txt Explains how to set the desired unit for wind speed measurements (KMH, MPH, MS, KNOT). ```APIDOC ## setUnit ### Description Sets the measurement unit for wind speed readings. The library supports four units: KMH (kilometers per hour), MPH (miles per hour), MS (meters per second), and KNOT (nautical knots). The default unit depends on initialization, so it's recommended to explicitly set the desired unit in setup. ### Method `setUnit(unit)` ### Endpoint N/A (Library function) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Parameters - **unit** (enum) - Required - The desired unit for wind speed measurement. Accepted values are `KMH`, `MPH`, `MS`, `KNOT`. ### Request Example ```cpp #include "Anemometer-SOLDERED.h" Anemometer anemometer(9); void setup() { Serial.begin(115200); // Set unit to meters per second anemometer.setUnit(MS); // Other available units: // anemometer.setUnit(KMH); // Kilometers per hour // anemometer.setUnit(MPH); // Miles per hour // anemometer.setUnit(KNOT); // Nautical knots } void loop() { float speed = anemometer.getWindSpeed(); Serial.print("Wind speed: "); Serial.print(speed); Serial.println(" m/s"); delay(1000); } ``` ### Response N/A (void function) ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.