Hi,
A few years ago, I found an ultrasonic anemometer by Hardy Lau
https://www.dl1glh.de/ultrasonic-anemometer.html#advancement It is so interesting and he kindly recorded all the related info such as math and schematics that are needed to build our own ones.
Early this year, I finally decided to build a replicate of the ultrasonic anemometer but also added more sensors to make it a complete weather station.
It has a name now call QingStation
The weather station is fully opensourced, people who are interested can find more details in the below repos
Build logs, PCB, cad are in main repo
https://github.com/majianjia/QingStationFirmware is in a dedicated repo
https://github.com/majianjia/QingStation-Firmware [ You are not allowed to view attachments ]
The plan was to make it small therefore can be installed on my small drone boat. So the overall design is very compact.
It took quite much time for me to debug and tune the ultrasonic transducer.
SpecsFeatures:
MCU: STM32L476
PCB dimension: Φ48 mm
SDCard
RTC
Sensor Integration:
Anemometer (2x2 Ultrasonic transducer array 40k/200kHz)
Rain sensor (IR Optical type)
Lighting sensor (AS3935)
IMU & eCampass (BMX160)
RGBI light sensor (APDS-9250)
Microphone (MP34DT05/6)
Barometer, humidity, temperature sensor (BME280)
Communication Interfaces:
2x UART
I2C
SPI
CAN (FDCAN)
USB (CDC and/or MassStorage)
Power Consumption
Normal 20~22mA
Normal + GNSS: ~45mA
Normal + GNSS + ESP8266(MQTT @ 1Hz): ~100mA
Sleep: unknown
External Communication
ESP8266 (AT)
ESP32 (AT)
SIM800c
[ You are not allowed to view attachments ]
The below is windspeed vs GPS speed when the QingStation is mounted on my car.
[ You are not allowed to view attachments ]
I built a few more to test whether my algorithm can work on different hardware.
[ You are not allowed to view attachments ]
[ You are not allowed to view attachments ]
It can also use windspeed measurement to estimate temperature. This is an overnight test, shows the temperature is aligned with the onboard measurement.
[ You are not allowed to view attachments ]
For more photos and details, you could check the links to Github.
It now records data to the onboard SD card and can post data to the MQTT broker.
I am not familiar with weather software so I am not sure how to properly pack the data and send it to the software.
The principle for the above anemometer is to measure the time that the ultrasound beams propagate and reflects then receive by one of the transducers.
The size cannot be smaller than a threshold where the transducer cannot respond fast enough due to the physical momentum.
So the gap is quite large between the reflection plate and the transducer. The longer travel path also weakened the signals so it fails sometimes in strong winds.
Next stepThere is another approach that bases on the phase shift instead of beam recognition.
It has a few advantages
1. It has one active transducer and 3 passive transducers, which reduces the complexity.
2. It sends a continuous waveform so the momentum doesn't matter now.
3. the gap is quite small so the amplitude of the signal will be very high.
The downside is
1. Smaller travel path, so the accuracy will not be that high.
2. Smaller gap will slow down the airflow. So it must be calibrated to produce an accurate measurement.
Now I have enough experience and I am planning to build another one with this new approach.