STM32 Sequential Rain Sampler

Job ID: 40343559

Budget: ₹12,500 – ₹37,500 INR

I am developing an outdoor, sequential rain-sampling station and want a complete STM32-based solution that I can send straight to manufacturing and field-test. The unit must detect rainfall with standard rain-detection sensors, rotate a set of collection bottles in order, log every event locally on an SD card, and mirror the same records wirelessly for remote monitoring.

What I already have
– A clear mechanical concept for a small, motor-driven carousel that presents each bottle under the funnel in turn.
– A high-level feature list covering sensing, timing, logging, power and weatherproof housing.

What I need from you
• Schematic and PCB layout for the chosen STM32 device, including motor driver, sensor interface, SD card socket and a low-power wireless link (LoRa, BLE or Wi-Fi—your call, as long as range in open field is 200 m+).
• Well-documented firmware in C/C++ using STM32Cube/HAL or bare-metal, handling sensor debouncing, bottle indexing, real-time clock keeping, dual-path data logging (file creation and wireless packet format) and a simple serial menu for calibration.
• Basic FreeRTOS task structure or cooperative scheduler—whichever is leaner for low-power duty cycling.
• Power budget analysis and charging logic for a small solar panel and Li-ion pack so the station can survive extended cloudy periods.
• Assembly drawings and a short test procedure I can follow with a bench supply, oscilloscope and rain simulator.

Acceptance criteria
The carousel must stop within ±5 ° of the target bottle, miss no rain events larger than 0.2 mm, and close a log file gracefully after every rotation. A two-hour battery-only test without sun must finish with ≥70 % capacity remaining while maintaining wireless updates every five minutes.

If you have previously shipped STM32 dataloggers or environmental monitors, please share a snapshot of your schematic or a photo of the assembled board so I can see your layout style. I am ready to move quickly and will be available for daily check-ins while you iterate.